cancel
Showing results for 
Search instead for 
Did you mean: 

lsm6dsv320x WHO_AM_i

fk
Associate II

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

12 REPLIES 12
gabriele33
Associate II
 
Andrew Neil
Super User


single_wire_zoomed.png:

AndrewNeil_0-1753180496846.png


double_wire_zoomed.png:

AndrewNeil_1-1753180540137.png

 

What's the significance of "single wire" and "double wire" ?

A complex system that works is invariably found to have evolved from a simple system that worked.
A complex system designed from scratch never works and cannot be patched up to make it work.

Yep sorry, single wire is a single jump wire between the dk and the steval. double wire is a double jump wire connected in series between dk and steval to have a longer connection. The difference is only on the SDO/MISO line.

I want to show you a new screenshot. This time I removed the "clock stretching" changing how I call spi_transceive in zephyr os (it was tx 1 byte and rx 2 bytes now it is both 2 bytes, I don't know why in the previous configuration there was a clock stretching). I removed the pull up on the mcu side.

RigolDS1.png

The curios thing is that I have another breadboard with another steval (iis2dh) and it works fine connected on the same bus in place of this one we are discussing.