cancel
Showing results for 
Search instead for 
Did you mean: 

ILPS22QS addressing

Jinhao
Associate II

Hi,

In my project, I would like to connect multiple ILPS22QS pressure sensors (from 8 up to 256 units) to a single controller. I saw the dynamic addressing command supported by I3C ENTDAA. However, I also saw the provisional ID is not arbitrary. GETPID only returns 2 values depending on SDO pin.

Therefore, I wonder if it is possible to use a single micro-controller to communicate with multiple (>2) ILPS22QS pressure sensors.

Thank you,

Jinhao

1 ACCEPTED SOLUTION

Accepted Solutions

Hello @Jinhao , 

I think there is no way to address more than 2 devices on the I3C bus (only 2 PID values) .

You need more than controller on the bus .

Foued

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

View solution in original post

6 REPLIES 6
RhSilicon
Lead

There are I2C bus multiplexers, but due to the high number of sensors, possibly the only alternative is to operate with SPI (daisy chained connection).

SPI_article-2019february-why-and-how-to-use-fig2.jpg

https://www.digikey.be/nl/articles/why-how-to-use-serial-peripheral-interface-simplify-connections-between-multiple-devices

I found this document that might be interesting to see:

Daisy Chain Implementation for Serial Peripheral Interface

Another option could be to use SPI in direct mode with 74HC595 to control the SS pin, need to observe the characteristics of Fan-in/Fan-out:

https://efficientcodeblog.wordpress.com/2017/11/03/what-are-fan-out-and-fan-in/

 

Foued_KH
ST Employee

Hello @Jinhao , 

The I3C Arbitration procedure differs from I2C by using the values of the 48-bit Provisioned ID and the Device’s I3C Characteristic Registers (that is, BCR and DCR), concatenated.
The Device on the I3C Bus with the lowest concatenated value wins each Arbitration round in turn, and the Controller assigns a unique Dynamic Address to each winning Device.

Here is our application Note that describes I3C vs I2C and practical examples and use case : https://www.st.com/resource/en/application_note/an5879-introduction-to-i3c-for-stm32h5-series-mcu-st...

Foued

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Thank you for your reply. 

I understand how Dynamic Address works with Arbitration. My questions is: given that the 48-bit Provisioned ID is NOT arbitrary (see the screenshot of ILPS22QS datasheet), is there any way I can address multiple ILPS22QS sensors. As far as I can see, there is only one pin named SDO that changes one bit of PID, leading to 2 possible different PID in total.

Thank you,

Jinhao

Hello @Jinhao , 

I think there is no way to address more than 2 devices on the I3C bus (only 2 PID values) .

You need more than controller on the bus .

Foued

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Jinhao
Associate II

Thank you for your confirmation.

Jinhao