AnsweredAssumed Answered

ADXL375, no reading beyond +/-32G

Question asked by .trevor on Aug 3, 2015
Latest reply on Jun 20, 2017 by kschro1



I'm working on a project that uses the ADXL375 (+/-200G, digital output). The problem I'm having is that the accelerometer output never exceeds +/-32G. Two different reference accelerometers (one is an ADXL377) measure 60-80G when experiencing a shock similar to what the ADXL375 is subjected to. This happens when using 800 ODR and 3200 ODR. I have also tried using activity detection and trigger mode. When I read out the FIFO after the trigger event I still see no measurement beyond +/-32G. I have run the SPI clock at 2 MHz and 5 MHz.  I'm using 49mG/LSB for doing the conversion to Gs (accelerometer output * 49 / 1000).


Before this I experienced a similar problem where the accelerometer output would not exceed +/-25G. This happened because I was not programming the set bits in the DATA_FORMAT register correctly. I have fixed that but now the output seems to be stuck at +/-32G.


Here are the values of all of the ADXL375 registers after configuring and before doing the shock.


Register:                            Value:


0x00/00 -> DEVID:                    0xE5

0x1D/29 -> THRESH_SHOCK:             0x00

0x1E/30 -> OFSX:                     0x00

0x1F/31 -> OFSY:                     0x00

0x20/32 -> OFXZ:                     0x00

0x21/33 -> DUR:                      0x00

0x22/34 -> Latent:                   0x00

0x23/35 -> Window:                   0x00

0x24/36 -> THRESH_ACT:               0x00

0x25/37 -> THRESH_INACT:             0x00

0x26/38 -> TIME_INACT:               0x00

0x27/39 -> ACT_INACT_CTL:            0x00

0x2A/42 -> SHOCK_AXES:               0x00

0x2B/43 -> ACT_SHOCK_STATUS:         0x00

0x2C/44 -> BW_RATE:                  0x0D (for 800 ODR) or 0x0F (for 3200 ODR)

0x2D/45 -> POWER_CTL:                0x08

0x2E/46 -> INT_ENABLE:               0x00

0x2F/47 -> INT_MAP:                  0x00

0x30/48 -> INT_SOURCE:               0x83

0x31/49 -> DATA_FORMAT:              0x0B

0x32/50 -> DATAX0:                   0x00

0x33/51 -> DATAX1:                   0x00

0x34/52 -> DATAY0:                   0x00

0x35/53 -> DATAY1:                   0x00

0x36/54 -> DATAZ0:                   0x2B

0x37/55 -> DATAZ1:                   0x00

0x38/56 -> FIFO_CTL:                 0x80

0x39/57 -> FIFO_STATUS:              0x1F

Does anything look out of place there?  Thanks for your help.