Datasheet

Data Sheet
BMA456
BST-BMA456-DS000-01 | Version 1.1 | October 2017 Bosch Sensortec
© Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties.
BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany.
Note: Specifications within this document are subject to change without notice.
4.9. Sensor Self-Test
The BMA456 has a comprehensive self test function for the MEMS element by applying electrostatic
forces to the sensor core instead of external accelerations. By actually deflecting the seismic mass,
the entire signal path of the sensor can be tested. Activating the self-test results in a static offset of
the acceleration data; any external acceleration or gravitational force applied to the sensor during
active self-test will be observed in the output as a superposition of both acceleration and self-test
signal.
Before the self-test is enabled the g-range should be set to 8g. The self-test is activated for all axes
by writing ACC_SELF_TEST.acc_self_test_en = 1b1. The self-test is disabled by writing
ACC_SELF_TEST.acc_self_test_en = 1b0. It is possible to control the direction of the deflection
through bit ACC_SELF_TEST.acc_self_test_sign. The excitation occurs in positive (negative) direction
if ACC_SELF_TEST.acc_self_test_sign= 1b1 (’b0). The amplitude of the deflection has to be set low
by writing ACC_SELF_TEST.acc_self_test_amp = 1b0. After the self-test is enabled, the user should
wait 50ms before interpreting the acceleration data.
In order to ensure a proper interpretation of the self-test signal it is recommended to perform the self-
test for both (positive and negative) directions and then to calculate the difference of the resulting
acceleration values. The table below shows the minimum differences for each axis in order for the self
test to pass. The actually measured signal differences can be significantly larger.
Self-test: Resulting minimum difference signal for BMA456.
x-axis signal
y-axis signal
z-axis signal
BMA456
1800 mg
1800 mg
1800 mg
It is recommended to perform a reset of the device after a self-test has been performed. If the reset
cannot be performed, the following sequence must be kept to prevent unwanted interrupt generation:
disable interrupts, change parameters of interrupts, wait for at least 50ms, and enable desired
interrupts.
The recommended self test procedure is as follows:
1. Enable accelerometer with register PWR_CTRL.acc_en=1b1.
2. Set ±8g range in register ACC_RANGE.acc_range
3. Set self test amplitude to low by setting ACC_SELF_TEST.acc_self_test_amp = 1b0
4. Set ACC_CONF.acc_odr=1600Hz, Continuous sampling mode,
ACC_CONF.acc_bwp=norm_avg4, ACC_CONF.acc_perf_mode=1b1.
5. Wait for > 2 ms
6. Enable self-test and set positive self-test polarity (ACC_SELF_TEST.acc_self_test_sign=
1b1)
7. Wait for > 50ms
8. Read and store positive acceleration value of each axis from registers DATA_8 to DATA_13
9. Enable self-test and set negative self-test polarity ACC_SELF_TEST.acc_self_test_sign=
1b0)
10. Wait for > 50ms
11. Read and store negative acceleration value of each axis from registers DATA_8 to DATA_13
12. Calculate difference of positive and negative acceleration values and compare against
threshold values