一.功能参数简介
bosch Sensortec公司推出的最新BMI160惯性测量单元将最顶尖的16位3轴超低重力加速度计和超低功耗3轴陀螺仪集成于单一封装.MI160采用14管脚LGA封装,尺寸为2.5×3.0×0.8mm3。当加速度计和陀螺仪在全速模式下运行时,耗电典型值低至950µA,仅为市场上同类产品耗电量的50%或者更低。

BMI160传感器的i2c 设备地址是 0x68(当sd0脚接地)/0x69(当sdo 脚拉高)。

二. 重要寄存器
1. 芯片ID----R0:CHIPID 寄存器 ,值为 0xd1

2.    R0x03:pmu_status--- BMI160当前工作模式/状态寄存器

3.    加速度Accelerometer field data
X轴16bit加速度数据
r0x12:ACCD_X_LSB acc_x_lsb[7:0]    bit0--bit7
r0x13:ACCD_X_MSB acc_x_msb[15:8]   bit0--bit7

Y轴16bit加速度数据
r0x14:ACCD_Y_LSB acc_y_lsb[7:0]    bit0--bit7
r0x15:ACCD_Y_MSB acc_y_msb[15:8]   bit0--bit7

Z轴16bit加速度数据
r0x16:ACCD_Z_LSB acc_z_lsb[7:0]    bit0--bit7
r0x17:ACCD_Z_MSB acc_z_msb[15:8]   bit0--bit7

4.    陀螺仪角速度数据gyroscope field data

X轴角速度数据16 BIT(LSB/°/s)
r0x0c:gyr_x_lsb[7:0]    bit0--bit7
r0x0d:gyr_x_msb[15:8]   bit0--bit7

Y轴角速度数据16 BIT(LSB/°/s)
r0x0e:gyr_y_lsb[7:0]    bit0--bit7
r0x0f:gyr_y_msb[15:8]   bit0--bit7

Z轴角速度数据16 BIT(LSB/°/s)
r0x10:gyr_z_lsb[7:0]    bit0--bit7
r0x11:gyr_z_msb[15:8]   bit0--bit7

5.    加速度量程配置寄存器r0x41:ACC_RANGE
0B0011:+-2G RANGE;0b0101+-4g;0b1000:+-8g;0b1100:+-16g

6.    控制寄存器r0x7e
0x11:set pmu mode of accelerometer to normal
0x15:set pmu mode of gyroscope to normal

7.    建议加速度及陀螺仪模块均使用系统默认参考配置
0x41----0x03 加速度量程±2g
0x40----0x28

0x42----0x28
0x43----0x00  角速度±2000°/s

三. 参考代码
1.  3轴加速度数据读取参考代码:
       i2c_write_byte(0x7e,0x11);

DelayMs(100);

x =( i2c_read_byte(0x12) &0xff)  ;
        x = x|(( i2c_read_byte(0x13) &0xff)<<8);
        if(x>0x7fff)
        {
            x = -(0xffff-x);
        }
        x = (x*9.8)/(0x8000/2);//当量程为±2g时,转换为g/s的加速度换算公式

y =( i2c_read_byte(0x14) &0xff)  ;
        y = y|(( i2c_read_byte(0x15) &0xff)<<8);
        if(y>0x7fff)
        {
            y = -(0xffff-y);
        }
        y = (y*9.8)/(0x8000/2);//当量程为±2g时,转换为g/s的加速度换算公式

z =( i2c_read_byte(0x16) &0xff)  ;        
        z = z|(( i2c_read_byte(0x17) &0xff)<<8);
        if(z>0x7fff)
        {
            z = -(0xffff-z);
        }
        z = (z*9.8)/(0x8000/2);//当量程为±2g时,转换为g/s的加速度换算公式

2.  3轴陀螺仪数据读取参考代码:
            i2c_write_byte(0x7e,0x15);
            DelayMs(100);

x =( i2c_read_byte(0x0c) &0xff)  ;
            x = x|(( i2c_read_byte(0x0d) &0xff)<<8);
            if(x>0x7fff)
            {
                x = -(0xffff-x);
            }
            x = (x*2000)/0x7fff;// range为2000dps时,转换为角速度°/s的公式

y =( i2c_read_byte(0x0e) &0xff)  ;
            y = y|(( i2c_read_byte(0x0f) &0xff)<<8);
            if(y>0x7fff)
            {
                y = -(0xffff-y);
            }
            y = (y*2000)/0x7fff;// range为2000dps时,转换为角速度°/s的公式

z =( i2c_read_byte(0x10) &0xff)  ;
            z = z|(( i2c_read_byte(0x11) &0xff)<<8);
            if(z>0x7fff)
            {
                z = -(0xffff-z);
            }
            z = (z*2000)/0x7fff; // range为2000dps时,转换为角速度°/s的公式

四. 调试注意事项

1.    默认开机后bmi160进入suspend mode,此时bmi160的加速度及陀螺仪功能均处于未工作状态。需配置R0x7e寄存器使得加速度及陀螺仪功能进入正常工作(数据采样)模式。
by default bmi160 accel and gyro are in suspend mode after powering up the device.the device is powering up in less than 10ms.

2.    每次进行加速度数据检测前,请先执行i2c_write_byte(0x7e,0x11),使得加速度模块进入normal工作模式;
3.    每次进行陀螺仪数据检测前,请先执行i2c_write_byte(0x7e,0x15) 使得陀螺仪模块进入normal工作模式;

博世传感器调试笔记(二)加速度及陀螺仪传感器BMI160相关推荐

  1. Arduino驱动QMC6308地磁传感器调试笔记(1)

    一.QMC地磁传感器介绍(矽睿科技) QMC6308是三轴磁传感器,它将磁传感器和信号环境ASIC集成到一个硅芯片中. 该晶片级芯片级封装(WLCSP)适用于移动和可穿戴设备中的电子罗盘,地图旋转,游 ...

  2. 传感器自学笔记第九章——SW-420震动传感器、声控开关传感器、避障传感器模块、TCRT5000循迹传感器、倾斜开关

    作者:GWD 时间:2019.06.26 SW-420震动传感器(开关量传感器) 一.学习要点:无 二.手册分析(开关量传感器) 1.产品用途:各种震动触发作用,比如防盗报警等 2.产品不震动时开关闭 ...

  3. 博世传感器调试笔记(一)----加速度传感器BMA253

    公司是bosch的代理商,最近一段时间一直在公司开发的传感器demo板上调试bosch sensor器件.涉及到的器件有7,8款,类型包括重力加速度.地磁.陀螺仪.温度.湿度.大气压力传感器等.在调试 ...

  4. 博世传感器调试笔记(三)加速度及地磁传感器BMC156

    一.    器件简介: 1.    BMC 156是一款整合三轴地磁传感器与三轴(12bit)加速度传感器于一体的传感器,以BMC 150 电子罗盘模块为基础, 并与Bosch Sensortec 2 ...

  5. TQIMAX6q调试笔记二:linux与uboot的编译

    一.按照<TQIMX6环境搭建>,成功安装ubuntu开发环境. 二.按照<TQIMX6_COREC编译手册>,成功安装交叉编译器. 三.按照<TQIMX6_COREC编 ...

  6. S3c2410_SDIO_调试笔记二

    摘自:上海嵌入式索漫科技培训教材      作者:下家山 (见Simplified SDIO Card Specification.pdf  35page)因为,CMD52响应后返回数据为8bit,所 ...

  7. 传感器自学笔记第八章——DHT11温湿度传感器(附带自己写的很好用的51单片机DHT11代码模板,参数列表只有一个字符数组指针)

    作者:GWD 时间:2019.06.26 DHT11温湿度传感器(单总线类) 一. 学习要点: 1.(重要)单总线类传感器检测高电平while(DHT11 == 1) temp |=0x01;出错,因 ...

  8. 安卓传感器全解:注册、注销传感器、监听传感器,距离传感器、方向传感器、陀螺仪、加速计、磁场、气压传感器

    全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓传感器全解:注册.注销传感器.监听传感器.距离传感器.方向传感器.陀螺仪.加速计.磁场.气压传感器. 注册.注销.监听传感器 1.自定义传感器监听 ...

  9. keil4怎么移植其他人的程序_【调试笔记】韦东山:在100ask_imx6ull上移植使用六轴传感器ICM20608...

    之前发了LCD调试笔记,大家很感兴趣,所以这次再来一篇:六轴传感器ICM20608驱动移植笔记,大家还需要什么移植笔记?可以留言.我们尽量满足. 1.1 移植思路 先找到驱动:也许内核里已经有,也许需 ...

  10. 【调试笔记】韦东山:在100ask_imx6ull上移植使用六轴传感器ICM20608

    在线课堂:https://www.100ask.net/index(课程观看) 论  坛:http://bbs.100ask.net/(学术答疑) 开 发 板:https://100ask.taoba ...

最新文章

  1. static和global的区别
  2. Siri ShortCut 调研(含Demo)
  3. 结合项目实例 回顾传统设计模式(九)迭代器模式
  4. oracle undo表空间缩小,缩小undo表空间全记录
  5. php打印出网站源码/php数据压缩代码
  6. 【剑指offer】31、栈的压入和弹出序列
  7. 快速开发微信小程序直播--微信直播--小程序直播开发
  8. 0.99元用7天,金山云大米云主机给你这个机会!
  9. nexus开机启动设置
  10. 普通音箱实现成为无线音箱
  11. 淘宝奇门接口的签名方法
  12. HOJ 4585 Shaolin(map, 迭代器)
  13. Mysql学习笔记day3 --三天学完mysql所有知识点
  14. 数字医学影像工作站相关资料汇总
  15. maven 多模块项目,打包其中一个项目,Could not find artifact org.javaboy:commons:pom:1.0-SNAPSHOT
  16. 什么是量子计算机 什么原理,量子计算机原理是什么?
  17. 深入理解iOS App的启动过程
  18. 微软收购动视暴雪,美媒:索尼游戏战略该变了
  19. 为什么进不去Pycharm官网--解决办法一
  20. Java JDK 动态代理

热门文章

  1. LoadRunner教程(18)-LoadRunner 图表合并
  2. 弹性波波长计算公式_固体中的弹性波
  3. intouch负值显示0_InTouch常见问题
  4. Win 10 蓝屏,出现DRIVER_POWER_STATE_FAILURE的解决方法
  5. 平板电脑android 管理软件,应用宝HD下载V5.2.0.142 安卓版-Android平板电脑(aPad)专用西西软件下载...
  6. PDF文件阅读器可转word...
  7. Eureka源码深度刨析-(5)EurekaServer处理服务发现
  8. pcm5102a解码芯片音质评测_精品推荐:用家票选TOP 30款最佳便携式解码耳放(中)...
  9. 索尼pha2 android手机,国砖的噩梦?索尼NW-A35捆绑PHA-2A小评
  10. OpenCV实战 | 低对比度缺陷检测应用实例--LCD屏幕脏污检测