Data sheet BMI160 Small, low power inertial measurement unit Bosch Sensortec BMI160 – Data sheet Document revision 0.8 Document release date February 10 , 2015 Document number BST-BMI160-DS000-07 Technical reference code(s) 0 273 141 187 Notes Data and descriptions in this document are subject to change without notice. th Product photos and pictures are for illustration purposes only and may differ from the real product appearance.
BMI160 Data sheet Page 2 BMI160 Small, low Power Inertial Measurement Unit The BMI160 is a highly integrated, low power inertial measurement unit (IMU) that provides precise acceleration and angular rate (gyroscopic) measurement. The BMI160 integrates: 16 bit digital, triaxial accelerometer 16 bit digital, triaxial gyroscope Key features High performance accelerometer and gyroscope (hardware synchronized) Very low power consumption: typ.
BMI160 Data sheet Page 3 General Description The BMI160 is an inertial measurement unit (IMU) consisting of a state-of-the-art 3-axis, low-g accelerometer and a low power 3-axis gyroscope. It has been designed for low power, high precision 6-axis and 9-axis applications in mobile phones, tablets, wearable devices, remote controls, game controllers, head-mounted devices and toys. The BMI160 is available in a compact 14-pin 2.5 × 3.0 × 0.83 mm3 LGA package.
BMI160 Data sheet Page 4 Index of Contents 1. SPECIFICATION ........................................................................................................................ 7 1.1 ELECTRICAL SPECIFICATION ................................................................................................ 7 1.2 ELECTRICAL AND PHYSICAL CHARACTERISTICS, MEASUREMENT PERFORMANCE ...................... 8 1.3 ABSOLUTE MAXIMUM RATINGS ............................................................................
BMI160 Data sheet Page 5 2.10 NON-VOLATILE MEMORY ................................................................................................. 43 2.11 REGISTER MAP ............................................................................................................... 45 2.11.1 REGISTER (0X00) CHIPID ......................................................................................................... 47 2.11.2 REGISTER (0X02) ERR_REG ........................................................
BMI160 Data sheet Page 6 4. PIN-OUT AND CONNECTION DIAGRAMS ............................................................................ 97 4.1 PIN-OUT ........................................................................................................................... 97 4.2 CONNECTION DIAGRAMS TO USE PRIMARY INTERFACE ONLY ................................................ 98 2 4.2.1 I C AS PRIMARY INTERFACE ...........................................................................................
BMI160 Data sheet Page 7 1. Specification If not stated otherwise, the given values are over lifetime and full performance temperature and voltage ranges, minimum/maximum values are ±3. The specifications are split into accelerometer and gyroscope sections of the BMI160. 1.1 Electrical specification VDD and VDDIO can be ramped in arbitrary order without causing the device to consume significant currents.
BMI160 Data sheet Page 8 1.2 Electrical and physical characteristics, measurement performance Table 2: Electrical characteristics accelerometer OPERATING CONDITIONS ACCELEROMETER Parameter Symbol Condition Min gFS2g Acceleration Range Selectable via serial digital interface gFS4g gFS8g gFS16g Start-up time Suspend/low power mode to normal mode, ODR=1.6kHz tA,su Typ Max Units ±2 g ±4 g ±8 g ±16 g 3.2 3.
BMI160 Data sheet Page 9 nA,rms Filter setting 80 Hz, ODR 200 Hz 1.8 mg-rms Cross Axis Sensitivity SA Relative contribution between any two of the three axes 1 % Alignment Error EA Relative to package outline ±0.5 ° Output Data rate (set of x,y,z rate) Output Data rate accuracy (set of x,y,z rate) ODRA AODRA 12.
BMI160 Data sheet Zero-Rate offset Over temperature Off x, oT y, oT and z,oT Zero-rate offset change over temperature TCOG Output Noise Output Data Rate (set of x,y,z rate) Output Data rate accuracy (set of x,y,z rate) Cross Axis Sensitivity Page 10 -40°C ≤ T ≤+85°C ±3 °/s A 0.05 °/s/K nG,nD @10 Hz 0.007 °/s/√Hz nG,rms Filter setting 74.6Hz, ODR 200 Hz 0.
BMI160 Data sheet Page 11 1.3 Absolute maximum ratings Table 5: Absolute maximum ratings Parameter Condition Min Max Units VDD Pin -0.3 4.25 V VDDIO Pin -0.3 4.25 V Voltage at any Logic Pin Non-Supply Pin -0.3 VDDIO+0.3 V Passive Storage Temp. Range ≤65% rel. H. -50 +150 °C None-volatile memory (NVM) Data Retention T = 85°C, after 15 cycles 10 Voltage at Supply Pin Mechanical Shock ESD y Duration 200 µs, half sine 10,000 g Duration 1.
BMI160 Data sheet Page 12 2. Functional Description 2.
BMI160 Data sheet Page 13 2.2 Power modes By default BMI160 accel and gyro are in suspend mode after powering up the device. The device is powering up in less than 10ms. Three power modes are supported for accelerometer and gyroscope: Accelerometer Normal mode: full chip operation Low power mode: duty-cycling between suspend and normal mode. FIFO data readout are supported in lower power mode to a limited extent, see Register PMU_STATUS.
BMI160 Data sheet Page 14 content of all configuration registers are kept. The fast start-up mode allows a fast transition (≤10 ms) into normal mode while keeping power consumption significantly lower than in normal mode. 2.2.3 Transitions between power modes The table below for the power modes of gyroscope and accelerometer shows which power mode combinations are supported by BMI160. With regard to the below diagram, transitions between power modes are only allowed in horizontal or vertical direction.
BMI160 Data sheet Page 15 2.2.4 Low power mode (accelerometer only) In low power modes the accelerometer toggles between normal mode and suspend mode. The power consumption is given by the power consumption in normal mode times the fraction of time the sensor is in normal mode. The time in normal mode is defined by the startup time of the MEMS element, plus the analogue settling time. This results in a minimum time in normal mode of the settling time plus (averaged samples)/1600 Hz.
BMI160 Data sheet Page 16 2.2.5 PMU (Power Management Unit) The integrated PMU (Power Management Unit) allows advanced power management features by combining power management features of all built-in sensors and externally available wakeup devices. See chapter 2.6.11, PMU Trigger (Gyro). 2.2.5.
BMI160 Data sheet Page 17 Table 11: Sensor time Bit m in sensor_time 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Resolution [ms] 0.039 0.078 0.156 0.3125 0.625 1.25 2.5 5 10 20 40 80 160 320 640 1280 2560 5120 10240 20480 40960 81920 163840 327680 Update rate [Hz] 25641 12820 6400 3200 1600 800 400 200 100 50 25 12.5 6.25 3.125 1.56 0.78 0.39 0.20 0.10 0.049 0.024 0.012 0.0061 0.0031 2.3.
BMI160 Data sheet Page 18 2.4 Data Processing The accelerometer digital filter can be configured through the parameters: acc_bwp, acc_odr and acc_us. The gyroscope digital filter can be configured through the parameters: gyr_bwp and gyr_odr. There is no undersampling parameter for the gyroscope. Note: Illegal settings in configuration registers will result in an error code in the Register (0x02) ERR_REG. The content of the data register is undefined, and if the FIFO is used, it may contain no value. 2.4.
BMI160 Data sheet Page 19 that for a certain filter configuration, the ODR has to be 4 times higher than in the normal filter mode. Conversely, for a certain filter configuration, the filter bandwidth will be 4 times smaller than the bandwidth achieved for the same ODR in the normal filter mode. For example, for ODR=50Hz we will have a 3dB cutoff frequency of 5.06Hz. 2.4.1.2 Accelerometer data processing for low power mode When low power mode is used, the undersampling mode must be enabled (acc_us=0b1).
BMI160 Data sheet Page 20 When the filter mode is set to OSR2 (gyr_bwp=0b001), both stages of the digital filter are used and the data is oversampled with an oversampling rate of 2. That means that for a certain filter configuration, the ODR has to be 2 times higher than in the normal filter mode. Conversely, for a certain filter configuration, the filter bandwidth will be the approximately half of the bandwidth achieved for the same ODR in the normal filter mode.
BMI160 Data sheet Page 21 2.5.1 FIFO Frames When using the FIFO, the stored data can be read out by performing a burst read on the register (0x24) FIFO_DATA. The data is stored in units called frames. 2.5.1.1 Frame rates The frame rate for the FIFO is defined by the maximum output data rate of the sensors enabled for the FIFO via the Register (0x46-0x47) FIFO_CONFIG.
BMI160 Data sheet Page 22 selected by disabling fifo_header in Register (0x46-0x47) FIFO_CONFIG. In case of overreading the FIFO, non-valid frames always contain the fixed expression (magic number) 0x80 in the data frame. In header mode every frame consists of a header byte followed by one or more data bytes. The header defines the frame type and contains parameters for the frame. The data bytes may be sensor data or control data.
BMI160 Data sheet Page 23 2.5.1.5 Frame types Regular frame (fh_mode=0b10) Regular frames are the standard FIFO frames and contain sensor data. Regular frames can be identified by fh_mode set to 0b10 in the header byte section. The fh_parm frame defines which sensors are included in the data byte of the frame.
BMI160 Data sheet Page 24 Whenever the configuration of the FIFO input data sources changes, a FIFO input config frame is inserted into the FIFO in front of the data to which the configuration change is applied. In the header byte of a skip frame, fh_mode = 0b01 (since it is a control frame) and fh_param = 0b010 (indicating FIFO_input_config frame).
BMI160 Data sheet Page 25 2.5.2.5 FIFO Reset A reset of the BMI160 is triggered by writing the opcode 0xB0 “fifo_flush“ to the Register (0x7E) CMD. This will clears all data in the FIFO while keeping the FIFO settings unchanged. Automatic resets are only done in two exceptional cases where the data would not be usable without a reset: a sensor is enabled or disabled in headerless mode, a transition between headerless and headermode occurred. 2.5.2.
BMI160 Data sheet Page 26 Note: The direction of the interrupt pins is controlled with int_output_en and int_x_input_en in Register (0x53) INT_OUT_CTRL and Register (0x54) INT_LATCH. If both are enabled, the input (e.g. marking fifo) is driven by the interrupt output. 2.6.1 Any-motion detection (Accel) The any-motion detection uses the slope between two successive acceleration signals to detect changes in motion. The interrupt is configured in the Register (0x5F-0x62) INT_MOTION.
BMI160 Data sheet Page 27 The any-motion interrupt logic sends out the signals of the axis that has triggered the interrupt (int_anym_first_x, int_anym_first_y, int_anym_first_z) and the signal of motion direction (int_anym_sign). 2.6.2 Significant Motion (Accel) The significant motion interrupt implements the interrupt required for motion detection in Android 4.3 and greater: https://source.android.com/devices/sensors/composite_sensors.
BMI160 Data sheet Page 28 Configurable parameters are: sig_th = 0x14; // ~ 70mg same as anym_th t_skip = 0x01; // 2.56s 0=1.28s, 1=2.56s, 2=5,12s 3=10.24s t_proof = 0x02; // 0.96s 0=0.24s, 1=0.48s, 2=0.96s 3=1.92s 2.6.3 Step Detector (Accel) A step detection is the detection of a single step event, while the user is walking or running. The step detector is triggered when a peak is detected in the acceleration magnitude (vector length of 3D acceleration).
BMI160 Data sheet Page 29 slope Second Tap First Tap tap_thh time Int_tap_shock = 50/75ms tnt_tap_quiet = 30/20ms int_tap_dur = 50 ÷ 700 ms int_tap_shock Int_tap_quiet =50/75ms = 30/20ms single_tap_det double_tap_det time time Figure 7: Tap detection interrupt The single-tap and double-tap interrupts are enabled through the int_s_tap_en and int_d_tap_en registers.
BMI160 Data sheet Page 30 z θ x φ y g Figure 8: definition of coordinate system with respect to pin 1 marker The measured acceleration vector components look as follows: (1) (2) (3) (2)/(1): Figure 9: Angle-to-Orientation Mapping BST-BMI160-DS000-07 | Revision 0.8 | February 2015 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties.
BMI160 Data sheet Page 31 Note that the sensor measures the direction of the force which needs to be applied to keep the sensor at rest (i.e. opposite direction than g itself). Looking at the phone from frontside / portrait upright corresponds to the following angles: , The orientation value is stored in the output register int_orient in Register (0x1C-0x1F) INT_STATUS. There are three orientation calculation modes: symmetrical, high-asymmetrical and low-asymmetrical.
BMI160 Data sheet Page 32 The engine uses 8 bits wide acceleration data for the orientation recognition. For upside or downside orientation, the int_orient<2> in Register (0x1C-0x1F) INT_STATUS has the definition Table 18: upside and downside mode 0 upside 1 downside MSB acc_z (270° < < 90°) (90° < < 270°) acc_z >= 0 acc_z < 0 int_orient<2> also is computed when flat interrupt is activated. Both portrait/landscape and upside/downside recognition use a hysteresis.
BMI160 Data sheet Page 33 Table 20: High asymmetrical mode orient x00 Name landscape left x01 x10 x11 landscape right portrait upside down portrait upright Angle 297°+hy 2*|acc_x|+hyst && acc_y<0 |acc_y|>2*|acc_x|+hyst && acc_y≥0 y h -h h x -h Figure 11: Hysteresis in high asymmetrical mode Table 21: Low asymmetrical mode orient
BMI160 Data sheet Page 34 The hysteresis for upside/downside detection is fixed to 11.5° which is ~200 mg (205 LSB in 2g mode and is scalable with the g range). Table 22: Upside/downside hysteresis for all 3 modes orient 0xx Name upside Angle 281.5°200mg (|acc_z|>200mg and acc_z≥0) acc_z<-200mg (|acc_z|>200mg and acc_z<0) 2.6.5.1 Blocking It is be possible to block the orientation detection (no orientation interrupt will be triggered).
BMI160 Data sheet Page 35 register bit int_orient_ud_en is ‘0’, then only the bits in the int_orient register that indicate the portrait/landscape orientation are considered for the generation of the interrupt condition, while those bits indicating the upside/downside orientation are ignored. The bit indicating upside/downside orientation is int_orient<2>, while the bit-field indicating the portrait/landscape orientation is int_orient<1:0>. If orient_ud_en is ‘0’ then the int_orient<2> status bit is 0.
BMI160 Data sheet Page 36 Before the interrupt is actually fired, the device must remain flat for a certain period (e.g. int_flat_hold_time = 1s). Note: Rotation of the Reference Coordinate System is possible for the Flat interrupt, see chapter 2.6.5.3. 2.6.7 Low-g / free-fall Detection (Accel) For freefall detection, the absolute values of the acceleration data of all axes are observed (global criteria). There are two modes of this interrupt – single and sum.
BMI160 Data sheet Page 37 2.6.8 High-g detection (Accel) This interrupt is configured in the Register (0x5A-0x5E) INT_LOWHIGH. The interrupt is asserted if the absolute value of acceleration data of at least one enabled axis exceeds the programmed threshold int_high_th and the sign of the value does not change for a minimum duration of int_high_dur.
BMI160 Data sheet Page 38 acceleration acc(t0+Δt) acc(t0) time slope slope(t0+Δt)= acc(t0+Δt) - acc(t0) slo_no_mot_t h time INT slo_no_mot_d ur slo_no_mot_d ur latched unlatche d time Figure 16: Slow motion, no motion The interrupt engine can also be configured as a no-motion interrupt, where an interrupt is generated when the slope on all selected axis remains smaller than a programmable threshold for a programmable time.
BMI160 Data sheet acceleration Page 39 acc(t0+Δt) acc(t0) axis x, y, or z slope slope(t0+Δt)= acc(t0+Δt) - acc(t0) axis x, y, or z slo_no_mot_th -slo_no_mot_th slo_no_mot_dur timer INT time Figure 17: Signal timings no motion interrupt The figure below shows the differences in the logic operation between the slow-motion and nomotion interrupt functionality.
BMI160 Data sheet Page 40 2.6.9.1 Register slo_no_mot_dur The meaning of register int_slo_no_mot_dur changes depending on the state of the no_mot_sel configuration bit. If int_no_mot_sel =’0’, register int_slo_no_mot_dur defines the number of consecutive slope data points of the selected axis which must exceed the threshold value int_slo_no_mot_th for an interrupt to be asserted. The functionality is compliant to the original slow-motion interrupt and also the any-motion interrupt.
BMI160 Data sheet Page 41 2.7 Step Counter The step counter implements the function required for step counting in Android 4.4 and greater: https://source.android.com/devices/sensors/composite_sensors.html#counter The step counter accumulates the steps detected by the step detector interrupt. Based on more sophisticated algorithms, the step counter features a higher accuracy and reporting latency than the step detector interrupt described in Chapter 2.6.3.
BMI160 Data sheet Page 42 Table 23: Accelerometer self test minimum difference values x-axis signal y-axis signal z-axis signal 2g 2g 2g Minimum difference signal It is recommended to perform a reset of the device after a self-test has been performed. If the reset cannot be performed, the following sequence must be kept to prevent unwanted interrupt generation: disable interrupts, change parameters of interrupts, wait for at least 50ms, enable desired interrupts. 2.8.
BMI160 Data sheet Page 43 FOC is triggered by issuing a start_foc command to Register (0x7E) CMD. Once triggered, the status of the fast correction process is reflected in the status bit foc_rdy in Register (0x1B) STATUS. foc_rdy is ‘0’ while the measurement is in progress. Accelerometer and gyroscope values are measured with preset filter settings. This will take a maximum time of 250 ms.
BMI160 Data sheet Page 44 The content of the NVM is loaded to the image registers after a reset (either POR or softreset). As long as the image update is in progress, bit nvm_rdy in Register (0x1B) STATUS is ´0´, otherwise it is ´1´. The image registers can be read and written like any other register. Writing to the NVM is a three-step procedure: Write the new contents to the image registers. Write ´1´ to bit nvm_prog_en in the Register (0x6A) CONF register in order to unlock the NVM.
BMI160 Data sheet Page 45 2.11 Register Map This chapter contains register definitions. REG[x] denotes bit y in byte x in register REG. Val(Name) is the value contained in the register interpreted as non-negative binary number. When writing to reserved bits, ‘0’ should be written when not stated different.
BMI160 Data sheet Page 46 0x41 0x40 0x3F 0x25 0x24 0x23 0x22 0x21 0x20 0x1F 0x1E 0x1D 0x1C 0x1B ACC_RANGE ACC_CONF FIFO_DATA FIFO_LENGTH_1 FIFO_LENGTH_0 TEMPERATURE_1 TEMPERATURE_0 INT_STATUS_3 INT_STATUS_2 INT_STATUS_1 INT_STATUS_0 STATUS 0x03 0x28 0x00 0x00 0x00 0x80 0x00 0x00 0x00 0x00 0x00 0x01 reserved acc_bwp 0x1A 0x19 0x18 0x17 SENSORTIME_2 SENSORTIME_1 SENSORTIME_0 DATA_19 0x00 0x00 0x00 0x00 0x16 DATA_18 0x00 acc_z_7_0 0x15 DATA_17 0x00 acc_y_15_8 0x14 DATA_16 0x00 acc_y_7_0 0x
BMI160 Data sheet Page 47 2.11.1 Register (0x00) CHIPID ADDRESS 0x00 RESET na MODE R DESCRIPTION The register contains the chip identification code. DEFINITION Name Bit Read/Write Reset Value Content 7 R 1 chip_id<7:4> Bit Read/Write Reset Value Content 3 R 0 chip_id<3:0> Register (0x00) CHIPID 6 5 R R 1 0 4 R 1 2 R 0 0 R 1 1 R 0 2.11.2 Register (0x02) ERR_REG ADDRESS 0x02 RESET 0b00000000 MODE RW DESCRIPTION Reports sensor error flags. Flags are reset when read.
BMI160 Data sheet Page 48 The register is meant for debug purposes, not for regular verification if an operation completed successfully. Extensions under consideration: fatal_err: Error during bootup. Broken hardware (e.g. NVM error, see ASIC spec for details). This flag will not be cleared after reading the register. The only way to clear the flag is a POR.
BMI160 Data sheet Page 49 The register reflects the current power modes of all sensor configured as soon as they are effective. If a sensor is enabled, the new sensor mode is reported as soon as the MEMS is up and before digital filters have settled. The settling time depends on filter settings. The power modes may be changed through the Register (0x7E) CMD. In addition, for the gyroscope through register events may be defined, which change the gyro power mode.
BMI160 Data sheet 0x15 0x16 0x17 Page 50 X=17 X=18 X=19 ACC_Y<15:8> (MSB) ACC_Z<7:0> (LSB) ACC_Z<15:8> (MSB) 2.11.5 Register (0x18-0x1A) SENSORTIME ADDRESS 0x18 (3 byte) RESET 0x0000 MODE R DESCRIPTION Sensortime is a 24 bit counter available in suspend, low power, and normal mode. The value of the register is shadowed when it is read in a burst read with the data register at the beginning of the operation and the shadowed value is returned.
BMI160 Data sheet Bit Read/Write Reset Value Content 3 2 R/W R/W 0 0 sensor_time<19:16> Page 51 1 R/W 0 0 R/W 0 2.11.6 Register (0x1B) STATUS ADDRESS 0x1B RESET 0b00000000 MODE R DESCRIPTION Reports sensor status flags.
BMI160 Data sheet Register (0x1C-0x1F) INT_STATUS [0] 7 6 5 4 3 2 1 0 ‘0’ interrupt inactive, ‘1’ interrupt active.
BMI160 Data sheet Register (0x1C-0x1F) acronym INT_STATUS [3] 7 flat 6 orient<2> <5:4> orient<1:0> 3 high_sign 2 high_first_z 1 high_first_y 0 high_first_x Page 53 definition device is in ‘1’ flat, or ‘0’ non flat position; only valid if (0x16) int_flat_en = ‘1’ Orientation value of z-axis: ´0´ upward looking, or ´1´ downward looking. The flag always reflect the current orientation status, independent of the setting of <3:0>.
BMI160 Data sheet Page 54 If the gyroscope is in normal mode (see Register (0x03) PMU_STATUS), the temperature is updated every 10 ms (+-12%). If the gyroscope is in suspend mode or fast-power up mode, the temperature is updated every 1.28 s aligned with bit 15 of the Register (0x20-0x21) TEMPERATURE. 2.11.9 Register (0x22-0x23) FIFO_LENGTH ADDRESS 0x22 (2 byte) RESET see definition MODE see definition DESCRIPTION FIFO data readout register. DEFINITION The register contains FIFO status flags.
BMI160 Data sheet Page 55 2.11.10 Register (0x24) FIFO_DATA ADDRESS 0x24 RESET see definition MODE see definition DESCRIPTION FIFO data readout register. DEFINITION The FIFO data are organized in frames as described in chapter 2.5.1. The new data flag is preserved. Read burst access must be used, the address will not increment when the read burst reads at the address of FIFO_DATA. When a frame is only partially read out, it is retransmitted including the header at the next readout.
BMI160 Data sheet acc_us: acc_bwp: acc_odr: Page 56 undersampling parameter. The undersampling parameter is typically used in low power mode bandwidth parameter determines filter configuration (acc_us=0) and averaging for undersampling mode (acc_us=1). For details see chapter 2.2.4. define the output data rate in Hz is given by 100/28-val(acc_odr). The output data rate is independent of the power mode setting for the sensor acc_odr 0b0000 0b0001 0b0010 ... 0b1000 ...
BMI160 Data sheet reserved: Page 57 ´0b1100´ ±16g range; all other settings ±2g range write ‘0’ Changing the range of the accelerometer does not clear the data ready bit in the Register (0x1B) STATUS. It is recommended to read the Register (0x04-0x17) DATA after the range change to remove a stall data ready bit from before the range change. 2.11.
BMI160 Data sheet Page 58 2.11.
BMI160 Data sheet Bit Read/Write Reset Value Content 3 R/W 0 reserved 2 R/W 0 gyr_range<2:0> Page 59 1 R/W 0 0 R/W 0 DEFINITION Bits <3:0> define the poll rate for the magnetometer attached to the magnetometer interface. This is independent of the power mode setting for the sensor. The output data rate in Hz is given by 125/27-val(ODR<3:0>). In addition to setting the poll rate, it is required to configure the magnetometer properly using the Register (0x4B-0x4F) MAG_IF.
BMI160 Data sheet Page 60 2.11.17 Register (0x46-0x47) FIFO_CONFIG ADDRESS 0x46 (2 bytes) RESET see definition MODE see definition DESCRIPTION The Register (0x46-0x47) FIFO_CONFIG is a read/write register and can be used for reading or setting the current FIFO watermark level. This register can also be used for setting the different modes of operation of the FIFO, e.g. which data is going to be stored in it and which format is going to be used (header or headerless mode).
BMI160 Data sheet fifo_time_en: Page 61 ‘1’(‘0’) returns (does not return) a sensortime frame after the last valid frame when more data are read than valid frames are in the FIFO. 2.11.18 Register (0x4B-0x4F) MAG_IF ADDRESS 0x4B (5 byte) RESET [0]: 0b0010-0000 [1]: 0b1000-0000 [2]: 0b0100-0010 [3]: 0b0100-1100 [4]: 0b0000-0000 MODE RW DESCRIPTION Register for indirect addressing of the magnetometer connected to the magnetometer interface.
BMI160 Data sheet Page 62 2.11.19 Register (0x50-0x52) INT_EN ADDRESS 0x50 (3 byte) RESET [0] 0b0000-0000 [1] 0b0000-0000 [2] 0b0000-0000 MODE RW DESCRIPTION Controls which interrupt engines are enabled.
BMI160 Data sheet Page 63 Note: Step_cnt_en and step_cnt_clr enable and clear the step counter (which is not related to interrupts). 2.11.20 Register (0x53) INT_OUT_CTRL ADDRESS 0x53 RESET 0b0000-0000 MODE RW DESCRIPTION Contains the behavioral configuration (electrical definition of the interrupt pins.
BMI160 Data sheet Page 64 DESCRIPTION Contains the interrupt reset bit and the interrupt mode selection. DEFINITION Not applied to new data, orientation, and flat interrupt.
BMI160 Data sheet Page 65 The times for the temporary modes have been selected to be 50% of the pre-filtered data rate and then power of two increments.
BMI160 Data sheet Page 66 2.11.23 Register (0x58-0x59) INT_DATA ADDRESS 0x58 (2 byte) RESET [0] 0b0000-0000 [1] 0b0000-0000 MODE RW DESCRIPTION Contains the data source definition for the two interrupt groups.
BMI160 Data sheet Page 67 2.11.24 Register (0x5A-0x5E) INT_LOWHIGH ADDRESS 0x5A (5 bytes) RESET see definition MODE see definition DESCRIPTION Contains the configuration for the low g interrupt DEFINITION Register (0x5A-0x5E) INT_LOWHIGH[0] contains the delay time definition for the low-g interrupt.
BMI160 Data sheet Page 68 Name Bit Read/Write Reset Value Content 7 R/W 1 int_high_hy<1:0> Register (0x5A-0x5E) INT_LOWHIGH [2] 6 5 4 R/W R/W R/W 0 0 0 Reserved Bit Read/Write Reset Value Content 3 R/W 0 reserved 2 R/W 0 int_low_mode 1 R/W 0 int_low_hy<1:0> 0 R/W 1 int_high_hy<1:0>: hysteresis of high-g interrupt according to Val(int_high_hy<1:0>) · 125 mg (2g range), Val(int_high_hy<1:0>) · 250 mg (4-g range), Val(int_high_hy<1:0>) · 500 mg (8-g range), or Val(int_high_hy<1:0>) · 1000 mg (16-g ra
BMI160 Data sheet Bit Read/Write Reset Value Content 3 R/W 0 high_th<3:0> 2 R/W 0 Page 69 1 R/W 0 0 R/W 0 int_high_th<7:0>: threshold of high-g interrupt according to Val(int_high_th<7:0>) · 7.81 mg (2g range), Val(int_high_th<7:0>) · 15.63 mg (4g range), Val(int_high_th<7:0>) · 31.25 mg (8g range), or Val(int_high_th<7:0>) · 62.5 mg (16g range). For Val(int_high_th<7:0>)=0, the thresholds are defined by 3.91 mg (2g range), 7.81 mg (4g range), 15.63 mg (8g range), 31.25 mg (16g range) 2.11.
BMI160 Data sheet Page 70 int_slo_no_mot_dur<5:4>=’b01’ [int_slo_no_mot_dur<3:0> + 5] 5.12 s-> [25.6 – 102.4] s int_slo_no_mot_dur<5>=’1’ [int_slo_no_mot_dur<4:0> + 11] · 10.24 s-> [112.64 – 430.08] s int_anym_dur<1:0>: slope interrupt triggers if [int_anym_dur<1:0>+1] consecutive slope data points are above the slope interrupt threshold int_anym_th<7:0> Register (0x5F-0x62) INT_MOTION[1] contains the threshold definition for the any-motion interrupt.
BMI160 Data sheet Page 71 int_slo_no_mot_th<7:0> · 3.91 mg (2-g int_slo_no_mot_th<7:0> · 7.81 mg (4-g int_slo_no_mot_th<7:0> · 15.63 mg (8-g int_slo_no_mot_th<7:0> · 31.25 mg (16-g range) For int_slo_no_mot_th<7:0>=0x00 the threshold is 1.95 mg (2g range) / 3.91 mg (4g 7.81 mg (8g range) / 15.
BMI160 Data sheet Page 72 int_tap_dur<2:0>: selects the length of the time window for the second shock event for double tap detection according to ´0b000´ 50 ms, ´0b001´ 100 ms, ´0b010´ 150 ms, ´0b011´ 200 ms, ´0b100´ 250 ms, ´0b101´ 375 ms, ´0b110´ 500 ms, ´0b111´ 700 ms. If Register (0x58-0x59) INT_DATA configures that this interrupt uses pre-filtered data, the sensor is not entering low-power mode.
BMI160 Data sheet Bit Read/Write Reset Value Content 3 2 R/W R/W 1 0 int_orient_blocking<1:0> reserved: int_orient_hyst<3:0>: int_orient_blocking<1:0>: int_orient_mode<1:0>: Page 73 1 0 R/W R/W 0 0 int_orient_mode<1:0> write ‘0’ sets the hysteresis of the orientation interrupt; 1 LSB corresponds to 62.5 mg irrespective of the selected g-range selects the blocking mode that is used for the generation of the orientation interrupt.
BMI160 Data sheet Page 74 Register (0x67-0x68) INT_FLAT[0] contains the definition of the flat threshold angle for the flat interrupt. Name Bit Read/Write Reset Value Content 7 R/W n/a reserved Bit Read/Write Reset Value Content 3 2 R/W R/W 1 0 int_flat_theta<3:0> reserved: int_flat_theta<5:0>: Register (0x67-0x68) INT_FLAT[0] 6 5 4 R/W R/W R/W n/a 0 0 int_flat_theta<5:4> 1 R/W 0 0 R/W 0 write ‘0’ defines threshold for detection of flat position in range from 0° to 44.8°.
BMI160 Data sheet Bit Read/Write Reset Value Content reserved: foc_gyr_en: foc_acc_x: foc_acc_y: foc_acc_z: 3 R/W 0 2 R/W 0 foc_acc_y<1:0> Page 75 1 R/W 0 0 R/W 0 foc_acc_z<1:0> write ‘0’ enables fast offset compensation for all three axis of the gyro. offset compensation target value for x-axis is ´0b00´ disabled, ´0b01´ +1 g, ´0b10´ -1 g, or ´0b11´ 0 g. offset compensation target value for y-axis is ´0b00´ disabled, ´0b01´ +1 g, ´0b10´ -1 g, or ´0b11´ 0 g.
BMI160 Data sheet Bit Read/Write Reset Value Content reserved: spi3: if_mode: 3 R/W 0 reserved 2 R/W 0 Page 76 1 R/W 0 0 R/W 0 spi3 write ‘0’ select ´0´ 4-wire SPI, or ´1´ 3-wire SPI mode for primary 00: primary interface: autoconfig / secondary interface: off 01: Primary interface:I2C / secondary interface:OIS 02: Primary interface: autoconfig / secondary interface: Magnetometer 11: reserved 2.11.
BMI160 Data sheet gyr_sleep_trigger 0b000 0b001 0b010 0b011 0b100 0b101 0b110 0b111 If gyr_sleep_trigger and gyr_wakeup_trigger wins. nomotion no no no no yes yes yes Yes gyr_wakeup_trigger Page 77 Not INT1 pin no no yes Yes no no yes yes are active at INT2 pin no yes no yes no yes no yes the same time, the The INTx pin takes into account the edge/level triggered setting in the Register (0x53) INT_OUT_CTRL.
BMI160 Data sheet Page 78 acc_self_test_enable: starts self-test of the accel: ´0b00´ self-test disabled, ´0b01´ self-test enabled. After the self-test has been enabled a delay of a least 50 ms is necessary for the read-out value to settle The result can be obtained from Register (0x1B) STATUS. In addition, for the accel self test the Register (0x40) ACC_CONF has to be set to value 0x2C (acc_odr=1600Hz; acc_bwp=2; acc_us=0), otherwise the accelerometer selftest will not function correctly.
BMI160 Data sheet [0] [1] [2] [3] [4] [5] Name Bit Read/Write Reset Value Content 7 R/W 0 gyr_off_en Bit Read/Write Reset Value Content 3 R/W 0 off_gyr_y<9:8> Page 79 acc_off_x<7:0> acc_off_y<7:0> acc_off_z<7:0> off_gyr_x<7:0> off_gyr_y<7:0> off_gyr_z<7:0> Register (0x71-0x77) OFFSET [6] 6 5 R/W R/W 0 0 acc_off_en off_gyr_z<9:8> 4 R/W 0 2 R/W 0 0 R/W 0 1 R/W 0 off_gyr_x<9:8> The offset of the accelerometer off_acc_[xyz] is a 8 bit two-complement number in units of 3.
BMI160 Data sheet Name Bit Read/Write Reset Value Content 7 R 0 step_cnt<7:4> Register (0x78-0x79) STEP_CNT [0] 6 5 R R 0 0 Bit 3 2 1 Read/Write R R R Reset Value 0 0 0 Content step_cnt<3:0> step_cnt: number of steps counted since last POR or step counter reset Page 80 4 R 0 0 R 0 2.11.
BMI160 Data sheet Page 81 There are three settings to balance between sensitivity (false negatives) and robustness (false positives): Normal mode: Recommended for most applications. Well balanced between false positives and false negatives. STEP_CONF[0]: 0x15 (0b0001 0101) STEP_CONF[1]: 0x03 (0b0000 0011) (the step_cnt_en bit is set to 0) Sensitive mode: Recommended for light weighted persons. Will give few false negatives but eventually more false positives.
BMI160 Data sheet Page 82 Description Command code Typ. time3 in ms Max. time4 in ms Set PMU mode of accelerometer to normal or low power 0x11-0x12 3.2 3.8 Set PMU mode of gyroscope to normal or fast start-up from suspend mode 0x15; 0x17 55 80 Set PMU mode of magnetometer interface to suspend, normal, or low-power 0x18-0x1B 0.35 0.
BMI160 Data sheet Page 83 softreset: 0xB6 triggers a reset including a reboot. Other values are ignored. Following a delay, all user configuration settings are overwritten with their default state or the setting stored in the NVM, wherever applicable. This register is functional in all operation modes. step_cnt_clr: 0xB2 triggers a reset of the step counter. This register is functional in all operation modes. BST-BMI160-DS000-07 | Revision 0.
BMI160 Data sheet Page 84 3. Digital interfaces 3.1 Interfaces Beside the standard primary interface (I2C and SPI configurable), where sensor acts as a slave to the application processor, BMI160 supports a secondary interface. The secondary interface can be configured either as MAG-Interface (I2C) or as a OIS-Interface (SPI). See picture below. If the secondary interface is configured as MAG-Interface, the BMI160 can be connected to an external sensor (e.g.
BMI160 Data sheet Page 85 Table 25: Mapping of the primary interface pins Pin# Name I/O Type Description 1 SDO Digital I/O Serial data output in SPI Address select in I2C mode 4 INT1 9 INT2 12 CSB Digital in 13 SCx Digital in 14 SDx Digital I/O Digital I/O Digital I/O Connect to (Primary IF) in in SPI3 in I2C SPI4W W SA0 DNC (GND for MISO (float) default addr.
BMI160 Data sheet Page 86 communication. Hence, it is recommended to perform a SPI single read access to the ADDRESS 0x7F before the actual communication in order to use the SPI interface. If toggling of the CSB bit is not possible without data communication, there is in addition the spi_en bit in Register (0x70) NV_CONF, which can be used to permanently set the primary interface to SPI without the need to toggle the CSB pin at every power-up or reset. 3.2.
BMI160 Data sheet Page 87 The following figure shows the definition of the SPI timings: tCSB_setup tCSB_hold CSB SCK tSCKL tSCKH SDI SDO tSDI_setup tSDI_hold tSDO_OD Figure 22: SPI timing diagram The SPI interface of the BMI160 is compatible with two modes, ´00´ [CPOL = ´0´ and CPHA = ´0´] and ´11´ [CPOL = ´1´ and CPHA = ´1´]. The automatic selection between ´00´ and ´11´ is controlled based on the value of SCK after a falling edge of CSB.
BMI160 Data sheet Page 88 CSB SCK SDI R/W AD6 AD5 AD4 AD3 AD2 AD1 SDO AD0 DI7 DI6 DI5 DI4 DI3 DI2 DI1 DI0 Z tri-state Figure 23: 4-wire basic SPI write sequence (mode ´11´) The basic read operation waveform for 4-wire configuration is depicted in the figure below: CSB SCK SDI R/W AD6 AD5 AD4 AD3 AD2 AD1 AD0 SDO DO7 DO6 DO5 DO4 DO3 DO2 DO1 DO0 tri-state Figure 24: 4-wire basic SPI read sequence (mode ´11´) The data bits are used as follows: Bit0: Read/Write bit.
BMI160 Data sheet Page 89 Bit8-15: when in write mode, these are the data SDI, which will be written into the address. When in read mode, these are the data SDO, which are read from the address. Multiple read operations are possible by keeping CSB low and continuing the data transfer. Only the first register address has to be written. Addresses are automatically incremented after each read access as long as CSB stays active low.
BMI160 Data sheet Page 90 The I²C addresses are identical to BMG160. The default I²C address of the device is 0b1101000 (0x68). It is used if the SDO pin is pulled to ´GND´. The alternative address 0b1101001 (0x69) is selected by pulling the SDO pin to ´VDDIO´. The I²C interface of the BMI160 is compatible with the I²C Specification UM10204 Rev. 03 (19 June 2007), available at http://www.nxp.com. The BMI160 supports I²C standard mode and fast mode, only 7-bit address mode is supported. For VDDIO = 1.
BMI160 Data sheet Page 91 The figure below shows the definition of the I²C timings given in Table 28: SDA tBUF tf tLOW SCL tHIGH tr tHDSTA tHDDAT tSUDAT SDA tSUSTA tSUSTO Figure 27: I²C timing diagram The I²C protocol works as follows: START: Data transmission on the bus begins with a high to low transition on the SDA line while SCL is held high (start condition (S) indicated by I²C bus master). Once the START signal is transferred by the master, the bus is considered busy.
BMI160 Data sheet Page 92 I²C write access: I²C write access can be used to write a data byte in one sequence. The sequence begins with start condition generated by the master, followed by 7 bits slave address and a write bit (RW = 0). The slave sends an acknowledge bit (ACKS = 0) and releases the bus. Then the master sends the one byte register address. The slave again acknowledges the transmission and waits for the 8 bits of data which shall be written to the specified register address.
BMI160 Data sheet Page 93 Example of an I²C read access (reading gyro data): Slave Adress Start S 1 1 0 1 0 RW ACKS 0 0 0 dummy Control byte X Register adress (0x02) 0 0 0 1 1 0 ACKS 0 Data byte Slave Adress Start Sr 1 1 0 1 0 0 0 1 Data byte Read Data (0x02) RW ACKS X X X X X X Read Data (0x03) ACKM X X X X X Data byte X X X X X X X X X X X Data byte X X X X X X X … X Read Data (0x05) ACKM X X X ACKM X … X Data byte Read
BMI160 Data sheet Page 94 3.3 Secondary Interface The secondary interface can be used in two different classes of use cases: 2 Magnetometer Interface (I C) for connecting to a MAG-sensor In this case the secondary interface is used as a two-wire interface where an external sensor (MAG-sensor) would be connected as a slave to BMI160. The typical application is connecting a Bosch Sensortec geomagnetic sensor (BMM150).
BMI160 Data sheet Page 95 2. to use the IMU-FIFO for storing the magnetometer data; this can be important for monitoring applications. 3.3.1.1 Configuration options of the secondary interface as magnetometer interface The secondary interface configured as a magnetometer interface is a I2C master interface supporting Fast-Mode I²C communication. In this mode the ASCx pad is output only, since both master and slave don’t support clock stretching and only master can drive the clock.
BMI160 Data sheet Page 96 The data mode is enabled by setting the MAG_IF_1<7> = 0. MAG_IF[2] defines the lowest address of the register data bytes to read from the MAGsensor and the data will be stored in the BMI160 register MAG-DATA. The data ready status is set via drdy_mag in Register (0x1B) STATUS, but this operation never clears drdy_mag, it is typically cleared through reading the Register (0x04-0x17) DATA. If DRDY is not active the error bit mag_drdy_err in Register (0x02) ERR_REG is set.
BMI160 Data sheet Page 97 4. Pin-out and Connection diagrams 4.
BMI160 Data sheet Page 98 4.2 Connection diagrams to use primary interface only 4.2.1 I2C as primary interface SA0 SDA 13 14 CSB 12 10 100nF VDDIO 8 OSCB INT1 INT2 INT2 VDD 100nF R R 9 OSDO GND 4 7 Top View (Pads not visible!) 3 VDDIO INT1 11 BMI160 6 ASCx 2 GNDIO ASDx 1 5 SDO SCX SDX SCL VDD Figure 33: Only I2C as primary interface 4.2.
BMI160 Data sheet Page 99 4.2.3 SPI 4-wire as primary interface MISO MOSI 2 CSB 12 100nF VDDIO INT2 VDD 8 100nF VDDIO 5 4 INT1 INT2 9 7 INT1 OSCB 10 Top View (Pads not visible!) 3 OSDO 11 BMI160 6 ASCx CSB GND ASDx 13 SDX 14 1 GNDIO SDO SCX SCK VDD Figure 35: Only SPI 4-wire as primary interface 4.3 Connection diagrams to use additional secondary interface 4.3.
BMI160 Data sheet Page 100 4.3.2 Primary SPI 3-wire and secondary magnetometer interface (I2C) SISO 2 12 CSB CSB 7 6 GND GNDIO 100nF VDDIO INT2 VDD 8 100nF VDDIO 5 4 INT1 INT2 9 SCL INT1 OSCB 10 Top View (Pads not visible!) 3 OSDO 11 BMI160 to BMM ASCx 13 SDX 1 ASDx SDA 14 SDO SCX SCK VDD Figure 37: Using SPI 3-wire and the magnetometer interface 4.3.
BMI160 Data sheet Page 101 4.3.4 Primary I2C and secondary 4-wire SPI as OIS interface SA0 SDA CSB 12 1 13 14 SDO SCX SDX SCL 11 MISO OSDO OIS Interface MOSI ASDx OIS Interface ASCx 2 3 BMI160 10 Top View (Pads not visible!) 9 7 INT1 8 INT2 INT2 VDD 100nF VDDIO CSB GND 5 GNDIO R 100nF R 4 VDDIO INT1 6 SCK OSCB VDD Figure 39: Using I2C and 4-wire SPI as OIS interface 4.3.
BMI160 Data sheet Page 102 5. Package 5.1 Outline Dimensions The package dimension is LGA 2.5mm x 3.0mm x 0.83mm. Unit of the following drawing is mm. Note: Unless otherwise specified tolerance = decimal ±0.05 mm. 0.83 ±0.05 0.70 ±0.05 Figure 41: Packaging outline dimensions Note: Pin1 marker is internally connected to Pin1. It must not be connected to a different signal than Pin1. BST-BMI160-DS000-07 | Revision 0.
BMI160 Data sheet Page 103 5.2 Sensing axes 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).
BMI160 Data sheet Page 104 5.3 Landing pattern recommendation The following landing pad recommendation is given for maximum stability of the solder connections. 0.675 14 13 12 2 10 3 9 4 8 2.5 0.5 11 0.25 1 6 0.675 5 7 0.925 3.0 Figure 44: Landing pattern recommendation for BMI160 Note: Pin1 marker is internally connected to Pin1. It must not be connected to a different signal than Pin1.
BMI160 Data sheet Page 105 5.4 Marking 5.4.1 Mass production marking Table 31: Marking of mass samples Labeling CCC VL Name Symbol Remark Counter ID CCC 3 alphanumeric digits, variable to generate trace-code T Product identifier V = “T” denoting BMI160 First letter second row of Second letter of L second row Pin 1 identifier • Internal use -- 5.4.
BMI160 Data sheet Page 106 5.
BMI160 Data sheet Page 107 5.6 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’s. 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.
BMI160 Data sheet Page 108 5.7.1 Orientation within the reel Processing direction Figure 47: Orientation of the BMI160 devices relative to the tape 5.8 Environmental safety The BMI160 sensor meets the requirements of the EC restriction of hazardous substances (RoHS) directive, see also: Directive 2002/95/EC of the European Parliament and of the Council of 27 January 2003 on the restriction of the use of certain hazardous substances in electrical and electronic equipment. 5.8.
BMI160 Data sheet Page 109 6. Legal disclaimer 6.1 Engineering samples Engineering Samples are marked with an asterisk (*) or (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.
BMI160 Data sheet Page 110 7. Document history and modifications Rev. No 0.1 Chapter Description of modification/changes Document creation Date 10. Feb. 2015 Bosch Sensortec GmbH Gerhard-Kindler-Strasse 8 72770 Reutlingen / Germany contact@bosch-sensortec.com www.bosch-sensortec.com Modifications reserved | Printed in Germany Preliminary - specifications subject to change without notice Document number: BST-BMI160-DS000-07 Revision_0.8_022015 BST-BMI160-DS000-07 | Revision 0.