I am noticing that the ADXL375 device in my design is saturating at 25g when I set the bandwidth at 3200 hz. Same applies to lower data rates as well.
I am reading the values in bypass mode.
Any help is appreciated.
It seems like an output data formatting issue. 1ff = 511 in decimal and fe00 = 65024. Ideally, the full scale sensor output should be +/-4096 LSB. The XL345 datasheet (page 32) has a more detailed description of the output data formatting and the 200g range of the XL375 corresponds to the 16g range of the XL345.
Can you check to see if you get ~ +/- 20.5 LSB change in output when you place any axis of the XL375 in +/-1g field.
Can you let us know your settings for the DATA_FORMAT register (0x31).
The DATA_FORMAT register is set to 0xB.
Also, the high g value that is being applied is in the range of about 80g and stays there for about 30 milli sec. I have tried with Bandwidth settings of 100HZ all the way to 1600 Hz and I see the same saturation behavior for all cases. The sensor reading is limited to 0x1ff (and always above 0xfe00 for negative acceleration casE).
I have attached the acceleration graph plotted against samples from one of the cases (BW set to 100 Hz).
It turned out that the DATA_FORMAT register was actually being incorrectly set. Bits D2, D1 and D0 that are always 1 were being progammed to 0. When we set this right, we see accelerations in excess of 25g.
I have other questions with regard to sampling rate, which I will ask in a separate thread.
Thanks for your help and sorry about the confusion.
I'm glad that Ben had this issue before I ran into it and that your response pointed the way to the 345 datasheet page 32. I lost quite a chunk of development time trying to find the bug in my code. Turns out instead, that the ADXL375 datasheet just plain fails to mention anything what-so-ever regarding full resolution and range settings.
Sure, the 375 register map on page 20 shows that the default value is all zeros. And the register description on page 24 shows D3, D1, and D0 populated with "1". But not a word on what those bits do, or that the developer should set them if they want the ADXL375 200g sensor to actually perform as a 200g sensor. The apparent dichotomy that the default power on values are zeros, while there are ones showing in the register description is the only hint that something is possibly fishy. I just assumed that since the purpose of those bits was never mentioned, that there was no need to twiddle them. Why would I set values for bits that don't have any described purpose?
Realize that to your customers working with the 375 for the first time, getting peak G values lower than the shock threshold setting looks an awful lot like the output data rate issue described on pages 3/4 of AN-1266. And speaking of AN-1266, the 10 step Example Code on the last page never writes any value to the DATA FORMAT register 0x31.
Retrieving data ...