AnsweredAssumed Answered

ADXL375 "detecting" single shocks far below specified threshold in SHOCK_THRESH register

Question asked by MrSplat on Apr 25, 2015
Latest reply on May 27, 2016 by iharshadec

Dear Sirs/Madams,

 

I am a university student, currently using an ADXL375 accelerometer with a microcontroller to develop an impact detection system.

 

So far I have had no problems configuring the accelerometer to work with my MCU. However, now that I am attempting to make the accelerometer generate an interrupt on the detection of a single shock I have found myself struggling to deal with what seems like a basic problem, but for the life of me I cannot figure out what is causing it.

 

Firstly, I will provide a basic circuit diagram of the connections between my accelerometer and the MCU.

 

fig 5.2 MCU to Acc.PNG

As can be seen, I am using simple logic level translators between the MCU and accelerometer.

 

Next, I will include the code I am using to configure my ADXL375.

 

help.PNG

help2.PNG

help3.PNG

help4.PNG

I have ran tests using the above code, and the accelerometer will generate interrupt signals on the slightest of impacts, such as a light flick, which unless I am much mistaken, should not be over 30g's!

 

I have included the code I used to run a simple test.

 

help5.PNG

 

I have included outputs from one of the tests.

 

help6.PNG

Shock Threshold = 38*0.78 = 29.64

Shock Duration   = 8*0.625 = 5

 

Interrupt Source = 11000011

Interrupt Map     = 01000000

Interrupt Enable = 01000000

 

Please note that for these tests I followed instructions given in http://www.analog.com/media/en/technical-documentation/application-notes/AN-1266.pdf

however, I modified some of the values to more closely resemble the values I will be using in this project.

 

Being a student I am well aware that I may have missed something blindingly obvious to someone with more experience working with accelerometers and microcontrollers than I have. In fact, I am really hoping that this is the case.

 

Included in the above tests are the readings of all the values I set to be written to the registers of the accelerometer, and it is the fact these outputs seem to be correct which makes me think that I have missed something important in the configuration of my ADXL375.

 

It should be noted that I have currently got the accelerometer's FIFO buffer set to bypass mode.

 

This accelerometer is meant to be going into a situation where it will not be moved around much, but may be likely to experience high impact events, and so as far as I am aware, I did not need to do too much calibration to get acceptable results.

 

If any more information would be helpful for anyone wishing to give me assistance, please do not hesitate to ask.

Outcomes