2024-07-02 12:12 PM
Hello,
I'm trying to setup communication over SPI between an STM32G0B1CE and an ISM330 but am unable to get responses from the ISM330 despite a logic analyzer showing good bus signals.
Below is a successful transaction performed with an arduino as the host and the ISM330 as the slave. Note that we are reading the 0x0F register and are seeing a response of 0x6B. Note that a read requires a 1 for the first r/w bit and therefore shows as 0x8F.
This response is what we would expect to see when we replace the arduino with the STM32. However when replaced with the STM32, the logic analyzer shows the following:
We cannot figure out what the meaningful difference between these 2 captures is that would cause this response from the chip. Additionally when we force a slight pause in between the two 8 bit parts of the transaction to mimic the arduino waveform, we see the same response (and sometimes we see absolutely no response at all).
Are there certain timing requirements of SPI that we're not adhering to? Are there any other explanations anyone can think of that would cause this?
Thanks in advance for the help!
2024-07-05 11:54 AM
We figured this out - it wound up being that if you ever write/read to address 0 in the ism330, it does not respond to future requests