Skip to main content
Visitor II
August 13, 2020
Question

ISM330DHCX: Hi, is there any known issue regarding the WHO_AM_I of ISM330DHCX, when having a number of them on one bus? Sometimes I read 0x48 instead of the expected 0x6B. There is no issue with SPI speed (10 MHz or 1 MHz tested).

  • August 13, 2020
  • 2 replies
  • 2701 views

I'm testing a system with a number of ISM330DHCX, generating the CE signals apart from the SPI component. Having a number of sensors on the bus (by means of CE only one of them active at any given time) I read sometimes a wrong WHO_AM_I-value. Bus clock is fine, there is no mis-interpretation, there are wrong data on the bus, but the sensor itself seems ok too (correct values when testing in different combination). I don't know what to look for - any ideas?

    This topic has been closed for replies.

    2 replies

    ST Employee
    August 18, 2020

    Hi @Community member​ ,

    there are no known issues regarding WHO_AM_I register, so don't worry, you can figure this out.

    The problem could be that the timing between the transitions of the Chip Select (I think that is what you refer to as CE).

    Remember that there should be just one CS down at a time (while you read device X the other's CS must be high), can you check this?

    It can also depend on the timing of the single CS: please, refer to the table on page 14 of the datasheet ( https://www.st.com/resource/en/datasheet/ism330dhcx.pdf) and check if the t(su(CS)) is enough in your case (sorry for bad formatting, I hope you can understand what I mean).

    Let me know if this helps you.

    ST Employee
    August 27, 2020

    Hi @Community member​ , besides @niccolo.ruffini​ hints, in the unlikely event of some kind of signal cross-talk on the pcb, since you are using the SPI communication protocol only I would suggest you to write the I2C_disable bit to 1 in the CTRL4_C (13h) register before starting the sensor acquisitions. It is only a redundant procedure in any case. If you are however facing issue only with WHO_AM_I register, please disregard my suggestion. You can share with us the "failing" ISM330DHCX top marking picture to check if it is the correct part number. Regards

    ASchm.3Author
    Visitor II
    August 31, 2020

    Hallo Eleon,

    when I start using a specific sensor, I already disable I2C. But before doing so, I need to identify the ISM330DHCX - that's why there is a WHO_AM_I register, I assume.

    Meanwhile, I found the strange behaviour also in case of only a single sensor directly connected to the SPI pins of a Raspberry Pi, so there is no issue regarding CS anymore.

    ST Employee
    August 31, 2020

    So it is just one specific sensor that has issues with the WHO_AM_I reading?