BMA580 BOSCH | Alldatasheet
Document overview
- Manufacturer or author: Provided By alldatasheet.com(free datasheet download site)
- PDF pages: 196
Technical content
Advanced, ultra-small, triaxial high performance low-g accelerometer with digital interfaces BMA580 Datasheet Document revision 1.1 Document release date Feb 6th 2025 Document number BST-BMA580-DS000-05 Sales part number(s) 0 273 017 046 Notes Data and descriptions in this document are subject to change without notice. Product photos and pictures are for illustration purposes only and may differ from the real product appearance.
Bosch Sensortec | BMA580 Datasheet 2 | 196 Basic Description The BMA580 is an advanced,ultra-small, triaxial high performance low-g accelerometer with digital interfaces. The sensor is suitable for low-power and demanding consumer electronics applications. The BMA580 integrates a 16 bit digital, triaxial accelerometer with range configurable to ±2 g, ±4 g, ±8 g, ±16 g a 8 bit digital temperature sensor for an operating temperature range –40 ◦C ... 85 ◦C Key Features Compact size 1.2 × 0.8 mm2 Wafer Level Chip Scale Package (WLCSP), 6 pins, height 0.55mm Primary digital interface with 10 MHz slave SPI (4-wire, 3-wire), 12.5 MHz I3C and up to 1 MHz I²C (Fm+) Programmable low-pass filtering Ultra low current consumption: typ. 125—A (in full ODR and aliasing free operation) Built-in power management unit (PMU) for advanced power management and low power modes Power on time: 1.8ms for communication readiness up to 1 KB on-chip FIFO buffer for accelerometer, temperature sensor and sensor time stamps Fast offset error compensation for accelerometer Sensor time stamps for accurate system (host) and sensor time synchronization Two independent programmable I/O pins for interrupt and synchronization events On-chip interrupt engine and integrated smart features for always-on applications (e.g., activity, action, and gesture recognition) using the sensor ultra-low power domain: single tap, double tap, and triple tap detection Audio feature for hearables: “Voice Activity Detection” generic interrupts (three parallel instances of a highly configurable flexible interrupt) RoHS compliant, halogen and lead free © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 3 | 196 Table of contents Basic Description 2
1 Specification 9
2 Absolute Maximum Ratings 12
3 Quick Start Guide 13
4 Functional Description and Advanced Features 22
© Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 4 | 196
5 Digital Interfaces 45
6 Memory Map 62
7 Pin Out and Connection Diagrams 182
8 Package 188
9 Legal Disclaimer 194
© Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 5 | 196
10 Document History and Modifications 195
© Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 8 | 196 © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 9 | 196
1 Specification
This chapter provides the specifications for the BMA580. Minimum values and maximum values are provided for stan- dard distributed quantities as — ± 3ff, typical values as — ± ff. Unless stated otherwise, the specifications provide the characteristics for a nominal supply voltage of VDD = VDDIO = 1.8 V either at an ambient temperature of TA = 25 ◦C. This definition for minimum (Min), maximum (Max) and typical (Typ) values is also used throughout the other following chapters. Table 1 provides the electrical characteristics for the device. Table 1: Basic electrical parameter specification Parameter Symbol Condition Min Typ Max Unit Supply voltage core (and I/O) domain VDD = VDDIO 1.62 1.8 3.63 V Voltage input low level VIL SPI, I2C & I3C 0.3·VDDIO V Voltage input high level VIH SPI, I2C & I3C 0.7·VDDIO V Voltage output low level VIL SPI 0.2·VDDIO V Voltage output high level VIH SPI 0.8·VDDIO V Current consumption IDD Suspend mode 4.75 —ALow power mode, fA,lp = 100Hz High performance mode, fA,·= max 125 Power on time ∆tPO Time from supply "on" to serial I/F operational (and stable register access) 1.8 ms Operating temperature TA -40 +85 ◦C Accuracy of the output data rate (accelerometer and temperature sensor) ∆fA = ∆fT Any mode enabled @TA = 25◦C 3.0 % The Tables 2, 3 and 4 provide the operating conditions for the accelerometer and the related performance and mechan- ical characteristics. Table 2: Operating conditions for the accelerometer Parameter Symbol Condition Min Typ Max Units Acceleration range aFS Selectable via serial digital interface g±4 ±16 Start-up time - Time to valid data tA,SU From suspend mode to first data sample (in high performance mode fA,·= 1600Hz) 3.15 ms © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 10 | 196 Table 3: Performance characteristics of the accelerometer Parameter Symbol Condition Min Typ Max Units Resolution 16 bit Sensitivity SA,2g aFS = 2g 16384 LSB g SA,4g aFS = 4g 8192 SA,8g aFS = 8g 4096 SA,16g aFS = 16g 2048 Sensitivity error SA,err Soldered, over life time, aFS = 8g 0.5 % Sensitivity error temperature drift TCS Full TA range, best fit straight line 0.005 % K Zero-g offset OA Soldered ±35 mg OA,life Soldered, over life time ±50 mg Zero-g offset temperature drift TCO Full TA range, best fit straight line ±0.2 mg K Noise density nA,density High performance mode, aFS = 8g 120 —g√ Hz Nonlinearity error SA,NL Best fit straight line, aFS = 2g 0.2 %FS Output data rate (ODR) fA,hpm, fA,n High performance mode 12.5 6400 Hz fA,lpm Low-power mode 1.5625 400 Bandwidth (BW) in high performance BA=12.5Hz 0Hz ≤ f ≤ f3dB-cutoff of the accelerometer, BA = 1 2 fA [Hz] 6.3 Hz BA=25Hz 12.5 BA=50Hz 25 BA=100Hz 50 BA=200Hz 100 BA=400Hz 200 BA=800Hz 400 BA=1600Hz 800 BA=3200Hz 850 BA=6400Hz 1675 Table 4: Mechanical characteristics of the accelerometer Parameter Symbol Condition Min Typ Max Units Cross axis sensitivity SA,X Relative contribution between any two of the three axes 0.3 % Alignment error ∆‰A Relative to package outline 0 ◦ © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 11 | 196 Table 5 provides the temperature sensor related characteristics. Table 5: Characteristics of the temperature sensor Parameter Symbol Condition Min Typ Max Units Resolution 8 bits Measurement Range TS –41 87 ◦C Output at 23◦C 0 LSB Sensitivity ST 1 LSB K Temperature offset OT After soldering @TA = 25◦C ±1.5 K Temperature sensitivity error After soldering, TP ±18 % Output Data Rate fT,LPM Accelerometer in low power mode fA,lpm Hz fT,HPM Accelerometer in high performance mode 1.5625 200 © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 12 | 196
2 Absolute Maximum Ratings
Important: Stress above limits stated in Table 6 may cause damage to the device. Exceeding the specified limits may affect the reliability of the device or can cause malfunction. Table 6: Absolute maximum ratings Parameter Condition Min Max Units Voltage at Supply Pin VDD = VDDIO Pin -0.3 4 V Voltage at any Logic Pin Non-Supply Pin-out -0.3 VDD + 0.3 and < V Passive Storage Temperature Range ≤ 65 -50 150 ◦C OTP Non-Volatile Memory Data Retention T ≤ 85◦C 10 a Mechanical Shock Duration ≤ 200—s 20000 g ESD HBM at any pin 2000 V CDM 500 V © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 13 | 196
3 Quick Start Guide
The purpose of this chapter is to help developers to start working with the device by giving basic hands-on application examples. Before starting, the device has to be properly connected to the host and powered up. Notes on the Serial Interface Support The communication between host processor and the device happens over one of the interfaces: I²C, I3C or SPI (4-wire and 3-wire). Each register read operation includes the following number of inserted dummy bytes before the payload: I²C: 0 I3C: 1 SPI: 1 For simplicity, the dummy bytes are not shown in the examples within this chapter. For more information about the interfaces and the protocol selection, please see Chapter 5. After power on reset or soft reset, the device is automatically configured in suspend mode. First Application Setup Example Procedures After the proper power-up by applying the stable supply voltage to the corresponding device pins, the device enters automatically into the Power On Reset (POR) sequence. To ensure proper use of the device, certain configuration steps from the host are a mandatory prerequisite. The most typical operations will be explained in the following application examples by flow diagrams: © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 14 | 196 Test communication and initialize the device in I²C or SPI 4-wire Read the CHIP_ID.chip_id to ensure the correct communication. Before reading the CHIP_ID.chip_id, one initial trans- action is required, while the returning value is invalid. This initial transaction determines the serial interface in either I²C or SPI 4-wire for later communication. Notably, the initial transaction through the I²C interface is not acknowledged by the sensor (NACK). Since the default power mode state of BMA580 is SUSPEND power mode state, the host must disable it for further operations. Also, it is recommended to read the health status of the sensor to ensure the proper power-on. Power on or soft-reset the sensor Recommended waiting time for the start-up. The actual start-up time depends on the host setup.Wait for 3ms This initial transaction selects 4-w SPI or I2C (NACK), while the returning value is invalid.read_register(addr = 0x00) Check CHIP_IDchip_id = read_register(addr = 0x00) Check CHIP_ID as in the register mapyes no Communication ok Disable SUSPEND mode to enter ACTIVE mode write_register(addr = 0x04, value = 0x00) health = read_register(addr = 0x02) & 0x0F yes health == 0x0F? no Configure INT2 to output write_register(addr = 0x35, value = 0x01) yes Is I2C used? no Power-up ok Communication error Figure 1: Device communication test © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 17 | 196 Set the sensor parameters followed by reading the sensor data: Device is in ACTIVE state. After POR, the accelerometer is enabled automatically. It needs to disabled before changing configurations.write_register(addr = 0x30, value = 0x00) Configure the accelerometer - ODR: 100 Hz - Normal filter setting - High performance mode write_register(addr = 0x31, value = 0xA6) Configure the accelerometer - Range: +/- 2 g - Roll-off of IIR filter: -60 dB write_register(addr = 0x32, value = 0x0C) Enable the accelerometerwrite_register(addr = 0x30, value = 0x0F) Wait for sensor data readysensor_status = read_register(addr = 0x11) sensor_status & 0x01 == True? read accelerometer sensor dataacc_data[6] = read_register(addr = 0x18, byte = 6) Sensor data are available. Figure 6: Configure the sensor parameters and read sensor data © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 20 | 196 Enable advanced feature, e.g., generic interrupt 1: Device is in ACTIVE power mode state. Config INT1: - Pulsed (edge triggered) interrupts with long pulses - Push-pull - Active high write_register(addr = 0x34, value = 0x0B) Map generic interrupt 1 to INT1write_register(addr = 0x36, value = 0x40) Enable generic interrupt 1write_register(addr = 0x55, value = 0x01) Update feature enginewrite_register(addr = 0x54, value = 0x01) Wait until hardware interrupt Read interrupt status registerint_status_int1_0 = read_register(addr = 0x12) Clear interrupt status registerwrite_register(addr = 0x12, value = 0x08) Generic interrupt 1 is triggered on INT1 pin. Figure 11: Enable generic interrupt 1 © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 21 | 196 Enable the Fast Offset Compensation (FOC) feature on Z-axis in combination with INT1. For a complete FOC procedure, it is recommended to perform the feature on all axes as explained in detail in chapter 4.9.9. Device is in ACTIVE power mode state. Please ensure: - Device in a static state. - One accelermeter axis is aligned in parallel to the gravity vector. Config INT1: - Pulsed (edge triggered) interrupts with long pulses - Push-pull - Active high write_register(addr = 0x34, value = 0x0B) Map FOC interrupt to INT1write_register(addr = 0x37, value = 0x10) Configure the accelerometer to 16g Rangewrite_register(addr = 0x32, value = 0x0F) Enable the accelerometerwrite_register(addr = 0x30, value = 0x0F) Configure the FOC parameters: - User offset registers are updated with estimated offset values after the feature completion - 16 samples are averaged. - Z-axis shows -1 G write_extended_register(addr = 0x28, value = 0x0003) Enable FOC featurewrite_register(addr = 0x55, value = 0x08) Update feature enginewrite_register(addr = 0x54, value = 0x01) Wait until hardware interrupt Read interrupt status registerint_status = read_register(addr = 0x12) Clear interrupt status registerwrite_register(addr = 0x12, value = int_status) Disable FOC feature so that it can be restartedwrite_register(addr = 0x55, value = 0x00) Update feature enginewrite_register(addr = 0x54, value = 0x01) write_register(addr = 0x30, value = 0x00) Restart the accelerometer since ACC_OFFSET_X/Y/Z is modified by the FOC featurewrite_register(addr = 0x30, value = 0x0F) FOC has been executed. Offset compensated data are now available. Figure 12: Enable FOC feature in combination with INT1 © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 22 | 196
4 Functional Description and Advanced Features
4.1 Power Mode States
The BMA580 supports ACTIVE and SUSPEND power mode states, which can be switched inCMD_SUSPEND. After power on or soft-reset, the default power mode state of BMA580 is SUSPEND. Conclusively, the switch process is illustrated in Figure 13. ACTIVE HPM High performance mode LPM Low power mode SUSPEND Power on or soft-reset Figure 13: Sensor power mode state diagram
4.1.1 ACTIVE State
In ACTIVE state, the accelerometer is active and there is no restriction in accessing the register map. The device can enter two further performance modes, namely low power mode (LPM) and high performance mode (HPM), and switch between them while in the ACTIVE state. The main difference between the two modes is the data sampling behavior of the acceleration signal. High Performance Mode (HPM) In HPM, data is sampled continuously and fed to the filter that is configured by the host. Low Power Mode (LPM) In LPM, only the necessary number of data is sampled for the average purpose, so that one can optimize the power con- sumption. However, since the acceleration signal is undersampled, the duty-cycling mode is prone to aliasing effects.
4.1.2 SUSPEND State
In the SUSPEND state, the accelerometer is inactive and the internal oscillator is also shut down. In this mode, the register content prior to entering this power mode will be retained. Also, the host is limited to access the CHIP_ID, CMD_SUSPEND and CMD.cmd registers. Notably, executing soft-reset is possible in the SUSPEND mode. Please also note that, once in the SUSPEND state, both INT1 and INT2 pins are configured in high-impedance state. To prevent the error interrupt detection by the host due to signal cross-talk, it is suggested to pull-up or pull-down the interrupt pins from the host side.
4.1.3 Power on Time
The power on time of the BMA580 is typically 1.8ms (see also specification table 1). The power on time describes the time between powering the device ( VDD ≥1.62V) and the interface being ready to respond with stable register access. During the powering phase, the device will not be able to respond to any command sent on the serial interface. Note that the power on time may vary if the ramp of VDD between 0V and 1.62V, which is controlled by the host, takes a longer time. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 23 | 196 VDD Power Mode powering on suspend power on time stable register access Figure 14: Power on Time The power on time does not include the processing of the first acceleration value. See chapter 4.2.9 for more information about the time for the first valid data.
4.2 Accelerometer
4.2.1 Accelerometer Data
The three-dimensional acceleration data are provided with 16 bits width in two’s complement representation, which are available in registers from ACC_DATA_0 to ACC_DATA_5. The 16 bits acceleration data for each axis contain a high byte and a low byte. To ensure the data integrity, the content in ACC_DATA_0 to ACC_DATA_5 must be read in a single burst read. The output acceleration data are in LSB unit. They can be converted to a g unit using the following formula: ACC [g] = 2’s(ACCHigh [LSB] ≪ 8 + ACCLow [LSB]) × aFS 215 , (4.1) where aFS is the acceleration range. The selection of the acceleration range leads to different sensitivity, as concluded in table 7; ACCHigh and ACCLow are the high byte and low byte of the acceleration data, respectively; ”2’ s()” is the calculation of two’s complement. Table 7: Sensitivity under different acceleration ranges Acceleration range Sensitivity (typical value) 2 g 1 g = 16384 LSB 1 LSB = 61.035 µg 4 g 1 g = 8192 LSB 1 LSB = 122.070 µg 8 g 1 g = 4096 LSB 1 LSB = 244.141 µg 16 g 1 g = 2048 LSB 1 LSB = 488.281 µg For example, if aFS= 8 g is selected, the acceleration data of 0x7FFF represents 8 g, while 0x8001 represents -8 g. Please note that, the the acceleration data of 0x8000 represents an invalid value, which occurs e.g., when the host sets an invalid configuration, or when the acceleration data is not yet ready after the power-on or during the configuration change.
4.2.2 Accelerometer Data Processing
The acceleration signals and the temperature data are processed according to the configured settings from correspond- ing registers ( ACC_CONF_0 - ACC_CONF_2 and TEMP_CONF). Additionally, the acceleration signals of the device can be compensated through the registers from ACC_OFFSET_0 to ACC_OFFSET_5. Please note that values in these registers are not persistent and must be written each time after the power-up or reset of the device. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 24 | 196
4.2.3 Accelerometer Configuration
The host can configure the accelerometer via registers from ACC_CONF_0 - ACC_CONF_2. In detail: ACC_CONF_0 is used to enable or disable the accelerometer. Please note that, in BMA580, the accelerometer is disabled by default after power on, since the default power mode state is SUSPEND. ACC_CONF_1 is used to select the output data rate (ODR), the bandwidth parameter (BWP) for the filter configuration and the performance mode. ACC_CONF_2 is used to select the dynamic range, the filter roll-off, the measurement preference and clear mechanism of the acceleration data ready interrupt. CONFIG_STATUS.acc_conf_err indicates invalid or valid accelerometer configurations.
4.2.4 Accelerometer Performance Mode
The device has two performance modes, namely low power mode (LPM) and high performance mode (HPM). The mode switching is controlled by the register field ACC_CONF_1.power_mode. Only in LPM the overall power consumption depends strongly on the chosen ODR and the amount of averaged samples. Typical values can be seen in table 8. Table 8: Current Consumption (typical values) depending on ODR and number of averaged samples in LPM at V DD = 1.8 V, TA = 25◦C. current consumption - typical (µA) ODR(Hz) No Avg Avg 2 Avg 4 12.5 8.3 8.4* 8.8* 100 18.0 19.7 23.3 200 28.9 32.7* 39.9* 400 51.1 58.6* 73.1* (*) estimated values.
4.2.5 Accelerometer Effective Bandwidth
The effective bandwidth of the accelerometer depends on the selection of ODR and BWP in register ??. For the HPM the effective bandwidth is nearly half of ODR for BWP=2 (“normal mode”) or BWP=3 (“CIC mode”) and ODR smaller than 1.6 kHz. The effective bandwidth is ODR/4 for BWP=1 (“OSR2 mode”) and ODR/8 for BWP=0 (“OSR4 mode”). The effective bandwidth for ODR bigger than 1.6 kHz is limited to a value of 1.675 kHz. For the LPM the effective bandwidth is only determined by the ODR and is always equal to ODR/2. With the help of the BW value the number of averaged samples for each ODR data sample can be selected: higher number of averaged samples lead to less noise but higher current consumption.
4.2.6 Accelerometer Change Configuration
Before the host changes the accelerometer configuration, it is recommended to disable the accelerometer first. The host can again enable the accelerometer after the configuration is finished. Any change of the accelerometer configuration is applied immediately. After the configuration change, the host needs to wait for a certain time until the first valid sample is available. This waiting time depends on the changed configuration and the timing of the change. Please note that, in HPM, all samples after the first valid sample are given at the expected ODR. In LPM, it can sometimes occur that the time interval between the first and second samples is not as expected. This is meant for a quick data delivery in the LPM mode. The host can skip the first and second samples if an accurate ODR is necessary. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 25 | 196
4.2.7 Accelerometer Self-Test
The BMA580 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. The activation of 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. The self-test is activated and deactivated for all axes via ACC_SELF_TEST.self_test. It is also possible to control the direction of the deflection throughACC_SELF_TEST.self_test_sign. The excitation occurs in positive (negative) direction if ACC_SELF_TEST.self_test_sign = 0b1 (0b0). In below, the recommended procedure to use the self-test is given: 1. Disable all advanced features and interrupts, if any of them are enabled. 2. Activate the self-test a. Disable the accelerometer in ACC_CONF_0.sensor_ctrl b. Apply the following configurations: ACC_CONF_1.acc_odr = 10 ACC_CONF_1.acc_bwp = 2 ACC_CONF_1.power_mode = 1 ACC_CONF_2.acc_range = 2 ACC_CONF_2.acc_iir_ro = 1 ACC_CONF_2.noise_mode = 0 ACC_CONF_2.acc_drdy_int_auto_clear = 0 c. Enable the accelerometer in ACC_CONF_0.sensor_ctrl d. Wait for at least 10 ms e. Enable self-test and set the negative self-test polarity by setting ACC_SELF_TEST.self_test_sign = 0 ACC_SELF_TEST.self_test = 1 f. Wait for at least 10 ms g. Read and store valid data of each axis from registersACC_DATA_0 to ACC_DATA_5. Please check inSENSOR_STATUS. acc_data_rdy before reading, if the valid data is ready. h. Enable self-test and set the positive self-test polarity by setting ACC_SELF_TEST.self_test_sign = 1 ACC_SELF_TEST.self_test = 1 i. Wait for at least 10 ms j. Read and store valid data of each axis from registersACC_DATA_0 to ACC_DATA_5. Please check inSENSOR_STATUS. acc_data_rdy before reading, if the valid data is ready. k. Check self-test results: i. Convert values from steps 2g and 2j for each axis. Please note that those values are signed values, so the host has to apply the two’s complement calculation to the raw data. ii. Calculate the difference between the values from step 2g and 2j iii. Compare the difference against the minimum threshold values in Table 9. To pass the self-test, the mea- sured difference has to exceed the minimum threshold value. Table 9: Minimum threshold value of self-test x-axis (LSB) y-axis (LSB) z-axis (LSB) 17500 17500 8000 l. Disable the self-test by setting ACC_SELF_TEST.self_test = 0 © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 26 | 196 3. It is recommended to perform a soft-reset of the device after the self-test. Please note that, after the soft-reset, all user configuration settings are overwritten with their default state. If the soft-reset cannot be performed, the following sequence is required to reset the signal path: a. Disable the accelerometer in ACC_CONF_0.sensor_ctrl b. Wait for at least 1 ms c. Enable the accelerometer in ACC_CONF_0.sensor_ctrl 4. Now the host can apply user configuration to the accelerometer and again enable the advanced features and inter- rupts.
4.2.8 Accelerometer Data Ready Interrupt
This interrupt fires whenever a new data sample set from accelerometer. This allows a low latency data readout.
4.2.9 Accelerometer Startup Time (Time to valid data)
The accelerometer startup time of the BMA580 is typically 3.15ms (see also specification table 2). The accelerometer startup time describes the time between leaving the suspend mode and the availability of the first valid acceleration data, if the selected power mode is HPM and the selected ODR is 1600Hz. The BMA580 can indicate this time point with an interrupt, if the data ready trigger is selected. See chapter 4.5 for more details. During the powering phase the device will not be able to respond to any command sent on the serial interface. Please note, that the accelerometer startup time may vary, if a different power mode is selected or a different ODR. VDD Power Mode suspend HPM at 1.6kHz Data Ready Accelerometer Startup Time Figure 15: Accelerometer Startup Time The accelerometer startup time is also related to the power on time, but not overlapping. For more information on the power on time, see chapter 4.1.3. The following picture shows both times in an example illustration: VDD Power Mode powering on suspend HPM at 1.6kHz Data Ready power on time Accelerometer Startup Time stable register access setting ODR=1.6kHz Figure 16: Power on Time and Accelerometer Startup Time
4.2.10 Accelerometer Offset Compensation
The BMA580 offers manual compensation. The offset compensation is effective for data in ACC_DATA_0 - ACC_DATA_5 and FIFO, and signals for the advanced features. If necessary the result of this computation is saturated to prevent any overflow errors (the smallest or biggest possible value is set, depending on the sign). The offset compensation uses of the registers ACC_OFFSET_0 to ACC_OFFSET_5, providing a compensation value for each accelerometer axis x, y, z, respectively. The contents of the compensation register ACC_OFFSET_0 to ACC_OFFSET_5 © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 27 | 196 may be set manually via the digital interface. It is recommended to restart the accelerometer after writing new values to the compensation register or write to the compensation register, while the accelerometer is disabled (see register ACC_CONF_0). To disable the offset compensation, a value of 0x0 has to be written to all the compensation register ACC_OFFSET_0 to ACC_OFFSET_5. The offset compensation registers have a width of 9 bit using two’s-complement binary notation. The offset resolution is 0.98 mg (1024 LSB/g) with an offset range of +/-0.25 g. Please note that the resolution of the offset register is inde- pendent of the range setting (see register ACC_CONF_2.acc_range). The compensation offset values are not persistent and must be written each time after power-up or reset of the device. The BMA580 offers also the “Fast Offset Compensation” (FOC) feature, which is described in chapter 4.9.9.
4.3 Sensor time
The device supports the concept of sensor time. Its core element is a free running counter with a width of 24 bits. It runs at the frequency of 3.2 kHz, while the time resolution is 312.5 µs. The host can access the current state of the counter by reading registers from SENSOR_TIME_0 to SENSOR_TIME_2. The sensor time counter is synchronized with the data capturing event in the register from ACC_DATA_0 to ACC_DATA_5 and FIFO. Please note that a burst read on register from SENSOR_TIME_0 to SENSOR_TIME_2 delivers always consistent values. Once the device enters the SUSPEND power mode state, the sensor time counter stops.
4.4 Temperature Sensor
The BMA580 provides a temperature sensor, sensing the internal temperature of the device. The temperature sensor is always on, when the accelerometer sensor is active. The temperature sensor has 8 bits, the data can be read from register field TEMP_DATA.temp_data. The data register output is of the unit K. A data value of 0x0 means 23 ◦C. The sensor can be configured via the register TEMP_CONF: The output data rate for the temperature sensor can be set in the field TEMP_CONF.temp_rate When there is no valid temperature information available, the temperature indicates an invalid value (0x80) and the register field SENSOR_STATUS.temperature_rdy shows a 0x0.
4.4.1 Temperature sensor and external voltage measurement
By using the temperature sensor, the BMA580 can also measure the external voltages via interrupt pins in the I²C mode. In below, the recommended procedure to use the external measurement feature is given: 1. Enable accelerometer by setting ACC_CONF_0.sensor_ctrl = 0x0F. 2. Configure the temperature sensor via TEMP_CONF a. Choose 200 Hz as the sample rate by setting TEMP_CONF.temp_rate = 0b111 b. Select the external voltage as the input source for the temperature sensor by setting TEMP_CONF.temp_meas_src = 0b0 c. Select the interrupt pin for the voltage measurement via TEMP_CONF.temp_ext_sel d. Be sure to set the reserved bits (bits 5 to 7) in TEMP_CONF to 0b000. 3. Apply the external voltage on the selected interrupt pin 4. Clear the temperature ready flag SENSOR_STATUS.temperature_rdy 5. Wait until SENSOR_STATUS.temperature_rdy becomes 0b1 6. Burst-read measurement data from AUXLow [LSB] = AUX_DATA_0 and AUXHigh [LSB] = AUX_DATA_1 7. Combine AUXLow and AUXHigh to 16-bit value AUX: AUX [LSB] = AUXHigh [LSB] ≪ 8 + AUXLow [LSB] (4.2) © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 28 | 196 8. Calculate the external voltage Vext using the following equation: Vext [V] = AUX [LSB] – 215 215 × 1.6 (4.3) After the measurement of the external voltage is finished, the host needs to configureTEMP_CONF so that the temperature sensor can be again used.
4.5 Interrupt Pin Configuration
The BMA580 has two external pins to provide the status of feature events. For certain digital interface settings, these pins are not available for this interrupt behavior but used by the digital interface. In I²C and I3C mode the two external pins are available for the feature events. In SPI 3-Wire mode, one pin is still available and in SPI 4-Wire mode no external pin is available to provide feature events. See table 39 and chapter 5 for more details.
4.5.1 Electrical Interrupt Pin Behavior
The electrical behavior of interrupt pins INT1 and INT2 can be configured in the register INT1_CONF and INT2_CONF, respectively.
4.5.1.1 Output Mode
In the register fields INT1_CONF.mode and INT2_CONF.mode, the output on the pins can be enabled/disabled, and the output mode can be configured between latch, short pulses and long pulses mode. Please note that, if the output pin is disabled, the interrupt status will not be updated. In the latch mode, the interrupt output is active when the status bit of any mapped interrupt source is set. It will remain active until cleared. In the short and long pulses mode, the interrupt output is active when the status bit of any mapped interrupt source is set. Then, after a certain pulse duration, the the interrupt output becomes automatically inactive, while the corre- sponding status bit of any mapped interrupt source remains uncleared. In other words, the host needs to clear the interrupt status bit if necessary. Table 10 provides the typical pulse duration in the short and long pulses mode. Table 10: Pulse duration in the short and long pulses mode Short pulses mode Long pulses mode Typ. pulse duration 625 ns 10 us Especially, in addition to the common output mode setting, the auto clear mechanism of the data ready interrupt can be configured in ACC_CONF_2.acc_drdy_int_auto_clear. When this option is enabled, the status flag of acc_drdy_int is cleared automatically after the half of the ODR duration. This saves the need for the host to clear each data ready interrupt status. Please note that, it is recommended to enable the auto clear mechanism in latch mode, but not in pulses mode, since the pulses mode behaves already similarly to the auto clearing with small difference.
4.5.1.2 Output Characteristics
The characteristic of the output driver of the interrupt pins may be configured with fields INT1_CONF.od and INT2_CONF. od. By setting these bits to 0b1, the output driver shows open-drain characteristic. By setting the configuration bits to 0b0, the output driver shows push-pull characteristic. The electrical behavior of the interrupt pins, whenever an interrupt is triggered, can be configured as either “active-high” or “active-low” via INT1_CONF.lvl respectively INT2_CONF.lvl. Please note the high impedance state of interrupt pins when the BMA580 is in the SUSPEND state, as already mentioned in chapter 4.1.2.
4.5.2 Interrupt Pin Mapping
In order for the host to react to the features output, they can be mapped to the external pin INT1 or pin INT2, by setting the corresponding bits from the registers INT_MAP_0, INT_MAP_1 and INT_MAP_3. To disconnect the features outputs to the © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 29 | 196 external pins, the same corresponding bits must be reset, from those registers. Once a feature triggers the output pin, the host can read out the corresponding bit from the register INT_STATUS_INT1_0, INT_STATUS_INT1_1,INT_STATUS_INT2_0 or INT_STATUS_INT2_1. Besides to the two external pins, the interrupts can also be mapped to the I3C in band interrupts (IBI), if the BMA580 is in I3C mode. In this case, the status can be handled in the register INT_STATUS_I3C_0 and INT_STATUS_I3C_1. BMA580 allows the host to map multiple interrupt sources to the same destinations, e.g. INT1, INT2, I3C IBI. In this case, to clear the status of that destination, each single mapped source needs to be cleared individually. On the other hand, BMA580 does not support mapping a interrupt source to several destinations in parallel.
4.5.3 Measurement of external signals on Interrupt Pins
Instead of using the external pins INT1 and INT2 as destination for internal triggers, the pins can be configured to be an input for an external voltage in the range of 0.1V to 0.9V. If this feature is enabled via the register field TEMP_CONF. temp_meas_src and TEMP_CONF.temp_ext_sel, no temperature value is available anymore. The data of the external voltage is digitalized and can be read in the register fieldAUX_DATA_0.aux_data_7_0 and AUX_DATA_1.aux_data_15_8.
4.5.4 Clear Interrupt Status
In BMA580, the interrupt status is cleared upon writing 1’b1 to the corresponding interrupt status bit.
4.5.5 Interrupt Behavior Example
For a better understanding of the interrupt pin behavior of BMA580, the following examples under various configurations are provided. For simplicity, the “INT pin” represents both INT1 and INT2 pins, and the electrical behavior of the interrupt pins is configured as “active-high”. Latch Mode Figure 17 shows the timing diagram when the latch mode is configured. FEATURE_A and FEATURE_B can represent any interrupt source, and are mapped to the same INT pin target. Detailed explanations of the timing diagram are provided in below: When the interrupt event “1” of FEATURE_A comes, the corresponding FEATURE_A_int_status is set immediately high. FEATURE_A_int_status is cleared after the host executes the clear operation at “2”. When the interrupt event “3” of FEATURE_B comes, the corresponding FEATURE_B_int_status is set immediately high. While the interrupt event “3” of FEATURE_B remains active, a clear operation such as “4” will fail to clear the FEATURE_B_int_status. This describes the case of e.g., FIFO full interrupt. FEATURE_B_int_status can be cleared at “5”, when FEATURE_B is no more active. The INT pin is set to high as long as one of the interrupt status is active. FEATURE_A 1 clear of FEATURE_A_int_status 2 FEATURE_A_int_status FEATURE_B 3 clear of FEATURE_B_int_status 4 5 FEATURE_B_int_status INT Pin Figure 17: Interrupt output in latch mode Pulses Mode Figure 18 shows the timing diagram when the pulses mode is configured. FEATURE_A and FEA- TURE_B can represent any interrupt source, and are mapped to the same INT pin target. Detailed explanations of the timing diagram are provided in below: © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
table 10. Then, when another interrupt event “2” of FEATURE_A comes, a pulse signal is again generated on the host executes the clear operation at “3”. table 10. While the interrupt event “4” of FEATURE_B remains active, a clear operation such as “5” will fail to clear cleared at “6”, when the FEATURE_B is no more active.
4.6 FIFO
time . The size of this FIFO is configurable with a maximum of 1024 bytes.
4.6.1 FIFO Configuration
The FIFO can be configured by the user registers FIFO_CONF_0 and FIFO_CONF_1.
4.6.1.1 Enabling FIFO
The register FIFO_CONF_0 is used to enable or disable the complete FIFO functionality or to sample only individual axis.
4.6.1.2 FIFO Compression
is enabled, only the high byte of the acceleration data is stored, e.g., ACC_DATA_1.acc_x_15_8.
Bosch Sensortec | BMA580 Datasheet 31 | 196
4.6.1.3 Sensor Time in FIFO
The field FIFO_CONF_1.fifo_sensor_time can be configured to disable the sensor time, to send dedicated sensor time frame, or to append sensor time to each frame. For more information of the dedicated sensor time frame, please refer to section 4.6.2.4.
4.6.1.4 FIFO Stop-on-full Mode
The FIFO stop-on-full mode can be configured in the fieldFIFO_CONF_1.fifo_stop_on_full, and the full level is defined as the FIFO size minus two times the payload size.
4.6.1.5 FIFO Size
The size of this FIFO is configurable with a maximum of 1024 bytes. The default is 512 bytes, which allows the feature engine to work in parallel to the FIFO. The FIFO size can be configured with the help of the register field FIFO_CONF_1. fifo_size. Since FIFO and the feature engine share a common memory, the size configuration is locked when the feature engine is enabled. Then this register is controlled by the feature engine and the value might change depending on the chosen features with their possible configuration. The register field FIFO_CONF_1.fifo_size can only be changed, once the feature engine is disabled. With the feature engine disabled, a FIFO size up to 1024 bytes is possible, while with the feature engine enabled, a FIFO size of 512 bytes or less is possible.
4.6.2 FIFO Frames
4.6.2.1 FIFO Header
The FIFO header has the following structure in below: Table 12: Register Map Overview Legend Read-only Read/Write Write-only Reserved Index Name Value bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 0x0 HEADER 0x80 const_1 frame_type compr_en acc_z_en acc_y_en acc_x_en acc_t_en Please note that the FIFO header is not stored in the memory while generated during the FIFO read-out process. This needs to be considered cautiously, when the host calculates the correct number of data frames in the FIFO. Field frame_type Field frame_type encodes the type of payload data: 2’b00: empty frame 2’b10: acceleration data frame 2’b01: dedicated sensor time frame Field acc_x/y/z_en Field acc_x/y/z_en displays the selection of accelerometer axis in the FIFO. If the acc_x/y/z_en field of the header equals 1’b1, the corresponding axis data is contained in the FIFO frame. Otherwise, the axis data is not part of the FIFO frame. The order of the payload bytes is x, y and z. Field compr_en Field compr_en displays the enabling state of FIFO data compression. If data compression is enabled (FIFO_CONF_0.fifo_compression = 1’b1), each enabled axis contributes one byte (the MSB) to the payload. Otherwise, each enabled axis contributes two bytes to the payload. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 32 | 196 Field acc_t_en Field acc_t_en displays the enabling state of sensor time in each FIFO frame.The host can choose the way to display sensor time by configuring FIFO_CONF_1.fifo_sensor_time, which can change the header format. This
4.6.2.2 Empty Frame
An empty frame has no payload and only consists of a single byte as header. Table 14: Register Map Overview Legend Read-only Read/Write Write-only Reserved Index Name Value bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 0x0 HEADER 0x80 const_1 frame_type compr_en acc_z_en acc_y_en acc_x_en acc_t_en
4.6.2.3 Acceleration Data Frame
The number of payload bytes depends on the configuration of FIFO_CONF_0 and FIFO_CONF_1. If the FIFO is configured in such a way that the payload would be 0 (i.e. no axis enabled, no sensor time), no data will be stored in the FIFO memory and only empty frames will be read. The minimum data frame size is 2 byte, when only a single axis and data compression is enabled. If FIFO_CONF_1.fifo_sensor_time is configured as 2’b10, the sensor time is appended to each data frame. Please note that the sensor time data in each data frame occupies the FIFO space. For an acceleration data frame the maximum frame size looks as follows: Table 16: Register Map Overview Legend Read-only Read/Write Write-only Reserved Index Name Value bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 0x0 HEADER 0xCF const_1 frame_type compr_en acc_z_en acc_y_en acc_x_en acc_t_en 0x1 PAYLOAD_0 0x00 acc_x_7_0 0x2 PAYLOAD_1 0x00 acc_x_15_8 0x3 PAYLOAD_2 0x00 acc_y_7_0 0x4 PAYLOAD_3 0x00 acc_y_15_8 0x5 PAYLOAD_4 0x00 acc_z_7_0 0x6 PAYLOAD_5 0x00 acc_z_15_8 0x7 PAYLOAD_6 0x00 sensor_time_7_0 0x8 PAYLOAD_7 0x00 sensor_time_15_8 0x9 PAYLOAD_8 0x00 sensor_time_23_16
4.6.2.4 Dedicated Sensor Time Frame
If FIFO_CONF_1.fifo_sensor_time is configured as 2’b01, the FIFO sends a dedicated sensor time frame when the FIFO runs empty during a read burst. It has the following format: © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 33 | 196 Table 18: Register Map Overview Legend Read-only Read/Write Write-only Reserved Index Name Value bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 0x0 HEADER 0xA1 const_1 frame_type compr_en acc_z_en acc_y_en acc_x_en acc_t_en 0x1 PAYLOAD_0 0x00 sensor_time_7_0 0x2 PAYLOAD_1 0x00 sensor_time_15_8 0x3 PAYLOAD_2 0x00 sensor_time_23_16 The dedicated sensor time frame will be transmitted after the last sensor data frame has been read. This means that the dedicated sensor time frame is always preceded by sensor data frames and followed by empty frames. No sensor time frame will be transmitted if a read burst starts when the FIFO is already empty. The content of the dedicated sensor time frame is sampled when the header byte of the sensor time is read. Please note that, the dedicated sensor time frame is not stored in the FIFO memory.
4.6.2.5 FIFO Frame Read Out
It is recommended to burst read the FIFO frame to ensure the proper read out of dedicated sensor time frame, if it is enabled. Also, once FIFO frames are read out, it will be discarded in the FIFO memory, while the unread ones remains there. Therefore, it is strongly recommended to read out all available frames once the FIFO content is ready. Otherwise, the remaining unread data will corrupt the next run of the FIFO. Read Out in Stop-on-full Mode Please pay special attention to the FIFO read out process when the FIFO stop-on-full is enabled. In this case, the FIFO stops buffering data once the full condition is met. Then, the host can perform the burst-read operation to read out data. However, during the burst read process, once old samples are read out, they are discarded from the FIFO. Therefore, the FIFO full condition becomes no more valid, thus allowing new samples to be buffered in the FIFO. This design helps to ensure the data continuity. However, this also leads to the situation that the host needs to read out more frames than what the FIFO can store in a full condition. At higher ODR, there are more additional frames. If the dedicated sensor time frame is enabled, this situation needs to be especially considered because the dedicated sensor time frame will be only transmitted after the last sensor data frame, as mentioned in section 4.6.2.4. If the data continuity is not important, the host can disable the accelerometer before burst-read the FIFO. In this way, no additional frames during the read out process are required. Read Out Sensor Time in FIFO The BMA580 provides various methods to read out acceleration data in association with sensor time data. The host can enable the sensor time data in each frame as described in section 4.6.2.3. In this way, each frame is labeled with a sensor time. The host can enable the dedicated sensor time frame as described in section 4.6.2.4. In this way, the BMA580 provides the sensor time at the moment when the host finishes reading the FIFO. Without enabling the dedicated sensor time frame, the host can perform a burst read starting from SENSOR_TIME_0. In this way, the BMA580 provides the sensor time at the moment when the host starts to read the FIFO.
4.6.3 FIFO Interrupts
The BMA580 offers two kinds of interrupt events, which can be mapped to the interrupt pins like any other interrupt sources. General information about interrupt pin configuration is described in chapter 4.5. Once the FIFO is enabled, the interrupt can be mapped directly to any destination. They do not have to be enabled separately. Please note, that for both interrupts, only the acceleration and sensor time data counts. The headers are not stored in the FIFO memory and not considered when determining the FIFO fill level. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 34 | 196
4.6.3.1 FIFO Watermark Interrupt
The FIFO watermark interrupt will be asserted as long as the fill level is equal to or larger than the watermark level. Before the FIFO has reached the watermark level, any attempts to manually clear the FIFO watermark interrupt status will fail. The watermark level can be set in the register FIFO_WM_1.fifo_watermark_level_10_8 and in the register FIFO_WM_0. fifo_watermark_level_7_0. The unit is bytes. If the level is set to a higher value than the FIFO size, the watermark interrupt will never be triggered.
4.6.3.2 FIFO Full Interrupt
The full level is defined as the FIFO size minus two times the payload size, as already mentioned in section 4.6.1.4. The FIFO full interrupt will be asserted as long as the fill level is equal to or larger than the full level. While the FIFO remains at the full level, any attempts to manually clear the FIFO full interrupt status will fail.
4.6.4 FIFO Reset/Flush
The FIFO may be explicitly flushed by writingFIFO_CTRL.fifo_rst = 1’b1. The FIFO is flushed automatically, if the FIFO configuration registers FIFO_CONF_0 and FIFO_CONF_1 are written or the device wakes up from suspend power state. Also, the FIFO is flushed automatically, if the accelerometer configuration is changed and the accelerometer signal path is reset. Conclusively, any writing operation to the register ACC_CONF_0, ACC_CONF_1 or ACC_CONF_2 will trigger the flushing.
4.7 Soft-Reset
In order to reset the BMA580 without removing the supply voltage, the offers a Soft-Reset. A Soft-Reset can be initiated at any time by writing the command softreset (0xB6) to register CMD.cmd. The softreset performs a fundamental reset to the device which is largely equivalent to a power cycle. Following a delay, all user configuration settings are overwritten with their default state. This command is functional in all operation modes.
4.8 Sensor Health Status
The register field HEALTH_STATUS.sensor_health_status indicates the internal health state of the device. A value of 0x0F indicates a good internal health state. The reserved bits in the same register HEALTH_STATUS should be ignored. Any other values in the field HEALTH_STATUS.sensor_health_status indicate an internal error. If the value remains on error state after reset and the external supply is stable and in correct range, the device should be checked.
4.9 Advanced Features
4.9.1 General Configuration
4.9.1.1 Enable and Disable Advanced Feature
To enable/disable the advanced features of the device, please follow the step in below: 1/0. 2. Set FEAT_ENG_GPR_CTRL.update_gprs= 1. Please note that the second step needs to be performed every time when the corresponding feature enable bit is changed, so that the change becomes effective.
4.9.1.2 Data Path of Advanced Features
Depending on the advanced features, the datapath that feeds acceleration data to the feature engine is constructed in different ways. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 36 | 196 50 Hz filter data: the acceleration data that is directly down-sampled from the temperature compensated raw data. The ODR of this data source is locked at 50 Hz. 200 Hz filter data: the acceleration data that is directly down-sampled from the temperature compensated raw data. The ODR of this data source is locked at 200 Hz. Temperature-compensated raw data High-pass filter ACC data register (ACC_DATA_N*) GENERAL_SETTINGS_0. vad_acc_data_src ↓ 1.6 kHz VAD feature 50 Hz 200 Hz Figure 22: Data path of VAD Axis remapping of datapath The host can remap the accelerometer axes inGENERAL_SETTINGS_0.feat_axis_ex and change their polarity in GENERAL_SETTINGS_0.feat_x_inv, GENERAL_SETTINGS_0.feat_y_inv and GENERAL_SETTINGS_0. feat_z_inv, as illustrated in figure 23 . Please note that the axis remapping feature does not influence the values in ACC_DATA_0 to ACC_DATA_5. It affects only the datapath that is fed to advanced features. Axes Remap X Y Z Axes Invert (*-1) (*-1) (*-1) (*-1) X Y Z Advanced feature Temperature -compensated raw data ACC data register (ACC_DATA_N*) X Y Z ↓ Low-pass filter 1.5625 Hz – 6.4kHz Figure 23: Axis remapping of datapath
4.9.1.3 Supported ODR in Advanced Features
The advanced features support various accelerometer ODRs. For the following advanced features: generic interrupts any-motion/motion detector no-motion/stationary detector in HPM, all available accelerometer ODRs are supported. In LPM, depending on the selection of the data path, the generic interrupts support only limited ODRs. Table 19 lists the supported ODRs. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 37 | 196 Table 19: Overview of supported ODRs in generic interrupts, any-motion/motion detector and no-motion/stationary detector Power Mode State Data path1 Supported accelerometer ODR HPM FEAT_ENG_GPR_1.gen_int1_data_src = 1 All available ODRsFEAT_ENG_GPR_1.gen_int1_data_src = 2 FEAT_ENG_GPR_1.gen_int1_data_src = 3 LPM FEAT_ENG_GPR_1.gen_int1_data_src = 1 ≥ 50 Hz FEAT_ENG_GPR_1.gen_int1_data_src = 2 ≥ 200 Hz FEAT_ENG_GPR_1.gen_int1_data_src = 3 6.25 Hz ≥ ODR ≥ 400 For tap detection, in HPM, all available accelerometer ODR is supported. In LPM, the tap detection only supports ODR ≥ 200 Hz. Table 20 lists the supported ODRs. Table 20: Supported ODRs in tap detection. Power Mode State ODR HPM All available ODRs LPM ≥ 200 Hz
4.9.1.4 Invalid Feature Configuration
If the host sets an invalid ODR that is not mentioned in Table 19 and Table 20 , the device will automatically set FEAT_ENG_GPR_5.feat_conf_err = 1 as an error signal. The detailed information about the features with invalid config- uration can be looked up in FEAT_CONF_ERR. Please note that the VAD feature cannot be enabled in parallel with the other features.
4.9.1.5 Enable Advanced Features in Parallel
Advanced features, except for the self wake-up and VAD features, can be enabled and work in parallel. For the self wake-up feature, all other enabled features will be suspended when entering the LPM. For the VAD feature, once other features are enabled in parallel, the device will set FEAT_ENG_GPR_5.feat_conf_err = 1. It is recommended to deactivate all other features, when using the Fast Offset Compensation (FOC), described in chapter 4.9.9.
4.9.2 Generic Interrupt
The generic interrupt feature of the device is designed to detect device’s movements (activity) or device’s static state (in-activity).
4.9.2.1 General Functional Behavior of Generic Interrupt
The functional behavior of the generic interrupt is presented in Figure 24. Generally, the change in the acceleration signal with respect to a defined reference value is monitored by the feature. Then, this change in the acceleration signal is compared against a configurable threshold value. Additionally, to avoid unwanted rapid interrupts, a hysteresis value can also be configured. Finally, to trigger the generic interrupt, the acceleration change must be either greater or lower than the configured threshold for a configured duration. The interrupt can be again cleared, when the condition remains false for a configured wait time. The device provides the generic interrupts 1, 2 and 3, which can be enabled and disabled respectively via: FEAT_ENG_GPR_0.gen_int1_en FEAT_ENG_GPR_0.gen_int2_en FEAT_ENG_GPR_0.gen_int3_en 1The generic interrupt 1 is taken as an example. The rule is also applied to the generic interrupt 2 and 3. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 38 | 196 wait_time Acceleration signal Reference acceleration acc_ref_up On-event always user-config Threshold comparison criterion_sel slope_thres hysteresis Axis combination True duration counter False duration counter duration comb_sel Reset true counter and status Reset false counter and set status Event = true Event = false true false OR false previous status output * Quiet time not depicted abs() Figure 24: Functional behavior of generic interrupt All generic interrupts have the same implementation. Therefore, in the following description, only the generic interrupt 1 is used as an example. 1. GENERIC_INTERRUPT1_1.comb_sel selects the combination logic of the chosen axis: GENERIC_INTERRUPT1_1.comb_sel = 0: combination of axes is set to logic OR. GENERIC_INTERRUPT1_1.comb_sel = 1: combination of axes is set to logic AND. 2. GENERIC_INTERRUPT1_2.criterion_sel selects, whether the interrupt is triggered based on activity or in-activity: GENERIC_INTERRUPT1_2.criterion_sel = 0: interrupt triggers based on in-activity GENERIC_INTERRUPT1_2.criterion_sel = 1: interrupt triggers based on activity 3. GENERIC_INTERRUPT1_2.acc_ref_up selects the approach, with which the acceleration reference signal is updated: GENERIC_INTERRUPT1_2.acc_ref_up = 0: on-event. The reference acceleration is updated whenever there is an event (interrupt) being triggered by the feature. GENERIC_INTERRUPT1_2.acc_ref_up = 1: always. An update of the reference acceleration is done with each new available acceleration sample. GENERIC_INTERRUPT1_2.acc_ref_up = 2: manual. The reference acceleration is set manually by the host in: GENERIC_INTERRUPT1_5.ref_acc_x GENERIC_INTERRUPT1_6.ref_acc_y GENERIC_INTERRUPT1_7.ref_acc_z 4. GENERIC_INTERRUPT1_1.axis_sel selects the acceleration axes used for the generic interrupt feature: GENERIC_INTERRUPT1_1.axis_sel = 1: x-axis is used for the evaluation. GENERIC_INTERRUPT1_1.axis_sel = 2: y-axis is used for the evaluation. GENERIC_INTERRUPT1_1.axis_sel = 3: x-axis and y-axis are used for the evaluation. GENERIC_INTERRUPT1_1.axis_sel = 4: z-axis is used for the evaluation. GENERIC_INTERRUPT1_1.axis_sel = 5: x-axis and z-axis are used for the evaluation. GENERIC_INTERRUPT1_1.axis_sel = 6: y-axis and z-axis are used for the evaluation. GENERIC_INTERRUPT1_1.axis_sel = 7: x-axis, y-axis and z-axis are used for the evaluation. 5. GENERIC_INTERRUPT1_1.slope_thres configures threshold value that is compared to the change in the acceleration signal. 6. GENERIC_INTERRUPT1_2.hysteresis configures the hysteresis value to avoid unwanted rapid interrupts. 7. GENERIC_INTERRUPT1_3.duration configures the duration parameter, in which the condition needs to remain true, so that the interrupt can be triggered. 8. GENERIC_INTERRUPT1_3.wait_time configures the wait time parameter, in which the condition needs to remain false, so that the interrupt can be cleared. 9. GENERIC_INTERRUPT1_4.quiet_time configures the quiet time behavior of the generic interrupt, which is not depicted in figure 24. It defines the minimum quiet time between two consecutive interrupt detection. This means that, after © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 39 | 196 an interrupt was triggered, no new interrupt will be triggered before the configured quiet time is expired.
4.9.3 Any-Motion Detector
The any-motion detector triggers an interrupt, when the slope between adjacent acceleration samples exceeds a thresh- old for a duration. It is realized using the generic interrupt. For that purpose, the following parameters have fixed values: 1. The axis combination selection is configured as logic OR (e.g. GENERIC_INTERRUPT1_1.comb_sel = 0) 2. The criterion is configured as activity (e.g. GENERIC_INTERRUPT1_2.criterion_sel = 1) By configuring the remaining parameters in the generic interrupt, the behavior of the any-motion detector can be influ- enced. In detail: 4. The axis selection (e.g. GENERIC_INTERRUPT1_1.axis_sel) defines, which axis or combination of axis is used to for the evaluation. (Change to single axis only if a the use case really demands it, in general the any motion detector works with all axis.) 7. The duration (e.g. GENERIC_INTERRUPT1_3.duration) defines how long a motion beyond the threshold needs to be present before triggering an interrupt. 8. The wait time (e.g. GENERIC_INTERRUPT1_3.wait_time) defines, after an any-motion interrupt, how long a motion below the threshold needs to be present, before an interrupt is again cleared. 9. The quiet time (e.g. GENERIC_INTERRUPT1_4.quiet_time) defines the time of the no-interrupt state after an interrupt is triggered. By default, the generic interrupt 1 is already configured as an any-motion detector. If necessary, other generic interrupts can also be configured as a an any-motion detector by the host.
4.9.4 No-Motion Detector
The no-motion detector triggers an interrupt, when the slope between adjacent acceleration samples remains below a threshold for a duration. It is realized using the generic interrupt. For that purpose, the following parameters have fixed values: By configuring the remaining parameters in the generic interrupt, the behavior of the any-motion detector can be influ- enced. In detail: 4. The axis selection (e.g. GENERIC_INTERRUPT2_1.axis_sel) defines, which axis or combination of axis is used to for the evaluation. (Change to single axis only if a the use case really demands it, in general the no motion detector works with all axis.) 7. The duration (e.g. GENERIC_INTERRUPT2_3.duration) defines how long a motion blow the threshold needs to be present before triggering an interrupt. 8. The wait time (e.g. GENERIC_INTERRUPT2_3.wait_time) defines, after an no-motion interrupt, how long a motion beyond the threshold needs to be present, before an interrupt is again cleared. 9. The quiet time (e.g. GENERIC_INTERRUPT2_4.quiet_time) defines the time of the no-interrupt state after an interrupt is triggered. By default, the generic interrupt 2 is already configured as a no-motion detector. If necessary, other generic interrupts can also be configured as a no-motion detector by the host. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 40 | 196
4.9.5 Tap Detection
The device allows the detection of different tap gestures. Supported tap gestures include the single-tap, double-tap and triple-tap. Enable and disable Each gesture can be individually enabled and disabled via following fields: TAP_DETECTOR_1.s_tap_en TAP_DETECTOR_1.d_tap_en TAP_DETECTOR_1.t_tap_en. Interrupt status When a tap gesture is detected, the event is reported in interrupt status registers, if the interrupt source is mapped. Each kind of gesture is reported individually. For example, if mapped to INT1, the interrupt status is available in: INT_STATUS_INT1_0.stap_int_status INT_STATUS_INT1_1.dtap_int_status INT_STATUS_INT1_1.ttap_int_status The status of the detected tap gesture is retained until the next gesture detection. Sensing axis The dominant sensing axis can be configured usingTAP_DETECTOR_1.axis_sel. By default, TAP_DETECTOR_1. axis_sel is selected to be the z-axis. Depending on the tap impact and direction, it is also possible to detect tap gestures which is not strictly aligned with the selected axis. Tap detection principle A tap event is defined as subsequent crossings of a threshold within a configured max- imum time limit between the crossings. The absolute value of the threshold for a tap detection is programmable via TAP_DETECTOR_2.tap_peak_thres. The maximum time window between the threshold crossings is defined by the parameter TAP_DETECTOR_3.max_dur_between_peaks. To enable tap detection under noisy operating conditions, for a single tap movement, the limit on the number of threshold-crossing can be configured using TAP_DETECTOR_1. max_peaks_for_tap. Classification of a tap gesture The classification of a tap gesture as a double-tap or triple-tap gesture is dependent on the time window in which the 2nd or 3rd tap occurs after the first tap. The time window is set by TAP_DETECTOR_2. max_gesture_dur. For example, in case of a double-tap to be detected, the 2nd tap event have to occur within this limit after the first tap. In case of a triple-tap to be detected, the 2nd and 3rd tap events has to occur within this limit after the first tap. Reporting behavior of a tap gesture On detection of a tap gesture, the reporting behavior of the event is determined by the value configured in TAP_DETECTOR_1.wait_for_timeout: TAP_DETECTOR_1.wait_for_timeout set to 0b0: each detected tap event is reported. E.g., to detect the triple-tap gesture, the 1st, 2nd and 3rd tap events are reported as single-tap, double-tap and triple-tap respectively, if they are enabled. TAP_DETECTOR_1.wait_for_timeout set to 0b1: the corresponding tap gesture is reported after the duration of event is reported, if the number of detected taps is less or greater than three. Quiet time Once a tap gesture is reported, the detection of a further gesture is suspended for a quiet time as defined by the parameter TAP_DETECTOR_3.quite_time_after_gesture. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 41 | 196 Detection sensitivity mode The tap detector offers the mode selection of the detection sensitivity for a tap event by configuring TAP_DETECTOR_1.mode. The detection modes affects the high-pass filter behavior, and enable a simple selection of sensitivity levels for tap detection, while keeping the values of other configuration parameters unchanged. Details are given in the memory map at TAP_DETECTOR_1.mode. Example To illustrate the working principle of the tap detector, following diagrams are provided. figure 25 shows the behavior of the tap detector with all supported tap gestures enabled and with TAP_DETECTOR_1.wait_for_timeout set to 0b0 . For every detected tap, the corresponding interrupt is reported if the taps occur within TAP_DETECTOR_2. max_gesture_dur since the first tap. Figure 25: Reporting of tap gesture when TAP_DETECTOR_1.wait_for_timeout = 0b0 The tap detector behavior in case of enabling all supported tap gestures and with TAP_DETECTOR_1.wait_for_timeout set to 0b1 is depicted in the graphs in figure 26. As can be seen, only the 3rd tap detected within TAP_DETECTOR_2. max_gesture_dur after the first tap is reported. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 42 | 196 Figure 26: Reporting of tap gesture when settings_1.wait_for_timeout = 0b1
4.9.6 Self Wake-up
The self wake-up feature is a built-in feature to support the smart power management of the device. To utilize the feature, the host stores two kinds of power mode settings in the device: The setting of HPM in ACC_CONF_1 The setting of LPM in ACC_CONF_LOW_POWER. Depending on whether the any-motion or no-motion is detected, the device will switch automatically between the pre- configured HPM and LPM. The prerequisite for the self wake-up feature are: The generic interrupt 1 is configured as the any-motion detector. Please refer to chapter 4.9.3 for the description of the any-motion detector. The generic interrupt 2 is configured as the no-motion detector. Please refer to chapter 4.9.4 for the description of the no-motion detector. The data source for generic interrupt 1 must be set to user filtered data. ( FEAT_ENG_GPR_1.gen_int1_data_src = 0x03) ACC_CONF_LOW_POWER.acc_odr should be selected within 6.25 Hz to 50 Hz. The self wake-up feature and both generic interrupt features are enabled. Please refer to chapter 3 for the procedure of enabling advanced features. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 43 | 196 The working principle of the self wake-up feature is explained in below: 1. When the no-motion is detected, ACC_CONF_1 is over-written with the value inACC_CONF_LOW_POWER, while the original setting in ACC_CONF_1 is retained internally. This switches the device from HPM to LPM. From now on, only the any- motion detection is active, while all other enabled features will be suspended. If the setting in ACC_CONF_LOW_POWER. acc_odr is invalid, an error will be reported infeat_conf_err.self_wake_up_err. Now the device is in the predefined LPM. 2. Then, once the any-motion is detected, the internally retained setting is again restored in ACC_CONF_1, switching the device from LPM back to the internally retained HPM. Now, all enabled features are again processed. In case that the tap detection feature is enabled in parrallel, the first tap movement is processed as the trigger to enter HPM mode by the self wake-up feature, while the second tap movement is processed by the tap detection feature. 3. If the self wake-up feature remains enabled, the step 1 is repeated. When the switching event is triggered by the self wake-up feature, a corresponding interrupt can be raised if it is mapped in INT_MAP_2.self_wake_up_int_map, which can be used as a notification of the switch event. Please note that, if the host disables the self wake-up feature, the setting in ACC_CONF_1 will not be recovered and is retained with the existing value. Therefore, the host might need to set a valid configuration to proceed with other features.
4.9.7 In-Ear/Out-Ear Detection
The in-ear/out-ear detection requires the software support, and BMA580 is ready for the operation. Please contact your local sales contact for further detail. The in-ear/out-ear detection uses the acceleration signal of a three axis accelerometer along with the signal of a proximity sensor. The goal is to reliably detect any in-ear scenario while on the other hand detecting if the device is out-ear. This can support the smart power management of the device, and therefore a longer batter life per charge.
4.9.8 Voice Activity Detection
The device has the built-in voice activity detection (VAD). The host, such as a hearable device, can use the VAD to detect voice activity of the user wearing the hearable at ultra-low power consumption. To detect the voice activity, the device senses skull bone vibrations. Therefore, the VAD is insensitive to the environmental sound, and voices of other persons not wearing the hearable. If the voice of the user is detected, a VAD interrupt is issued and the host can enable the communication interface and start reading sensor data. After the VAD activated, the measurement range is automatically changed to +/-4 g, and the data path is configured in HPM with ODR = 1.6 kHz and a high-pass filter setting, as described in 22. During the time VAD is enabled, these registers must not be modified: ACC_CONF_0 ACC_CONF_1 ACC_CONF_2 Please note that, as described in chapter 4.9.1.4, the VAD feature cannot be enabled in parallel with the other features.
4.9.8.1 Activation
If needed, the VAD interrupted can be mapped as described in chapter 4.5. The VAD feature is activated or deactivated by setting FEAT_ENG_GPR_0.vad_en. Please also update FEAT_ENG_GPR_CTRL.update_gprs to make the configuration valid. To optimize power consumption, in most cases it is sufficient to use only one sensor axis for VAD. The best axis needs to be determined through mechanical simulations of the hearable device or analysis of data recorded by the sensor in the hearable. The chosen sensing axis can be configured in VAD_CTRL. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 44 | 196
4.9.9 Fast Offset Compensation (FOC)
The BMA580 offers the advanced feature “Fast Offset Compensation” (FOC). In principle, the FOC uses the same registers as the manual compensation as described in chapter 4.2.10, but offers an easier seeking of the dedicated compensation values. Prerequisites There are prerequisites to use the FOC feature: It is recommended to place the sensor in a stable and noiseless environment. Additionally, one of the accelerometer axes must be aligned in parallel to the gravity vector during the compensation process. The accelerometer range has to be set to 16 g. (Write 0xf to register ACC_CONF_2) Configuration To configure the FOC, the following parameters are available: FOC_3.foc_apply_corr: this option decides, if the feature updates the ACC_OFFSET_0 - ACC_OFFSET_5 with estimated offset values after feature completion automatically. FOC_3.foc_filter_coeff: number of 200 Hz accelerometer samples that are averaged to estimate the offset. FOC_3.foc_axis_1g: alignment information of the accelerometer axis to the gravity vector. Please note that BMA580 does not warn the user if the device is not static or an axis is not parallel to the gravitational vector. Execution While the FOC feature is being executed, FEAT_ENG_GP_FLAGS.foc_running is set to 0b1. It will be cleared at the end of the compensation. Then, the FOC interrupts is raised, if it is mapped to any destination. Checking the interrupt is the recommended way to get the notification of FOC progress. After the FOC process is completed, it is rec- ommended that the host disables the FOC feature in FEAT_ENG_GPR_0.acc_foc_en, so that the feature can be restarted again. Also, please note that, if FOC_3.foc_apply_corr is enabled, it is recommended to restart the accelerometer after the FOC completion, as was also suggested for the manual compensation in chapter 4.2.10. As an example, Chapter 3 provides the recommend execution flow to perform FOC on one axis in combination with INT 1. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 45 | 196
5 Digital Interfaces
The device provides one serial interface to the host. It acts as a slave to the host. The serial interface is configurable to the interface protocols SPI, I3C and I²C. Please note that, in the following chapter, only VDD is used to notate the power supply of the device, since VDD = VDDIO. The communication between host processor and the device happens over one of the interfaces: I²C, I3C or SPI (4-wire and 3-wire). Each register read operation includes the following number of inserted dummy bytes before the payload: I²C: 0 I3C: 1 SPI: 1
5.1 Electrical Specification
By default, the device operates in I²C mode or SPI 4-wire. The interface of the device can be configured to operate in a I3C or SPI 3-wire configuration as well. All digital interfaces share partly the same pins. The mapping for the primary interface of device is given in Table 21. The full pin mapping can be found in table 39. Table 21: Pin mapping of the digital interface Pin # Name I/O Type Description in SPI 4-wire in SPI 3-wire in I²C/I3C
2 INT1 Digital I/O Interrupt pin 1 (or Serial
Data) SDO/MISO INT1 INT1
3 INT2 Digital I/O Interrupt pin 2 (or Chip
Select for SPI) CSB CSB INT2*
4 SDA Digital I/O Serial Data SDI/MOSI SDX SDA
5 SCL Digital I/O Serial Clock SCK SCK SCL
- Since pin 3 is used as CSB in SPI mode, it should not be driven low; see the chapter 7.2.1 for more details. In Table 22, the electrical specifications of the interface pins are given. Table 22: Electrical specification of the digital interface Parameter Symbol Condition Min Typ Max Units Pull-up resistance, CSB pin Rup Internal Pull-up Resistance to VDD 75 100 125 kΩ Input capacitance Cin 5 pF I²C bus load capacitance (max. drive capability) Cload,I2C 400 pF I3C bus load capacitance (max. drive capability) Cload,I3C 10 50 pF
5.2 Digital Interface Protocols
5.2.1 Protocol Selection
5.2.1.1 Automatic Protocol Selection of I²C or 4-wire SPI
After the power on or soft-reset, the sensor automatically selects protocol after the host sends an initial transaction, while the returning value is invalid. This initial transaction determines the serial interface in either I²C or 4-wire SPI for the later communication. Additionally, if I²C is selected as the communication protocol, there are certain limitations on the electrical connections on pin 3, especially during the power-up when INT 2 is configured as input. In detail: © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 46 | 196 When I²C/I3C is used, configure pin 3 to be output. When the output characteristics of pin 3 is disabled (or not yet enabled), please do not connect pin 3 to the ground. When the output characteristics of pin 3 is disabled (or not yet enabled), please do not connect pin 3 to a GPIO pin configured in the pull-down state. Please find illustrations of the connection diagrams in chapter 7.2.1. In practice, when I²C is selected as the primary protocol, it is strongly suggested to configure INT 2 as output via INT2_CONF.mode. This helps to prevent an unexpected erroneous detection of SPI and therefore improve the stability of I²C communication.
5.2.1.2 Protocol Selection of I3C
The host can switch to I3C from I²C protocol. Before accessing the registers of the device via I3C private transfers, the I3C must be enabled in the following way: The host has to set register IF_CONF_1.if_i3c_en = 1 via I²C write. The host has to apply the DAA (Dynamic Address Assignment) procedure via I3C CCC (Common Command Code) sequences according to the BCR (Bus Characteristics), the PID (Provisioned ID) and the static I²C slave address known by the host. After a successful DAA, the host can access registers via I3C private read and write.
5.2.1.3 Protocol Selection of 3-wire SPI
The device supports both 4-wire and 3-wire SPI interfaces. The device operates in the 4-wire configuration by default. It can be switched to 3-wire configuration by setting register IF_CONF_1.if_spi3_en = 1. In the 3-wire configuration, the pin SDX is used as the common data input and output pin. Notably, although the change of SPI interface configuration is executed immediately, the SPI 3-wire configuration is effective only at the first read operation following the change to SPI 3-wire configuration and vice versa.
5.2.2 SPI Protocol
The SPI interface of the device encompasses two orthogonal aspects, namely 3-wire or 4-wire interface and mode 0 or mode 3 configuration. The signaling conventions applicable to the supported SPI modes are defined in Table 23. Table 23: SPI mode 0 and mode 3 configuration SPI mode Description
0 CPOL = 0 and CPHA = 0
3 CPOL = 1 and CPHA = 1
Specifically: 3-wire and 4-wire configurations: SPI 3-wire mode can be configured through bit IF_CONF_1.if_spi3_en, as de- scribed in the previous chapter. Mode 0 and mode 3 configurations: The selection between SPI mode 0 and 3 is performed automatically by detecting the value of the SCK signal at the first falling edge of the CSB signal. The following chapters describe the protocol properties for each SPI configuration and mode.
5.2.2.1 SPI Timing specification
The timing specifications are stated in Table 24 for the SPI interface of the device. Additionally, figures 27 to 29 show the definition of the SPI timings. Here, the 4-wire SPI protocol with mode 0 is presented as an example. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 50 | 196
5.2.3 I²C Protocol
The device supports the following I²C modes: Normal mode (100 kHz) Fast mode (400 kHz) Fast mode plus (Fm+) (1 MHz) The default 7 bits I²C address is 0x18. I²C Timing specification The I²C timing specification of the device is given in Table 25, figure 36 and figure 37. Table 25: I²C timing requirements (standard mode, fast mode snf fast mode plus) Parameter Comment Symbol Min Typ Max Unit SCL frequency F_scl 0 1000 kHz Fall time T_F 0 300 ns Rise time 1 Load = 400 pF T_R 20 300 ns SCL low period T_LOW 0.5 µs SCL high period T_HIGH 0.26 µs Hold time (repeated start condition) T_HD, STA 0.26 µs Set-Up time (repeated start condition) T_SU, STA 0.26 µs Data hold time, data written to slave T_HD, DAT, slv 0 µs Data hold time, data written to host T_VD, DAT 120 450 ns Data set-up time T_SU, DAT 50 ns Set-up time stop condition T_SU, STO 0.26 µs Bus free time T_BUF 0.5 µs Spike suppression T_SP 50 ns Noise margin at low input level VnL 0.1 * VDD V Noise margin at high input level VnH 0.2 * VDD V Idle time after write access Suspend state T_wr_idle_susp, I²C 450 µs V VDDIO
0.7 VDDIO
0.3 VDDIO
Figure 36: Definition of rise- and fall-time of I²C interface signals 1Determined by the external pull-up resistor. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 51 | 196 SPSrS SDA SCL T_SP T_BUF T_SU,STOT_SU,STA T_HD,STA T_HIGH T_SU,DAT T_LOW T_HD,STA T_HD,DAT T_wr_idlesusp,i2c Figure 37: I²C timing diagram
5.2.3.1 I²C Write Operation
Figure 38 depicts the I²C write telegram for a single-byte write operation. The telegram begins with a start condition generated by the host, followed by 7 bits slave address and a write bit (R/W = 0). The slave sends an acknowledge bit (ACK = 0) and releases the bus. Subsequently, the host is expected to send the one-byte register address. Please note that only the first 7 bits (right aligned) are the valid address bits, while the MSB is ignored.The slave shall again acknowledge the transmission and wait for the 8 bits data which shall be written to the specified register address. After the slave acknowledges the data byte, the host generates a stop signal and terminates the writing protocol. Start R/W ACK ACK ACK Stop X Master -> Slave Slave -> Master Slave Adress Register data (D5h) P Register address (38h) S Figure 38: Single-byte write operation of I²C The device also supports multi-byte write operation when operating in I²C mode. The multi-byte write telegram is depicted in Fig. . The telegram begins with a start condition generated by the host, followed by 7bits slave address and a write bit (R/W = 0). The slave sends an acknowledge bit (ACK = 0) and releases the bus. Subsequently, the host sends the one-byte register address. Agian, please note that only the first 7 bits (right aligned) are the valid address bits, while the MSB is ignored. The slave shall again acknowledge the transmission and wait for several 8-bit wide data words. The first data word is written to the specified register address. The register address pointer is automatically incremented for each data word (please see chapter 5.2.5 for details). Each received data word is written to the register referenced by the current register address pointer. The slave acknowledges each data byte. When no more data words need to be written, the host generates a stop signal and terminates the writing protocol. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 52 | 196 Start R/W ACK ACK ACK X ACK ACK ACK Stop Master -> Slave Slave -> Master Data byte P Data byte Register data (D7h) -> (Register address+N) Register address (04h) S Slave Address Register data (D5h)-> (Register address) Register data (D6h) -> (Register address+1) Data byte Data byte Register data (D7h) -> (Register address+2) Figure 39: Multiple-byte write operation of I²C
5.2.3.2 I²C Read Operation
The I²C read operation supports multiple bytes reading. A read command consists of a 1-byte I²C write phase followed by I²C read phase. The two I²C transmissions must be separated by a repeated start condition (Sr). The I²C write phase addresses the slave and sends the register address to be read. After the slave acknowledges the transmission, the host is expected to generate a start condition and then to send the slave address together with a read bit (R/W = 1). Then the host releases the bus and waits for the data bytes to be read out from slave. After each data byte, the host has to generate an acknowledge bit (ACK = 0) to enable further data transfer. A NACK (ACK = 1) from the host stops the data transferring from slave. The slave releases the bus so that the host can generate a STOP condition and terminate the transmission. Start R/W ACK ACK X Repeat Start R/W ACK ACK ACK X X X X X X X X X X X X X X X X ACK ACK Master -> Slave Slave -> Master X X X X X X X X X X X X X X X X ACK NACK Stop X X X X X X X X X X X X X X X X Register data - address 04h Register data - address 05h S Slave I2C ID Sr Slave I2C ID Data byte Data byte Register address (02h) Register data - address 03h Data byte Data byte Register data - address 02h P Data byte Data byte Register data - address 06h Register data - address 07h Figure 40: Multiple-byte read operation of I²C Multiple-byte read transmissions within one read command are also possible. Once a new read transmission starts, the start address is set to the register address specified in the latest I²C write command. In this way, repetitive multi-bytes reads from the same starting address are possible. The default start address is 0x00. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 53 | 196 Start R/W ACK ACK X Repeat Start R/W ACK ACK NACK X X X X X X X X X X X X X X X X Repeat Start R/W ACK ACK NACK X X X X X X X X X X X X X X X X Repeat Start R/W ACK ACK NACK Stop X X X X X X X X X X X X X X X X Register data - address 02h Register data - address 03h S Slave I2C ID Sr Slave I2C ID Data byte Data byte Register address (02h) Register data - address 03h Data byte Data byte Register data - address 02h P Data byte Data byte Register data - address 02h Register data - address 03h Slave I2C ID Sr Slave I2C ID Sr Figure 41: Multiple read transmissions of I²C from the same start address
5.2.4 I3C Protocol
The device supports the I3C protocol with the features: I3C single data rate (SDR) mode with up to 12.5 MHz data rate I²C compatibility In-Band Interrupt (IBI) Timing control (TC) synchronous mode Timing control asynchronous (TC Async) 0 and 1 mode To select the I3C protocol, please refer to chapter 5.2.1.2. The I3C interface of the device is compatible with the Specification for I3C ® Improved Inter Integrated Circuit Version 1.1.1 – 11 June 2021 (hereinafter called “MIPI specification”) available at http://www.mipi.org/specifications/i3 c-sensor-specification.
5.2.4.1 Bus Identifier
The I3C protocol provides the following identifiers in Table 26 for the I3C communication: Table 26: I3C Bus Identifier Bus identifier Value I3C Provisioned ID (PID) [47:0] 0x077000011001 Device Characteristics Register (DCR) [7:0] 0x411 Bus Characteristics Register (BCR) [7:0] 0x272, 3, 4 1: This register describes the I3C compliant Device type as defined in MIPI specification. 2: BCR[5] is set to 0b1, meaning that device supports solely SDR. 3: BCR[2] is set to 0b1, meaning that an accepted IBI is followed by the mandatory byte (MDB). 4: BCR[0] is set to 0b1 according to MIPI specification, Table 5. However, the device supports the typical clock frequency of 12.5 MHz. See Table 36. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 54 | 196
5.2.4.2 In-Band Interrupt (IBI)
The IBI is enabled by default after power-up and the Dynamic Address Assignment (DAA). If DAA is reset via RSTDAA CCC, IBI will be disabled automatically. As long as no new dynamic address has been assigned, IBI will stay disabled and must be enabled explicitly by ENEC CCC in contrast to the situation after power-up. IBI Payload Format The IBI payload is defined in Table 27 and Table 28 in dependency of TC. Table 27: IBI Payload Format TC configuration Byte No. Name Bit Description No TC 1 MDB [7:5] Interrupt Group Identifier fixed to 0x0 [4:0] Interrupt status bits provided by I3C interrupts status1
2 Additional Byte [7:0] Interrupt status bits provided by I3C interrupts
1 MDB [7:5] Interrupt Group Identifier fixed to 0x4
[4:0] Interrupt status bits provided by I3C interrupts status1
2 T_C1_LSByte [7:0] LSByte of Target C1 counter value
3 T_C1_MSByte [7:0] MSByte of Target C1 counter value
4 T_C2 [7:0] Target C2 counter value
5 Additional Byte [7:0] Interrupt status bits provided by I3C interrupts
[4:0] Interrupt status bits provided by I3C interrupts status1
5 T_AME [7:0] Target AME counter value
6 Additional Byte [7:0] Interrupt status bits provided by I3C interrupts
1: Please refer to Table 28 for the mapping of I3C interrupts status bits to IBI payload. Table 28: Mapping of I3C interrupts status bits to IBI payload Name Bit I3C interrupts status bit MDB [0] INT_STATUS_I3C_0.acc_drdy_int_status [1] INT_STATUS_I3C_0.fifo_wm_int_status [2] INT_STATUS_I3C_0.fifo_full_int_status [3] INT_STATUS_I3C_0.gen_int1_int_status [4] INT_STATUS_I3C_0.gen_int2_int_status Additional Byte [0] INT_STATUS_I3C_0.gen_int3_int_status [1] INT_STATUS_I3C_0.acc_foc_int_status [2] INT_STATUS_I3C_0.stap_int_status [3] INT_STATUS_I3C_1.dtap_int_status [4] INT_STATUS_I3C_1.ttap_int_status [5] INT_STATUS_I3C_1.vad_int_status [6] INT_STATUS_I3C_1.self_wake_up_int_status [7] INT_STATUS_I3C_1.feat_eng_err_int_status © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 55 | 196 IBI Payload Abortion When a I3C controller reads the IBI payload from BMA580, it is controller’s responsibility to end the message. The controller can either determine the number of payload byte through Table 27 and Table 28, or by using GETMRL.
5.2.4.3 Common Command Code (CCC)
Support for Defining Bytes Defining Bytes formats for the following CCCs are not supported and will always respond with format 1: GETSTATUS with format 1 (defined by GETCAP3[4] = 0b0) returning 2 bytes GETCAPS with format 1 (defined by GETCAP3[3] = 0b0) returning 4 bytes GETMXDS with format 1: Bytes MaxWr and MaxRd will be returned. GETCAPS GETCAPS (Get Optional Feature Capabilities) format 1 returns the following four bytes in Table 29. Table 29: GETCAPS returning value Byte No. Byte Bit Name Description
1 GETCAP1 [7:0] High Data Rate (HDR) Mode No HDR supported
2 GETCAP2
[7:6] = 0b0 Defining Byte Support Not supported [5:4] = 0b0 Group Address Capabilities Not supported [5:4] = 0x1 I3C 1.x Specification Version Minor version number of the MIPI I3C Specification
3 GETCAP3
[7] = 0b0 Reserved [6] = 0b0 Pending Read Notification No Pending Read Notification for IBI [5] = 0b0 HDR-BT CRC32 Support Not supported [4:3] = 0b0 Defining Byte Support No Defining Byte support for GETCAPS and GETSTATUS [2:1] = 0b0 Device to Device Transfer Not supported [0] = 0b0 Multi-Lane for Speed Support Not supported
4 GETCAP4 [7:0]=0x00 Reserved
GETSTATUS GETSTATUS (Get Device Status) format 1 returns the following two bytes in Table 30. Table 30: GETSTATUS returning value Bits Name Description [15:8] = 0x00 Reserved [7:6] = 0b00 Activity mode Not used. [5] Protocol Error If 1’b1: The device detected a protocol error since the last status read.The device might or might not be able to check for such errors. Note that this value self-clears upon every successful completion of a host read of the device’s status. [4] = 0b0 Reserved [3:0] Pending Interrupt Contains the interrupt number of any pending interrupt, or 0 if no interrupts are pending. This encoding allows for up to 15 numbered interrupts. If more than one interrupt is set, then the highest priority interrupt shall be returned. GETMXDS The GETMXDS (Get Max Data Speed) format 1 returns the following five bytes in Table 31. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 56 | 196 Table 31: GETMXDS returning value Byte No. Byte Bit Name Description
1 MaxWr
[7:4] Reserved [3] = 0b0 Defining Byte Support No Defining Byte format supported [2:0] = 0b000 Maximum Sustained Data Rate for non-CCC Messages sent by Controller Device to Target Device fSCL Max
2 MaxRd
[6] = 0b0 Write-to-Read Permits Stop Between STOP would cancel the Read [5:3] = 0b111 Clock to Data Turnaround Time (tSCO) tSCO is > 12 ns [2:0] = 0b000 Maximum Sustained Data Rate for non-CCC Messages sent by Target Device to Controller Device fSCL Max maxRdTurn [7:0]=0x00 Maximum Read Turnaround Time fSCL Max4 [15:8]=0x00 5 [23:16]=0x00 GETMWL The GETMWL (Get Max Write Length) returns the following two bytes in Table 32. Please note that SETMWL (Set Max Write Length) is not supported. Table 32: GETMWL returning value Byte No. Byte Bit Name Description 1 MWL MSB [8:0] = 0xFF MSByte of Max Write length No limit2 MWL LSB [8:0] = 0xFF LSByte of Max Write length GETMRL The GETMRL (Get Max Read Length) returns the following three bytes in 32. Please note that SETMRL is not supported. Table 33: GETMRL returning value Byte No. Byte Bit Name Description 1 MWL MSB [8:0] = 0xFF MSByte of Max Write length No limit2 MWL LSB [8:0] = 0xFF LSByte of Max Write length
3 IBI PL [8:0] IBI Payload Size Values:
0x02: When No TC is activated. IBI payload size is 3 bytes, including MDB + 1 additional byte. 0x05: When TC Async 0 is activated. IBI payload size is 5 bytes, including MDB + 4 additional byte. 0x06: When TC Async 1 is activated. IBI payload size is 6 bytes, including MDB + 5 additional byte. GETXTIME The GETXTIME (Get Exchange Timing Support Information) returns the following four bytes in Table 32. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 57 | 196 Table 34: GETXTIME returning value Byte No. Name Description
1 Supported Modes Byte TC Async 0 and TC Async 1 are
supported.
2 State Byte TC Async 0 and TC Async 1
enabling state is shown. Overflow bit is related to Async Mode 0 and 3 Frequency Byte Fixed to 0x0D: 6.5 MHz. 4 Inaccuracy Byte Fixed to 0x14: 2%. The overflow bit in Byte No. 2 will be set in case of any TC Async counter overflow, and will be cleared automatically in the following way: TC Async 0: a new IBI is requested by hardware interrupt. TC Async 1: an I3C start has been found after a drdy event. Note that the overflow bit will not be cleared by the GETXTIME.
5.2.4.4 I3C Timing Specification
The device supports I3C single data rate (SDR) mode according to the MIPI specification. The I3C timing specification of the device is given in Table 35 and Table 36. Table 35: Open drain timing parameters of I3C Parameter Diagram in MIPI specification Symbol Min Max Unit SCL clock low period Figure 233 Figure 234 tLOW_OD 200 ns tDIG_OD_L tLOW_ODmin + tfDA_ODmin ns SCL clock high period (for Broadcast Address) tHIGH_INIT 200 ns SCL clock high period (for Mixed Bus) Figure 230 tHIGH 41 ns tDIG_H tHIGH + tCF ns SCL clock high period (for Pure Bus) Figure 230 tHIGH 24 ns tDIG_H 32 ns SDA fall time Figure 233 tfDA_OD 12 ns SDA setup time Figure 233 tSU_OD 3 ns Clock after Start Figure 233 tCAS 38.4e-9 ENTAS0: 1e-6 s ENTAS1: 100e-6 s ENTAS2: 2e-3 s ENTAS3: 50e-3 s Clock before Stop Figure 233 tCBP tCASmin/2 ns Bus available condition tAVAIL 1 µs Bus idle condition tIDLE 200 µs © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 58 | 196 Table 36: Push-pull timing parameters for SDR of I3C Parameter Diagram in MIPI specification Symbol Min Typ Max Unit SCL clock frequency fSCL 0.01 12.5 12.9 MHz SCL clock low period Figure 230 tLOW 24 ns tDIG_L 32 ns SCL clock high period (for Mixed Bus) Figure 230 tHIGH_MIXED 24 ns tDIG_H_MIXED 32 45 ns SCL clock high period (for Pure Bus) Figure 230 tHIGH 24 ns tDIG_H 32 ns Clock-in to data-out Figure 236 tSCO 12 ns SCL clock rise time Figure 230 tCR 150e06 * 1/fSCL ns SCL clock fall time Figure 230 tCF 150e06 * 1/fSCL ns SDA signal hold time Figure 235 tHD_PP tCR/F + 3 ns SDA signal setup time Figure 235 and Figure 236 tSU_PP 3 ns Clock after SR Figure 239 tCASr tCASmin/2 ns Clock before SR Figure 239 tCABr tCASmin/2 ns Capacitive bus load CB 50 pF
5.2.4.5 I3C Private Write Operation
The I3C write operation supports single-byte as well as multi-byte (burst) writing. figure 42 depicts the I3C write transfer for single-byte write operation. The transfer begins with a start condition generated by the host, followed by 7-bit I3C dynamic slave address and a write bit (R/W = 0). Then, the slave sends an acknowledge bit (ACK = 0) and releases the bus. Subsequently, the host is expected to send the register address (only the first 7-bit (right aligned) are the valid address bits, the MSB shall be ignored). Compared to I²C, the slave will not acknowledge the data bytes after the transmission. Instead, the I3C master is transmitting a parity bit during the T-bit phase. The next 8-bit data shall be written to the specified register address. After the final T-bit, the host generates a stop signal and terminates the writing protocol. Start R/W ACK T T Stop X Master -> Slave Slave -> Master Master -> Slave (Pariy Bit without Handoff) Dynamic Slave Adress Register data (D5h) P Register address (38h) S Figure 42: Single-byte write protocol of I3C The device also supports multi-byte (burst) write operation in I3C mode. The multi-byte write telegram is depicted in Fig. 43. The telegram begins with a start condition generated by the host, followed by 7-bit dynamic slave address and a write bit (R/W = 0). The slave sends an acknowledge bit (ACK = 0) and releases the bus. Subsequently the host sends the one byte register address (only the first 7-bit (right aligned) are the valid address bits, the MSB shall be ignored). The I3C master is transmitting a parity bit during the T-bit phase. The first data word is written to the specified register address. The register address pointer is automatically incremented for each data word. Each received data word is written to the register referenced by the current register address pointer. When no more data words need to be written, after the final T-bit, the host generates a stop signal and terminates the writing protocol. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 59 | 196 Start R/W ACK T T X T T T Stop Master -> Slave Slave -> Master Master -> Slave (Pariy Bit without Handoff) P P Register data (D6h) -> (Register address+1) Data byte Data byte Register data (D7h) -> (Register address+2) S P Dynamic Slave Adress Register data (D5h)-> (Register address) Data byte P Data byte Register data (D7h) -> (Register address+N) P Register address (04h) P Figure 43: Multi-Byte write protocol of I3C
5.2.4.6 I3C Private Read Operation
The I3C read operation supports single-byte as well as multi-byte (burst) reading. Please note that, burst accesses are not permitted when sensor is in suspend mode. A read command consists of a 1-byte I3C write phase followed by an I3C read phase. The two I3C transmissions must be separated by a repeated start condition (Sr) as shown in figure 44 or a stop followed by start condition (P followed by S) as shown in figure 45. The I3C write phase addresses the slave and sends the register address to be read. After the slave acknowledges the transmission, the host is expected to generate a start condition and then to send the dynamic slave address together with a read bit (R/W = 1). Then, the host releases the bus and waits for the data bytes to be read out from slave. After each data byte, the slave can continue the burst by driving the T-Bit high until the rising edge of SCL and release its driver right after SCL rising edged the to give the master the possibility to create a STOP or RESTART condition to terminate the transmission. If both the slave and master are keeping the T-Bit high, the burst will continue. The register address is automatically incremented and more than one byte can be sequentially read out (please refer to chapter 5.2.5 for address handling). Once a new data read transmission starts, the start address is set to the register address specified in the latest I3C write command. By default, the start address is set at 8h’00. In this way, repetitive multi-bytes reads from the same starting address are possible, as shown in figure 46. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 61 | 196 Start R/W ACK T Stop X Start R/W ACK T T Stop U U U U U U U U X X X X X X X X Start R/W ACK T T Stop X X X X X X X X X X X X X X X X Start R/W ACK T T Stop X X X X X X X X X X X X X X X X S P Dynamic Slave Adress S Dynamic Slave Adress Dummy byte Data byte Register address (03h) Register data - address 03h Data byte Data byte P S P Data byte Data byte Register data - address 02h Register data - address 03h P P Dynamic Slave Adress S Dynamic Slave Adress Register data - address 02h Register data - address 03h Figure 46: Multi-byte read protocol of I3C from the same start address with stop-start
5.2.5 Automatic Address Increment for Burst Access
Whenever a host accesses the device with a burst transfer, the register address is incremented upon each data byte, independent of the access type (read or write). When the highest address (0x7F) is reached, it wraps around to the start address (0x00). On dedicated addresses, the auto-incrementing is stalled, and all succeeding bytes are transferred with this stalled address. Auto-incrementing is stalled, even when the address is not the first one within a burst access. These stalling addresses are: FIFO_DATA_OUT (read access only) FEATURE_DATA_TX (write and read access) © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 62 | 196
6 Memory Map
The device can be operated for all standard features directly through registers. The registers are described in the register map in Section 6.1. The configuration and extended outputs of the advanced features provided by the feature engine can be accessed through the extended register map. The layout of the extended registers is described in Section 6.2. In case a bit field of a register is marked as “reserved”, the value read from it cannot be assumed to be “0x0” in every case . To reserved bit fields only “0x0” should be written to.Please be aware, that the BMA580 starts in suspend mode and not all registers are directly accessible. Please refer to the section section §4.1 for more details.
6.1 Register Map Description
The description of the register map is split into the overview of the register map and a detailed description for each register. The access to the extended register map through the registers FEATURE_DATA_ADDR and FEATURE_DATA_TX is explained in Section 6.2. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 63 | 196
6.1.1 Register Map Overview
The Table 37 provides an overview of the register map of the device. Table 37: Register map overview Legend Read-only Read/Write Write-only Reserved Addr Name Reset value bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 0x00 CHIP_ID 0xC4 chip_id ... - - reserved 0x02 HEALTH_STATUS 0x00 reserved sensor_health_status ... - - reserved 0x04 CMD_SUSPEND 0x01 reserved suspend ... - - reserved 0x18 ACC_DATA_0 0x00 acc_x_7_0 0x19 ACC_DATA_1 0x80 acc_x_15_8 0x1A ACC_DATA_2 0x00 acc_y_7_0 0x1B ACC_DATA_3 0x80 acc_y_15_8 0x1C ACC_DATA_4 0x00 acc_z_7_0 0x1D ACC_DATA_5 0x80 acc_z_15_8 0x1E TEMP_DATA 0x00 temp_data 0x1F SENSOR_TIME_0 0x00 sensor_time_7_0 0x20 SENSOR_TIME_1 0x00 sensor_time_15_8 0x21 SENSOR_TIME_2 0x00 sensor_time_23_16 0x22 FIFO_LEVEL_0 0x00 fifo_fill_level_7_0 0x23 FIFO_LEVEL_1 0x00 reserved fifo_fill_level_10_8 0x24 FIFO_DATA_OUT 0x80 fifo_data_out ... - - reserved 0x2B AUX_DATA_0 0x00 aux_data_7_0 0x2C AUX_DATA_1 0x00 aux_data_15_8 ... - - reserved © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 64 | 196 Table 37: Register map overview (continued) Legend Read-only Read/Write Write-only Reserved Addr Name Reset value bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 0x30 ACC_CONF_0 0x0F reserved sensor_ctrl 0x31 ACC_CONF_1 0xA7 power_... acc_bwp acc_odr 0x34 INT1_CONF 0x00 reserved lvl od mode 0x35 INT2_CONF 0x00 reserved lvl od mode 0x36 INT_MAP_0 0x00 gen_int1_int_map fifo_full_int_map fifo_wm_int_map acc_drdy_int_map 0x37 INT_MAP_1 0x00 stap_int_map acc_foc_int_map gen_int3_int_map gen_int2_int_map 0x38 INT_MAP_2 0x00 self_wake_up_i... vad_int_map ttap_int_map dtap_int_map 0x39 INT_MAP_3 0x00 reserved feat_eng_err_i... 0x3A IF_CONF_0 0x18 reserved if_i2c_slv_addr ... - - reserved 0x40 FIFO_CTRL 0x00 reserved fifo_f... fifo_rst 0x42 FIFO_CONF_1 0x06 reserved fifo_s... fifo_sensor_time fifo_size 0x43 FIFO_WM_0 0x00 fifo_watermark_level_7_0 0x44 FIFO_WM_1 0x04 reserved fifo_watermark_level_10_8 ... - - reserved 0x50 FEAT_ENG_CONF 0x01 reserved feat_e... 0x52 FEAT_ENG_GP_FLAGS 0x00 reserved foc_ru... feat_init_stat 0x54 FEAT_ENG_GPR_CTRL 0x00 reserved unlock˙.. update ˙.. 0x56 FEAT_ENG_GPR_1 0x00 reserved gen_int3_data_src gen_int2_data_src gen_int1_data_src ... - - reserved 0x5E FEATURE_DATA_ADDR 0x00 reserved feature_data_addr 0x5F FEATURE_DATA_TX 0x00 feature_data ... - - reserved 0x70 ACC_OFFSET_0 0x00 acc_doff_x_7_0 0x71 ACC_OFFSET_1 0x00 reserved acc_do... 0x72 ACC_OFFSET_2 0x00 acc_doff_y_7_0 0x73 ACC_OFFSET_3 0x00 reserved acc_do... © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 65 | 196 Table 37: Register map overview (continued) Legend Read-only Read/Write Write-only Reserved Addr Name Reset value bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 0x74 ACC_OFFSET_4 0x00 acc_doff_z_7_0 0x75 ACC_OFFSET_5 0x00 reserved acc_do... 0x76 ACC_SELF_TEST 0x00 reserved self_t... self_test ... - - reserved 0x7E CMD 0x00 cmd ... - - reserved © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 66 | 196
6.1.2 Register Map Details
Register (0x00) CHIP_ID Description: The product chip_id. This register can be used to identify the product and perform a first simple commu- nication test while reading out the chip id after boot up. Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R R Reset Value 1 1 0 0 0 1 0 0 Content chip_id CHIP_ID.chip_id: (bit offset: 0, bit width: 8, access: read-only) Chip ID: a constant number to identify the product. Following values can be read from the field chip_id: Value Description 0xC4 product identifier for BMA580 Use this link to go back to the overview table: CHIP_ID. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 67 | 196 Register (0x02) HEALTH_STATUS Description: This register contains internal health status information Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R R Reset Value 0 0 0 0 0 0 0 0 Content reserved sensor_health_status reserved: write 0x0. HEALTH_STATUS.sensor_health_status: (bit offset: 0, bit width: 4, access: read-only) The value 0xF indicate a good internal health state. Use this link to go back to the overview table: HEALTH_STATUS. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 68 | 196 Register (0x04) CMD_SUSPEND Description: Command register to activate suspend mode. Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R R/W Reset Value 0 0 0 0 0 0 0 1 Content reserved suspend reserved: write 0x0. CMD_SUSPEND.suspend: (bit offset: 0, bit width: 1, access: read-write) Write ’1’ to activate suspend mode. The register content prior to entering this power mode will NOT be lost. Following values can be set to or read from the field suspend: Value Description 0b0 (0x0) Suspend mode is disabled. Sensor in normal operation mode. 0b1 (0x1) Suspend mode is enabled. Only Register CHIP_ID and this register are accessible. Use this link to go back to the overview table: CMD_SUSPEND. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 69 | 196 Register (0x10) CONFIG_STATUS Description: Global error flags Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R R/W Reset Value 0 0 0 0 0 0 0 0 reserved: write 0x0. CONFIG_STATUS.feat_eng_err: (bit offset: 0, bit width: 1, access: read-write) Set by feature engine in case of feature engine error condition. Needs to be reseted by the host. For more details there are further status register in the feature engine section and inside the DMA region. Following values can be set to or read from the field feat_eng_err: Value Description 0b0 (0x0) feature engine is okay 0b1 (0x1) feature engine indicates error CONFIG_STATUS.acc_conf_err: (bit offset: 1, bit width: 1, access: read-only) This flag is set if the ACC configuration in ACC_CONF_0, ACC_CONF_1, and ACC_CONF_2 is an invalid combination. Following values can be read from the field acc_conf_err: Value Description 0b0 (0x0) sensor configuration okay 0b1 (0x1) sensor configuration invalid Use this link to go back to the overview table: CONFIG_STATUS. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 70 | 196 Register (0x11) SENSOR_STATUS Description: Global status flags Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R/W R/W Reset Value 0 0 0 0 0 1 0 0 reserved: write 0x0. SENSOR_STATUS.acc_data_rdy: (bit offset: 0, bit width: 1, access: read-write) Set when new ACC data is available. This flag can be cleared by writing ’1’ to it. SENSOR_STATUS.temperature_rdy: (bit offset: 1, bit width: 1, access: read-write) Set when new temperature data is available. This flag can be cleared by writing ’1’ to it. SENSOR_STATUS.sensor_rdy: (bit offset: 2, bit width: 1, access: read-only) Sensor is ready for operation. Use this link to go back to the overview table: SENSOR_STATUS. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 71 | 196 Register (0x12) INT_STATUS_INT1_0 Description: INT1 interrupt status register 0 Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 INT_STATUS_INT1_0.acc_drdy_int_status: (bit offset: 0, bit width: 1, access: read-write) Accelerometer data ready interrupt status. INT_STATUS_INT1_0.fifo_wm_int_status: (bit offset: 1, bit width: 1, access: read-write) FIFO watermark interrupt status. INT_STATUS_INT1_0.fifo_full_int_status: (bit offset: 2, bit width: 1, access: read-write) FIFO full interrupt status. INT_STATUS_INT1_0.gen_int1_int_status: (bit offset: 3, bit width: 1, access: read-write) Generic interrupt 1 interrupt status. INT_STATUS_INT1_0.gen_int2_int_status: (bit offset: 4, bit width: 1, access: read-write) Generic interrupt 2 interrupt status. INT_STATUS_INT1_0.gen_int3_int_status: (bit offset: 5, bit width: 1, access: read-write) Generic interrupt 3 interrupt status. INT_STATUS_INT1_0.acc_foc_int_status: (bit offset: 6, bit width: 1, access: read-write) Accelerometer fast offset compensation interrupt status. INT_STATUS_INT1_0.stap_int_status: (bit offset: 7, bit width: 1, access: read-write) Single tap interrupt status. Use this link to go back to the overview table: INT_STATUS_INT1_0. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 72 | 196 Register (0x13) INT_STATUS_INT1_1 Description: INT1 interrupt status register 1 Bit 7 6 5 4 3 2 1 0 Read/Write R R R R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 reserved: write 0x0. INT_STATUS_INT1_1.dtap_int_status: (bit offset: 0, bit width: 1, access: read-write) Double tap interrupt status. INT_STATUS_INT1_1.ttap_int_status: (bit offset: 1, bit width: 1, access: read-write) Triple tap interrupt status. INT_STATUS_INT1_1.vad_int_status: (bit offset: 2, bit width: 1, access: read-write) Voice activity detection interrupt status. INT_STATUS_INT1_1.self_wake_up_int_status: (bit offset: 3, bit width: 1, access: read-write) Self wake-up inter- rupt status. INT_STATUS_INT1_1.feat_eng_err_int_status: (bit offset: 4, bit width: 1, access: read-write) Feature engine error interrupt status. Use this link to go back to the overview table: INT_STATUS_INT1_1. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 73 | 196 Register (0x14) INT_STATUS_INT2_0 Description: INT2 interrupt status register 0 Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 INT_STATUS_INT2_0.acc_drdy_int_status: (bit offset: 0, bit width: 1, access: read-write) Accelerometer data ready interrupt status. INT_STATUS_INT2_0.fifo_wm_int_status: (bit offset: 1, bit width: 1, access: read-write) FIFO watermark interrupt status. INT_STATUS_INT2_0.fifo_full_int_status: (bit offset: 2, bit width: 1, access: read-write) FIFO full interrupt status. INT_STATUS_INT2_0.gen_int1_int_status: (bit offset: 3, bit width: 1, access: read-write) Generic interrupt 1 interrupt status. INT_STATUS_INT2_0.gen_int2_int_status: (bit offset: 4, bit width: 1, access: read-write) Generic interrupt 2 interrupt status. INT_STATUS_INT2_0.gen_int3_int_status: (bit offset: 5, bit width: 1, access: read-write) Generic interrupt 3 interrupt status. INT_STATUS_INT2_0.acc_foc_int_status: (bit offset: 6, bit width: 1, access: read-write) Accelerometer fast offset compensation interrupt status. INT_STATUS_INT2_0.stap_int_status: (bit offset: 7, bit width: 1, access: read-write) Single tap interrupt status. Use this link to go back to the overview table: INT_STATUS_INT2_0. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 74 | 196 Register (0x15) INT_STATUS_INT2_1 Description: INT2 interrupt status register 1 Bit 7 6 5 4 3 2 1 0 Read/Write R R R R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 reserved: write 0x0. INT_STATUS_INT2_1.dtap_int_status: (bit offset: 0, bit width: 1, access: read-write) Double tap interrupt status. INT_STATUS_INT2_1.ttap_int_status: (bit offset: 1, bit width: 1, access: read-write) Triple tap interrupt status. INT_STATUS_INT2_1.vad_int_status: (bit offset: 2, bit width: 1, access: read-write) Voice activity detection interrupt status. INT_STATUS_INT2_1.self_wake_up_int_status: (bit offset: 3, bit width: 1, access: read-write) Self wake-up inter- rupt status. INT_STATUS_INT2_1.feat_eng_err_int_status: (bit offset: 4, bit width: 1, access: read-write) Feature engine error interrupt status. Use this link to go back to the overview table: INT_STATUS_INT2_1. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 75 | 196 Register (0x16) INT_STATUS_I3C_0 Description: I3C interrupt status register 0 Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 INT_STATUS_I3C_0.acc_drdy_int_status: (bit offset: 0, bit width: 1, access: read-write) Accelerometer data ready interrupt status. INT_STATUS_I3C_0.fifo_wm_int_status: (bit offset: 1, bit width: 1, access: read-write) FIFO watermark interrupt status. INT_STATUS_I3C_0.fifo_full_int_status: (bit offset: 2, bit width: 1, access: read-write) FIFO full interrupt status. INT_STATUS_I3C_0.gen_int1_int_status: (bit offset: 3, bit width: 1, access: read-write) Generic interrupt 1 inter- rupt status. INT_STATUS_I3C_0.gen_int2_int_status: (bit offset: 4, bit width: 1, access: read-write) Generic interrupt 2 inter- rupt status. INT_STATUS_I3C_0.gen_int3_int_status: (bit offset: 5, bit width: 1, access: read-write) Generic interrupt 3 inter- rupt status. INT_STATUS_I3C_0.acc_foc_int_status: (bit offset: 6, bit width: 1, access: read-write) Accelerometer fast offset compensation interrupt status. INT_STATUS_I3C_0.stap_int_status: (bit offset: 7, bit width: 1, access: read-write) Single tap interrupt status. Use this link to go back to the overview table: INT_STATUS_I3C_0. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 76 | 196 Register (0x17) INT_STATUS_I3C_1 Description: I3C interrupt status register 1 Bit 7 6 5 4 3 2 1 0 Read/Write R R R R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 reserved: write 0x0. INT_STATUS_I3C_1.dtap_int_status: (bit offset: 0, bit width: 1, access: read-write) Double tap interrupt status. INT_STATUS_I3C_1.ttap_int_status: (bit offset: 1, bit width: 1, access: read-write) Triple tap interrupt status. INT_STATUS_I3C_1.vad_int_status: (bit offset: 2, bit width: 1, access: read-write) Voice activity detection interrupt status. INT_STATUS_I3C_1.self_wake_up_int_status: (bit offset: 3, bit width: 1, access: read-write) Self wake-up interrupt status. INT_STATUS_I3C_1.feat_eng_err_int_status: (bit offset: 4, bit width: 1, access: read-write) Feature engine error interrupt status. Use this link to go back to the overview table: INT_STATUS_I3C_1. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 77 | 196 Register (0x18) ACC_DATA_0 Description: ACC data register 0 Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R R Reset Value 0 0 0 0 0 0 0 0 Content acc_x_7_0 ACC_DATA_0.acc_x_7_0: (bit offset: 0, bit width: 8, access: read-only) Accelerometer data for x-axis. (LSB). The full Use this link to go back to the overview table: ACC_DATA_0. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 78 | 196 Register (0x19) ACC_DATA_1 Description: ACC data register 1 Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R R Reset Value 1 0 0 0 0 0 0 0 Content acc_x_15_8 ACC_DATA_1.acc_x_15_8: (bit offset: 0, bit width: 8, access: read-only) Accelerometer data for x-axis. (MSB). The Use this link to go back to the overview table: ACC_DATA_1. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 79 | 196 Register (0x1A) ACC_DATA_2 Description: ACC data register 2 Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R R Reset Value 0 0 0 0 0 0 0 0 Content acc_y_7_0 ACC_DATA_2.acc_y_7_0: (bit offset: 0, bit width: 8, access: read-only) Accelerometer data for y-axis. (LSB). The full Use this link to go back to the overview table: ACC_DATA_2. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 80 | 196 Register (0x1B) ACC_DATA_3 Description: ACC data register 3 Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R R Reset Value 1 0 0 0 0 0 0 0 Content acc_y_15_8 ACC_DATA_3.acc_y_15_8: (bit offset: 0, bit width: 8, access: read-only) Accelerometer data for y-axis. (MSB). The Use this link to go back to the overview table: ACC_DATA_3. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 81 | 196 Register (0x1C) ACC_DATA_4 Description: ACC data register 4 Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R R Reset Value 0 0 0 0 0 0 0 0 Content acc_z_7_0 ACC_DATA_4.acc_z_7_0: (bit offset: 0, bit width: 8, access: read-only) Accelerometer data for z-axis. (LSB). The full Use this link to go back to the overview table: ACC_DATA_4. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 82 | 196 Register (0x1D) ACC_DATA_5 Description: ACC data register 5 Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R R Reset Value 1 0 0 0 0 0 0 0 Content acc_z_15_8 ACC_DATA_5.acc_z_15_8: (bit offset: 0, bit width: 8, access: read-only) Accelerometer data for z-axis. (MSB). The Use this link to go back to the overview table: ACC_DATA_5. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 83 | 196 Register (0x1E) TEMP_DATA Description: Temperature data register Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R R Reset Value 0 0 0 0 0 0 0 0 Content temp_data TEMP_DATA.temp_data: (bit offset: 0, bit width: 8, access: read-only) Calculated temperature. Resolution: 1 K/LSB. The value 0 represents 23degC. Use this link to go back to the overview table: TEMP_DATA. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 84 | 196 Register (0x1F) SENSOR_TIME_0 Description: Sensor time register 0 Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R R Reset Value 0 0 0 0 0 0 0 0 Content sensor_time_7_0 SENSOR_TIME_0.sensor_time_7_0: (bit offset: 0, bit width: 8, access: read-only) Sensor time in units 1 LSB = 312.5us. Use this link to go back to the overview table: SENSOR_TIME_0. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 85 | 196 Register (0x20) SENSOR_TIME_1 Description: Sensor time register 1 Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R R Reset Value 0 0 0 0 0 0 0 0 Content sensor_time_15_8 SENSOR_TIME_1.sensor_time_15_8: (bit offset: 0, bit width: 8, access: read-only) Sensor time in units 1 LSB = 312.5us. Use this link to go back to the overview table: SENSOR_TIME_1. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 86 | 196 Register (0x21) SENSOR_TIME_2 Description: Sensor time register 2 Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R R Reset Value 0 0 0 0 0 0 0 0 Content sensor_time_23_16 SENSOR_TIME_2.sensor_time_23_16: (bit offset: 0, bit width: 8, access: read-only) Sensor time in units 1 LSB = 312.5us. Use this link to go back to the overview table: SENSOR_TIME_2. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 87 | 196 Register (0x22) FIFO_LEVEL_0 Description: FIFO fill level register (LSB) Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R R Reset Value 0 0 0 0 0 0 0 0 Content fifo_fill_level_7_0 FIFO_LEVEL_0.fifo_fill_level_7_0: (bit offset: 0, bit width: 8, access: read-only) The fill level of the fifo only reflects the stored data. The frame header are not stored and not part of the FIFO fill level. To read out complete FIFO, the best way is to read as long as valid frames are read. LSB of the FIFO fill level. Should be read before the MSB register. . Use this link to go back to the overview table: FIFO_LEVEL_0. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 88 | 196 Register (0x23) FIFO_LEVEL_1 Description: FIFO fill level register (MSB) Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R R Reset Value 0 0 0 0 0 0 0 0 Content reserved fifo_fill_level_10_8 reserved: write 0x0. FIFO_LEVEL_1.fifo_fill_level_10_8: (bit offset: 0, bit width: 3, access: read-only) MSB of the FIFO fill level. Should be read after the LSB register. Use this link to go back to the overview table: FIFO_LEVEL_1. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 89 | 196 Register (0x24) FIFO_DATA_OUT Description: FIFO data register Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R R Reset Value 1 0 0 0 0 0 0 0 Content fifo_data_out FIFO_DATA_OUT.fifo_data_out: (bit offset: 0, bit width: 8, access: read-only) Output of the FIFO. During burst reads on this address the address increment stops and the FIFO can be read out with help of the burst read. The type of data stored in the FIFO depends on configuration stored in FIFO_CONF_* registers. Use this link to go back to the overview table: FIFO_DATA_OUT. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 90 | 196 Register (0x2B) AUX_DATA_0 Description: Auxilary data Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R R Reset Value 0 0 0 0 0 0 0 0 Content aux_data_7_0 AUX_DATA_0.aux_data_7_0: (bit offset: 0, bit width: 8, access: read-only) Auxilary data [7:0]. Value from measure- ment voltage on INT1/2 pin. Use this link to go back to the overview table: AUX_DATA_0. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 91 | 196 Register (0x2C) AUX_DATA_1 Description: Auxilary data Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R R Reset Value 0 0 0 0 0 0 0 0 Content aux_data_15_8 AUX_DATA_1.aux_data_15_8: (bit offset: 0, bit width: 8, access: read-only) Auxilary data [15:8]. Value from mea- surement voltage on INT1/2 pin. Use this link to go back to the overview table: AUX_DATA_1. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 92 | 196 Register (0x30) ACC_CONF_0 Description: Accelerometer configuration register 0 Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R/W R/W R/W R/W Reset Value 0 0 0 0 1 1 1 1 Content reserved sensor_ctrl reserved: write 0x0. ACC_CONF_0.sensor_ctrl: (bit offset: 0, bit width: 4, access: read-write) This bit enables/disables the accelerometer and the temperature sensor. Following values can be set to or read from the field sensor_ctrl: Value Description 0b0000 (0x0) The accelerometer and the temperature sensor are disabled. 0b1111 (0xF) The accelerometer and the temperature sensor are enabled. 0b1110 (0xE) A wrong configuration was found: The accelerometer and the temperature sensor are disabled. Use this link to go back to the overview table: ACC_CONF_0. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 93 | 196 Register (0x31) ACC_CONF_1 Description: Accelerometer configuration register 1 Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 1 0 1 0 0 1 1 1 Content power_... acc_bwp acc_odr ACC_CONF_1.acc_odr: (bit offset: 0, bit width: 4, access: read-write) The ODR (Output Data Rate) in Hz. Not all settings are available in all power modes. Following values can be set to or read from the field acc_odr: Value Description 0b0000 (0x0) 1.5625 Hz. Only available in duty cycling mode (LPM). 0b0001 (0x1) 3.125 Hz. Only available in duty cycling mode (LPM). 0b0010 (0x2) 6.25 Hz.Only available in duty cycling mode (LPM). 0b0011 (0x3) 12.5 Hz. 0b0100 (0x4) 25 Hz. 0b0101 (0x5) 50 Hz. 0b0110 (0x6) 100 Hz. 0b0111 (0x7) 200 Hz. 0b1000 (0x8) 400 Hz. 0b1001 (0x9) 800 Hz. Only available in continuous mode (HPM). 0b1010 (0xA) 1.6 kHz. Only available in continuous mode (HPM). 0b1011 (0xB) 3.2 kHz. Only available in continuous mode (HPM). 0b1100 (0xC) 6.4 kHz. Only available in continuous mode (HPM). ACC_CONF_1.acc_bwp: (bit offset: 4, bit width: 3, access: read-write) Accelerometer bandwith parameter. This parameter determines the filter configuration. The different settings have a different impact depending on the setting of the power_mode bit. The name of the settings are therefore (HPM-setting)_(LPM-setting). (e.g. norm_avg4 means norm mode for HPM and avg4 for LPM). Following values can be set to or read from the field acc_bwp: Value Description 0b000 (0x0) HPM –> OSR4 mode; LPM –> no averaging. 0b001 (0x1) HPM –> OSR2 mode; LPM –> average 2 samples. 0b010 (0x2) HPM –> normal mode; LPM –> average 4 samples. 0b011 (0x3) HPM –> CIC mode; LPM –> average 8 samples. 0b100 (0x4) HPM –> reserved; LPM –> average 16 samples. 0b101 (0x5) HPM –> reserved; LPM –> average 32 samples. 0b110 (0x6) HPM –> reserved; LPM –> average 64 samples. 0b111 (0x7) HPM –> reserved; LPM –> reserved. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 94 | 196 ACC_CONF_1.power_mode: (bit offset: 7, bit width: 1, access: read-write) With this config bit, it is possible to set the basic measurement power mode. There are two possible settings:LPM (Low Power Mode) with duty cycling or HPM (High Performance Mode) with continous measurement. This setting has an influence on the signal path and the filter settings, too. Following values can be set to or read from the field power_mode: Value Description 0b0 (0x0) LPM: Low power mode (Duty Cycling mode) 0b1 (0x1) HPM: High Performance Mode (Continuous mode) Use this link to go back to the overview table: ACC_CONF_1. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 95 | 196 Register (0x32) ACC_CONF_2 Description: Accelerometer configuration register 2 Bit 7 6 5 4 3 2 1 0 Read/Write R/W R R R/W R/W R/W R/W R/W Reset Value 0 0 0 0 1 1 1 0 reserved: write 0x0. ACC_CONF_2.acc_range: (bit offset: 0, bit width: 2, access: read-write) The measurement range of the accelerome- ter. This setting has influence on the scaling of the ACC_DATA registers. Following values can be set to or read from the field acc_range: Value Description 0b00 (0x0) measurement range: +/-2g. 0b01 (0x1) measurement range: +/-4g. 0b10 (0x2) measurement range: +/-8g. 0b11 (0x3) measurement range: +/-16g. ACC_CONF_2.acc_iir_ro: (bit offset: 2, bit width: 2, access: read-write) Select roll-off of IIR filter in continuous mode. Following values can be set to or read from the field acc_iir_ro: Value Description 0b00 (0x0) reserved 0b01 (0x1) -20dB roll-off 0b10 (0x2) -40dB roll-off 0b11 (0x3) -60dB roll-off ACC_CONF_2.noise_mode: (bit offset: 4, bit width: 1, access: read-write) Select the performance mode of the sensor. The choice is between high performance with lower noise or reduce the power consumption but with an increased noise level. The default is the high performance (lower noise). Changing this setting from default migh also influence the sensor behaviour like offset. This configuration should only be used in HPM. . Following values can be set to or read from the field noise_mode: Value Description 0b0 (0x0) Default config. Lower noise level. 0b1 (0x1) Lower power consumption. Higher noise level. This setting should only be used in HPM mode! ACC_CONF_2.acc_drdy_int_auto_clear: (bit offset: 7, bit width: 1, access: read-write) Configuration bit to en- able/disable the auto clear mechanism of the data ready interrupt. If enabled, a clock like with freq=odr can be © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 96 | 196 enabled on the external interrupt pin. Following values can be set to or read from the field acc_drdy_int_auto_clear: Value Description 0b0 (0x0) The status flag of acc_drdy_int is not cleared automatically. 0b1 (0x1) The status flag of acc_drdy_int is cleared automatically after approximately 1/(2*ODR). Use this link to go back to the overview table: ACC_CONF_2. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 97 | 196 Register (0x33) TEMP_CONF Description: Temperature Sensor configuration register Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 1 1 0 0 0 0 0 TEMP_CONF.temp_rate: (bit offset: 0, bit width: 3, access: read-write) Select rate in Hz at which the temperature is sampled. Following values can be set to or read from the field temp_rate: Value Description 0b000 (0x0) Sample temperature at 1.5625 Hz. 0b001 (0x1) Sample temperature at 3.125 Hz. 0b010 (0x2) Sample temperature at 6.25 Hz. 0b011 (0x3) Sample temperature at 12.5 Hz. 0b100 (0x4) Sample temperature at 25 Hz. 0b101 (0x5) Sample temperature at 50 Hz. 0b110 (0x6) Sample temperature at 100 Hz. 0b111 (0x7) Sample temperature at 200 Hz. TEMP_CONF.temp_meas_src: (bit offset: 3, bit width: 1, access: read-write) Select the input source for the temperature ADC. Following values can be set to or read from the field temp_meas_src: Value Description 0b0 (0x0) internal temperature diode 0b1 (0x1) external input as configured by temp_ext_sel TEMP_CONF.temp_ext_sel: (bit offset: 4, bit width: 1, access: read-write) Select the external pin as source for temperature ADC. Following values can be set to or read from the field temp_ext_sel: Value Description 0b0 (0x0) interrupt pin INT1 0b1 (0x1) interrupt pin INT2 TEMP_CONF.reserved: (bit offset: 5, bit width: 3, access: read-write) write 0x3. Use this link to go back to the overview table: TEMP_CONF. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 98 | 196 Register (0x34) INT1_CONF Description: Configuration register for INT1 Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content reserved lvl od mode reserved: write 0x0. INT1_CONF.mode: (bit offset: 0, bit width: 2, access: read-write) Output enable for INT1 pin. Following values can be set to or read from the field mode: Value Description 0b00 (0x0) Output disabled. 0b01 (0x1) Latched (level triggered) interrupts. 0b10 (0x2) Pulsed (edge triggered) interrupts with short pulses. 0b11 (0x3) Pulsed (edge triggered) interrupts with long pulses. INT1_CONF.od: (bit offset: 2, bit width: 1, access: read-write) Configure behaviour of INT1 pin to open drain. Following values can be set to or read from the field od: Value Description 0b0 (0x0) push-pull 0b1 (0x1) open drain INT1_CONF.lvl: (bit offset: 3, bit width: 1, access: read-write) Configure level of INT1 pin. Following values can be set to or read from the field lvl: Value Description 0b0 (0x0) active low 0b1 (0x1) active high Use this link to go back to the overview table: INT1_CONF. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 99 | 196 Register (0x35) INT2_CONF Description: Configuration register for INT2 Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content reserved lvl od mode reserved: write 0x0. INT2_CONF.mode: (bit offset: 0, bit width: 2, access: read-write) Mode for INT2 pin. Following values can be set to or read from the field mode: Value Description 0b00 (0x0) Output disabled. 0b01 (0x1) Latched (level triggered) interrupts. 0b10 (0x2) Pulsed (edge triggered) interrupts with short pulses. 0b11 (0x3) Pulsed (edge triggered) interrupts with long pulses. INT2_CONF.od: (bit offset: 2, bit width: 1, access: read-write) Configure behaviour of INT2 pin to open drain. Following values can be set to or read from the field od: Value Description 0b0 (0x0) push-pull 0b1 (0x1) open drain INT2_CONF.lvl: (bit offset: 3, bit width: 1, access: read-write) Configure level of INT2 pin. Following values can be set to or read from the field lvl: Value Description 0b0 (0x0) active low 0b1 (0x1) active high Use this link to go back to the overview table: INT2_CONF. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 100 | 196 Register (0x36) INT_MAP_0 Description: Interrupt mapping register 0 Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content gen_int1_int_map fifo_full_int_map fifo_wm_int_map acc_drdy_int_map INT_MAP_0.acc_drdy_int_map: (bit offset: 0, bit width: 2, access: read-write) Data ready interrupt mapping. Following values can be set to or read from the field acc_drdy_int_map: Value Description 0b00 (0x0) Interrupt is not mapped to any destination 0b01 (0x1) Interrupt is mapped to INT1 pin 0b10 (0x2) Interrupt is mapped to INT2 pin 0b11 (0x3) Interrupt is mapped to I3C in-band interrupts INT_MAP_0.fifo_wm_int_map: (bit offset: 2, bit width: 2, access: read-write) FIFO watermark interrupt mapping. Following values can be set to or read from the field fifo_wm_int_map: Value Description 0b00 (0x0) Interrupt is not mapped to any destination 0b01 (0x1) Interrupt is mapped to INT1 pin 0b10 (0x2) Interrupt is mapped to INT2 pin 0b11 (0x3) Interrupt is mapped to I3C in-band interrupts INT_MAP_0.fifo_full_int_map: (bit offset: 4, bit width: 2, access: read-write) FIFO full interrupt mapping. Following values can be set to or read from the field fifo_full_int_map: Value Description 0b00 (0x0) Interrupt is not mapped to any destination 0b01 (0x1) Interrupt is mapped to INT1 pin 0b10 (0x2) Interrupt is mapped to INT2 pin 0b11 (0x3) Interrupt is mapped to I3C in-band interrupts INT_MAP_0.gen_int1_int_map: (bit offset: 6, bit width: 2, access: read-write) Generic interrupt 1 interrupt mapping. Following values can be set to or read from the field gen_int1_int_map: © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 101 | 196 Value Description 0b00 (0x0) Interrupt is not mapped to any destination 0b01 (0x1) Interrupt is mapped to INT1 pin 0b10 (0x2) Interrupt is mapped to INT2 pin 0b11 (0x3) Interrupt is mapped to I3C in-band interrupts Use this link to go back to the overview table: INT_MAP_0. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 102 | 196 Register (0x37) INT_MAP_1 Description: Interrupt mapping register 1 Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content stap_int_map acc_foc_int_map gen_int3_int_map gen_int2_int_map INT_MAP_1.gen_int2_int_map: (bit offset: 0, bit width: 2, access: read-write) Generic interrupt 2 interrupt mapping. Following values can be set to or read from the field gen_int2_int_map: Value Description 0b00 (0x0) Interrupt is not mapped to any destination 0b01 (0x1) Interrupt is mapped to INT1 pin 0b10 (0x2) Interrupt is mapped to INT2 pin 0b11 (0x3) Interrupt is mapped to I3C in-band interrupts INT_MAP_1.gen_int3_int_map: (bit offset: 2, bit width: 2, access: read-write) Generic interrupt 3 interrupt mapping. Following values can be set to or read from the field gen_int3_int_map: Value Description 0b00 (0x0) Interrupt is not mapped to any destination 0b01 (0x1) Interrupt is mapped to INT1 pin 0b10 (0x2) Interrupt is mapped to INT2 pin 0b11 (0x3) Interrupt is mapped to I3C in-band interrupts INT_MAP_1.acc_foc_int_map: (bit offset: 4, bit width: 2, access: read-write) Accelerometer fast offset compensation interrupt mapping. Following values can be set to or read from the field acc_foc_int_map: Value Description 0b00 (0x0) Interrupt is not mapped to any destination 0b01 (0x1) Interrupt is mapped to INT1 pin 0b10 (0x2) Interrupt is mapped to INT2 pin 0b11 (0x3) Interrupt is mapped to I3C in-band interrupts INT_MAP_1.stap_int_map: (bit offset: 6, bit width: 2, access: read-write) Single tap interrupt mapping. Following values can be set to or read from the field stap_int_map: © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 103 | 196 Value Description 0b00 (0x0) Interrupt is not mapped to any destination 0b01 (0x1) Interrupt is mapped to INT1 pin 0b10 (0x2) Interrupt is mapped to INT2 pin 0b11 (0x3) Interrupt is mapped to I3C in-band interrupts Use this link to go back to the overview table: INT_MAP_1. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 104 | 196 Register (0x38) INT_MAP_2 Description: Interrupt mapping register 2 Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content self_wake_up_i... vad_int_map ttap_int_map dtap_int_map INT_MAP_2.dtap_int_map: (bit offset: 0, bit width: 2, access: read-write) Double tap interrupt mapping. Following values can be set to or read from the field dtap_int_map: Value Description 0b00 (0x0) Interrupt is not mapped to any destination 0b01 (0x1) Interrupt is mapped to INT1 pin 0b10 (0x2) Interrupt is mapped to INT2 pin 0b11 (0x3) Interrupt is mapped to I3C in-band interrupts INT_MAP_2.ttap_int_map: (bit offset: 2, bit width: 2, access: read-write) Triple tap interrupt mapping. Following values can be set to or read from the field ttap_int_map: Value Description 0b00 (0x0) Interrupt is not mapped to any destination 0b01 (0x1) Interrupt is mapped to INT1 pin 0b10 (0x2) Interrupt is mapped to INT2 pin 0b11 (0x3) Interrupt is mapped to I3C in-band interrupts INT_MAP_2.vad_int_map: (bit offset: 4, bit width: 2, access: read-write) Voice activity detection interrupt mapping. Following values can be set to or read from the field vad_int_map: Value Description 0b00 (0x0) Interrupt is not mapped to any destination 0b01 (0x1) Interrupt is mapped to INT1 pin 0b10 (0x2) Interrupt is mapped to INT2 pin 0b11 (0x3) Interrupt is mapped to I3C in-band interrupts INT_MAP_2.self_wake_up_int_map: (bit offset: 6, bit width: 2, access: read-write) Self wake-up interrupt mapping. Following values can be set to or read from the field self_wake_up_int_map: © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 105 | 196 Value Description 0b00 (0x0) Interrupt is not mapped to any destination 0b01 (0x1) Interrupt is mapped to INT1 pin 0b10 (0x2) Interrupt is mapped to INT2 pin 0b11 (0x3) Interrupt is mapped to I3C in-band interrupts Use this link to go back to the overview table: INT_MAP_2. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 106 | 196 Register (0x39) INT_MAP_3 Description: Interrupt mapping register 3 Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content reserved feat_eng_err_i... reserved: write 0x0. INT_MAP_3.feat_eng_err_int_map: (bit offset: 0, bit width: 2, access: read-write) Feature engine error interrupt mapping. Following values can be set to or read from the field feat_eng_err_int_map: Value Description 0b00 (0x0) Interrupt is not mapped to any destination 0b01 (0x1) Interrupt is mapped to INT1 pin 0b10 (0x2) Interrupt is mapped to INT2 pin 0b11 (0x3) Interrupt is mapped to I3C in-band interrupts Use this link to go back to the overview table: INT_MAP_3. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 107 | 196 Register (0x3A) IF_CONF_0 Description: Serial interface settings Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R R Reset Value 0 0 0 1 1 0 0 0 Content reserved if_i2c_slv_addr reserved: write 0x0. IF_CONF_0.if_i2c_slv_addr: (bit offset: 0, bit width: 7, access: read-only) I2C slave address of this device. Following values can be read from the field if_i2c_slv_addr: Value Description 0x18 the default i2c slave address of this device Use this link to go back to the overview table: IF_CONF_0. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 108 | 196 Register (0x3B) IF_CONF_1 Description: Serial interface settings Bit 7 6 5 4 3 2 1 0 Read/Write R R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 1 1 1 0 0 0 reserved: write 0x0. IF_CONF_1.if_i3c_cfg: (bit offset: 0, bit width: 1, access: read-write) Configuration of I3C mode. Following values can be set to or read from the field if_i3c_cfg: Value Description 0b0 (0x0) The I3C mode is disabled. 0b1 (0x1) The I3C mode is enabled. IF_CONF_1.if_spi3_cfg: (bit offset: 1, bit width: 1, access: read-write) Configuration of SPI3 mode(SPI 3 wire protocol). Following values can be set to or read from the field if_spi3_cfg: Value Description 0b0 (0x0) The SPI3 mode is disabled. 0b1 (0x1) The SPI3 mode is enabled. IF_CONF_1.if_csb_pullup: (bit offset: 2, bit width: 1, access: read-write) Configuration of CSB pullup in SPI mode. Following values can be set to or read from the field if_csb_pullup: Value Description 0b0 (0x0) The pullup is disabled. 0b1 (0x1) The pullup is enabled. IF_CONF_1.if_pad_drv: (bit offset: 3, bit width: 3, access: read-write) Pad drive strength in I2C mode. IF_CONF_1.if_i2c_drv_sel: (bit offset: 6, bit width: 1, access: read-write) select drive strength in I2C mode. Following values can be set to or read from the field if_i2c_drv_sel: Value Description 0b0 (0x0) use maximum pad drive strength 0b1 (0x1) use drive strength settings of if_pad_drv Use this link to go back to the overview table: IF_CONF_1. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 109 | 196 Register (0x40) FIFO_CTRL Description: FIFO control register Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R W W Reset Value 0 0 0 0 0 0 0 0 Content reserved fifo_f... fifo_rst reserved: write 0x0. FIFO_CTRL.fifo_rst: (bit offset: 0, bit width: 1, access: write-only) FIFO reset trigger. Writing ’1’ to this field synchronously resets the FIFO. FIFO_CTRL.fifo_frame_sync: (bit offset: 1, bit width: 1, access: write-only) FIFO frame synchronization trigger. Writing ’1’ to this field tells the FIFO that another frame is about to be written to FIFO_DATA_IN. Use this link to go back to the overview table: FIFO_CTRL. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 110 | 196 Register (0x41) FIFO_CONF_0 Description: FIFO configuration register 0 Bit 7 6 5 4 3 2 1 0 Read/Write R R R R/W R/W R/W R/W R/W Reset Value 0 0 0 0 1 1 1 0 reserved: write 0x0. FIFO_CONF_0.fifo_cfg: (bit offset: 0, bit width: 1, access: read-write) Enable bit for the FIFO. Cannot be set to 1 if fifo_size equals 0. Following values can be set to or read from the field fifo_cfg: Value Description 0b0 (0x0) The FIFO is disabled. 0b1 (0x1) The FIFO is enabled. FIFO_CONF_0.fifo_acc_x: (bit offset: 1, bit width: 1, access: read-write) Configuration bit to enable the storage of the x-axis acceleration data in the FIFO. Following values can be set to or read from the field fifo_acc_x: Value Description 0b0 (0x0) The FIFO x-axis acceleration channel is disabled. 0b1 (0x1) The FIFO x-axis acceleration channel is enabled. FIFO_CONF_0.fifo_acc_y: (bit offset: 2, bit width: 1, access: read-write) Configuration bit to enable the storage of the y-axis acceleration data in the FIFO. Following values can be set to or read from the field fifo_acc_y: Value Description 0b0 (0x0) The FIFO y-axis acceleration channel is disabled. 0b1 (0x1) The FIFO y-axis acceleration channel is enabled. FIFO_CONF_0.fifo_acc_z: (bit offset: 3, bit width: 1, access: read-write) Configuration bit to enable the storage of the z-axis acceleration data in the FIFO. Following values can be set to or read from the field fifo_acc_z: Value Description 0b0 (0x0) The FIFO z-axis acceleration channel is disabled. 0b1 (0x1) The FIFO z-axis acceleration channel is enabled. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 111 | 196 FIFO_CONF_0.fifo_compression: (bit offset: 4, bit width: 1, access: read-write) Enable bit for FIFO data compres- sion. Following values can be set to or read from the field fifo_compression: Value Description 0b0 (0x0) compression disbaled. full 16bit acceleration data. 0b1 (0x1) compression enabled. 8bit compressed acceleration data. Use this link to go back to the overview table: FIFO_CONF_0. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 112 | 196 Register (0x42) FIFO_CONF_1 Description: FIFO configuration register 1 Bit 7 6 5 4 3 2 1 0 Read/Write R R R R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 1 1 0 Content reserved fifo_s... fifo_sensor_time fifo_size reserved: write 0x0. FIFO_CONF_1.fifo_size: (bit offset: 0, bit width: 2, access: read-write) FIFO size. Since FIFO and feature engine share a common RAM, the size for the FIFO share has to be adjusted. Cannot be changed if locked by the feature engine. In order to change this value, first disable the feature engine. If the feature engine is turned on again, a minimum share might be needed and this setting might be changed by the feature engine. Following values can be set to or read from the field fifo_size: Value Description 0b00 (0x0) The FIFO has a size of 0 bytes. The feature engine (’feat_eng’) has a RAM size of 1024 bytes. This setting forces fifo_en to 0. 0b01 (0x1) The FIFO has a size of 256 bytes. The feature engine (’feat_eng’) has a RAM size of 768 bytes. 0b10 (0x2) The FIFO has a size of 512 bytes. The feature engine (’feat_eng’) has a RAM size of 512 bytes. 0b11 (0x3) The FIFO has a size of 1024 bytes. The feature engine (’feat_eng’) has a RAM size of 0 bytes. This setting forces feature engine (’feat_eng’)_en to 0. FIFO_CONF_1.fifo_sensor_time: (bit offset: 2, bit width: 2, access: read-write) FIFO sensor time configuration. Following values can be set to or read from the field fifo_sensor_time: Value Description 0b00 (0x0) The FIFO does not transmit the sensor time. 0b01 (0x1) The FIFO sends a dedicated sensor time frame when the FIFO runs empty during a read burst. 0b10 (0x2) The FIFO has appends the sensor time to each frame. FIFO_CONF_1.fifo_stop_on_full: (bit offset: 4, bit width: 1, access: read-write) If set, the FIFO stops storing new data if it is full. Otherwise the oldest frame is dropped in order to make room for a new frame. Following values can be set to or read from the field fifo_stop_on_full: Value Description 0b0 (0x0) feature disbaled.The FIFO will be filled continously with new data, old data will be dropped. 0b1 (0x1) feature enabled. The FIFO will stop, when it is full. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 113 | 196 Use this link to go back to the overview table: FIFO_CONF_1. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 114 | 196 Register (0x43) FIFO_WM_0 Description: FIFO watermark level register (LSB) Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content fifo_watermark_level_7_0 FIFO_WM_0.fifo_watermark_level_7_0: (bit offset: 0, bit width: 8, access: read-write) LSB of the FIFO watermark level. Use this link to go back to the overview table: FIFO_WM_0. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 115 | 196 Register (0x44) FIFO_WM_1 Description: FIFO watermark level register (MSB) Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R/W R/W R/W Reset Value 0 0 0 0 0 1 0 0 Content reserved fifo_watermark_level_10_8 reserved: write 0x0. FIFO_WM_1.fifo_watermark_level_10_8: (bit offset: 0, bit width: 3, access: read-write) LSB of the FIFO watermark level. Use this link to go back to the overview table: FIFO_WM_1. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 116 | 196 Register (0x50) FEAT_ENG_CONF Description: feature engine (’feat_eng’) configuration register Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R R/W Reset Value 0 0 0 0 0 0 0 1 Content reserved feat_e... reserved: write 0x0. FEAT_ENG_CONF.feat_eng_ctrl: (bit offset: 0, bit width: 1, access: read-write) An enable/disable switch for the feature engine. The feature engine is internally reseted, once the engine is disabled and the enabled again. Following values can be set to or read from the field feat_eng_ctrl: Value Description 0b0 (0x0) the feature engine is disabled (and reset) 0b1 (0x1) the feature engine is enabled. Use this link to go back to the overview table: FEAT_ENG_CONF. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 117 | 196 Register (0x51) FEAT_ENG_STATUS Description: feature engine (’feat_eng’) status register Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R R Reset Value 0 0 0 0 0 0 0 0 reserved: write 0x0. FEAT_ENG_STATUS.feat_eng_halted: (bit offset: 0, bit width: 1, access: read-only) When this field equals 1, the feature engine is currently halted. This means that the "halt" instruction has been executed and that the processor waits for a wakeup trigger. FEAT_ENG_STATUS.feat_eng_running: (bit offset: 1, bit width: 1, access: read-only) When this field equals 1, the feature engine is currently executing code. FEAT_ENG_STATUS.host_gpr_update_pending: (bit offset: 2, bit width: 1, access: read-only) This field reads 1’b1 as long as an update of the host-owned GPRs is pending. . FEAT_ENG_STATUS.feat_eng_gpr_update_pending: (bit offset: 3, bit width: 1, access: read-only) This field reads 1’b1 as long as an update of the feature engine-owned GPRs is pending. . Use this link to go back to the overview table: FEAT_ENG_STATUS. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 118 | 196 Register (0x52) FEAT_ENG_GP_FLAGS Description: feature engine (’feat_eng’) general purpose flags Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R R Reset Value 0 0 0 0 0 0 0 0 Content reserved foc_ru... feat_init_stat reserved: write 0x0. FEAT_ENG_GP_FLAGS.feat_init_stat: (bit offset: 0, bit width: 2, access: read-only) Feature engine initialization status . Following values can be read from the field feat_init_stat: Value Description 0b00 (0x0) Feature engine is not initialized 0b01 (0x1) Feature engine is initialized 0b10 (0x2) Reserved 0b11 (0x3) Reserved FEAT_ENG_GP_FLAGS.foc_running: (bit offset: 2, bit width: 1, access: read-only) Bit is set to ’1’ if fast-offset com- pensation feature is being executed. Bit is cleared to ’0’ at the end of feature compensation. User should not change the accelerometer configuration while the feature is running. . Use this link to go back to the overview table: FEAT_ENG_GP_FLAGS. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 119 | 196 Register (0x53) FEAT_ENG_GPR_CONF Description: feature engine (’feat_eng’) general purpose register configuration register Bit 7 6 5 4 3 2 1 0 Read/Write R R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 reserved: write 0x0. FEAT_ENG_GPR_CONF.feat_eng_gpr_0_dir: (bit offset: 0, bit width: 1, access: read-write) host Direction for GP register 0 (’0’: feature engine has write access, ’1’: host has write access). This field is only writeable by the feature engine. FEAT_ENG_GPR_CONF.feat_eng_gpr_1_dir: (bit offset: 1, bit width: 1, access: read-write) host Direction for GP register 1 (’0’: feature engine has write access, ’1’: host has write access). This field is only writeable by the feature engine. FEAT_ENG_GPR_CONF.feat_eng_gpr_2_dir: (bit offset: 2, bit width: 1, access: read-write) host Direction for GP register 2 (’0’: feature engine has write access, ’1’: host has write access). This field is only writeable by the feature engine. FEAT_ENG_GPR_CONF.feat_eng_gpr_3_dir: (bit offset: 3, bit width: 1, access: read-write) host direction for GP register 3 (’0’: feature engine has write access, ’1’: host has write access). This field is only writeable by the feature engine. FEAT_ENG_GPR_CONF.feat_eng_gpr_4_dir: (bit offset: 4, bit width: 1, access: read-write) host direction for GP register 4 (’0’: feature engine has write access, ’1’: host has write access). This field is only writeable by the feature engine. FEAT_ENG_GPR_CONF.feat_eng_gpr_5_dir: (bit offset: 5, bit width: 1, access: read-write) host direction for GP register 5 (’0’: feature engine has write access, ’1’: host has write access). This field is only writeable by the feature engine. FEAT_ENG_GPR_CONF.feat_eng_gpr_6_dir: (bit offset: 6, bit width: 1, access: read-write) host direction for GP register 6 (’0’: feature engine has write access, ’1’: host has write access). This field is only writeable by the feature engine. Use this link to go back to the overview table: FEAT_ENG_GPR_CONF. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 120 | 196 Register (0x54) FEAT_ENG_GPR_CTRL Description: feature engine (’feat_eng’) general purpose register control register Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R W W Reset Value 0 0 0 0 0 0 0 0 Content reserved unlock˙.. update ˙.. reserved: write 0x0. FEAT_ENG_GPR_CTRL.update_gprs: (bit offset: 0, bit width: 1, access: write-only) If the host writes 1’b1 to this field, it requests that the host-owned first stage registers are copied to the host-owned second stage registers. If the feature engine writes 1’b1 to this field, it requests that the feature engine-owned first stage registers are copied to the feature engine-owned second stage registers. . FEAT_ENG_GPR_CTRL.unlock_gprs: (bit offset: 1, bit width: 1, access: write-only) If the host writes 1’b1 to this field, it releases the lock of the feature engine-owned GPRs and thus allows for an update of the feature engine-owned second stage registers. If the feature engine writes 1’b1 to this field, it releases the lock of the host-owned GPRs and thus allows for an update of the host-owned second stage registers. . Use this link to go back to the overview table: FEAT_ENG_GPR_CTRL. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 121 | 196 Register (0x55) FEAT_ENG_GPR_0 Description: feature engine (’feat_eng’) general purpose register 0 Bit 7 6 5 4 3 2 1 0 Read/Write R R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 reserved: write 0x0. FEAT_ENG_GPR_0.gen_int1_en: (bit offset: 0, bit width: 1, access: read-write) Enables generic interrupt 1 feature. FEAT_ENG_GPR_0.gen_int2_en: (bit offset: 1, bit width: 1, access: read-write) Enables generic interrupt 2 feature. FEAT_ENG_GPR_0.gen_int3_en: (bit offset: 2, bit width: 1, access: read-write) Enables generic interrupt 3 feature. FEAT_ENG_GPR_0.acc_foc_en: (bit offset: 3, bit width: 1, access: read-write) Enables accelerometer fast offset compensation feature. FEAT_ENG_GPR_0.tap_en: (bit offset: 4, bit width: 1, access: read-write) Enables tap feature. FEAT_ENG_GPR_0.vad_en: (bit offset: 5, bit width: 1, access: read-write) Enables voice activity detection feature. FEAT_ENG_GPR_0.self_wake_up_en: (bit offset: 6, bit width: 1, access: read-write) Enables self wake-up feature. Use this link to go back to the overview table: FEAT_ENG_GPR_0. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 122 | 196 Register (0x56) FEAT_ENG_GPR_1 Description: feature engine (’feat_eng’) general purpose register 1 Bit 7 6 5 4 3 2 1 0 Read/Write R R R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content reserved gen_int3_data_src gen_int2_data_src gen_int1_data_src reserved: write 0x0. FEAT_ENG_GPR_1.gen_int1_data_src: (bit offset: 0, bit width: 2, access: read-write) Data source selection for gen_int1 feature. Following values can be set to or read from the field gen_int1_data_src: Value Description 0b00 (0x0) Uses 50Hz filter data 0b01 (0x1) Uses 200Hz filter data 0b10 (0x2) Uses user filter data 0b11 (0x3) Uses 50Hz filter data. Same as data_src_1 FEAT_ENG_GPR_1.gen_int2_data_src: (bit offset: 2, bit width: 2, access: read-write) Data source selection for gen_int2 feature. Following values can be set to or read from the field gen_int2_data_src: Value Description 0b00 (0x0) Uses 50Hz filter data 0b01 (0x1) Uses 200Hz filter data 0b10 (0x2) Uses user filter data 0b11 (0x3) Uses 50Hz filter data. Same as data_src_1 FEAT_ENG_GPR_1.gen_int3_data_src: (bit offset: 4, bit width: 2, access: read-write) Data source selection for gen_int3 feature. Following values can be set to or read from the field gen_int3_data_src: Value Description 0b00 (0x0) Uses 50Hz filter data 0b01 (0x1) Uses 200Hz filter data 0b10 (0x2) Uses user filter data 0b11 (0x3) Uses 50Hz filter data. Same as data_src_1 Use this link to go back to the overview table: FEAT_ENG_GPR_1. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 123 | 196 Register (0x57) FEAT_ENG_GPR_2 Description: feature engine (’feat_eng’) general purpose register 2 Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R R Reset Value 0 0 0 0 0 0 0 0 reserved: write 0x0. FEAT_ENG_GPR_2.gen_int1_stat: (bit offset: 0, bit width: 1, access: read-only) Status of generic interrupt 1 feature. FEAT_ENG_GPR_2.gen_int2_stat: (bit offset: 1, bit width: 1, access: read-only) Status of generic interrupt 2 feature. FEAT_ENG_GPR_2.gen_int3_stat: (bit offset: 2, bit width: 1, access: read-only) Status of generic interrupt 3 feature. FEAT_ENG_GPR_2.self_wake_up_stat: (bit offset: 3, bit width: 1, access: read-only) Status of self wake-up feature. Following values can be read from the field self_wake_up_stat: Value Description 0b0 (0x0) Normal power mode 0b1 (0x1) low power mode FEAT_ENG_GPR_2.vad_stat: (bit offset: 4, bit width: 1, access: read-only) Status of vad feature. Use this link to go back to the overview table: FEAT_ENG_GPR_2. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 124 | 196 Register (0x5E) FEATURE_DATA_ADDR Description: feature engine (’feat_eng’) feature data start address Bit 7 6 5 4 3 2 1 0 Read/Write R R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content reserved feature_data_addr reserved: write 0x0. FEATURE_DATA_ADDR.feature_data_addr: (bit offset: 0, bit width: 7, access: read-write) Feature data address. For the address values see the extended memory map. Following values can be set to or read from the field feature_data_addr: © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 125 | 196 Value Description 0x2 address(0x2) to access register: feat_conf_err 0x3 address(0x3) to access register: GENERAL_SETTINGS_0 0x4 address(0x4) to access register: GENERIC_INTERRUPT1_1 0x5 address(0x5) to access register: GENERIC_INTERRUPT1_2 0x6 address(0x6) to access register: GENERIC_INTERRUPT1_3 0x7 address(0x7) to access register: GENERIC_INTERRUPT1_4 0x8 address(0x8) to access register: GENERIC_INTERRUPT1_5 0x9 address(0x9) to access register: GENERIC_INTERRUPT1_6 0xA address(0xa) to access register: GENERIC_INTERRUPT1_7 0xB address(0xb) to access register: GENERIC_INTERRUPT2_1 0xC address(0xc) to access register: GENERIC_INTERRUPT2_2 0xD address(0xd) to access register: GENERIC_INTERRUPT2_3 0xE address(0xe) to access register: GENERIC_INTERRUPT2_4 0xF address(0xf) to access register: GENERIC_INTERRUPT2_5 0x10 address(0x10) to access register: GENERIC_INTERRUPT2_6 0x11 address(0x11) to access register: GENERIC_INTERRUPT2_7 0x12 address(0x12) to access register: GENERIC_INTERRUPT3_1 0x13 address(0x13) to access register: GENERIC_INTERRUPT3_2 0x14 address(0x14) to access register: GENERIC_INTERRUPT3_3 0x15 address(0x15) to access register: GENERIC_INTERRUPT3_4 0x16 address(0x16) to access register: GENERIC_INTERRUPT3_5 0x17 address(0x17) to access register: GENERIC_INTERRUPT3_6 0x18 address(0x18) to access register: GENERIC_INTERRUPT3_7 0x19 address(0x19) to access register: TAP_DETECTOR_1 0x1A address(0x1a) to access register: TAP_DETECTOR_2 0x1B address(0x1b) to access register: TAP_DETECTOR_3 0x1C address(0x1c) to access register: VAD_CTRL 0x24 address(0x24) to access register: ACC_CONF_LOW_POWER 0x25 address(0x25) to access register: FOC_0 0x26 address(0x26) to access register: FOC_1 0x27 address(0x27) to access register: FOC_2 0x28 address(0x28) to access register: FOC_3 Use this link to go back to the overview table: FEATURE_DATA_ADDR. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 126 | 196 Register (0x5F) FEATURE_DATA_TX Description: feature engine (’feat_eng’) feature data Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content feature_data FEATURE_DATA_TX.feature_data: (bit offset: 0, bit width: 8, access: read-write) The data port associated with feature_data_addr. During burst read/write operations on this address the address increment stops and the burst operation can be used to read/write multiple feature_data words. See the extendend memory map for details. Use this link to go back to the overview table: FEATURE_DATA_TX. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 127 | 196 Register (0x70) ACC_OFFSET_0 Description: Offset compensation value (x-axis) LSB Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content acc_doff_x_7_0 ACC_OFFSET_0.acc_doff_x_7_0: (bit offset: 0, bit width: 8, access: read-write) Accelerometer compensation value value is independent of the range setting. To disable the offset compensation, a value of 0x0 has to be written to this field.The compensation offset values are not persistent and must be written each time after power-up or reset of the device. Use this link to go back to the overview table: ACC_OFFSET_0. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 128 | 196 Register (0x71) ACC_OFFSET_1 Description: Offset compensation value (x-axis) MSB Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R R/W Reset Value 0 0 0 0 0 0 0 0 Content reserved acc_do... reserved: write 0x0. ACC_OFFSET_1.acc_doff_x_8: (bit offset: 0, bit width: 1, access: read-write) Highest bit of the acc_doff_x field. See details at description of previous register field acc_doff_x_7_0. Use this link to go back to the overview table: ACC_OFFSET_1. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 129 | 196 Register (0x72) ACC_OFFSET_2 Description: Offset compensation value (y-axis) LSB Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content acc_doff_y_7_0 ACC_OFFSET_2.acc_doff_y_7_0: (bit offset: 0, bit width: 8, access: read-write) Accelerometer compensation value value is independent of the range setting. To disable the offset compensation, a value of 0x0 has to be written to this field.The compensation offset values are not persistent and must be written each time after power-up or reset of the device. Use this link to go back to the overview table: ACC_OFFSET_2. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 130 | 196 Register (0x73) ACC_OFFSET_3 Description: Offset compensation value (y-axis) MSB Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R R/W Reset Value 0 0 0 0 0 0 0 0 Content reserved acc_do... reserved: write 0x0. ACC_OFFSET_3.acc_doff_y_8: (bit offset: 0, bit width: 1, access: read-write) Highest bit of the acc_doff_y field. See details at description of previous register field acc_doff_y_7_0. Use this link to go back to the overview table: ACC_OFFSET_3. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 131 | 196 Register (0x74) ACC_OFFSET_4 Description: Offset compensation value (z-axis) LSB Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content acc_doff_z_7_0 ACC_OFFSET_4.acc_doff_z_7_0: (bit offset: 0, bit width: 8, access: read-write) Accelerometer compensation value value is independent of the range setting. To disable the offset compensation, a value of 0x0 has to be written to this field.The compensation offset values are not persistent and must be written each time after power-up or reset of the device. Use this link to go back to the overview table: ACC_OFFSET_4. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 132 | 196 Register (0x75) ACC_OFFSET_5 Description: Offset compensation value (z-axis) MSB Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R R/W Reset Value 0 0 0 0 0 0 0 0 Content reserved acc_do... reserved: write 0x0. ACC_OFFSET_5.acc_doff_z_8: (bit offset: 0, bit width: 1, access: read-write) Highest bit of the acc_doff_z field. See details at description of previous register field acc_doff_z_7_0. Use this link to go back to the overview table: ACC_OFFSET_5. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 133 | 196 Register (0x76) ACC_SELF_TEST Description: Select NORMAL/SELF_TEST mode and test data. If you write to this register, the ACC data path is reset. Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content reserved self_t... self_test reserved: write 0x0. ACC_SELF_TEST.self_test: (bit offset: 0, bit width: 1, access: read-write) Enable flag for the self test mode. Following values can be set to or read from the field self_test: Value Description 0b0 (0x0) normal operation mode 0b1 (0x1) built-in test excitation mode ACC_SELF_TEST.self_test_sign: (bit offset: 1, bit width: 1, access: read-write) Select sign of self test excitation. Following values can be set to or read from the field self_test_sign: Value Description 0b0 (0x0) negative 0b1 (0x1) positive Use this link to go back to the overview table: ACC_SELF_TEST. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 134 | 196 Register (0x7E) CMD Description: Command Register Bit 7 6 5 4 3 2 1 0 Read/Write W W W W W W W W Reset Value 0 0 0 0 0 0 0 0 Content cmd CMD.cmd: (bit offset: 0, bit width: 8, access: write-only) Available commands (Note: Register will always read as 0x00):. Following values can be set to the field cmd: Value Description 0x0 reserved. No command. 0xB6 Triggers a reset, all user configuration settings are overwritten with their default state. If this register is set using I2C, an ACK will NOT be transmitted to the host Use this link to go back to the overview table: CMD. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 135 | 196
6.2 Extended Register Map Description
The extended configuration and input/output of the feature engine has to be done through the feature engine data interface. The data can be read from or written through FEATURE_DATA_TX.feature_data to an address in the extended register map configured in FEATURE_DATA_ADDR.feature_data_addr by a data exchange transaction. For more details on how to access the extended register map, please refer to the example no3 in the quick start guide section chapter 3. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 136 | 196
6.2.1 Extended Register Map Overview
The Table 38 provides an overview of the extended register map of the device. Table 38: Extended register map overview Legend Read-only Read/Write Write-only Reserved Addr Name Reset value bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 ... - - reserved 0x04 GENERIC_INTERRUPT1_1 0xE00C axis_sel comb_sel slope_thres 0x05 GENERIC_INTERRUPT1_2 0x0C04 reserved acc_ref_up criteri... hysteresis 0x06 GENERIC_INTERRUPT1_3 0x600A wait_time duration 0x07 GENERIC_INTERRUPT1_4 0x0040 reserved quiet_time 0x08 GENERIC_INTERRUPT1_5 0x0000 ref_acc_x 0x09 GENERIC_INTERRUPT1_6 0x0000 ref_acc_y 0x0A GENERIC_INTERRUPT1_7 0x0800 ref_acc_z 0x0B GENERIC_INTERRUPT2_1 0xF008 axis_sel comb_sel slope_thres 0x0C GENERIC_INTERRUPT2_2 0x0801 reserved acc_ref_up criteri... hysteresis 0x0D GENERIC_INTERRUPT2_3 0x600A wait_time duration 0x0E GENERIC_INTERRUPT2_4 0x0040 reserved quiet_time 0x0F GENERIC_INTERRUPT2_5 0x0000 ref_acc_x 0x10 GENERIC_INTERRUPT2_6 0x0000 ref_acc_y 0x11 GENERIC_INTERRUPT2_7 0x0800 ref_acc_z 0x12 GENERIC_INTERRUPT3_1 0xF082 axis_sel comb_sel slope_thres 0x13 GENERIC_INTERRUPT3_2 0x1008 reserved acc_ref_up criteri... hysteresis 0x14 GENERIC_INTERRUPT3_3 0x4003 wait_time duration 0x15 GENERIC_INTERRUPT3_4 0x0040 reserved quiet_time 0x16 GENERIC_INTERRUPT3_5 0x0000 ref_acc_x 0x17 GENERIC_INTERRUPT3_6 0x0000 ref_acc_y 0x18 GENERIC_INTERRUPT3_7 0x0000 ref_acc_z 0x19 TAP_DETECTOR_1 0x0776 reserved t_tap_en d_tap_en s_tap_en mode max_peaks_for_tap wait_f... axis_sel 0x1A TAP_DETECTOR_2 0x66EE max_gesture_dur tap_peak_thres 0x1B TAP_DETECTOR_3 0x6864 quite_time_after_gesture min_quite_dur_between_taps tap_shock_settling_dur max_dur_between_peaks 0x1C VAD_CTRL 0x011F reserved en_vad_z en_vad_y en_vad_x ... - - reserved 0x24 ACC_CONF_LOW_POWER 0x0025 reserved acc_pe... acc_bwp acc_odr 0x25 FOC_0 0x0000 reserved foc_of... © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 137 | 196 Table 38: Extended register map overview (continued) Legend Read-only Read/Write Write-only Reserved Addr Name Reset value bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 0x26 FOC_1 0x0000 reserved foc_of... 0x27 FOC_2 0x0000 reserved foc_of... 0x28 FOC_3 0x0000 reserved foc_axis_1g foc_filter_coeff foc_ap... © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 138 | 196
6.2.2 Extended Register Map Details
Register (0x02) FEAT_CONF_ERR Description: Bits reflects the error status of accel config for features Bit 15 14 13 12 11 10 9 8 Read/Write R R R R R R R R Reset Value 0 0 0 0 0 0 0 0 Content reserved Bit 7 6 5 4 3 2 1 0 Read/Write R R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 reserved: write 0x0. FEAT_CONF_ERR.gen_int1_conf_err: (bit offset: 0, bit width: 1, access: read-write) Internal filter cannot produce enough samples for generic interrupt 1 feature, or this feature is enabled in parallel to VAD feature. Following values can be set to or read from the field gen_int1_conf_err: Value Description 0b0 (0x0) no error 0b1 (0x1) error FEAT_CONF_ERR.gen_int2_conf_err: (bit offset: 1, bit width: 1, access: read-write) Internal filter cannot produce enough samples for generic interrupt 2 feature, or this feature is enabled in parallel to VAD feature. Following values can be set to or read from the field gen_int2_conf_err: Value Description 0b0 (0x0) no error 0b1 (0x1) error FEAT_CONF_ERR.gen_int3_conf_err: (bit offset: 2, bit width: 1, access: read-write) Internal filter cannot produce enough samples for generic interrupt 3 feature, or this feature is enabled in parallel to VAD feature. Following values can be set to or read from the field gen_int3_conf_err: Value Description 0b0 (0x0) no error 0b1 (0x1) error © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 139 | 196 FEAT_CONF_ERR.acc_foc_conf_err: (bit offset: 3, bit width: 1, access: read-write) Internal filter cannot produce enough samples for accelerometer fast-offset compensation feature. Following values can be set to or read from the field acc_foc_conf_err: Value Description 0b0 (0x0) no error 0b1 (0x1) error FEAT_CONF_ERR.tap_conf_err: (bit offset: 4, bit width: 1, access: read-write) Internal filter cannot produce enough samples for tap detection feature, or this feature is enabled in parallel to VAD feature. Following values can be set to or read from the field tap_conf_err: Value Description 0b0 (0x0) no error 0b1 (0x1) error FEAT_CONF_ERR.vad_conf_err: (bit offset: 5, bit width: 1, access: read-write) VAD feature is enabled in parallel to generic interrupt or tap feature. Following values can be set to or read from the field vad_conf_err: Value Description 0b0 (0x0) no error 0b1 (0x1) error FEAT_CONF_ERR.self_wake_up_err: (bit offset: 6, bit width: 1, access: read-write) Self wake-up configuration is invalid. Following values can be set to or read from the field self_wake_up_err: Value Description 0b0 (0x0) no error 0b1 (0x1) error Use this link to go back to the overview table: FEAT_CONF_ERR. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 140 | 196 Register (0x03) GENERAL_SETTINGS_0 Description: Configuration parameters common across all features Bit 15 14 13 12 11 10 9 8 Read/Write R R R R R R R R/W Reset Value 0 0 0 0 0 0 0 0 Content reserved vad_ac... Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 reserved: write 0x0. GENERAL_SETTINGS_0.reserved: (bit offset: 0, bit width: 1, access: read-write) Reserved. GENERAL_SETTINGS_0.feat_axis_ex: (bit offset: 1, bit width: 3, access: read-write) Axes exchange scheme that is applied in host software. Following values can be set to or read from the field feat_axis_ex: Value Description 0b000 (0x0) X(feat)=x(datapath),Y(feat)=y(datapath),Z(feat)=z(datapath) 0b001 (0x1) X(feat)=y(datapath),Y(feat)=x(datapath),Z(feat)=z(datapath) 0b010 (0x2) X(feat)=x(datapath),Y(feat)=z(datapath),Z(feat)=y(datapath) 0b011 (0x3) X(feat)=z(datapath),Y(feat)=x(datapath),Z(feat)=y(datapath) 0b100 (0x4) X(feat)=y(datapath),Y(feat)=z(datapath),Z(feat)=x(datapath) 0b101 (0x5) X(feat)=z(datapath),Y(feat)=y(datapath),Z(feat)=x(datapath) 0b110 (0x6) Same as default_0 0b111 (0x7) Same as default_0 GENERAL_SETTINGS_0.feat_x_inv: (bit offset: 4, bit width: 1, access: read-write) Invert polarity of X-axis data after axis exchange. Following values can be set to or read from the field feat_x_inv: Value Description 0b0 (0x0) X(feat) remains unchanged 0b1 (0x1) X(feat) = -X(feat) GENERAL_SETTINGS_0.feat_y_inv: (bit offset: 5, bit width: 1, access: read-write) Invert polarity of Y-axis data after axis exchange. Following values can be set to or read from the field feat_y_inv: © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 141 | 196 Value Description 0b0 (0x0) Y(feat) remains unchanged 0b1 (0x1) Y(feat) = -Y(feat) GENERAL_SETTINGS_0.feat_z_inv: (bit offset: 6, bit width: 1, access: read-write) Invert polarity of Z-axis data after axis exchange. Following values can be set to or read from the field feat_z_inv: Value Description 0b0 (0x0) Z(feat) remains unchanged 0b1 (0x1) Z(feat) = -Z(feat) GENERAL_SETTINGS_0.vad_acc_data_src: (bit offset: 7, bit width: 2, access: read-write) This setting should only be set, if VAD feature is used. It should be set before enabling VAD. This setting defines, what will be the source for the ACC_DATA_0-5 registers during VAD. Since VAD feature reconfigures the signal path, for ACC_DATA registers the ACC_CONF is not valid anymore. Following values can be set to or read from the field vad_acc_data_src: Value Description 0b00 (0x0) ACC Data with 1.6kHz ODR and filtered for VAD. (Not recommended) 0b01 (0x1) ACC Data with 1.6kHz ODR and filtered for VAD. (Not recommended). Same as value ’0’=hipass_1. 0b10 (0x2) ACC Data with 50Hz. Data is averaged for downsampling. 0b11 (0x3) ACC Data with 200Hz. Data is averaged for downsampling. Use this link to go back to the overview table: GENERAL_SETTINGS_0. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 142 | 196 Register (0x04) GENERIC_INTERRUPT1_1 Description: Configuration of acceleration slope threshold, axis enabling and evaluation condition between axis Bit 15 14 13 12 11 10 9 8 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 1 1 1 0 0 0 0 0 Content axis_sel comb_sel slope_thres Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 1 1 0 0 Content slope_thres GENERIC_INTERRUPT1_1.slope_thres: (bit offset: 0, bit width: 12, access: read-write) Minimum/maximum slope of acceleration signal for interrupt detection based on selected motion criterion. . The field slope_thres has the following properties: Property Value Bitwidth 12 Sign unsigned Unit g Scaling 512.0 Default value 12/512 Range Min=0.0, Max=7.998046875 GENERIC_INTERRUPT1_1.comb_sel: (bit offset: 12, bit width: 1, access: read-write) Logical evaluation condition between enabled axis status. Following values can be set to or read from the field comb_sel: Value Description 0b0 (0x0) One of the enabled axis should meet the set condition 0b1 (0x1) All of the enabled axis should meet the set condition The field comb_sel has the following properties: Property Value Bitwidth 1 Default value 0 Range Min=0, Max=1 GENERIC_INTERRUPT1_1.axis_sel: (bit offset: 13, bit width: 3, access: read-write) Enabling of axis for generic © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 143 | 196 interrupt detection. The field axis_sel has the following properties: Property Value Bitwidth 3 Default value 7 Range Min=0, Max=7 Use this link to go back to the overview table: GENERIC_INTERRUPT1_1. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 144 | 196 Register (0x05) GENERIC_INTERRUPT1_2 Description: Configuration for hysteresis of acceleration slope, motion criterion selection and reference update mode selection. Bit 15 14 13 12 11 10 9 8 Read/Write R R R R/W R/W R/W R/W R/W Reset Value 0 0 0 0 1 1 0 0 Content reserved acc_ref_up criteri... hysteresis Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 1 0 0 Content hysteresis reserved: write 0x0. GENERIC_INTERRUPT1_2.hysteresis: (bit offset: 0, bit width: 10, access: read-write) Hysteresis for the slope of the acceleration signal. The field hysteresis has the following properties: Property Value Bitwidth 10 Sign unsigned Unit g Scaling 512.0 Default value 4/512 Range Min=0.0, Max=1.998046875 GENERIC_INTERRUPT1_2.criterion_sel: (bit offset: 10, bit width: 1, access: read-write) Selection of motion criterion Following values can be set to or read from the field criterion_sel: Value Description 0b0 (0x0) Evaluate the condition for stationary state of the device 0b1 (0x1) Evaluate the condition for motion state of the device The field criterion_sel has the following properties: Property Value Bitwidth 1 Default value 1 Range Min=0, Max=1 © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 145 | 196 GENERIC_INTERRUPT1_2.acc_ref_up: (bit offset: 11, bit width: 2, access: read-write) Mode of the acceleration reference update. . Following values can be set to or read from the field acc_ref_up: Value Description 0b00 (0x0) On detection of the event 0b01 (0x1) On update of acceleration signal 0b10 (0x2) Manually update by host The field acc_ref_up has the following properties: Property Value Bitwidth 2 Default value 1 Range Min=0, Max=2 Use this link to go back to the overview table: GENERIC_INTERRUPT1_2. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 146 | 196 Register (0x06) GENERIC_INTERRUPT1_3 Description: Configuration of timing related parameters for generic interrupt detection Bit 15 14 13 12 11 10 9 8 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 1 1 0 0 0 0 0 Content wait_time duration Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 1 0 1 0 Content duration GENERIC_INTERRUPT1_3.duration: (bit offset: 0, bit width: 13, access: read-write) Minimum duration for which the selected criterion is true for interrupt detection. . The field duration has the following properties: Property Value Bitwidth 13 Sign unsigned Unit s Scaling 50.0 Default value 0.2 Range Min=0.0, Max=163.82 GENERIC_INTERRUPT1_3.wait_time: (bit offset: 13, bit width: 3, access: read-write) Wait time for clearing the event after condition evaluates false. The field wait_time has the following properties: Property Value Bitwidth 3 Sign unsigned Unit s Scaling 50.0 Default value 0.1 Range Min=0.0, Max=0.14 Use this link to go back to the overview table: GENERIC_INTERRUPT1_3. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 147 | 196 Register (0x07) GENERIC_INTERRUPT1_4 Description: Configuration for quiet time between interrupts Bit 15 14 13 12 11 10 9 8 Read/Write R R R R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content reserved quiet_time Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 1 0 0 0 0 0 0 Content quiet_time reserved: write 0x0. GENERIC_INTERRUPT1_4.quiet_time: (bit offset: 0, bit width: 13, access: read-write) Quiet time after an interrupt where no additional interrupts are detected . The field quiet_time has the following properties: Property Value Bitwidth 13 Sign unsigned Unit s Scaling 50.0 Default value 1.28 Range Min=0.0, Max=163.82 Use this link to go back to the overview table: GENERIC_INTERRUPT1_4. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 148 | 196 Register (0x08) GENERIC_INTERRUPT1_5 Description: Manually set acceleration signal reference for x-axis Bit 15 14 13 12 11 10 9 8 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content ref_acc_x Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content ref_acc_x GENERIC_INTERRUPT1_5.ref_acc_x: (bit offset: 0, bit width: 16, access: read-write) Reference acceleration signal for x-axis . The field ref_acc_x has the following properties: Property Value Bitwidth 16 Sign signed Unit g Scaling 2048.0 Default value 0.0 Range Min=-16.0, Max=15.99951171875 Use this link to go back to the overview table: GENERIC_INTERRUPT1_5. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 149 | 196 Register (0x09) GENERIC_INTERRUPT1_6 Description: Manually set acceleration signal reference for y-axis Bit 15 14 13 12 11 10 9 8 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content ref_acc_y Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content ref_acc_y GENERIC_INTERRUPT1_6.ref_acc_y: (bit offset: 0, bit width: 16, access: read-write) Reference acceleration signal for y-axis . The field ref_acc_y has the following properties: Property Value Bitwidth 16 Sign signed Unit g Scaling 2048.0 Default value 0.0 Range Min=-16.0, Max=15.99951171875 Use this link to go back to the overview table: GENERIC_INTERRUPT1_6. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 150 | 196 Register (0x0A) GENERIC_INTERRUPT1_7 Description: Manually set acceleration signal reference for z-axis Bit 15 14 13 12 11 10 9 8 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 1 0 0 0 Content ref_acc_z Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content ref_acc_z GENERIC_INTERRUPT1_7.ref_acc_z: (bit offset: 0, bit width: 16, access: read-write) Reference acceleration signal for z-axis . The field ref_acc_z has the following properties: Property Value Bitwidth 16 Sign signed Unit g Scaling 2048.0 Default value 1.0 Range Min=-16.0, Max=15.99951171875 Use this link to go back to the overview table: GENERIC_INTERRUPT1_7. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 151 | 196 Register (0x0B) GENERIC_INTERRUPT2_1 Description: Configuration of acceleration slope threshold, axis enabling and evaluation condition between axis Bit 15 14 13 12 11 10 9 8 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 1 1 1 1 0 0 0 0 Content axis_sel comb_sel slope_thres Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 1 0 0 0 Content slope_thres GENERIC_INTERRUPT2_1.slope_thres: (bit offset: 0, bit width: 12, access: read-write) Minimum/maximum slope of acceleration signal for interrupt detection based on selected motion criterion. . The field slope_thres has the following properties: Property Value Bitwidth 12 Sign unsigned Unit g Scaling 512.0 Default value 8/512 Range Min=0.0, Max=7.998046875 GENERIC_INTERRUPT2_1.comb_sel: (bit offset: 12, bit width: 1, access: read-write) Logical evaluation condition between enabled axis status. Following values can be set to or read from the field comb_sel: Value Description 0b0 (0x0) One of the enabled axis should meet the set condition 0b1 (0x1) All of the enabled axis should meet the set condition The field comb_sel has the following properties: Property Value Bitwidth 1 Default value 1 Range Min=0, Max=1 GENERIC_INTERRUPT2_1.axis_sel: (bit offset: 13, bit width: 3, access: read-write) Enabling of axis for generic © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 152 | 196 interrupt detection. The field axis_sel has the following properties: Property Value Bitwidth 3 Default value 7 Range Min=0, Max=7 Use this link to go back to the overview table: GENERIC_INTERRUPT2_1. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 153 | 196 Register (0x0C) GENERIC_INTERRUPT2_2 Description: Configuration for hysteresis of acceleration slope, motion criterion selection and reference update mode selection. Bit 15 14 13 12 11 10 9 8 Read/Write R R R R/W R/W R/W R/W R/W Reset Value 0 0 0 0 1 0 0 0 Content reserved acc_ref_up criteri... hysteresis Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 1 Content hysteresis reserved: write 0x0. GENERIC_INTERRUPT2_2.hysteresis: (bit offset: 0, bit width: 10, access: read-write) Hysteresis for the slope of the acceleration signal. The field hysteresis has the following properties: Property Value Bitwidth 10 Sign unsigned Unit g Scaling 512.0 Default value 1/512 Range Min=0.0, Max=1.998046875 GENERIC_INTERRUPT2_2.criterion_sel: (bit offset: 10, bit width: 1, access: read-write) Selection of motion criterion Following values can be set to or read from the field criterion_sel: Value Description 0b0 (0x0) Evaluate the condition for stationary state of the device 0b1 (0x1) Evaluate the condition for motion state of the device The field criterion_sel has the following properties: Property Value Bitwidth 1 Default value 0 Range Min=0, Max=1 © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 154 | 196 GENERIC_INTERRUPT2_2.acc_ref_up: (bit offset: 11, bit width: 2, access: read-write) Mode of the acceleration reference update. . Following values can be set to or read from the field acc_ref_up: Value Description 0b00 (0x0) On detection of the event 0b01 (0x1) On update of acceleration signal 0b10 (0x2) Manually update by host The field acc_ref_up has the following properties: Property Value Bitwidth 2 Default value 1 Range Min=0, Max=2 Use this link to go back to the overview table: GENERIC_INTERRUPT2_2. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 155 | 196 Register (0x0D) GENERIC_INTERRUPT2_3 Description: Configuration of timing related parameters for generic interrupt detection Bit 15 14 13 12 11 10 9 8 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 1 1 0 0 0 0 0 Content wait_time duration Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 1 0 1 0 Content duration GENERIC_INTERRUPT2_3.duration: (bit offset: 0, bit width: 13, access: read-write) Minimum duration for which the selected criterion is true for interrupt detection. . The field duration has the following properties: Property Value Bitwidth 13 Sign unsigned Unit s Scaling 50.0 Default value 0.2 Range Min=0.0, Max=163.82 GENERIC_INTERRUPT2_3.wait_time: (bit offset: 13, bit width: 3, access: read-write) Wait time for clearing the event after condition evaluates false. The field wait_time has the following properties: Property Value Bitwidth 3 Sign unsigned Unit s Scaling 50.0 Default value 0.1 Range Min=0.0, Max=0.14 Use this link to go back to the overview table: GENERIC_INTERRUPT2_3. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 156 | 196 Register (0x0E) GENERIC_INTERRUPT2_4 Description: Configuration for quiet time between interrupts Bit 15 14 13 12 11 10 9 8 Read/Write R R R R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content reserved quiet_time Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 1 0 0 0 0 0 0 Content quiet_time reserved: write 0x0. GENERIC_INTERRUPT2_4.quiet_time: (bit offset: 0, bit width: 13, access: read-write) Quiet time after an interrupt where no additional interrupts are detected . The field quiet_time has the following properties: Property Value Bitwidth 13 Sign unsigned Unit s Scaling 50.0 Default value 1.28 Range Min=0.0, Max=163.82 Use this link to go back to the overview table: GENERIC_INTERRUPT2_4. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 157 | 196 Register (0x0F) GENERIC_INTERRUPT2_5 Description: Manually set acceleration signal reference for x-axis Bit 15 14 13 12 11 10 9 8 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content ref_acc_x Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content ref_acc_x GENERIC_INTERRUPT2_5.ref_acc_x: (bit offset: 0, bit width: 16, access: read-write) Reference acceleration signal for x-axis . The field ref_acc_x has the following properties: Property Value Bitwidth 16 Sign signed Unit g Scaling 2048.0 Default value 0.0 Range Min=-16.0, Max=15.99951171875 Use this link to go back to the overview table: GENERIC_INTERRUPT2_5. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 158 | 196 Register (0x10) GENERIC_INTERRUPT2_6 Description: Manually set acceleration signal reference for y-axis Bit 15 14 13 12 11 10 9 8 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content ref_acc_y Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content ref_acc_y GENERIC_INTERRUPT2_6.ref_acc_y: (bit offset: 0, bit width: 16, access: read-write) Reference acceleration signal for y-axis . The field ref_acc_y has the following properties: Property Value Bitwidth 16 Sign signed Unit g Scaling 2048.0 Default value 0.0 Range Min=-16.0, Max=15.99951171875 Use this link to go back to the overview table: GENERIC_INTERRUPT2_6. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 159 | 196 Register (0x11) GENERIC_INTERRUPT2_7 Description: Manually set acceleration signal reference for z-axis Bit 15 14 13 12 11 10 9 8 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 1 0 0 0 Content ref_acc_z Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content ref_acc_z GENERIC_INTERRUPT2_7.ref_acc_z: (bit offset: 0, bit width: 16, access: read-write) Reference acceleration signal for z-axis . The field ref_acc_z has the following properties: Property Value Bitwidth 16 Sign signed Unit g Scaling 2048.0 Default value 1.0 Range Min=-16.0, Max=15.99951171875 Use this link to go back to the overview table: GENERIC_INTERRUPT2_7. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 160 | 196 Register (0x12) GENERIC_INTERRUPT3_1 Description: Configuration of acceleration slope threshold, axis enabling and evaluation condition between axis Bit 15 14 13 12 11 10 9 8 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 1 1 1 1 0 0 0 0 Content axis_sel comb_sel slope_thres Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 1 0 0 0 0 0 1 0 Content slope_thres GENERIC_INTERRUPT3_1.slope_thres: (bit offset: 0, bit width: 12, access: read-write) Minimum/maximum slope of acceleration signal for interrupt detection based on selected motion criterion. . The field slope_thres has the following properties: Property Value Bitwidth 12 Sign unsigned Unit g Scaling 512.0 Default value 130/512 Range Min=0.0, Max=7.998046875 GENERIC_INTERRUPT3_1.comb_sel: (bit offset: 12, bit width: 1, access: read-write) Logical evaluation condition between enabled axis status. Following values can be set to or read from the field comb_sel: Value Description 0b0 (0x0) One of the enabled axis should meet the set condition 0b1 (0x1) All of the enabled axis should meet the set condition The field comb_sel has the following properties: Property Value Bitwidth 1 Default value 1 Range Min=0, Max=1 GENERIC_INTERRUPT3_1.axis_sel: (bit offset: 13, bit width: 3, access: read-write) Enabling of axis for generic © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 161 | 196 interrupt detection. The field axis_sel has the following properties: Property Value Bitwidth 3 Default value 7 Range Min=0, Max=7 Use this link to go back to the overview table: GENERIC_INTERRUPT3_1. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 162 | 196 Register (0x13) GENERIC_INTERRUPT3_2 Description: Configuration for hysteresis of acceleration slope, motion criterion selection and reference update mode selection. Bit 15 14 13 12 11 10 9 8 Read/Write R R R R/W R/W R/W R/W R/W Reset Value 0 0 0 1 0 0 0 0 Content reserved acc_ref_up criteri... hysteresis Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 1 0 0 0 Content hysteresis reserved: write 0x0. GENERIC_INTERRUPT3_2.hysteresis: (bit offset: 0, bit width: 10, access: read-write) Hysteresis for the slope of the acceleration signal. The field hysteresis has the following properties: Property Value Bitwidth 10 Sign unsigned Unit g Scaling 512.0 Default value 8/512 Range Min=0.0, Max=1.998046875 GENERIC_INTERRUPT3_2.criterion_sel: (bit offset: 10, bit width: 1, access: read-write) Selection of motion criterion Following values can be set to or read from the field criterion_sel: Value Description 0b0 (0x0) Evaluate the condition for stationary state of the device 0b1 (0x1) Evaluate the condition for motion state of the device The field criterion_sel has the following properties: Property Value Bitwidth 1 Default value 0 Range Min=0, Max=1 © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 163 | 196 GENERIC_INTERRUPT3_2.acc_ref_up: (bit offset: 11, bit width: 2, access: read-write) Mode of the acceleration reference update. . Following values can be set to or read from the field acc_ref_up: Value Description 0b00 (0x0) On detection of the event 0b01 (0x1) On update of acceleration signal 0b10 (0x2) Manually update by host The field acc_ref_up has the following properties: Property Value Bitwidth 2 Default value 2 Range Min=0, Max=2 Use this link to go back to the overview table: GENERIC_INTERRUPT3_2. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 164 | 196 Register (0x14) GENERIC_INTERRUPT3_3 Description: Configuration of timing related parameters for generic interrupt detection Bit 15 14 13 12 11 10 9 8 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 1 0 0 0 0 0 0 Content wait_time duration Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 1 1 Content duration GENERIC_INTERRUPT3_3.duration: (bit offset: 0, bit width: 13, access: read-write) Minimum duration for which the selected criterion is true for interrupt detection. . The field duration has the following properties: Property Value Bitwidth 13 Sign unsigned Unit s Scaling 50.0 Default value 0.06 Range Min=0.0, Max=163.82 GENERIC_INTERRUPT3_3.wait_time: (bit offset: 13, bit width: 3, access: read-write) Wait time for clearing the event after condition evaluates false. The field wait_time has the following properties: Property Value Bitwidth 3 Sign unsigned Unit s Scaling 50.0 Default value 0.04 Range Min=0.0, Max=0.14 Use this link to go back to the overview table: GENERIC_INTERRUPT3_3. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 165 | 196 Register (0x15) GENERIC_INTERRUPT3_4 Description: Configuration for quiet time between interrupts Bit 15 14 13 12 11 10 9 8 Read/Write R R R R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content reserved quiet_time Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 1 0 0 0 0 0 0 Content quiet_time reserved: write 0x0. GENERIC_INTERRUPT3_4.quiet_time: (bit offset: 0, bit width: 13, access: read-write) Quiet time after an interrupt where no additional interrupts are detected . The field quiet_time has the following properties: Property Value Bitwidth 13 Sign unsigned Unit s Scaling 50.0 Default value 1.28 Range Min=0.0, Max=163.82 Use this link to go back to the overview table: GENERIC_INTERRUPT3_4. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 166 | 196 Register (0x16) GENERIC_INTERRUPT3_5 Description: Manually set acceleration signal reference for x-axis Bit 15 14 13 12 11 10 9 8 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content ref_acc_x Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content ref_acc_x GENERIC_INTERRUPT3_5.ref_acc_x: (bit offset: 0, bit width: 16, access: read-write) Reference acceleration signal for x-axis . The field ref_acc_x has the following properties: Property Value Bitwidth 16 Sign signed Unit g Scaling 2048.0 Default value 0.0 Range Min=-16.0, Max=15.99951171875 Use this link to go back to the overview table: GENERIC_INTERRUPT3_5. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 167 | 196 Register (0x17) GENERIC_INTERRUPT3_6 Description: Manually set acceleration signal reference for y-axis Bit 15 14 13 12 11 10 9 8 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content ref_acc_y Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content ref_acc_y GENERIC_INTERRUPT3_6.ref_acc_y: (bit offset: 0, bit width: 16, access: read-write) Reference acceleration signal for y-axis . The field ref_acc_y has the following properties: Property Value Bitwidth 16 Sign signed Unit g Scaling 2048.0 Default value 0.0 Range Min=-16.0, Max=15.99951171875 Use this link to go back to the overview table: GENERIC_INTERRUPT3_6. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 168 | 196 Register (0x18) GENERIC_INTERRUPT3_7 Description: Manually set acceleration signal reference for z-axis Bit 15 14 13 12 11 10 9 8 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content ref_acc_z Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content ref_acc_z GENERIC_INTERRUPT3_7.ref_acc_z: (bit offset: 0, bit width: 16, access: read-write) Reference acceleration signal for z-axis . The field ref_acc_z has the following properties: Property Value Bitwidth 16 Sign signed Unit g Scaling 2048.0 Default value 0.0 Range Min=-16.0, Max=15.99951171875 Use this link to go back to the overview table: GENERIC_INTERRUPT3_7. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 169 | 196 Register (0x19) TAP_DETECTOR_1 Description: Selection of the tap detection axis, gesture reporting approach, detection mode Bit 15 14 13 12 11 10 9 8 Read/Write R R R R R R/W R/W R/W Reset Value 0 0 0 0 0 1 1 1 Content reserved t_tap_en d_tap_en s_tap_en Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 1 1 1 0 1 1 0 Content mode max_peaks_for_tap wait_f... axis_sel reserved: write 0x0. TAP_DETECTOR_1.axis_sel: (bit offset: 0, bit width: 2, access: read-write) Dominant sensing axis of accelerometer along which tap gesture is performed. Following values can be set to or read from the field axis_sel: Value Description 0b00 (0x0) Use x-axis for tap detection 0b01 (0x1) Use y-axis for tap detection 0b10 (0x2) Use z-axis for tap detection 0b11 (0x3) Use z-axis for tap detection The field axis_sel has the following properties: Property Value Bitwidth 2 Default value 2 Range Min=0, Max=2 TAP_DETECTOR_1.wait_for_timeout: (bit offset: 2, bit width: 1, access: read-write) Perform gesture confirmation with wait time set by max_gesture_dur. Following values can be set to or read from the field wait_for_timeout: Value Description 0b0 (0x0) Report the gesture when detected 0b1 (0x1) Report the gesture after confirmation The field wait_for_timeout has the following properties: © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 170 | 196 Property Value Bitwidth 1 Default value 1 Range Min=0, Max=1 TAP_DETECTOR_1.max_peaks_for_tap: (bit offset: 3, bit width: 3, access: read-write) Maximum number of threshold crossing expected around a tap. The field max_peaks_for_tap has the following properties: Property Value Bitwidth 3 Default value 6 Range Min=0, Max=7 TAP_DETECTOR_1.mode: (bit offset: 6, bit width: 2, access: read-write) Mode for detection of tap gesture. Default value = Normal. In stable position of device, to improve detection accuracy, sensitive mode can be used. Under noisy scenarios, the false detection can be suppressed with Robust mode . Following values can be set to or read from the field mode: Value Description 0b00 (0x0) Sensitive detection mode 0b01 (0x1) Normal detection mode 0b10 (0x2) Robust detection mode The field mode has the following properties: Property Value Bitwidth 2 Default value 1 Range Min=0, Max=2 TAP_DETECTOR_1.s_tap_en: (bit offset: 8, bit width: 1, access: read-write) Enable single tap feature. TAP_DETECTOR_1.d_tap_en: (bit offset: 9, bit width: 1, access: read-write) Enable double tap feature. TAP_DETECTOR_1.t_tap_en: (bit offset: 10, bit width: 1, access: read-write) Enable triple tap feature. Use this link to go back to the overview table: TAP_DETECTOR_1. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 171 | 196 Register (0x1A) TAP_DETECTOR_2 Description: Tap detector setting Bit 15 14 13 12 11 10 9 8 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 1 1 0 0 1 1 0 Content max_gesture_dur tap_peak_thres Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 1 1 1 0 1 1 1 0 Content tap_peak_thres TAP_DETECTOR_2.tap_peak_thres: (bit offset: 0, bit width: 10, access: read-write) Minimum threshold for peak resulting from the tap. The field tap_peak_thres has the following properties: Property Value Bitwidth 10 Sign unsigned Unit g Scaling 512 Default value 740/512 Range Min=0.0, Max=1.998046875 TAP_DETECTOR_2.max_gesture_dur: (bit offset: 10, bit width: 6, access: read-write) Maximum duration from first tap within the second and/or third tap is expected to happen. The field max_gesture_dur has the following properties: Property Value Bitwidth 6 Sign unsigned Unit s Scaling 25 Default value 1.0 Range Min=0.0, Max=2.52 Use this link to go back to the overview table: TAP_DETECTOR_2. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 172 | 196 Register (0x1B) TAP_DETECTOR_3 Description: Tap detector setting Bit 15 14 13 12 11 10 9 8 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 1 1 0 1 0 0 0 Content quite_time_after_gesture min_quite_dur_between_taps Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 1 1 0 0 1 0 0 Content tap_shock_settling_dur max_dur_between_peaks TAP_DETECTOR_3.max_dur_between_peaks: (bit offset: 0, bit width: 4, access: read-write) Maximum duration be- tween positive and negative peaks to tap. The field max_dur_between_peaks has the following properties: Property Value Bitwidth 4 Sign unsigned Unit s Scaling 200 Default value 0.02 Range Min=0.0, Max=0.075 TAP_DETECTOR_3.tap_shock_settling_dur: (bit offset: 4, bit width: 4, access: read-write) Maximum duration for which tap impact is observed. The field tap_shock_settling_dur has the following properties: Property Value Bitwidth 4 Sign unsigned Unit s Scaling 200 Default value 0.03 Range Min=0.0, Max=0.075 TAP_DETECTOR_3.min_quite_dur_between_taps: (bit offset: 8, bit width: 4, access: read-write) Mimimum duration between two consecutive tap impact. The field min_quite_dur_between_taps has the following properties: © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 173 | 196 Property Value Bitwidth 4 Sign unsigned Unit s Scaling 200 Default value 0.04 Range Min=0.0, Max=0.075 TAP_DETECTOR_3.quite_time_after_gesture: (bit offset: 12, bit width: 4, access: read-write) Minimum quite dura- tion between two gestures . The field quite_time_after_gesture has the following properties: Property Value Bitwidth 4 Sign unsigned Unit s Scaling 25 Default value 0.24 Range Min=0.0, Max=0.6 Use this link to go back to the overview table: TAP_DETECTOR_3. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 174 | 196 Register (0x1C) VAD_CTRL Description: Settings for segment size for feature analysis, post-processor buffer size and operating sample rate selection for voice activity detection Bit 15 14 13 12 11 10 9 8 Read/Write R R R R R R R R Reset Value 0 0 0 0 0 0 0 0 Content reserved Bit 7 6 5 4 3 2 1 0 Read/Write R R R R R R/W R/W R/W Reset Value 0 0 0 0 0 1 1 1 Content reserved en_vad_z en_vad_y en_vad_x reserved: write 0x0. VAD_CTRL.en_vad_x: (bit offset: 0, bit width: 1, access: read-write) Enable detection of voice activity for x axis . Following values can be set to or read from the field en_vad_x: Value Description 0b0 (0x0) Detection of voice activity is disabled 0b1 (0x1) Detection of voice activity is enabled The field en_vad_x has the following properties: Property Value Bitwidth 1 Sign unsigned Default value 1 Range Min=0, Max=1 VAD_CTRL.en_vad_y: (bit offset: 1, bit width: 1, access: read-write) Enable detection of voice activity for y axis . Following values can be set to or read from the field en_vad_y: Value Description 0b0 (0x0) Detection of voice activity is disabled 0b1 (0x1) Detection of voice activity is enabled The field en_vad_y has the following properties: © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 175 | 196 Property Value Bitwidth 1 Sign unsigned Default value 1 Range Min=0, Max=1 VAD_CTRL.en_vad_z: (bit offset: 2, bit width: 1, access: read-write) Enable detection of voice activity for z axis . Following values can be set to or read from the field en_vad_z: Value Description 0b0 (0x0) Detection of voice activity is disabled 0b1 (0x1) Detection of voice activity is enabled The field en_vad_z has the following properties: Property Value Bitwidth 1 Sign unsigned Default value 1 Range Min=0, Max=1 Use this link to go back to the overview table: VAD_CTRL. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 176 | 196 Register (0x24) ACC_CONF_LOW_POWER Description: Accelerometer configuration register when the user chooses low power mode Bit 15 14 13 12 11 10 9 8 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content reserved Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 1 0 0 1 0 1 Content acc_pe... acc_bwp acc_odr ACC_CONF_LOW_POWER.acc_odr: (bit offset: 0, bit width: 4, access: read-write) The ODR (Output Data Rate) in Hz. Not all settings are available in all power modes. Following values can be set to or read from the field acc_odr: Value Description 0b0000 (0x0) 1.5625 Hz. Only available in duty cycling mode (LPM). 0b0001 (0x1) 3.125 Hz. Only available in duty cycling mode (LPM). 0b0010 (0x2) 6.25 Hz.Only available in duty cycling mode (LPM). 0b0011 (0x3) 12.5 Hz. 0b0100 (0x4) 25 Hz. 0b0101 (0x5) 50 Hz. 0b0110 (0x6) 100 Hz. 0b0111 (0x7) 200 Hz. 0b1000 (0x8) 400 Hz. 0b1001 (0x9) 800 Hz. Only available in continuous mode (HPM). 0b1010 (0xA) 1.6 kHz. Only available in continuous mode (HPM). 0b1011 (0xB) 3.2 kHz. Only available in continuous mode (HPM). 0b1100 (0xC) 6.4 kHz. Only available in continuous mode (HPM). ACC_CONF_LOW_POWER.acc_bwp: (bit offset: 4, bit width: 3, access: read-write) Bandwidth parameter, determines filter configuration. Following values can be set to or read from the field acc_bwp: © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 177 | 196 Value Description 0b000 (0x0) acc_perf_mode = 1 -> OSR4 mode; acc_perf_mode = 0 -> no averaging. 0b001 (0x1) acc_perf_mode = 1 -> OSR2 mode; acc_perf_mode = 0 -> average 2 samples. 0b010 (0x2) acc_perf_mode = 1 -> normal mode; acc_perf_mode = 0 -> average 4 samples. 0b011 (0x3) acc_perf_mode = 1 -> CIC mode; acc_perf_mode = 0 -> average 8 samples. 0b100 (0x4) acc_perf_mode = 1 -> reserved; acc_perf_mode = 0 -> average 16 samples. 0b101 (0x5) acc_perf_mode = 1 -> reserved; acc_perf_mode = 0 -> average 32 samples. 0b110 (0x6) acc_perf_mode = 1 -> reserved; acc_perf_mode = 0 -> average 64 samples. 0b111 (0x7) acc_perf_mode = 1 -> reserved; acc_perf_mode = 0 -> reserved. ACC_CONF_LOW_POWER.acc_perf_mode: (bit offset: 7, bit width: 1, access: read-write) Bandwidth parameter, deter- mines filter configuration. Following values can be set to or read from the field acc_perf_mode: Value Description 0b0 (0x0) Duty Cycling mode (CIC averaging). 0b1 (0x1) Continuous mode (IIR filtering). ACC_CONF_LOW_POWER.reserved: (bit offset: 8, bit width: 8, access: read-write) Reserved. Use this link to go back to the overview table: ACC_CONF_LOW_POWER. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 178 | 196 Register (0x25) FOC_0 Description: Accelerometer fast-offset compensation feature Bit 15 14 13 12 11 10 9 8 Read/Write R R R R R R R R/W Reset Value 0 0 0 0 0 0 0 0 Content reserved foc_of... Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content foc_off_x reserved: write 0x0. FOC_0.foc_off_x: (bit offset: 0, bit width: 9, access: read-write) Offset estimated for accelerometer X-axis using fast-offset compensation feature. Value has same range and resolution as the user offset registers. . The field foc_off_x has the following properties: Property Value Bitwidth 9 Sign signed Scaling 1024 Default value 0 Range Min=-256, Max=255 Use this link to go back to the overview table: FOC_0. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 179 | 196 Register (0x26) FOC_1 Description: Accelerometer fast-offset compensation feature Bit 15 14 13 12 11 10 9 8 Read/Write R R R R R R R R/W Reset Value 0 0 0 0 0 0 0 0 Content reserved foc_of... Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content foc_off_y reserved: write 0x0. FOC_1.foc_off_y: (bit offset: 0, bit width: 9, access: read-write) Offset estimated for accelerometer Y-axis using fast-offset compensation feature. Value has same range and resolution as the user offset registers. . The field foc_off_y has the following properties: Property Value Bitwidth 9 Sign signed Scaling 1024 Default value 0 Range Min=-256, Max=255 Use this link to go back to the overview table: FOC_1. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 180 | 196 Register (0x27) FOC_2 Description: Accelerometer fast-offset compensation feature Bit 15 14 13 12 11 10 9 8 Read/Write R R R R R R R R/W Reset Value 0 0 0 0 0 0 0 0 Content reserved foc_of... Bit 7 6 5 4 3 2 1 0 Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content foc_off_z reserved: write 0x0. FOC_2.foc_off_z: (bit offset: 0, bit width: 9, access: read-write) Offset estimated for accelerometer Z-axis using fast-offset compensation feature. Value has same range and resolution as the user offset registers. . The field foc_off_z has the following properties: Property Value Bitwidth 9 Sign signed Scaling 1024 Default value 0 Range Min=-256, Max=255 Use this link to go back to the overview table: FOC_2. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 181 | 196 Register (0x28) FOC_3 Description: Accelerometer fast-offset compensation feature Bit 15 14 13 12 11 10 9 8 Read/Write R R R R R R R R Reset Value 0 0 0 0 0 0 0 0 Content reserved Bit 7 6 5 4 3 2 1 0 Read/Write R R/W R/W R/W R/W R/W R/W R/W Reset Value 0 0 0 0 0 0 0 0 Content reserved foc_axis_1g foc_filter_coeff foc_ap... reserved: write 0x0. FOC_3.foc_apply_corr: (bit offset: 0, bit width: 1, access: read-write) Update user offset registers with estimated offset values after feature completion. FOC_3.foc_filter_coeff: (bit offset: 1, bit width: 3, access: read-write) Number of 200Hz accelerometer samples that are averaged to estimate the offset. Number of samples = 2^(foc_filter_coeff + 3). Default value of field is 0 which means 8 samples will be averaged. . FOC_3.foc_axis_1g: (bit offset: 4, bit width: 3, access: read-write) Fast-offset compensation must be executed only when the device is still and one axis is parallel to the gravitation vector. This axis can be either aligned with gravitational vector or in the opposite direction of the gravitational vector. Device will not warn the user if the device is not static or an axis is not parallel to the gravitational vector. . Following values can be set to or read from the field foc_axis_1g: Value Description 0b000 (0x0) Z-axis shows 1G 0b001 (0x1) Z-axis shows -1G 0b010 (0x2) Y-axis shows 1G 0b011 (0x3) Y-axis shows -1G 0b100 (0x4) X-axis shows 1G 0b101 (0x5) X-axis shows -1G 0b110 (0x6) Same as x_plus_1g 0b111 (0x7) Same as x_minus_1g Use this link to go back to the overview table: FOC_3. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 182 | 196
7 Pin Out and Connection Diagrams
7.1 Pin Out
The figures 47 and 48 shows the pin-out of the device from top and bottom view, respectively. TopView (Pads not visible!) BMA VSS INT1 INT2 VDD SCL SDA Figure 47: Pin-out: top view © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 183 | 196 BottomView (Pads are visible!) BMA VSS INT1 INT2 VDD SCL SDA 4 3 5 2 Figure 48: Pin-out: bottom view The table 39 details the pin out and the connections of the individual pins of the device. Table 39: Pin-out and pin connections Connect to Pin # Name I/O Type Description in SPI 4-wire in SPI 3-Wire in I²C/I3C
1 VSS Ground Ground
(VSS=GND=GNDIO) GND GND GND Data) SDO/MISO INT1 INT1 Select for SPI) CSB CSB INT2* (or VDD, if unused)
6 VDD Supply Power supply analog &
digital domain and digital (VDD=VDDIO) VDD (= VDDIO) VDD (= VDDIO) VDD (= VDDIO) *Do not drive INT2 low during startup, see the following chapter 7.2.1 for more details. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 184 | 196
7.2 Connection Diagrams
7.2.1 Connection Diagrams with I²C and I3C
(Pads not visible!) BMA VSS VDD 100nF SCL VDD INT1 INT2 SDA SCL SDA R R If INT2 is not used, connect it to VDD. (more details in following section) VDD INT2 INT1 GND Figure 49: Connection Diagram with I²C and I3C It is recommended to use 100nF decoupling capacitors at pin 6 (VDD). Please note for the I²C/I3C mode, as already mentioned in chapter 5.2.1.1: Configure the pin 3 to be an output. When the output characteristics of pin 3 is disabled (or not yet enabled), please do not connect pin 3 to ground, as shown in figure 50. If the pin 3 is not used, connected it to VDD. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 186 | 196
7.2.2 Connection Diagrams with SPI (3-Wire)
(Pads not visible!) BMA VSS VDDGND 100nF SCK VDD INT1INT1 CSBCS MOSI/ MISO SCK SDX Figure 52: Connection Diagram with SPI 3-Wire It is recommended to use 100nF decoupling capacitors at pin 6 (VDD). © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 187 | 196
7.2.3 Connection Diagrams with SPI (4-Wire)
(Pads not visible!) BMA VSS VDDGND 100nF SCK VDD SDOMISO CSBCS MOSI SCK SDI Figure 53: Connection Diagram with SPI 4-Wire It is recommended to use 100nF decoupling capacitors at pin 6 (VDD). © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 188 | 196
8 Package
8.1 Dimensions
The BMA580 has a very compact Wafer Level Chip Scale Package (WLCSP). Figures 54, 55 and 56 show the dimen- sions of the package, the unit for all dimension specifications in the figures is mm. Figure 54: Dimensions from top (in mm) Figure 55: Dimensions from bottom view (in mm) © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 189 | 196 Figure 56: Dimensions from side view (in mm)
8.2 Sensing Axis Orientation
If the sensor is accelerated and/or rotated in the indicated directions, the corresponding channels of the device will deliver a positive acceleration and/or yaw rate signal (dynamic acceleration). If the sensor is at rest without any rotation and the force of gravity is acting contrary to the indicated directions, the output of the corresponding acceleration channel will be positive. Example: if the sensor is at rest or at uniform motion in a gravity field according to the figure given below, the output signals are: ±0g for the x accelerometer channel ±0g for the y accelerometer channel +1g for the z accelerometer channel Figure 57: Definition of the sensing axes orientation for the raw device © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 190 | 196 For reference, Figure 58 below shows the smartphone device orientation with an integrated device. Figure 58: Definition of the sensing axes orientation within a device
8.3 Landing Pattern Recommendation
Figure 59 provides the recommendation for the landing pad to ensure maximum stability of the solder connections. BMA 0.18 mm 0.4 mm 0.4 mm Figure 59: Landing pattern recommendation IPC recommends shrinking of PCB-pads to nominal ball diameter: PCB-pad size = 0.18 mm © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 191 | 196 Nominal ball diameter = 0.21 mm
8.4 Marking
Table 40: Marking – Mass Production Labeling Symbol Name Remark FCCC 6CCCCC F Product Identifier One alphanumeric digit, fixed to "F" to identify the product
6 Internal Code 1 alphanumeric digit, fixed to "6", internal use only
CCC... Counter ID Tracing identification by eight alphanumeric digits Pin 1 Identifier on top side Engineering Samples Table 41: Marking – Engineering Samples Labeling Symbol Name Remark ECCC FCCCCC F Product Identifier One alphanumeric digit, fixed to "F" to identify the product E Internal Code 1 alphanumeric digit, fixed to "E", internal use only CCC... Counter ID Tracing identification by eight alphanumeric digits Pin 1 Identifier on top side © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 192 | 196
8.5 Tape and Reel Information
Figure 60: Tape and Reel information
8.6 Soldering Guidelines
The moisture sensitivity level of the device corresponds to JEDEC Level 1, see also IPC/JEDEC J-STD-020E “Joint Industry Standard: Moisture/Reflow Sensitivity Classification for non-hermetic Solid State Surface Mount Devices” IPC/JEDEC J-STD-020F “Joint Industry Standard: Moisture/Reflow Sensitivity Classification for non-hermetic Solid State Surface Mount Devices" Both documents are available on the JEDEC website https://www.jedec.org/. The sensor fulfills the lead-free soldering requirements of the above-mentioned IPC/JEDEC standard, that means reflow soldering with a peak temperature Tp up to 260◦C.
8.7 Handling Instructions
Micromechanical sensors are designed to sense acceleration with high accuracy even at low amplitudes and contain highly sensitive structures inside the sensor element. The MEMS sensor can tolerate mechanical shocks up to several thousand g. However, these limits might be exceeded in conditions with extreme shock loads such as e.g., hammer blow on or next to the sensor, dropping of the sensor onto hard surfaces etc. We recommend to avoid accelerations beyond the specified limits during transport, handling and mounting of the sensors in a defined and qualified installation process. This device has built-in protections against high electrostatic discharges or electric fields (e.g., 2kV HBM); however, anti- static precautions should be taken as for any other CMOS component. Unless otherwise specified, proper operation can only occur when all terminal voltages are kept within the supply voltage range. Unused inputs must always be tied to a defined logic voltage level. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 193 | 196
8.8 Environmental Safety
The BMA580 WLCSP sensor meets the requirements of the EC restriction of hazardous substances (RoHS) directive, see also: RoHS – Directive 2011/65/EU and its amendments, including the amendment 2015/863/EU on the restriction of the use of certain hazardous substances in electrical and electronic equipment. The BMA580 is halogen-free. For more details on the corresponding analysis results, please contact your Bosch Sen- sortec representative. Corresponding chemical analysis certificates are available as separate documents from Bosch Sensortec. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 194 | 196
9 Legal Disclaimer
i. Engineering samples Engineering Samples are marked with an asterisk (*), (E) or (e). Samples may vary from the valid technical specifications of the product series contained in this data sheet. They are therefore not intended or fit for resale to third parties or for use in end products. Their sole purpose is internal client testing. The testing of an engineering sample may in no way replace the testing of a product series. Bosch Sensortec assumes no liability for the use of engineering samples. The Purchaser shall indemnify Bosch Sensortec from all claims arising from the use of engineering samples. ii. Product use Bosch Sensortec products are developed for the consumer goods industry. They may only be used within the parameters of this product data sheet. They are not fit for use in life-sustaining or safety-critical systems. Safety-critical systems are those for which a malfunction is expected to lead to bodily harm, death or severe property damage. In addition, they shall not be used directly or indirectly for military purposes (including but not limited to nuclear, chemical or biological proliferation of weapons or development of missile technology), nuclear power, deep sea or space applications (including but not limited to satellite technology). Bosch Sensortec products are released on the basis of the legal and normative requirements relevant to the Bosch Sensortec product for use in the following geographical target market: BE, BG, DK, DE, EE, FI, FR, GR, IE, IT, HR, LV, LT, LU, MT, NL, AT, PL, PT, RO, SE, SK, SI, ES, CZ, HU, CY, US, CN, JP, KR, TW. If you need further information or have further requirements, please contact your local sales contact. The resale and/or use of Bosch Sensortec products are at the purchaser’s own risk and his own responsibility. The examination of fitness for the intended use is the sole responsibility of the purchaser. The purchaser shall indemnify Bosch Sensortec from all third party claims arising from any product use not covered by the parameters of this product data sheet or not approved by Bosch Sensortec and reimburse Bosch Sensortec for all costs in connection with such claims. The purchaser accepts the responsibility to monitor the market for the purchased products, particularly with regard to product safety, and to inform Bosch Sensortec without delay of all safety-critical incidents. iii. Application examples and hints With respect to any examples or hints given herein, any typical values stated herein and/or any information regarding the application of the device, Bosch Sensortec hereby disclaims any and all warranties and liabilities of any kind, including without limitation warranties of non-infringement of intellectual property rights or copyrights of any third party. The information given in this document shall in no event be regarded as a guarantee of conditions or characteristics. They are provided for illustrative purposes only and no evaluation regarding infringement of intellectual property rights or copyrights or regarding functionality, performance or error has been made. © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
Bosch Sensortec | BMA580 Datasheet 195 | 196
10 Document History and Modifications
Table 42: Change log Rev No Chapter Description of modification/changes Date 1.0 all public release May 14th 2024 1.1 2 all - update of description only (no update of specification values) - update of FOC description: more details on recommended sequence - reduced waiting time for self test - add details on LPM and filter settings - update of self wake-up description: more details on recommended configurations - external voltage measurement: update of evaluation formula - update register map description - editorial changes Feb 6th 2025 © Bosch Sensortec GmbH 2025 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMA580-DS000-05
72770 Reutlingen / Germany
contact@bosch-sensortec.com www.bosch-sensortec.com Modifications reserved Document number: BST-BMA580-DS000-05