Skip to main content
Associate
July 10, 2025
Solved

lsm6dsv320x WHO_AM_i

  • July 10, 2025
  • 12 replies
  • 1610 views

We're looking to use the lsm6dsv320x in our product. I'm using this senser on the on the STEVAL-MKI247A adapter board for testing. We're currently in development using the adapter board with the Nordic nRF52840DK board. I'm having issues with getting the correct value from the WHO_AM_I with certain SPI pin configurations on the nRF52840DK. I can only get one SPI configuration to output the correct value of 0x73 which is SPI1. If I try change the pins or use one of the other SPI's available on the 52840, I consistently get a value of 0x64. Does that value mean anything to anyone? I've tried lowering the frequency to 500kHz, tried all four of SPI modes, I've tried performing a reset using the FUNC_CFG_ACCESS and CTRL3 registers before reading the WHO_AM_I register, but I still get the value of 0x64 except with the one configuration mentioned. I'm using the ST fsm_example for this test. We would like to change the SPI pins as the we want to use the smaller package of the nRF52840 which doesn't have some of the default pins for this SPI! bus. I've looked at the waveforms on an analyzer and there seems to be plenty of setup and hold with the address and data. Any significance to the value of 0x64?Screenshot 2025-07-03 114225.png

Best answer by rv_08

It worked after opening the bridges SB36 and Sb38 over X Nucleo- IQS4A1A to avoid the conflict of two devices connected over I2c with same address of LSM6DSV320X but with different whoAmI. That's is why problem is only on I2C and not over SPI. See the Fedrcia Bossi reply on my other thread. Device is perfectly working now.

Solved: Inconsistent whoAMI address of LSM6dsv320x on eval... - STMicroelectronics Community

12 replies

Explorer
October 29, 2025

Hello, 

I'm experiencing the same issue with LSM6DSV320X (on STEVAL-MKI251A evaluation board) - WHO_AM_I returns 0x64 instead of 0x73 when using SPI.

My Setup:

  • Sensor: LSM6DSV320X (STEVAL-MKI251A board)
  • MCU: xiao ESP32S3
  • Interface: 4-wire SPI, Mode 3 / Mode 0

Interesting finding:

While testing with external pull-up/pull-down resistors on the SPI lines to see if it would affect the communication, I noticed something unusual:

When I physically touch the SCK line (even through the resistor lead), the WHO_AM_I register occasionally returns the correct value 0x73 instead of 0x64. This behavior is inconsistent and seems to depend on skin moisture/capacitance.

  • External resistors (1kΩ - 10kΩ) alone have NO effect
  • Only human touch changes the behavior
  • The effect is not always reproducible

This suggests the issue might be related to:

  • Signal integrity / impedance matching on SCK
  • Rise/fall time requirements
  • Capacitive loading effects


    I have recorded a video showing the oscilloscope waveform changes and WHO_AM_I value changes when touching/not touching the SCK line with the breadboard setup. (attached)


    waveform.jpg

    Has anyone else observed similar behavior? Could this indicate a PCB design issue with the STEVAL-MKI251A board, or perhaps specific signal conditioning requirements for the LSM6DSV320X SPI interface?

    Any insights would be appreciated.

    Thank you,
TDK
Super User
October 29, 2025

That is so weird. Thanks for posting the video.

"If you feel a post has answered your question, please click ""Accept as Solution""."
rv_08Best answer
Associate II
December 18, 2025

It worked after opening the bridges SB36 and Sb38 over X Nucleo- IQS4A1A to avoid the conflict of two devices connected over I2c with same address of LSM6DSV320X but with different whoAmI. That's is why problem is only on I2C and not over SPI. See the Fedrcia Bossi reply on my other thread. Device is perfectly working now.

Solved: Inconsistent whoAMI address of LSM6dsv320x on eval... - STMicroelectronics Community