Hi,

I'm testing the ADXL372 and it seems some values aren't correct.

So I'm working in Measurement Mode and I read the registers from 0x08 to 0x0d in order to read the accelerations in x, y and z.

When the adxl isn't moving, I receive values from -1.5 to 1.5g. I suppose it's noise and offset as explained in datasheets, that's okey.

But when I try some test with the adxl in mouvement, I receive weird values. For example, when I drop my pcb from only 1cm, I receive some 60g... 70g or even 120g! I don't really know the value of such a shock is but I'm pretty sure it's not 40, 80 or 120g! Has anyone already have the same problem or maybe have an idea?

I'm pretty sure of my conversion, but here is how it looks like (example for x value) :

x1=ReadSpi(0x08); // x1 = 1111 1111;

x2=ReadSpi(0x09); // x2 = 2222 0000;

if (x1<128) // if x1>=128, that means the highest bit is 1 ==> negatif

{

x=0x0000; // x = 0000 0000 0000 0000

x=x1; // x = 0000 0000 1111 1111

x=x<<4; // x = 0000 1111 1111 ????

x=x&0b1111111111110000; // x = 0000 1111 1111 0000

x2= x2>>4; // x2= ???? 2222;

x2=x2&0b00001111; // x2= 0000 2222;

x=x|x2; // x = 0000 1111 1111 2222

}

if (x1>=128)

{

x1=~x1;

x2=~x2;

x=0x0000; // x = 0000 0000 0000 0000

x=x1; // x = 0000 0000 1111 1111

x=x<<4; // x = 0000 1111 1111 ????

x=x&0b1111111111110000; // x = 0000 1111 1111 0000

x2= x2>>4; // x2= ???? 2222;

x2=x2&0b00001111; // x2= 0000 2222;

x=x|x2; // x = 0000 1111 1111 2222

x=x+1;

}

*And I send the value of x to the terminal in g/10

And Here is my configuration :

WriteSpi(0x3d,0b01100000);

WriteSpi(0x3e,0b00000100);

WriteSpi(0x3f,0b00010011);

Big thank you!

Thanks for your question on evaluating the ADXL372. The noise density for the part is 3.5LSB typ, if you calculate the peak to peak noise based on the Gaussian crest factor of 6.6 you'll get +/-1.15g as typ peak to peak noise. Since it's a typical part noise value regardless of your environmental noise, I think what you are seeing on the noise level is reasonable.

Regarding the high g impact you got on dropping the sensor. Assuming you are doing the data conversion correctly and the digital communication(SPI/I2C) is healthy(one way to verify that is to check the waveform on the scope), I would still suggest if you can have a reference accelerometer to quantify what the g impact is. As you may know, the shock value you get highly depends on what the impact material is. For example, a metal-to-metal collision could easily go up to more than 200g within very short distance.

Hope this helps.