Skip to main content
Visitor II
April 17, 2019
Question

IIS3DHHC lost factory calibration

  • April 17, 2019
  • 2 replies
  • 1031 views

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?

    This topic has been closed for replies.

    2 replies

    ST Employee
    April 17, 2019

    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

    JNygrAuthor
    Visitor II
    April 24, 2019

    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

    JNygrAuthor
    Visitor II
    April 17, 2019

    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.