0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心
发布
  • 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
BMX160

BMX160

  • 厂商:

    BOSCH(博世传感器)

  • 封装:

    LGA14_2.5X3MM

  • 描述:

    BMX160

  • 数据手册
  • 价格&库存
BMX160 数据手册
Data sheet BMX160 Small, low power 9-axis sensor Bosch Sensortec BMX160 – Data sheet Document revision 1.2 Document release date January 15th, 2019 Document number BST-BMX160-DS000-11 Technical reference code(s) 0 273 141 190 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. BMX160 Data sheet Page 2 BMX160 Small, low power 9-axis sensor The BMX160 is a highly integrated, low power 9-axis sensor that provides precise acceleration and angular rate (gyroscopic) and geomagnetic measurement in each spatial direction. The BMX160 integrates:  16 bit digital, triaxial accelerometer  16 bit digital, triaxial gyroscope  Geomagnetic sensor Key features  High performance accelerometer and gyroscope, geomagnetic sensor  Very low power consumption: typ. 1585 µA in high performance mode  Android Marshmallow certified: significant motion, step detector / step counter (5 µA each)  Very small 2.5 x 3.0 mm2 footprint, height 0.95 mm  Built-in power management unit (PMU) for advanced power management  Power saving with fast start-up mode of gyroscope  Wide power supply range: 1.71 V … 3.6 V  Allocatable FIFO buffer of 1024 bytes  Hardware sensor time-stamps for accurate sensor data fusion  Integrated interrupts for enhanced autonomous motion detection  Flexible digital primary interface to connect to host over I2C or SPI  Extended I2C mode with clock frequencies up to 1 MHz Typical applications  Virtual and augmented Reality  Indoor navigation  3D scanning / indoor mapping  Advanced gesture recognition  Immersive gaming  9-axis motion detection  Air mouse applications and pointers  Pedometer / step counting  Advanced system power management for mobile applications  Optical image stabilization of camera modules  Free-fall detection and warranty logging Target Devices  Smart phones, tablet and transformer PCs  Game controllers, remote controls and pointing devices  Head tracking devices  Wearable devices, e.g. smart watches or augmented reality glasses  Sport and fitness devices  Cameras, camera modules  Toys, e.g. toy helicopters BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 3 General Description The BMX160 is a 9-axis sensor consisting of a state-of-the-art 3-axis, low-g accelerometer, a low power 3-axis gyroscope and a 3-axis geomagnetic sensor. It has been designed for low power, high precision 9-axis applications in mobile phones, tablets, wearable devices, remote controls, game controllers, head-mounted devices and toys. Due to the small form factor of the compact 14-pin 2.5 × 3.0 × 0.95 mm3 LGA package, BMX160 can be ideally integrated into wearables like smart watches or glasses for augmented reality. When accelerometer and gyroscope are in full operation mode and the geomagnetic sensor in normal mode, power consumption is typically 1465 µA, enabling always-on applications in battery driven devices. The BMX160 offers a wide VDD voltage range from 1.71 V to 3.6 V and a VDDIO range from 1.2 V to 3.6 V, allowing the BMX160 to be powered at 1.8 V for both VDD and VDDIO. Due to its built-in timing unit to synchronize the sensor data, BMX160 is ideally suited for immersive gaming and navigation applications, which require highly accurate sensor data fusion. The BMX160 provides high precision sensor data together with the accurate timing of the corresponding data. The timestamps have a resolution of only 39 µs. The integrated 1024 byte FIFO buffer supports low power applications and prevents data loss in non-real-time systems. The intelligent FIFO architecture allows dynamic reallocation of FIFO space for accelerometer, gyroscope and magnetometer, respectively. For typical 9-DoF applications, this is sufficient for approx. 0.5 s of data capture. Like its predecessors, the BMX160 features an on-chip interrupt engine enabling low-power motion-based context awareness. Examples of interrupts that can be issued in a power efficient manner are: any- or no-motion detection, tap or double tap sensing, orientation detection, freefall or shock events. The BMX160 is Android 6.0 (Marshmallow) certified, and in the implementation of the Significant Motion and Step Detector interrupts, each consumes less than 30 µA. The smart built-in power management unit (PMU) can be configured, for example, to further lower the power consumption by automatically sending the gyroscope temporarily into fast start-up mode and waking it up again by internally using the any-motion interrupt of the accelerometer. By allowing longer sleep times of the host, the PMU contributes to significant further power saving on system level. BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 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 .......................................................................................... 13 2. FUNCTIONAL DESCRIPTION ................................................................................................. 14 2.1 BLOCK DIAGRAM ............................................................................................................... 14 2.2 POWER MODES ................................................................................................................ 15 2.2.1 TRANSITIONS BETWEEN POWER MODES ........................................................................................ 16 2.2.2 PMU (POWER MANAGEMENT UNIT) .............................................................................................. 20 2.3 SENSOR TIMING AND DATA SYNCHRONIZATION ................................................................... 20 2.3.1 SENSOR TIME .............................................................................................................................. 20 2.3.2 DATA SYNCHRONIZATION ............................................................................................................. 21 2.4 DATA PROCESSING ........................................................................................................... 21 2.4.1 DATA PROCESSING ACCELEROMETER ........................................................................................... 22 2.4.2 DATA PROCESSING GYROSCOPE .................................................................................................. 23 2.4.3 DATA PROCESSING MAGNETOMETER ............................................................................................ 24 2.5 FIFO................................................................................................................................ 28 2.5.1 FIFO FRAMES ............................................................................................................................. 28 2.5.2 FIFO CONDITIONS AND DETAILS ................................................................................................... 32 2.6 INTERRUPT CONTROLLER .................................................................................................. 32 2.6.1 ANY-MOTION DETECTION (ACCEL) ................................................................................................ 33 2.6.2 SIGNIFICANT MOTION (ACCEL) ...................................................................................................... 34 2.6.3 STEP DETECTOR (ACCEL) ............................................................................................................ 35 2.6.4 TAP SENSING (ACCEL) ................................................................................................................. 36 2.6.5 ORIENTATION RECOGNITION (ACCEL) ........................................................................................... 37 2.6.6 FLAT DETECTION (ACCEL) ............................................................................................................ 43 2.6.7 LOW-G / FREE-FALL DETECTION (ACCEL)....................................................................................... 44 2.6.8 HIGH-G DETECTION (ACCEL) ........................................................................................................ 44 2.6.9 SLOW-MOTION ALERT / NO-MOTION INTERRUPT (ACCEL) .............................................................. 45 2.6.10 DATA READY DETECTION (ACCEL, GYRO AND MAG) .................................................................... 48 2.6.11 PMU TRIGGER (GYRO) .............................................................................................................. 48 2.6.12 FIFO INTERRUPTS (ACCEL, GYRO, AND MAG) ............................................................................. 48 2.7 STEP COUNTER ................................................................................................................ 49 2.8 DEVICE SELF-TEST ........................................................................................................... 49 2.8.1 SELF-TEST ACCELEROMETER ....................................................................................................... 49 2.8.2 SELF-TEST GYROSCOPE .............................................................................................................. 50 2.8.3 SELF-TEST MAGNETOMETER ........................................................................................................ 50 2.9 OFFSET COMPENSATION ................................................................................................... 52 2.9.1 FAST OFFSET COMPENSATION...................................................................................................... 52 2.9.2 MANUAL OFFSET COMPENSATION................................................................................................. 52 2.9.3 INLINE CALIBRATION ..................................................................................................................... 53 BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 5 2.10 NON-VOLATILE MEMORY ................................................................................................. 53 2.11 REGISTER MAP ............................................................................................................... 54 2.11.1 REGISTER (0X00) CHIPID ......................................................................................................... 56 2.11.2 REGISTER (0X02) ERR_REG .................................................................................................... 56 2.11.3 REGISTER (0X03) PMU_STATUS ............................................................................................. 57 2.11.4 REGISTER (0X04-0X17) DATA ................................................................................................... 58 2.11.5 REGISTER (0X18-0X1A) SENSORTIME .................................................................................... 59 2.11.6 REGISTER (0X1B) STATUS ....................................................................................................... 60 2.11.7 REGISTER (0X1C-0X1F) INT_STATUS ..................................................................................... 60 2.11.8 REGISTER (0X20-0X21) TEMPERATURE ................................................................................. 62 2.11.9 REGISTER (0X22-0X23) FIFO_LENGTH ................................................................................... 63 2.11.10 REGISTER (0X24) FIFO_DATA ................................................................................................ 64 2.11.11 REGISTER (0X40) ACC_CONF ................................................................................................ 64 2.11.12 REGISTER (0X41) ACC_RANGE ............................................................................................. 65 2.11.13 REGISTER (0X42) GYR_CONF................................................................................................ 66 2.11.14 REGISTER (0X43) GYR_RANGE ............................................................................................. 67 2.11.15 REGISTER (0X44) MAG_CONF ............................................................................................... 67 2.11.16 REGISTER (0X45) FIFO_DOWNS ........................................................................................... 68 2.11.17 REGISTER (0X46-0X47) FIFO_CONFIG .................................................................................. 69 2.11.18 REGISTER (0X4C-0X4F) MAG_IF ............................................................................................ 70 2.11.19 REGISTER (0X50-0X52) INT_EN.............................................................................................. 71 2.11.20 REGISTER (0X53) INT_OUT_CTRL ......................................................................................... 72 2.11.21 REGISTER (0X54) INT_LATCH ................................................................................................ 73 2.11.22 REGISTER (0X55-0X57) INT_MAP ........................................................................................... 73 2.11.23 REGISTER (0X58-0X59) INT_DATA ......................................................................................... 75 2.11.24 REGISTER (0X5A-0X5E) INT_LOWHIGH ................................................................................ 76 2.11.25 REGISTER (0X5F-0X62) INT_MOTION .................................................................................... 78 2.11.26 REGISTER (0X63-0X64) INT_TAP............................................................................................ 80 2.11.27 REGISTER (0X65-0X66) INT_ORIENT ..................................................................................... 81 2.11.28 REGISTER (0X67-0X68) INT_FLAT .......................................................................................... 82 2.11.29 REGISTER (0X69) FOC_CONF ................................................................................................ 83 2.11.30 REGISTER (0X6A) CONF ......................................................................................................... 84 2.11.31 REGISTER (0X6B) IF_CONF .................................................................................................... 84 2.11.32 REGISTER (0X6C) PMU_TRIGGER ........................................................................................ 85 2.11.33 REGISTER (0X6D) SELF_TEST ............................................................................................... 86 2.11.34 REGISTER (0X70) NV_CONF .................................................................................................. 87 2.11.35 REGISTER (0X71-0X77) OFFSET ............................................................................................ 87 2.11.36 REGISTER (0X78-0X79) STEP_CNT........................................................................................ 88 2.11.37 REGISTER (0X7A-0X7B) STEP_CONF .................................................................................... 89 2.11.38 REGISTER (0X7E) CMD ........................................................................................................... 90 3. DIGITAL INTERFACES ............................................................................................................ 92 3.1 PROTOCOL SELECTION ..................................................................................................... 92 3.2 SPI INTERFACE................................................................................................................. 93 3.3 I2C INTERFACE ................................................................................................................. 96 3.4 SPI AND I²C ACCESS RESTRICTIONS................................................................................ 100 4. PIN-OUT AND CONNECTION DIAGRAMS .......................................................................... 101 4.1 PIN-OUT ......................................................................................................................... 101 4.2 CONNECTION DIAGRAMS ................................................................................................. 102 BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 6 4.2.1 I2C ............................................................................................................................................ 102 4.2.2 SPI 3-WIRE................................................................................................................................ 103 4.2.3 SPI 4-WIRE................................................................................................................................ 104 5. PACKAGE .............................................................................................................................. 105 5.1 OUTLINE DIMENSIONS ..................................................................................................... 105 5.2 SENSING AXES ORIENTATION .......................................................................................... 105 5.3 LANDING PATTERN RECOMMENDATION ............................................................................ 106 5.4 MARKING........................................................................................................................ 108 5.4.1 MASS PRODUCTION MARKING .................................................................................................... 108 5.4.2 ENGINEERING SAMPLES ............................................................................................................. 108 5.5 SOLDERING GUIDELINES ................................................................................................. 109 5.6 HANDLING INSTRUCTIONS................................................................................................ 110 5.7 TAPE AND REEL SPECIFICATION....................................................................................... 110 5.7.1 ORIENTATION WITHIN THE REEL ................................................................................................. 111 5.8 ENVIRONMENTAL SAFETY ................................................................................................ 111 5.8.1 HALOGEN CONTENT ................................................................................................................... 111 5.8.2 MULTIPLE SOURCING ................................................................................................................. 111 6. LEGAL DISCLAIMER............................................................................................................. 112 6.1 ENGINEERING SAMPLES .................................................................................................. 112 6.2 PRODUCT USE ................................................................................................................ 112 6.3 APPLICATION EXAMPLES AND HINTS ................................................................................ 112 7. DOCUMENT HISTORY AND MODIFICATIONS ................................................................... 113 BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 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, gyroscope and geomagnetic sensor sections of the BMX160. 1.1 Electrical Specification VDD and VDDIO can be ramped in arbitrary order without causing the device to consume significant currents. The values of the voltage at VDD and the VDDIO pins can be chosen arbitrarily within their respective limits. The device only operates within specifications if the both voltages at VDD and VDDIO pins are within the specified range. The voltage levels at the digital input pins must not fall below GNDIO-0.3V or go above VDDIO+0.3V to prevent excessive current flowing into the respective input pin. BMX160 contains a brownout detector, which ensures integrity of data in the non-volatile memory under all operating conditions. Table 1: Electrical parameter specification Parameter Supply Voltage Internal Domains Supply Voltage I/O Domain Voltage Input Low Level Voltage Input High Level 1 2 Max Unit 1.71 3.0 3.6 V VDDIO 1.2 2.4 3.6 V 0.3VDDIO - VIL,a SPI VIH,a SPI VOL,a Voltage Output High Level VOH,a Current Consumption at TA=25°C Typ VDD Voltage Output Low Level Operating Temperature NVM Write-cycles OPERATING CONDITIONS BMX160 Condition Min Symbol IDD - VDDIO=1.62V, IOL=3mA, SPI 0.2VDDIO - VDDIO=1.2V, IOL=3mA, SPI 0.23VDDIO - VDDIO=1.62V, IOH=3mA, SPI 0.8VDDIO - VDDIO=1.2V, IOH=3mA, SPI 0.62VDDIO - TA nNVM 0.7VDDIO -40 Non-volatile memory Gyro in fast start-up, accel and mag in suspend mode, TA=25°C Gyro and accel and mag1 full operation mode Gyro full operation mode, accel and mag in suspend Mag2 in regular preset, ODR = 12.5Hz, gyro and accel in suspend +85 14 °C Cycles 500 1585 µA 850 660 Geomagnetic in regular preset at ODR=12.5Hz, magnetometer interface in low power mode Magnetometer interface in low power mode BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 8 Accel full operation mode, gyro and mag in suspend Gyro, accel and mag in suspend mode, TA=25°C Significant motion detector, accel in low power mode @50Hz, gyro and mag in suspend Step detector, accel in low power mode @50Hz, gyro and mag in suspend 180 4 30 30 1.2 Electrical and Physical Characteristics, Measurement Performance Table 2: Electrical characteristics accelerometer OPERATING CONDITIONS ACCELEROMETER Parameter Symbol Condition Min gFS2g Acceleration Range gFS4g gFS8g Selectable via serial digital interface gFS16g Start-up Time tA,su Suspend/low power mode to normal mode, ODR=1.6kHz Typ Max Units ±2 g ±4 g ±8 g ±16 g 3.2 ms OUTPUT SIGNAL ACCELEROMETER Parameter Symbol Condition Min Resolution Sensitivity Typ Max 16 Units bit S2g gFS2g, TA=25°C 15729 16384 17039 LSB/g S4g gFS4g, TA=25°C 7864 8192 8520 LSB/g S8g gFS8g, TA=25°C 3932 4096 4260 LSB/g S16g gFS16g, TA=25°C 1966 2048 2130 LSB/g Sensitivity Temperature Drift TCSA Sensitivity Change over Supply Voltage SA,VDD OffA, init Zero-g Offset OffA,board BST-BMX160-DS000-12 | Revision 1.2 | January 2019 gFS8g, Nominal VDD supplies best fit straight line T =25°C, A VDD,min ≤ VDD ≤ VDD,max best fit straight line gFS8g, TA=25°C, nominal VDD supplies, component level gFS8g, TA=25°C, nominal VDD supplies, soldered, board level ±0.03 %/K 0.01 %/V ±25 mg ±40 mg Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet OffA,MSL OffA,life Zero-g Offset Temperature Drift TCOA Nonlinearity NLA Page 9 gFS8g, TA=25°C, nominal VDD supplies, after MSL1prec. 3 / soldered gFS8g, TA=25°C, nominal VDD supplies, soldered, over life time4 gFS8g, Nominal VDD supplies best fit straight line ±70 mg ±150 mg ±1.0 mg/K Best fit straight line, gFS8g ±0.5 %FS 180 µg/Hz 1.8 mg-rms gFS8g, TA=25°C, nominal VDD, Normal mode Filter setting 80 Hz, ODR 200 Hz nA,nd Output Noise nA,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 12.5 1600 Normal mode, over whole operating temperature range AODRA ±1 Hz % Table 3: Electrical characteristics gyroscope OPERATING CONDITIONS GYROSCOPE Parameter Symbol Condition Min Typ RFS125 Unit 125 °/s 250 °/s 500 °/s RFS1000 1,000 °/s RFS2000 2,000 °/s RFS250 Range Max RFS500 Selectable via serial digital interface tG,su Suspend to normal mode ODRG=1600Hz 55 ms tG,FS Fast start-up to normal mode 10 ms Start-up Time OUTPUT SIGNAL GYROSCOPE Sensitivity 3 4 RFS2000 Ta=25°C 15.7 16.4 17.1 LSB/°/s RFS1000 Ta=25°C 31.3 32.8 34.3 LSB/°/s RFS500 Ta=25°C 62.6 65.6 68.6 LSB/°/s RFS250 Ta=25°C 125.3 131.2 137.1 LSB/°/s Values taken from qualification, according to JEDEC J-STD-020D.1 Values taken from qualification, according to JEDEC J-STD-020D.1 BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet RFS125 Sensitivity Change over Temperature TCSG Sensitivity Change over Supply Voltage SG,VDD Nonlinearity Ta=25°C A VDD,min ≤ VDD ≤ VDD,max best fit straight line Off x y and z Zero-Rate Offset Over Temperature Off x, oT y, oT and z,oT Zero-Rate Offset Change over Temperature TCOG Output Data Rate (set of x,y,z rate) Output Data rate accuracy (set of x,y,z rate) Cross Axis Sensitivity 262.4 274.2 LSB/°/s ±0.02 %/K 0.01 %/V 0.1 %FS Best fit straight line RFS1000, RFS2000 NLG Zero-Rate Offset Bias stability 250.6 RFS2000, Nominal VDD supplies best fit straight line T =25°C, Sensitivity to acceleration stimuli in all three axis (frequency 1.5V and VDDIO>1.1V from suspend to sleep Typ Max Unit ±1150 µT ±2500 µT 1.0 ms 3.0 ms Full linear measurement range considering sensor offsets BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 11 OUTPUT SIGNAL GEOMAGNETIC SENSOR Parameter Symbol Condition Device Resolution Dres,m TA=25°C Gain Error6 Gerr,m Sensitivity Temperature Drift TCSm Zero-B Offset OFFm Zero-B Offset Magnetometer Heading Accuracy8 ODR (Output Data Rate), Forced Mode9 Full-scale Nonlinearity Min Typ Max Unit 0.3 µT ±2 % ±0.01 %/K TA=25°C ±40 µT OFFm,cal After software calibration with Bosch Sensortec eCompass software7 -40°C ≤ TA ≤ +85°C ±2 µT Acheading 30µT horizontal geomagnetic field component, TA=25°C odrlp Low power preset odrrg Regular preset odreh Enhanced regular preset odrha High accuracy preset NLm, FS best fit straight line nrms,lp,m,xy Low power preset x, y-axis, TA=25°C Nominal VDD supplies 1.0 µT nrms,lp,m,z Low power preset z-axis, TA=25°C Nominal VDD supplies 1.4 µT nrms,rg,m Regular preset TA=25°C Nominal VDD supplies 0.6 µT nrms,eh,m Enhanced regular preset TA=25°C Nominal VDD supplies 0.5 µT After API compensation TA=25°C Nominal VDD supplies After API compensation -40°C ≤ TA ≤ +85°C Nominal VDD supplies Output Noise ±2.5 deg Hz Hz 12.5 Hz Hz 1 %FS 6 Definition: gain error = ( (measured field after API compensation) / (applied field) ) - 1 Magnetic zero-B offset assuming calibration with Bosch Sensortec sensor fusion software. Typical value after applying calibration movements containing various device orientations (typical device usage) 8 The heading accuracy depends on hardware and software. A fully calibrated sensor and ideal tilt compensation are assumed 9 The geomagnetic sensor is operated in the forced mode. The recommended ODR in this mode for all presets is 12.5Hz. For more details on according current consumptions and noise figures. Pls. refer to Table 11 in chapter 2.2.1.2. 7 BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Power Supply Rejection Rate Page 12 nrms,ha,m High accuracy preset TA=25°C Nominal VDD supplies 0.3 µT PSRRm TA=25°C Nominal VDD supplies ±0.5 µT/V Table 5: Electrical characteristics temperature sensor OPERATING CONDITIONS AND OUTPUT SIGNAL OF TEMPERATURE SENSOR Parameter Symbol Temperature Sensor Measurement Range TS Condition Min Typ -40 Max Unit 85 °C Temperature Sensor Slope dTS 0.002 K/LSB Temperature Sensor Offset OTS ±2 K Accelerometer on or gyro in fast start-up 0.8 Hz Gyro active 100 Hz Accelerometer on or gyro in fast start-up 8 bit Gyro active 16 bit Output Data Rate Resolution ODRT nT BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 13 1.3 Absolute Maximum Ratings Table 6: Absolute maximum ratings Parameter Condition Min Max Units VDD Pin -0.3 4.0 V VDDIO Pin -0.3 4.0 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 Magnetic Field years Duration 200 µs, half sine 10,000 g Duration 1.0 ms, half sine 2,000 g Free fall onto hard surfaces 1.8 m HBM, at any Pin 2 kV CDM 500 V MM 200 V Any direction 7 T Note: Stresses above these listed maximum ratings may cause permanent damage to the device. Exposure beyond specified electrical characteristics as specified in Table 1 may affect device reliability or cause malfunction. BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 14 2. Functional Description 2.1 Block Diagram The figure below depicts the dataflow in BMX160 and the configuration parameters for data rates: SENSORTIME Accel ADC select Gyro SENSOR DATA AND SENSORTIME REGISTER DIGITAL SIGNAL CONDITIONING ADC FIFO ENGINE INTERRUPT ENGI NE Magnet SPI / I2C Magnet Interface INT1, INT2 PRIMARY DIGITAL INTERFACE LEGACY INTERRUPTS ADC RAW DATA ST EP DETECTOR SIGNIFICANT MOTION INTERRUPTS Step Counter Figure 1: Block diagram of data flow The pre-filtered input data may be already temperature compensated or other low level correction operations may be applied to them. The data from the sensor are always sampled with a data rate of 6400 Hz for the gyroscope and 1600 Hz for the accelerometer. The data are filtered to an output data rate configured in the Register (0x40) ACC_CONF and Register (0x42) GYR_CONF for accelerometer and gyroscope, respectively. The data processing implements a low pass filter configured in the Register (0x40) ACC_CONF and Register (0x42) GYR_CONF for accelerometer and gyroscope, respectively. In addition further down sampling for the interrupt engines and the FIFO is possible and configured in the Register (0x45) FIFO_DOWNS. This down sampling discards data frames. The data from the magnetometer are handled in a different way with respect to the accelerometer or gyroscope data. The magnetometer interface within BMX160 will periodically trigger measurements (force mode) of the magnetometer to sample data. The output data rate is configured in the Register (0x44) MAG_CONF. Balance between output noise and active time (hence power consumption) can be adjusted by the repetition settings for x/y-axis and z-axis through the magnetometer interface manual mode, see section 2.2.1.2. The BMX160 allows the configuration of the magnetometer interface directly through the registers in Register (0x4C-0x4F) MAG_IF. Further necessary configuration of the magnetometer itself must be done through indirect access. The details are explained in section 2.4.3.1. The sensor time is synchronized with the update of the data register. BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 15 2.2 Power Modes By default BMX160 accelerometer, gyroscope, magnetometer and magnetometer interface are in suspend mode after powering up the device. As mentioned in section 2.1, the data from the magnetometer are handled and configured in a different way compared to the accelerometer or gyroscope data. As a result, magnetometer and magnetometer interface have separate power modes. The device is powering up in less than 10 ms. In the following sections, the power modes for accelerometer, gyroscope, magnetometer and magnetometer interface are described. Table 7: Power modes of accel, gyro, mag_if and mag in BMX160 full operation mode Sleep modes Low power modes Accelerometer Gyroscope Magnetometer Interface    Normal mode Fast Startup mode Suspend mode Low power mode Magnetometer Force mode       Suspend Force mode Suspend and fast start-up modes are sleep modes. Switching between normal and low power mode will not impact the output data from the sensor. This allows the system to switch from low power mode to normal mode to read out the sensor data in the FIFO with a data rate limited by the serial interface. When all sensors are in suspend or low power mode, burst writes are not supported, normal writes need wait times after the write command is issued (~400 µs), and burst reads are not supported on Register (0x24) FIFO_DATA. If all sensors (accelerometer, gyroscope or magnetometer) are in either suspend or low power mode, the FIFO must not be read. 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 (0x03) PMU_STATUS  Suspend mode: No sampling takes place, all data is retained, and delays between subsequent I2C operations are allowed. Sensors are powered off but the digital circuitry is still active Gyroscope  Normal mode: Same as accelerometer  Suspend mode: Same as accelerometer  Fast start-up mode: In fast start-up mode the sensing analog part is powered down, while the drive and the digital part remain largely operational. No data acquisition is performed. The latest data rate and the content of all configuration registers are kept. The fast start-up mode allows a fast transition (≤10 ms) into normal mode (and low power mode for magnetometer) while keeping power consumption significantly lower than in normal and low power mode BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 16 Magnetometer Interface  Low power mode: 1) In setup mode*: It allows the user to configure the magnetometer using indirect addressing; 2) In data mode*: It triggers the magnetometer force mode periodically. FIFO data readout are supported in low power mode to a limited extent, see Register (0x03) PMU_STATUS  Normal mode: Similar to low power mode but FIFO data readout are supported  Suspend mode: Neither magnetometer configuration nor triggering of magnetometer force mode take place * Note: Setup mode and data mode are two basic configurations of the magnetometer interface, see section 2.4.3.1. Magnetometer  Force mode: Selected magnetometer channels are measured according to data acquisition presets described in section 2.2.1.2 and then the magnetometer goes to sleep mode. This design assures an optimized power consumption  Sleep mode: Force mode can be triggered. All the magnetometer data acquisition presets remain. Magnetometer can only be indirectly configured via magnetometer interface when it is in sleep mode  Suspend mode: No force mode can be triggered. All the data acquisition presets will be cleared and no magnetometer configuration can be done. From suspend mode, magnetometer must be put into sleep mode first, and then the data acquisition presets can be configured. It is mandatory to put magnetometer into suspend mode before putting magnetometer interface into suspend mode. 2.2.1 Transitions between Power Modes Accelerometer and Gyroscope Power Modes The table below for the power modes of gyroscope and accelerometer shows which power mode combinations are supported by BMX160. With regard to the below diagram, transitions between power modes are only allowed in horizontal or vertical direction. Transitions in diagonal direction are not supported. Table 8: Typical total current consumption in µA according to accel/gyro modes Typical current consumption in µA 10 (geomagnetic sensor in suspend mode) Gyroscope Mode 10 Accelerometer Mode Suspend Normal Low Power Suspend 3 180 See Table 9 Fast Start-up 500 580 n.a. Normal 850 925 n.a. Preliminary values to be updated. BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 17 The power mode setting can be configured independently from the output data rate set. The main difference between normal and low power mode is the power consumption as shown in the figure below. If the sleep time between two configured sampling intervals becomes too short to duty cycle between suspend and normal mode, the accelerometer stays automatically in normal mode. In order to make the transition between low power and normal mode as transparent as possible, an undersampling mode is defined in such a way that it mimics the behavior of the lower data rate in low power mode in normal mode. The low power mode then only switches clock sources. Figure 2: Low power and normal mode operation 2.2.1.1.1 Low Power Mode of Accelerometer 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. Regarding register read and write operations, the note in section 0 applies. 2.2.1.1.2 Power Consumption of Accelerometer in Low Power Mode When accelerometer and gyroscope are operated in normal mode, there is no significant dependence on the specific settings like ODR, undersampling and bandwidth. The same applies to the fast power up mode of the gyroscope. If the accelerometer, however, is operated in low power mode and undersampling is enabled, the power consumption of it depends on the two parameters ODR and number of averaging cycles. In low power mode (gyroscope in suspend), the actual power consumption depends on the selected setting in Register (0x40) ACC_CONF. BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 18 Table 9: Typical total current consumption in µA according to number of averaging cycles and accelerometer ODR settings (gyroscope in suspend mode and accelerometer in low power mode and undersampling) Typical current consumption in µA 11 ODR of accelerometer in low power mode [Hz] (gyroscope, magnetometer and magnetometer interface are in suspend mode) 0.7812 5 1.5625 AVG – number of averaging cycles 1 3 2 3 4 4 8 4 16 5 32 6 64 9 128 14 4 4 4 5 6 9 14 25 3.125 4 5 5 7 9 15 25 46 6.25 6 6 8 10 16 26 47 90 12.5 8 10 12 18 28 49 92 n. m.* 25 14 17 22 32 54 96 104 50 25 30 41 62 100 46 57 78 121 200 90 111 154 400 172 172 normal mode* normal mode* normal mode* normal mode* normal mode* 800 normal mode* 1600 normal mode* * Note: Those combinations are not available in low-power mode. Switching to normal power mode is required to for these combinations . 2.2.1.1.3 Noise of Accelerometer in Low Power Mode When acc_us=1, accelerometer is in undersampling mode. The noise is only depending on the number of averaging cycles. Table 10: Accel noise in mg according to averaging with undersampling (range +/- 8g) AVG – number of averaging cycles 1 2 4 8 16 32 64 128 RMS-noise (typ.) [mg] 4.3 3.5 3.0 2.0 1.5 1.1 0.7 0.5 Magnetometer Modes When the force mode of magnetometer is triggered by magnetometer interface at a defined ODR, desired balance between output noise and active time (hence power consumption) can be adjusted. There are four recommended presets (High accuracy preset, Enhanced regular preset, Regular preset, Low power preset) which reflect the most common usage scenarios, i.e. required output accuracy at a given current consumption of the magnetometer. The four presets are automatically set by the BMX160 API or driver provided by Bosch Sensortec when a preset is selected. The following table shows the recommended presets, the resulting magnetic field output noise and current consumption: 11 Values are to be updated BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 19 Table 11: Recommended presets for repetitions and output data rates Preset Low Power Preset Regular Preset Enhanced Regular Preset High AccuracyPreset Recommended ODR [Hz] Max ODR fmax,ODR [Hz] RMS noise x/y/z [µT] Average current consumption at recommended ODR [mA] (mag_if in low power mode) 12.5 200 1.0/1.0/1.4 0.28 12.5 100 0.6/0.6/0.6 0.66 12.5 50 0.5/0.5/0.5 1.06 12.5 12.5 0.3/0.3/0.3 3.00 2.2.2 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 wake-up devices. See section 2.6.11, PMU Trigger (Gyro). Automatic Gyroscope Power Mode Changes To further lower the power consumption, the gyroscope may be configured to be temporarily put into sleep mode, which is in BMX160 configurable as suspend or fast-start-up mode, when no motion is detected by the accelerometer. This mode benefits from the accelerometer any-motion and nomotion interrupt that is used to control the power state of the gyroscope. To configure this feature Register (0x6C) PMU_TRIGGER is used. Power Management of the Magnetometer The PMU allows advanced power management with the magnetometer. To put the magnetometer into suspend mode, magnetometer interface manual mode is required, see detail information in section 2.4.3.1.1. Set the magnetometer interface after that to suspend mode using the mag_set_pmu_mode command in the Register (0x7E) CMD. Changing the magnetometer interface power mode to suspend does not imply any mode change in the magnetometer. Configuration example can be found in section 2.4.3.1.3. 2.3 Sensor Timing and Data Synchronization 2.3.1 Sensor Time The Register (0x18-0x1A) SENSORTIME is a free running counter, which increments with a resolution of 39 µs. All sensor events e.g. updates of data registers are synchronous to this register as defined in the table below. With every update of the data register or the FIFO, a bit m in the Register (0x18-0x1A) SENSORTIME toggles where m depends on the output data rate for the data register and the output data rate and the FIFO down sampling rate for the FIFO. The table below shows which bit toggles for which update rate of data register and FIFO. The time stamps in Register (0x18-0x1A) SENSORTIME are available independent of the power mode the device is in. BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 20 Table 12: 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.2 Data Synchronization The sensor data from accelerometer and gyroscope are strictly synchronized on hardware level, i.e. they run on exactly the same sampling rate. The magnetometer is also synchronized with accelerometer and gyroscope by taking acquisition time and the magnetometer interface into account. BMX160 supports various level of data synchronization:  Internal hardware synchronization of accelerometer, gyroscope and magnetometer data  High precision synchronization of sensor data through hardware timestamps. The hardware timestamp resolution is 39 µs  Hardware synchronization of the data of accelerometer, gyroscope and magnetometer through a unique DRDY interrupt signal  FIFO entries of the accelerometer, gyroscope and magnetometer are already synchronized by hardware. The according time stamp can be provided with each full FIFO read 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 BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 21 gyr_odr. There is no undersampling parameter for the gyroscope. For the magnetometer, the output data rate can be set in the 2.11.15Register (0x44) MAG_CONF through the parameter mag_odr. For magnetometer preset configuration, indirect addressing is used (see details about this addressing in Section 2.4.3.1). 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.1 Data Processing Accelerometer The accelerometer digital filter can be configured through the parameters: acc_bwp, acc_odr and acc_us in Register (0x40) ACC_CONF for the accelerometer. The accelerometer data can only be processed in normal power mode or in low power mode. Accelerometer data processing for normal power mode When normal power mode is used, the undersampling mode should be disabled (acc_us= 0b0). In this configuration mode, the accelerometer data is sampled at equidistant points in the time, defined by the accelerometer output data rate parameter (acc_odr). The output data rate can be configured in one of eight different valid ODR configurations going from 12.5 Hz up to 1600 Hz. Note: Lower ODR values than 12.5 Hz are not allowed when undersampling mode is not enabled. If they are used they result in an error code in Register (0x02) ERR_REG. When acc_us= 0b0, the acc_bwp parameter needs to be set to 0b010 (normal mode). The filter bandwidth shows a 3 dB cutoff frequency shown in the following table: Table 13: 3 dB cutoff frequency of the accelerometer according to ODR with normal filter mode Accelerometer ODR [Hz] 3 dB Cutoff frequency [Hz] 12,5 25 50 100 200 5.06 10.12 20.25 40.5 80 400 162 800 324 1600 684 (155 for Z axis) (262 for Z axis) (353 for Z axis) The noise is also depending on the filter settings and ODR, see table below. Table 14: Accelerometer noise in mg according to ODR with normal filter mode (range +/- 8g) ODR in Hz 25 50 100 200 400 800 1600 RMS-Noise (typ.) [mg] 0.6 0.7 1.0 1.5 2.2 2.8 4.3 When the filter mode is set to OSR2 (acc_bwp= 0b001 and acc_us= 0b0), 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 half of the bandwidth achieved for the same ODR in the normal filter mode. For example, for ODR= 50 Hz the 3 dB cutoff frequency is 10.12 Hz. When the filter mode is set to OSR4 (acc_bwp= 0b000 and acc_us= 0b0), both stages of the digital filter are used and the data is oversampled with an oversampling rate of 4. That means that BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 22 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= 50 Hz the 3 dB cutoff frequency is 5.06 Hz. Accelerometer data processing for low power mode When low power mode is used, the undersampling mode must be enabled (acc_us= 0b1). In this configuration mode, the accelerometer regularly changes between a suspend power mode phase where no measurement is performed and a normal power mode phase, where data is acquired. The period of the duty cycle for changing between suspend and normal mode will be determined by the output data rate (acc_odr). The output data rate can be configured in one of 12 different valid ODR configurations going from 0.78 Hz up to 1600 Hz. The samples acquired during the normal mode phase will be averaged and the result will be the output data. The number of averaged samples can be determined by the parameter acc_bwp through the following formula: averaged samples = 2(Val(acc_bwp)) skipped samples = (1600/ODR)-averaged samples A higher number of averaged samples will result in a lower noise level of the signal, but since the normal power mode phase is increased, the power consumption will also rise. This relationship can be observed in section 2.2.1.1.2. Note: When undersampling (acc_us=0b1 in Register (0x40) ACC_CONF) and the use of prefiltered data for interrupts or FIFO is configured an error code is flagged in Register (0x02) ERR_REG. Pre-filtered data for interrupts are configured through int_motion_src= 0b1 or int_tap_src= 0b1 in Register (0x58-0x59) INT_DATA. Pre-filtered data for the FIFO are configured through acc_fifo_filt_data= 0b0 in Register (0x45) FIFO_DOWNS. 2.4.2 Data Processing Gyroscope The gyroscope digital filter can be configured through the parameters: gyr_bwp and gyr_odr in GYR_CONF for the gyroscope. There is no undersampling option for the gyroscope data processing. The gyroscope data can only be processed in normal power mode. There are three data processing modes defined by gyr_bwp. Normal mode, OSR2, OSR4. For details see chapter 2.11.13. Gyroscope data processing for normal power mode When the filter mode is set to normal (gyr_bwp= 0b010), the gyroscope data is sampled at equidistant points in the time, defined by the gyroscope output data rate parameter (gyr_odr). The output data rate can be configured in one of eight different valid ODR configurations going from 25 Hz up to 3200 Hz. Note: Lower ODR values than 25 Hz are not allowed. If they are used, they result in an error code in Register (0x02) ERR_REG. The filter bandwidth as configured by gyr_odr shows a 3 dB cutoff frequency shown in the following table: BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 23 Table 15: 3 dB cutoff frequency of the gyroscope according to ODR with normal filter mode Gyroscope ODR [Hz] 25 3 dB Cutoff frequency [Hz] 10.7 50 20.8 100 39.9 200 74.6 400 136.6 800 254.6 1600 523.9 3200 890 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. For example, for ODR= 50 Hz the 3 dB cutoff frequency is 10.12 Hz. When the filter mode is set to OSR4 (gyr_bwp= 0b000), both stages of the digital filter are used and the data is oversampled with an oversampling rate of 4. That means 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 approximately 4 times smaller than the bandwidth achieved for the same ODR in the normal filter mode. For example, for ODR= 50 Hz the 3 dB cutoff frequency is 5.06 Hz. Note: The gyroscope does not feature a low power mode. Therefore, there is also no undersampling mode for the gyroscope data processing. 2.4.3 Data Processing Magnetometer The sensor data from magnetometer of BMX160 is stored in the data registers (per default) or can be made available in the FIFO (see Register (0x46-0x47) FIFO_CONFIG). In BMX160, the initial setup of the magnetometer after power-on is done through indirect addressing. From a system perspective the initialization for magnetometer should be possible within 100 ms. The magnetometer interface of BMX160 is optimized to synchronize sensor data from the magnetometer and the IMU. This improves the quality of sensor data fusion. Magnetometer Interface When the magnetometer interface is in low power mode or normal mode, two basis configurations are provided by setting the Register (0x4C-0x4F) MAG_IF: Setup mode and Data mode. The configuration examples of magnetometer and magnetometer interface is given in section 2.4.3.1.3. 2.4.3.1.1 Setup Mode In setup mode (also manual mode), the application processor can access every register of the magnetometer through indirect addressing. This mode is usually used to configure the magnetometer and the way the magnetometer interface reads the data. The Setup mode has to be executed after each POR (power on reset) previous to the first data acquisition in Data mode, see section 2.5.2. The setup mode is enabled by setting the MAG_IF[0] = 1. The magnetometer may be accessed through the primary interface using indirect addressing. MAG_IF[1] defines the first address of the register to read (MAG_IF[2] define the address for write access) in the magnetometer register map and triggers the operation itself, when the magnetometer interface is in low power mode or normal mode. BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 24 For reads, the number of data bytes defined in mag_rd_burst in register MAG_IF[0] are read from the magnetometer and written into the MAG_[X-Z] and RHALL fields of the register DATA. For write accesses, no burst write is supported, independent of the settings in mag_rd_burst in Register (0x4C-0x4F) MAG_IF. When a read or write operation is triggered by writing to MAG_IF[1] or MAG_IF[2], a bit indicator mag_man_op in Register (0x1B) STATUS is set and when the operation is completed it is automatically reset. The time delay between triggering a magnetometer measurement and reading the measured data is specified in mag_offset in MAG_IF[0]. The data rate used for the autonomous reading of the magnetometer data in Data mode should be first specified by configuring the mag_odr in Register (0x44) MAG_CONF.  For a read access: Write magnetometer register address to read from into Register (0x4D) MAG_IF[1] Read Register (0x1B) STATUS until the bit mag_man_op is “0” Read Register (0x04-0x0B) DATA_0 to DATA_7, get the data from magnetometer  For a write access: Write the write data into Register (0x4F) MAG_IF[3] Write magnetometer register address to write into Register (0x4E) MAG_IF[2] Read Register (0x1B) STATUS until the bit mag_man_op is “0” to confirm the write access has been completed Before changing from Setup mode to Data mode, set register MAG_IF[1-3] to the following values: Register MAG_IF[3] MAG_IF[2] MAG_IF[1] Value 0x02 0x4C 0x42 2.4.3.1.2 Data Mode The data mode is enabled by setting the MAG_IF_1= 0. When data mode is enabled and magnetometer interface is in low power mode or normal mode, the force mode of the magnetometer is autonomously triggered. 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. BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 25 2.4.3.1.3 Configuration Examples Table 16: Process to initialize magnetometer to low power preset at 12.5 Hz and enable magnetometer interface data mode Operation Register Address 0x7E Data Comment CMD 0x19 650µs 0x4C MAG_IF[0] 0x80 Write Write Write Write 0x4F 0x4E 0x4F 0x4E MAG_IF[3] MAG_IF[2] MAG_IF[3] MAG_IF[2] 0x01 0x4B 0x01 0x51 Write Write 0x4F 0x4E MAG_IF[3] MAG_IF[2] 0x0E 0x52 Write Write Write Write 0x4F 0x4E 0x4D 0x44 MAG_IF[3] MAG_IF[2] MAG_IF[1] MAG_CONF 0x02 0x4C 0x42 0x05 put MAG_IF into normal mode assuming all sensors are in suspend mode mag_manual_en= 0b1, mag_if setup mode mag_offset= 0b0000, maximum offset, recommend for BSX library Indirect write 0x01 to MAG register 0x4B, put MAG into sleep mode Indirect write REPXY= 0x01 for low power preset 0x04 for regular preset 0x07 for enhanced regular preset 0x17 for high accuracy preset to MAG register 0x51 Indirect write REPZ= 0x02 for low power preset 0x0E for regular preset 0x1A for enhanced regular preset 0x52 for high accuracy preset to MAG register 0x52 Prepare MAG_IF[1-3] for mag_if data mode Write Write 0x4C MAG_IF[0] 0x00 Write 0x7E CMD 0x1A Write Wait Register Name BST-BMX160-DS000-12 | Revision 1.2 | January 2019 mag_odr= 0b0101, set ODR to 12.5Hz mag_manual_en= 0b0, mag_if data mode mag_offset= 0b0000, maximum offset, recommend for BSX library put MAG_IF into low power mode Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 26 Table 17: Process to put magnetometer and magnetometer interface into suspend mode Operation Write Wait Write Write Write Write Register Address 0x7E Register Name Data CMD 0x4C MAG_IF[0] 0x19 350µs 0x80 0x4F 0x4E 0x7E MAG_IF[3] MAG_IF[2] CMD 0x00 0x4B 0x18 Comment put MAG_IF into normal mode mag_manual_en= 0b1, mag_if setup mode mag_offset= 0b0000, maximum offset, recommend for BSX library Indirect write 0x00 to MAG register 0x4B, put MAG into suspend mode put MAG_IF into suspend mode Magnetic field data temperature compensation The raw register values DATAX, DATAY, DATAZ and RHALL are read out from the host processor using the BMX160 API/driver which is provided by Bosch Sensortec. The API/driver performs an off-chip temperature compensation and outputs x/y/z magnetic field data in 16 LSB/µT to the upper application layer: Software application level a Software driver level Application Temperature and sensitivity compensated magnetic field data x /y/ z available in : Config - short int ( 16 LSB / µT , limited Z range ) - long int (16 LSB /µT ) - float (µT ) BMX 160 API / driver (provided by Bosch Sensortec ) Config Hardware level Magnetometer raw register data ( DATAX , DATAY , DATAZ , RHALL ) BMX160 sensor Figure 3: Calculation flow of magnetic field data from raw BMX160 register data The API/driver performs all calculations using highly optimized fixed-point C-code arithmetic. For platforms that do not support C code, a floating-point formula is available as well. BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 27 2.5 FIFO A FIFO is integrated in BMX160 to support low power applications and prevent data loss in nonreal-time systems. The FIFO has a size of 1024 bytes. The FIFO architecture supports to dynamically allocate FIFO space for accelerometer and gyroscope. For typical 6 DoF applications, this is sufficient for approx. 0.75 s of data capture. In typical 9DoF applications – including the magnetometer – this is sufficient for approx. 0.5 s. If not all sensors are enabled or lower ODR is used on one or more sensors, FIFO size will be sufficient for capturing data longer, increasing ODR of one or more sensors will reduce available capturing time. The FIFO features a FIFO full and watermark interrupt. Details can be found in section 2.6.12. A schematic of the data path when the FIFO is used is shown in the figure below. SENSORTIME Accel ADC Gyro ADC FIFO configuration select DIGITAL SIGNAL CONDITIONING FIFO frames (regular & control) from FIFO ENGINE Magnet FIFO_DATA register PRIMARY DIGITAL INTERFACE Magnet Interface ... ADC RAW DATA  FIFO full INT  watermark INT External INT signals Figure 4: Block diagram of FIFO data path 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. 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. If pre-filtered data are selected in Register (0x45) FIFO_DOWNS, a data rate of 6400 Hz for the gyroscope and 1600 Hz for the accelerometer is used. The frame rate can be reduced further via downsampling (Register (0x45) FIFO_DOWNS). This can be done independently for each sensor. Downsampling just drops sensor data; no data processing or filtering is performed. Frame Format When using the FIFO, the stored data can be read out by performing a burst read on the register (0x24) FIFO_DATA. The data will be stored in frames. The frame format is important for the software to appropriately interpret the information read out from the FIFO. The FIFO can be configured to store data in either header mode or in headerless mode (see figure below). The headerless mode is usually used when neither the structure of data nor the BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 28 number of sensors change during data acquisition. In this case, the number of storable frames can be maximized. In contrast, the header mode is intended for situations where flexibility in the data structure is required, e.g. when sensors run at different ODRs or when switching sensors on or off on the fly during operation. Headerless mode (only data) Regular frames (same ODR for different sensor ) FIFO Frame Format Configuration Regular frames (different ODR for different sensor) Header mode (header+data) Skip frame Control frames Sensortime frame FIFO Input Config frame Figure 5: FIFO frame configurations In headerless mode no header byte is used and the frames consist only of data bytes. The data bytes will always be sensor data. Only regular frames with the same ODR for all sensors are supported and no external interrupt flags are possible. This mode has the advantage of an easy frame format and an optimized usage of the 1024 bytes of FIFO storage. It can be 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. Header mode supports different ODRs for the different sensor data and external interrupt flags. This mode therefore has the advantage of allowing maximum flexibility of the FIFO engine. It is activated by enabling fifo_header in Register (0x46-0x47) FIFO_CONFIG. Header Byte Format The header format is shown below: Bit Content 7 fh_mode 6 5 fh_parm 4 Bit Read/Write 3 fh_parm 2 1 fh_ext 0 The fh_mode, fh_opt and fh_ext fields are defined as fh_mode 0b10 Definition Regular BST-BMX160-DS000-12 | Revision 1.2 | January 2019 fh_parm Frame content fh_ext Tag of INT2 and INT1 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet 0b01 0b00 0b11 Control Reserved Reserved Page 29 Control Opcode Na Na f_parm= 0b0000 is invalid for regular mode, a header of 0x80 indicates an uninitialized frame. Data Bytes Format When the FIFO is set to “headerless mode“, only sensor data will be saved into the FIFO (in the same order as in the data register). Any combination of accelerometer, gyroscope and magnetometer data can be stored. External interrupt tags are not supported in headerless mode. When the FIFO is set to “header mode“, the data byte format is different depending on the type of frame. There are two basic frame types, control frames and regular data frames. Each different type of control frame has its own data byte format. It can contain skipped frames, sensortime data or FIFO configuration information as explained in the following chapters. If the frame type is a regular frame (sensor data), the data byte section of the frame depend on how the data is being transmitted in this frame (as specified in the header byte section). It can include data from only one sensor or any combination of accelerometer, gyroscope and magnetometer data. 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. The format of the fh_param is defined in the following table: Name Bit Content 3 reserved 2 fifo_mag_data fh_parm 1 fifo_gyr_data 0 fifo_acc_data When fifo__data is set to “1” (“0”), data for sensor x is included (not included) in the data part of the frame. The fh_ext field is set when an external interrupt is triggered. External interrupt tags are configured using int_output_en in Register (0x53) INT_OUT_CTRL, int_input_en in Register (0x54) INT_LATCH and fifo_tag_int_en in Register (0x46-0x47) FIFO_CONFIG. For details, please refer to chapter 2.5.2.4. The data byte part for regular data frames is identical to the format defined for the Register (0x040x17) DATA. If a header indicates that not all sensors are included in the frame, these data are skipped and do not consume space in the FIFO. Control frame (fh_mode= 0b01): Control frames, which are only available in header mode, are used for special or exceptional information. All control frames contribute to the fifo_byte_counter in Register (0x22-0x23) FIFO_LENGTH. In detail, there are three types of control frame, which can be distinguished by the fh_parm field: BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 30 Skip frame (fh_parm= 0b000): In case of a FIFO overflow, a skip frame is prepended to the FIFO content when the next readout is performed. A skip frame indicates the number of skipped frames since the last readout. In the header byte of a skip frame, fh_mode equals 0b01 (since it is a control frame) and the fh_param equals 0b000 (indicating skip frame). The data byte part of a skip frame consists of one byte and contains the number of skipped frames. When more than 0xFF frames have been skipped, 0xFF is returned. Sensortime frame (fh_parm= 0b001): If the sensortime frame functionality is activated (see description of Register (0x46-0x47) FIFO_CONFIG) and the FIFO is overread, the last data frame is followed by a sensortime frame. This frame contains the BMX160 timestamp content corresponding to the time at which the last data frame was read. In the header byte of a sensortime frame, fh_mode= 0b01 (since is a control frame) and fh_param= 0b001 (indicating sensortime frame). The data byte part of a sensortime frame consists of 3 bytes and contains the 24-bit sensortime. A sensortime frame does not consume memory in the FIFO. FIFO_input_config frame (fh_parm= 0b010): 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 FIFO_input_config frame, fh_mode= 0b01 (since it is a control frame) and fh_param= 0b010 (indicating FIFO_input_config frame). The data byte part of a FIFO_input_config frame consists of one byte and contains data corresponding to the following table: Bit Content 7 reserved Bit Read/Write 3 gyr_range_ch mag_if_ch: mag_conf_ch: gyr_range_ch: gyr_conf_ch: acc_range_ch: acc_conf_ch: 6 2 gyr_conf_ch 5 mag_if_ch 4 mag_conf_ch 1 acc_range_ch 0 acc_conf_ch A change in mag_rd_burst or mag_offset becomes active. A change in Register MAG_CONF becomes active. A change in Register (0x43) GYR_RANGE becomes active. A change in Register (0x42) GYR_CONF or gyr_fifo_filt_data or gyr_fifo_downsampling in Register (0x45) FIFO_DOWNS becomes active. A change in Register (0x41) ACC_RANGE becomes active. A change in Register (0x40) ACC_CONF or acc_fifo_filt_data or acc_fifo_downsampling in Register (0x45) FIFO_DOWNS becomes active. BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 31 2.5.2 FIFO Conditions and Details Overflows In the case of overflows the FIFO will overwrite the oldest data. A skip frame will be prepended at the next FIFO readout if the available FIFO space falls below the maximum size frame. Overreads If more data bytes are read from the FIFO than valid data bytes are available, “0x80” is returned. Since a header “0x80” indicates an invalid frame, the SW can recognize the end of valid data. After the invalid header the data is undefined. This is valid in both headerless and header mode. In addition, if header mode and the sensortime frame are enabled, the last data frame is followed by a sensortime frame. After this frame, a 0x80 header will be returned that indicates the end of valid data. Partial Frame Reads When a frame is only partially read through, it will be repeated within the next reading operation (including the header). FIFO Synchronization with External Events External events can be synchronized with the FIFO data by connecting the event source to one of the BMX160 interrupt pins (which needs to be configured as an input interrupt pin). External events can be generated e.g. by a camera module. Each frame contains the value of the interrupt input pin at the time of the external event. The fh_ext field is set when an external interrupt is triggered. External interrupt tags are configured using int_output_en in Register (0x53) INT_OUT_CTRL, int_input_en in Register (0x54) INT_LATCH and fifo_tag_int_en in Register (0x46-0x47) FIFO_CONFIG. FIFO Reset A reset of the BMX160 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 Error Handling In case of a configuration error in Register (0x46-0x47) FIFO_CONFIG, no data will be written into the FIFO and the error is reported in Register (0x02) ERR_REG. 2.6 Interrupt Controller There are 2 interrupt output pins, to which thirteen different interrupt signals can be mapped independently via user programmable parameters. Available interrupts supported by accelerometer in normal mode are: BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet         Page 32 Any-motion (slope) detection for motion detection Significant motion Step detector Tap sensing for detection of single or double tapping events Orientation detection Flat detection for detection of a situation when one defined plane of the sensor is oriented parallel to the earth’s surface Low-g/high-g for detecting very small acceleration (e.g. free-fall) or very high acceleration (e.g. shock events) No/slow-motion detection for triggering an interrupt when no (or slow) motion occurs during a certain amount of time In addition to that the common interrupts for accelerometer and gyroscope are:   Data ready (“new-data”) for synchronizing sensor data read-out with the MCU / host controller FIFO full / FIFO watermark allows FIFO fill level and overflow handling All Interrupts are available only in normal (low-noise) and low-power modes, but not in suspend mode. In suspend mode only the status (like orientation or flat) can be read out, but no interrupt will be triggered (unless latching is used). If latching is used, the interrupts (as well as the interrupt status) will be latched also in suspend mode, but no new interrupts will be generated. Input Interrupt Pins: For special applications (e.g. PMU Trigger, FIFO Tag) interrupt pins can be configured as input pins. For all other cases (standard interrupts), the pin must be configured as an output. 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. It generates an interrupt when the absolute value of the acceleration exceeds a preset threshold int_anym_th for a certain number int_anym_dur of consecutive slope data points is above the slope threshold int_anym_th. If the same number of data points falls below the threshold, the interrupt is reset. In order to avoid acceleration data saturation, when data is at maximal value (e.g. “0x8000” or “0X7FFF” for a 16 bit sensor); it is considered that the slope is at maximal value, too. BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 33 acceleration acc(t0+dt) acc(t0) time slope slope(t0+dt)= acc(t0+dt) - acc(t0) anym_th time anym_dur anym_dur latched INT unlatched time Figure 6: Any-motion (slope) interrupt detection The criteria for any-motion detection are fulfilled and the slope interrupt is generated if any of the axis exceeds the threshold int_anym_th for int_anym_dur consecutive times. As soon as all the channels fall or stay below this threshold for int_anym_dur consecutive times the interrupt is reset. If this interrupt is triggered in latch mode it remains blocked (disabled) until the latching is cleared. 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. A significant motion is a motion due to a change in the user location. Examples of such significant motions are walking or biking, sitting in a moving car, coach or train, etc. Examples of situations that should not trigger significant motion include phone in pocket and person is not moving, phone is on a table and the table shakes a bit due to nearby traffic or washing machine. The algorithm uses acceleration and performs the following steps to detect a significant motion: 1. Look for movement 2. [Movement detected] Sleep for 3 seconds 3. Look for movement. Either option a or option b will happen: a. [One second has passed without movement] Go back to 1 BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 34 b. [Movement detected] Report that a significant movement has been found and wake up the application processor The significant motion and the anymotion interrupt are exclusive. To select the interrupt, use int_sig_mot_sel in Register (0x5F-0x62) INT_MOTION. The following block diagram illustrates the algorithm: Start no Motion detected? yes Sleep for 3s (t_skip) Motion detected within 1s (t_proof)? no yes Significant motion detected Figure 7: Block diagram of significant motion interrupt algorithm Configurable parameters are: sig_th= 0x14; // ~ 70 mg same as anym_th t_skip= 0x01; // 2.56 s 0= 1.28 s, 1= 2.56 s, 2= 5,12 s, 3= 10.24 s t_proof= 0x02; // 0.96 s 0= 0.24 s, 1= 0.48 s, 2= 0.96 s, 3= 1.92 s 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). In order to achieve a robust step detection the peak needs to exceed a BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 35 configurable threshold min_threshold and a minimum delay time min_steptime between two consecutive peaks needs to be observed. The step detector can be configured in three modes:    Normal mode (default setting, recommended for most applications) Sensitive mode (can be used for light weighted, small persons) Robust mode (can be used, if many false positive detections are observed) More details can be found in Register (0x7A-0x7B) STEP_CONF and the according step counter application note. The step detector is the trigger for a step counter. The step counter is described in more detail in section 2.7. 2.6.4 Tap Sensing (Accel) Double-Tap implements same functionality as two single taps in a short well-defined period of time. If the period of time is too short or too long no interrupt is fired. The interrupt is configured in the Register (0x63-0x64) INT_TAP. When the preset threshold int_tap_th is exceeded, a tap is detected, an int_s_tap_int in Register (0x1C-0x1F) INT_STATUS is set and an interrupt is fired. The double-tap interrupt is generated only when a second tap is detected within a specified period of time. In this case, the int_d_tap_int in Register (0x1C-0x1F) INT_STATUS is set. The slope between two successive acceleration data is needed to detect a tap-shock and quietperiod. The time difference between the two successive acceleration values depends on data rate selected for the interrupt source, which depends on the configured downsampling rate in Register (0x58-0x59) INT_DATA and the configured output data rate in Register (0x40) ACC_CONF, when filtered data have been selected in the Register (0x58-0x59) INT_DATA. The time delay int_tap_dur between two taps is typically between 12.5 ms and 500 ms. The threshold is typically between 0.7g and 1.5g in 2g measurement range. Due to different coupling between sensor and device shell (housing) and different measurement ranges of the sensor these parameters are configurable. The criteria for a double-tap are fulfilled and an interrupt is generated if the second tap occurs after int_tap_quiet and within int_tap_dur. The tap direction is determined by the 1st tap. If during int_tap_quiet period (30/20 ms) a tap occurs, it will be considered as a new tap. The slope detection interrupt logic stores the direction of the (first) tap-shock in a status register. This register needs to be locked for int_tap_shock 50/75 ms in order to prevent other slopes to overwrite this information. BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 36 slope Second Tap First Tap tap_thh time Int_tap_shock = 50/75 ms tnt_tap_quiet = 30/20 ms int_tap_dur = 50 ÷ 700 ms int_tap_shock Int_tap_quiet =50/75 ms = 30/20 ms single_tap_det double_tap_det time time Figure 8: Tap detection interrupt The single-tap and double-tap interrupts are enabled through the int_s_tap_en and int_d_tap_en registers. When a tap or double-tap interrupt is triggered, the signals of the axis that has triggered the interrupt (int_tap_first_x, int_tap_first_y, int_tap_first_z) and the signal of motion direction (int_tap_sign) will set in Register (0x1C-0x1F) INT_STATUS. The axis on which the biggest slope occurs will trigger the tap. The second tap will be triggered by any axis (not necessarily same as the first tap). If this interrupt is triggered in latch mode it remains blocked (disabled) until the latching is reset. 2.6.5 Orientation Recognition (Accel) The orientation recognition feature informs on an orientation change of the sensor with respect to the gravitational field vector g. There are orientations face up/face down and orthogonal to that portrait upright, landscape left, portrait downside, and landscape right. The interrupt to face up/face down may be enabled separately through int_orient_ud_en in Register (0x65-0x66) INT_ORIENT. The sensor orientation is defined by the angles phi and Theta (phi is rotation around the stationary z axis, theta is rotation around the stationary y axis). BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 37 z θ x φ y g Figure 9: Definition of coordinate system with respect to pin 1 marker The measured acceleration vector components look as follows: 𝑎𝑐𝑐𝑥 = 1𝑔 ∙ sin 𝜃 ∙ cos 𝜑 𝑎𝑐𝑐𝑦 = −1𝑔 ∙ sin 𝜃 ∙ sin 𝜑 𝑎𝑐𝑐𝑧 = 1𝑔 ∙ cos 𝜃 (2)/(1): 𝑎𝑐𝑐𝑦 𝑎𝑐𝑐𝑥 (1) (2) (3) = − tan 𝜑 Figure 10: Angle-to-Orientation Mapping BST-BMX160-DS000-12 | Revision 1.2 | January 2019 Bosch Sensortec © Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are preliminary and subject to change without notice. BMX160 Data sheet Page 38 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 front side / portrait upright corresponds to the following angles: 𝜃 = 90° , 𝜑 = 270° 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. The mode is selected by the register int_orient_mode in Register (0x650x66) INT_ORIENT as follows: Table 18: Orientation mode orient_mode Orientation mode 00 Symmetrical 01 High asymmetrical 10 Low asymmetrical 11 Symmetrical The register int_orient has the following meanings depending on the switching mode: Table 19: Symmetrical mode Orient x00 x01 x10 x11 Name Landscape left Landscape right Portrait upside down Portrait upright Angle 315°
BMX160 价格&库存

很抱歉,暂时无法提供与“BMX160”相匹配的价格&库存,您可以联系我们找货

免费人工找货
BMX160
  •  国内价格
  • 1+136.54440
  • 10+124.53480
  • 30+115.66800
  • 100+107.93520

库存:0