博世传感器调试笔记(二)加速度及陀螺仪传感器BMI160
一.功能参数简介
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的更多相关文章
- 博世传感器调试笔记(一)----加速度传感器BMA253
公司是bosch的代理商,最近一段时间一直在公司开发的传感器demo板上调试bosch sensor器件.涉及到的器件有7,8款,类型包括重力加速度.地磁.陀螺仪.温度.湿度.大气压力传感器等.在调试 ...
- 博世传感器调试笔记(三)加速度及地磁传感器BMC156
一. 器件简介:1. BMC 156是一款整合三轴地磁传感器与三轴(12bit)加速度传感器于一体的传感器,以BMC 150 电子罗盘模块为基础, 并与Bosch Sensortec 2x ...
- 玩转X-CTR100 l STM32F4 l MPU6050加速度陀螺仪传感器
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器 板载加速度 ...
- Tomcat调试笔记
调试笔记 在使用Tomcat过程中经常碰到问题,导致tomcat启动失败.如下↓ 由于报错太过笼统,我根本无法找出错误.后来我切换到Console视图下,看到了如下错误信息. 根据报错信息,错误原因是 ...
- JavaScript特效(调试笔记)
JavaScript特效 一.在网页上显示当前的时间日期,例如:“2016年3月26日 星期六”. js源代码: function getTime() { var today = new Date() ...
- webpy使用笔记(二) session/sessionid的使用
webpy使用笔记(二) session的使用 webpy使用系列之session的使用,虽然工作中使用的是django,但是自己并不喜欢那种大而全的东西~什么都给你准备好了,自己好像一个机器人一样赶 ...
- 重力加速度陀螺仪传感器MPU-6050(一)
MPU-60X0 对陀螺仪和加速度计分别用了三个16 位的ADC,将其测量的模拟量转化 为可输出的数字量.为了精确跟踪快速和慢速的运动,传感器的测量范围都是用户可控的,陀螺仪可测范围为±250,±50 ...
- Android的重力传感器(3轴加速度传感器)简单实例
重力感应主要是依靠手机的加速度传感器(accelerometer)来实现 在Android的开发中一共有八种传感器但是不一定每一款真机都支持这些传感器.因为很多功能用户根本不care的所以可能开发商会 ...
- 与众不同 windows phone (19) - Device(设备)之陀螺仪传感器, Motion API
原文:与众不同 windows phone (19) - Device(设备)之陀螺仪传感器, Motion API [索引页][源码下载] 与众不同 windows phone (19) - Dev ...
随机推荐
- 优化Linux下的内核TCP参数以提高系统性能
内核的优化跟服务器的优化一样,应本着稳定安全的原则.下面以64位的Centos5.5下的Squid服务器为例来说明,待客户端与服务器端建立 TCP/IP连接后就会关闭SOCKET,服务器端连接的端口状 ...
- psp本周
四人项目: 日期 类别 内容 开始时间 结束时间 中断时间 净时间 10.4 站立会议 站立会议报告 21:12 21:37 0 25 结对项目: 日期 类别 内容 开始时间 结束时间 中断时间 净时 ...
- fidder监控请求响应时间和请求IP(摘抄至网络)
增加监控请求的详情时间 在CustomRules.js的class Handlers中增加 //添加请求的响应时间 public static BindUIColumn("Time Tak ...
- [转帖]中国SaaS死或生之一:“网红”CRM的大起大落
中国SaaS死或生之一:“网红”CRM的大起大落 http://www.cniteyes.com/archives/33709 文章摘要:从“大众情人”到被人遗弃,如何从CRM身上审视中国Sa ...
- 基于JQuery的前端form表单操作
Jquery的前端表单操作: jquery提供了良好的方法封装,在一些基本的操作的时候,能节省很多的麻烦,其中,在具体使用时,form表单的数据提交是最频繁也最常见的前后数据交换方式,所以在前 ...
- SpringBoot(九)_springboot集成 MyBatis
MyBatis 是一款标准的 ORM 框架,被广泛的应用于各企业开发中.具体细节这里就不在叙述,大家自行查找资料进行学习下. 加载依赖 <dependency> <groupId&g ...
- FlatBuffers初探
我第一次知道FlatBuffers是因为Facebook写的这篇Android的技术博客文章.它主要介绍了FlatBuffers对比JSON的优势,以及Facebook Android App应用了F ...
- BZOJ5289 HNOI/AHOI2018排列(贪心+堆)
题面描述的相当绕,其实就是如果ai=j,重排后ai要在aj之后.同时每个ai有附属属性wi,要求最大化重排后的Σiwi. 容易发现这事实上构成一张图,即由j向i连边.由于每个点入度为1或0,该图是基环 ...
- VRRP主备备份配置示例—实现网关冗余备份
本示例的基本拓扑结构如图所示. HostA通过Switch 双线连接到RouterA 和RouterB .用户希望实现:正常情况下, 主机以RouterA 为默认网关接入Intemet; 而当Rout ...
- 如何认识TOS----DSCP 对照表
如何认识TOS----DSCP 对照表 最近有遇到项目中对FortiGate设置TOS的策略路由的问题,其实这问题较为简单,但是由于大家对TOS-DSCP概念不熟悉造成的,所以感觉比较难,现在不同厂商 ...