I'm trying to use the chip to detect shocks and their maximum values using the HIGHEST PEAK DATA registers and the INSTANT_ON mode.
Most of the time it works, but sometimes (~ 1 time out of 10), all 3 max peak values are 0.
Below is my chip register configuration:
Reg 0x04 = 0x0 Reg 0x05 = 0x0 Reg 0x20 = 0x0 Reg 0x21 = 0x0 Reg 0x22 = 0x0 Reg 0x23 = 0xC Reg 0x24 = 0x81 Reg 0x25 = 0xC Reg 0x26 = 0x81 Reg 0x27 = 0xC Reg 0x28 = 0x81 Reg 0x29 = 0x0 Reg 0x2A = 0xC Reg 0x2B = 0x81 Reg 0x2C = 0xC Reg 0x2D = 0x81 Reg 0x2E = 0xC Reg 0x2F = 0x81 Reg 0x30 = 0x0 Reg 0x31 = 0x2 Reg 0x32 = 0x0 Reg 0x33 = 0x0 Reg 0x34 = 0x0 Reg 0x35 = 0x0 Reg 0x36 = 0x0 Reg 0x37 = 0x0 Reg 0x38 = 0x2 Reg 0x39 = 0xFD Reg 0x3A = 0x39 Reg 0x3B = 0x40 Reg 0x3C = 0x0 Reg 0x3D = 0x80 Reg 0x3E = 0x24 Reg 0x3F = 0x1A
When the interrupt line INT1 goes high, I read the activity status register and if activity is detected (bit 5), I wait 100ms before reading the Highest_Peak registers. Then I put the chip back into INSTANT_ON mode.
The shocks are correctly detected, the chip wakes up and the activity bit goes to 1, but sometimes (~1 time out of 10) reading the HIGHEST_PEAK registers returns 0 on all 3 axes.
To pinpoint the problem, I added acceleration readings during the 100ms wait (~1 reading of the 3 axes every 1.3ms).
Below are the results of a shock with functional MAX_PEAKS detection followed by a shock with MAX_PEAKS set to 0. (There are 66 times the acceleration values in g read at 1.3ms, followed by the highest_peaks values.)
-7.30, -12.40, -24.60 -8.40, -4.90, -18.60 -1.60, 1.30, -9.20 -1.50, 4.10, -0.70 1.30, 0.20, 4.30 3.60, -3.90, 3.30 7.10, -3.40, 2.10 8.30, -2.60, -3.30 4.20, 5.10, -9.50 0.90, 2.00, -9.20 -1.60, -1.90, 0.70 1.60, -2.10, 3.50 4.90, 1.20, 8.30 1.80, 2.10, 10.00 -1.80, -1.10, 3.50 -3.50, 1.40, -2.00 -1.60, 2.90, -1.00 -1.60, -2.30, 3.90 -0.80, 1.70, 1.40 1.80, 1.40, -0.70 0.00, -3.50, 1.00 -1.90, -0.60, 4.20 0.30, 1.60, 5.00 0.30, -0.20, 1.20 0.80, -0.70, -1.10 1.80, -0.30, 0.40 -0.50, 1.40, 2.70 -1.10, -0.20, 2.30 0.70, -1.10, 0.70 1.30, 0.70, -0.30 -0.90, 1.10, 0.30 -1.80, -0.70, 0.30 0.20, -0.50, 1.60 1.30, -0.20, 2.20 0.50, 0.00, 0.80 -1.10, -0.30, -0.80 0.30, 0.20, 0.00 0.40, -0.10, 1.00 0.70, -0.20, 0.20 -0.50, -0.30, -0.50 -0.10, -0.50, -0.50 0.20, 0.30, -0.60 -1.00, 0.20, -0.10 -0.50, -0.80, 1.20 0.30, 0.30, 0.30 0.90, 0.30, -0.30 -0.40, -0.50, -0.20 -1.10, -0.20, 0.00 0.20, 0.70, -0.60 1.10, 1.50, -2.80 0.10, 0.90, -4.50 2.40, 0.60, -2.20 2.20, -0.30, 0.50 1.60, -0.80, 2.10 -1.30, -0.40, 1.00 -0.90, 1.00, 0.70 0.00, -0.10, 1.10 -2.10, 0.00, 1.10 -1.30, -0.60, -0.60 1.10, -0.10, 1.20 -1.20, 0.10, 0.60 0.00, 0.20, 0.80 -0.30, 0.30, 0.00 0.00, -0.40, -0.20 -1.00, 0.20, -0.30 0.50, 0.80, -0.60 Max peak Acc X : -10.10 g Acc Y : -9.90 g Acc Z : -25.40 g -19.00, -34.90, -69.00 -8.40, -9.20, -94.40 -11.30, 1.20, -85.90 8.70, -7.20, -17.40 3.90, 2.20, 17.30 3.60, 11.20, 56.00 9.80, 6.90, 65.50 11.40, 7.20, 39.30 0.40, -5.40, 3.40 -3.70, -1.00, -16.90 0.30, 8.80, -13.80 0.80, 8.50, 6.80 0.10, 6.10, 21.20 -3.00, 2.00, 24.10 0.50, -1.40, 13.50 2.40, 1.30, -4.20 2.40, 2.60, -11.10 4.90, -0.10, -2.60 3.90, -1.60, 6.90 -2.20, 3.60, 2.50 -3.60, 4.20, 0.70 4.40, 1.30, 0.00 -0.70, -4.10, 5.00 -2.90, -1.30, 8.60 0.90, -0.10, 6.80 -1.60, -1.00, 1.70 0.60, -0.30, 0.80 1.60, 0.20, 3.20 -0.10, 1.10, 7.10 -3.60, 0.10, 7.20 -1.30, -0.50, 4.10 0.20, 0.60, 0.80 0.60, 1.00, 1.20 0.60, 0.50, 2.30 -1.10, 0.50, 2.90 -0.20, 0.40, 2.40 -1.00, -0.10, -0.60 -2.20, -0.30, -4.00 0.50, -1.10, -11.30 -3.90, 1.80, -6.60 -4.00, -0.80, 1.40 -0.60, -1.70, 2.90 3.20, -1.00, 1.30 3.10, 0.10, -0.10 1.00, -0.70, 0.50 -0.80, -0.50, 2.40 1.00, -0.10, 3.90 -0.40, -0.50, 1.80 -1.10, -0.40, -0.10 1.60, -0.70, 0.50 1.10, 0.00, 1.50 -0.90, 0.10, 1.30 -0.70, -0.10, 0.90 0.10, -0.60, 0.60 1.40, -0.20, 0.10 0.00, 0.40, -0.20 -0.60, 0.00, 0.90 0.70, -1.00, 0.90 -0.80, -0.60, -0.30 -0.20, -0.20, 0.60 0.40, -0.30, 1.00 -1.20, 0.40, 0.30 -0.30, 0.30, -0.10 0.00, -0.30, 0.10 -1.50, -0.20, 0.50 -0.60, -0.10, 0.50 Max peak Acc X : 0.00 g Acc Y : 0.00 g Acc Z : 0.00 g
When the problem appears, we can see that many measurements are above 10g (threshold defined for Active).
