cancel
Showing results for 
Search instead for 
Did you mean: 

IIS3DHHC lost factory calibration

JNygr
Associate II

I've done a lot of testings with two IIS3DHHC and everything seems fine. Suddenly one of the IIS3DHHC seems to lost the factory calibration. Is this possible? A lot of the tests have been done below freezing point -10C degree.

In our solution, the Vdd_IO is 0.25V above Vdd and I see in datasheet that max 0.1V is allowed, could this be a reason for this error?

4 REPLIES 4
Eleon BORLINI
ST Employee

hi joakim, there are two register batches that are related to factory calibration: regs 00h-0Eh and regs 10h-1Fh. You can read these register for check, but you must not overwrite the values. Did you do a back-up of these register to check if the IIS3DHHC effectively lost factory calibration? You could btw do a reset of the device to check it. It's not necessary to physically power off and on the Vdd/Vdd_IO, but to return the device to the power-down default settings, you can follow these steps from any operating mode (link:(

1. Set the SW_RESET bit of the CTRL_REG1 register to 1;

2. Wait 5 µs (or wait until the SW_RESET bit of the CTRL_REG1 register returns to 0);

3. Set the BOOT bit of the CTRL_REG1 register to 1;

4. Wait 10 ms

Btw, its always a good practice to have Vdd >= Vdd_IO... do you have capacitors on Vdd / Vdd_IO lines?

Regards

JNygr
Associate II

I do not know the factory settings but suddenly the readings from x,y,z was not as expected, data was changed as if I have tilted the sensor 10degrees. I also tried the code above but same result.

I use a regulator on vdd to filter ripple, that's why vdd is lower than vdd_io, I will check if reg 00-0e and 10-1f has data or is 00h or ff.

Hello

I have read the contentz in reg 0x00-0x0e, 0x10-0x1F. "Sensor1" is the sensor that have changed its outputs (x,y,z) and "Sensor2" is working fine.

Is the contenz OK?

Is there a crc or how can I check the integrity?

Adr Sensor1 Sensor2

0x00 0x00 0x00

0x01 0x00 0x00

0x02 0x00 0x00

0x03 0x00 0x00

0x04 0x00 0x00

0x05 0x00 0x00

0x06 0x00 0x00

0x07 0x00 0x00

0x08 0x00 0x00

0x09 0x00 0x00

0x0A 0x00 0x00

0x0B 0x00 0x00

0x0C 0x00 0x00

0x0D 0x00 0x00

0x0E 0x00 0x00

0x10 0x03 0x95

0x11 0x06 0x81

0x12 0x11 0x14

0x13 0x28 0x34

0x14 0xE8 0xF4

0x15 0x08 0x06

0x16 0x01 0x25

0x17 0x08 0x00

0x18 0x03 0x28

0x19 0x7D 0x7F

0x1A 0x5D 0x64

0x1B 0x00 0x3E

0x1C 0x3F 0x00

0x1D 0x00 0x00

0x1E 0x20 0x30

0x1F 0x76 0xA7

Hello
I tested five pcs of IIS3DHHC again (with a new PCB and Vdd=Vdio=3.0V) and after 1.5 month, one suddenly changes the output from x,y,z register. The same fault as I was observed earlier.
Data seems more right after the output has changed (25 June). Do you have any theory about what can cause this?
Following XYZ data was observed (PCB board tilted in 6 different position (0,0,-1g), (0,0,+1g) etc.
Sample data is averaged from the fifo.
5 Maj X Y Z (Temp 24C)
55 -1833 -13233
-20 -1838 13148
8 -14887 -8
18 11279 -14
-13492 -1834 -64
13543 -1830 17
5 Maj X Y Z (Temp -25C)
366 -1926 -13414
54 -1981 13017
229 -15027 -185
169 11188 -127
-13335 -1976 -310
13739 -1911 -25
25 June X Y Z (Temp 25C)
56 -40 -13238
-54 -31 13144
21 -13091 -2
-21 13065 -27
-13508 -56 -87
13527 -10 29
25 June X Y Z (Temp -24C)
374 30 -13423
35 -16 13010
215 -13067 -185
155 13137 -140
-13349 -21 -320
13724 42 -27
Br
Joakim