拙网论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 204|回复: 0

BMI160-加速度计、陀螺仪传感器

[复制链接]

25

主题

28

帖子

111

积分

注册会员

Rank: 2

积分
111
发表于 2018-5-31 19:14:17 | 显示全部楼层 |阅读模式

https://blog.csdn.net/wangyijieonline/article/details/52925908

最近在搞一个和加速度计相关的项目,所以接触到的传感器比较多,现在写一个总结吧,防止后来者和我一样走这么多的弯路。
  首先看到的是引脚图,如果驱动不了应该首先排除硬件的问题:
SPI接法

IIC接法


接着我们就着重看下面的几个寄存器:


  
传感器名(读/写)
  
寄存器号
  
功能

  
CHIPID(R)
  
0x00
  
芯片的ID,一般用来看驱动是否正常,固定值0xD1

  
PMU_STATUS(R)
  
0x03
  
显示当前各传感器的电源模式,分normal\low_power\suspend三种模式

  
ACC_CONF(RW)
  
0x40
  
设置输出数据速率、 带宽和加速度传感器读取的模式

  
ACC_RANGE
  
0x41
  
允许选择的加速度 g 范围

  
GYR_CONF(RW)
  
0x42
  
在传感器中设置输出数据速率、 带宽和陀螺仪读取的模式。

  
GYR_RANGE(RW)
  
0x43
  
定义 BMI160 角速度测量范围

  
INT_EN(RW)
  
0x50-0x52
  
启用各种中断,包括加速度数据、角速度数据和各种特殊功能的中断,使能后映射到INT1上输出,就可以触发单片机的外部中断了。

  
INT_OUT_CTRL(RW)
  
0x53
  
输出控制,包括输出使能,触发电平、边沿和输出模式(推挽和开漏)

  
INT_LATCH(RW)
  
0x54
  
设置中断锁存模式(不是很懂,一开始就是锁存了所以一直没有中断输出…,后来关掉就好了)

  
CMD(R)
  
0x7E
  
命令寄存器触发操作,如 softreset、 NVM 编程等。特殊的如:start_foc、acc_set_pmu_mode、gyr_set_pmu_mode、mag_set_pmu_mode、prog_nvm、fifo_flush、int_reset、softreset、step_cnt_clr

接下来就是各种特殊功能寄存器了,就不多说了,用哪个配置那个就可以了
重点说下这个计步的功能吧,现在还比较火:


  
传感器名(读/写)
  
寄存器号
  
功能

  
STEP_CONF(RW)
  
0x7A-0x7B
  
步数检测的配置,包括Normal mode,Sensitive mode,Robust mode三种也可以自己配置

  
STEP_CNT(R)
  
0x78-0x79
  
直接从这两个寄存器中读出记得步数,要注意的是范围是-32768——32768

下面的代码片是计步的初始化,用的是STM32F405:



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|抱朴守拙BBS

GMT+8, 2025-5-26 06:22 , Processed in 0.196663 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表