cancel
Showing results for 
Search instead for 
Did you mean: 

LSM6DS3 EVB "STEVAL-MKI160V1" communication issue with WHO AM I

SChin.2
Associate III

Hi ST

we are seeing wrong response for WHO AM I command,

SPI Configuration:

  • SPI Freq- 100KHZ
  • Slave Select - Active low
  • CPHA- 1
  • CPOL - 1
  • bit order - MSB first

sent 0x8F00 on MOSI line and seen 0x0040 and it was random some times we are seeing 0x007F as a response. can you please help us on this 0693W000008xcw8QAA.jpg

17 REPLIES 17
SChin.2
Associate III

Hello @Eleon BORLINI​ 

As we see it is working fine with the I2C lines for reading the WHO AM I register, but as mentioned above it is not working as expected over SPI lines.

can we take this post to high priority please,

0693W000008xkoMQAQ.jpg 0693W000008xkoRQAQ.jpg

No clue from my side, unfortunately :( it should work from chip side...

You could try reducing the Vdd / VddIO values.

And you could also try writing the I2C_disable bit in the CTRL4_C (13h) register, that is a further insurance in disabling the I2C interface (could be useful in case ofin case of huge cross-talks).

You can try asking to the online support for more help.

-Eleon

SChin.2
Associate III

Hello @Eleon BORLINI​ 

found the root cause for it, MISO line is with high impedance , just need to place the resistance to avoid reflections on the line. In my case we have added 20ohms resistor is added.

Glad to hear you solved your issue @SChin.2​ !

-Eleon

SChin.2
Associate III

Hi @Eleon BORLINI​ 

Is their any calibration process that we need to perform on this sensor ?.

As here we are seeing gyro reading even though it is stationary, When it is at stationary we are suppose to see zero values but we are seeing non zero values any clue ?

reading (FS: +/- 500dps, ODR:104hz):

X: 350mdps

Y: -5285mdps

Z: -4550mdps

Hi @SChin.2​ ,

please note that the G_TyOff parameter, i.e. the angular rate typical zero-rate level after soldering (datasheet p.20) has typical values in the range of ±10dps.

Your results are actually in this range, so no issue.

-Eleon

Can you please comment on the calibration part too !!

It's always a good step calibrating a gyroscope before using it.

The LSM6DS3 has no internal registers to store the ZRL compensation value (datasheet p.28), so you should subtract it to your data-out value after having characterized in a stationary condition.

Alternatively, if you were using an STM32 as application processor, you could evaluate the use of dedicated libraries, such as the MotionGC of the X-CUBE-MEMS1 function package.

-Eleon