H3LIS331: SPI read response is always 0x00
Hello, I am attempting to communicate using SPI with an H3LIS331 accelerometer. The H3LIS331 is on a custom board that originally had a LIS3DSH on it. The LIS3DSH had been working without a problem, but we were looking to expand the acceleration scale.
No matter what register I attempt to access, the MISO line puts out one byte of 0xFF and one byte of 0x00. See the attached logic analyzer screenshot, which shows writing to 3 CTRL registers and then attempting to read the WHO_AM_I register. The SPI traffic in the screenshot is the first to occur after powering the board on.
Additional information:
- I am using a SPI clock of 9.4 MHz
- I have my SPI set up per the datasheet: Clock idle high, data valid on rising edge
- I have verified that the devices' pins are at the correct voltages
- This SPI bus is shared with other devices (different CS lines), and those still communicate correctly
- the SPI signals all look okay on an oscilloscope
I did notice that the MISO line has an unusual "long tail" after the low byte; see the attached oscilloscope capture which also shows the SPI clock. That might be a symptom of some fundamental problem, but isn't a problem in itself.
Can you see anything I'm missing, or do you have suggestions of what to check next? Thanks!
