I have a question about BMI160 High-G interrupt. I setup the interrupt duration (high_dur) to the minimum, which is 2.5 ms. Since I am sampling at 20Hz, the sensor is giving me a new acceleration every 50 ms, which is less than the interrupt duration. Does it mean that I only need that one sample overcomes the threshold (high_th) to get the interrupt activated?
Solved! Go to Solution.
Thanks for your inquiry.
Your understanding is correct. If high_dur < 1/ODR, then it means that one single sample that exceeds the high_th will trigger the high-g interrupt. BMI160 accel has ODR of 12.5Hz, 25Hz, 50Hz, 100Hz, 200Hz, 400Hz, 800Hz and 1600Hz options. If you set the ODR to 25Hz ( = 40ms), high_dur to 2.5ms and x/y//z axes all enabled for example, then when you hold your device and move your device up and down on any axis, you will see high-g interrupt triggered by BMI160. However, if you tap or hit your device on any axis, then you may not be able to see high-g interrupt. This is because tap or hit motion has very less duration and the 25Hz ODR will miss this kind of motion for high-g interrupt.
Therefore, if you want to detect high-g event from fast waving motion, then it is ok to use 25Hz ODR and 2.5ms high_dur. If you want to detect high-g event from shocking, impact, vibration, tapping or hitting, then BMI160 accel ODR should be set to much higher such as 800Hz or 1600Hz for high-g interrupt to be triggered.