Skip to main content
Graduate
August 11, 2023
Solved

ILPS22QS addressing

  • August 11, 2023
  • 3 replies
  • 2629 views

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

    This topic has been closed for replies.
    Best answer by Foued_KH

    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

    3 replies

    Graduate II
    August 11, 2023

    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

    Graduate II
    August 11, 2023

    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/

     

    ST Employee
    August 14, 2023

    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

    JinhaoAuthor
    Graduate
    August 21, 2023

    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

    Foued_KHAnswer
    ST Employee
    August 22, 2023

    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

    JinhaoAuthor
    Graduate
    August 23, 2023

    Thank you for your confirmation.

    Jinhao