文章目录
- 前言
- MPU6050简介
- MPU6050参数
- 硬件电路
- MPU6050框图
- 电荷泵的原理
- 内部时钟生成
- 需要使用的寄存器(常用)
- 采样率划分器
- 配置寄存器
- 陀螺仪配置寄存器
- 加速度计配置寄存器
- 加速度计测量寄存器
- 温度测量寄存器
- 陀螺仪测量寄存器
- 电源管理1寄存器
- 电源管理2寄存器
- 我是谁(ID号)寄存器
- 扩展
- MPU-6000使用SPI接口
- 中断源
前言
本文主要介绍MPU6050的功能、原理、部分寄存器。
I2C介绍可见于:https://blog.csdn.net/qq_53922901/article/details/136430501?spm=1001.2014.3001.5501
MPU6050简介
MPU6050参数
要根据实际情况来选择满量程,在不会以此满量程的情况下,满量程越小,对信号的感知就越细腻
I2C从机地址两种方式:
直接转16进制表示0x68,在时序中传入从机地址表示为(0x68<<1)| 0x01,左移一位再或上是要读还是要写
先左移一位变为0xd0,在时序中传入地址0xd0 | 0x01,直接或上要读还是要写
硬件电路
XCL、XDA:在MPU6050进行复杂的运动时,六轴姿态传感器会造成判断误差,此时可以用这些接口接入磁力计来提供稳定的偏航角来纠正姿态传感器。或者要用于无人机时,需要定高飞行,还可以加入气压计,扩展为10轴,提供高度的稳定参考。
AD0:可以看到为弱下拉,在浮空状态就是低电平,要使其置为高电平,直接将AD0连接VCC。
MPU6050框图
MPU-60X0由以下关键块和功能组成:
- 三轴MEMS速率陀螺仪传感器与16位ADC和信号调节
- 三轴MEMS加速计传感器与16位ADC和信号调节
- 数字运动处理器(DMP)引擎
- 主I2C和SPI(仅MPU-6000)串行通信接口
- 辅助I2C串行接口为第三方磁力计和其他传感器
- 时钟
- 传感器数据寄存器
- FIFO
- 中断
- 数字输出温度传感器
- 陀螺仪和加速度计自检
- 偏置和LDO
- 电荷泵(用于扩大电压)
电荷泵的原理
内部时钟生成
允许产生内部时钟的内部源是:
- 内部弛豫振荡器(内部晶振)
- 任何X、Y或Z陀螺(MEMS±温度变化的振荡器)(陀螺仪的晶振)
允许的外部时钟源是:
- 32.768kHz方波
- 19.2 MHz方波
需要使用的寄存器(常用)
采样率划分器
该寄存器指定来自用于生成MPU-60X0的采样速率的陀螺仪输出速率的分频器。
采样频率 = 时钟源 /(1 + SMPLRT_DIV)<分频系数>
注意:DLPF禁用时陀螺仪输出速率=为8 kHz(DLPF_CFG=0或7),启用DLPF时为1 kHz
配置寄存器
此寄存器可配置陀螺仪和加速度计的外部帧同步(FSYNC)针脚采样(不使用)和数字低通滤波器(DLPF)设置
DLPF由DLPF_CFG配置。加速度计和陀螺仪根据DLPF_CFG的值进行过滤,如下表所示:
陀螺仪配置寄存器
陀螺仪自检允许用户测试陀螺仪的机械和电气部分。通过控制该寄存器的XG_ST、YG_ST和ZG_ST位,可以激活每个陀螺仪轴的自检。每个轴的自检可以独立进行,也可以同时进行。
自测响应 = 自测使能时的数据 - 自测失能时的数据
自测响应的最小最大值
FS_SEL根据下表选择陀螺仪输出的全比例范围:
加速度计配置寄存器
该寄存器用于触发加速度计的自检,并配置加速度计的全比例范围。(配置方法一致)此寄存器还可配置了数字高通滤波器(DHPF)。
加速度计测量寄存器
这些寄存器存储了最近的加速度计测量值。
加速度计测量寄存器,以及温度测量寄存器、陀螺仪测量寄存器和外部传感器数据寄存器,由两组寄存器组成:一个内部寄存器集和一个面向用户的读取寄存器集。
温度测量寄存器
陀螺仪测量寄存器
电源管理1寄存器
- 第一位:reset,置1重置
- SLEEP:置1进入休眠模式,不工作
- CYCLE:置1进入循环模式,开启一会关闭一会,频率由电源管理2寄存器配置
- TEMP_DIS:置1使内部的温度传感器失能
- CLKSEL:选择时钟源
上电后,MPU-60X0时钟源默认为内部振荡器。然而,强烈建议将该设备配置为使用其中一个陀螺仪(或一个外部时钟源)作为时钟参考,以提高稳定性。时钟源可以根据下表进行选择。
除以下寄存器以外的所有寄存器的重置值为0x00: - 寄存器107: 0x40 (电源管理1寄存器),即默认睡眠模式
- 寄存器117: 0x68 (我是谁寄存器)
电源管理2寄存器
LP_WAKE_CTRL:用于配置电源管理1寄存器中循环模式的频率
其他各位分别可以配置对应的轴是否进入待机状态
我是谁(ID号)寄存器
此寄存器用于验证设备的身份。WHO_AM_I的内容是MPU-60X0的7位I2C地址的上6位(即I2C从机地址)。MPU-60X0的I 2C地址的最不显著位由AD0引脚的值决定。AD0引脚的值没有反映在这个寄存器中。
默认读出为0x68
扩展
MPU-6000使用SPI接口
在下图中,系统处理器是MPU-6000的SPI主服务器。引脚8、9、23和24用于支持用于SPI通信的/CS、SDO、SCLK和SDI信号。
由于这些SPI引脚与I2 C的引脚(9、23和24)共享,系统处理器不能通过接口旁路复用器访问辅助I2 C总线,接口旁路复用器将处理器I2 C接口引脚连接到传感器I2 C接口引脚。由于MPU-6000作为I2 C主控的能力有限,并且依赖于系统处理器来管理任何辅助传感器的初始配置,必须使用另一种方法对辅助传感器I2 C总线引脚6和7(AUX_DA和AUX_CL)上的传感器进行编程。当在MPU-6000和系统处理器之间使用SPI通信时,可以通过使用I2 C Slave 0-4在任何设备上执行读写事务,并实现设备在辅助I2 C传感器总线上的注册。I2 C Slave 4接口只能用于执行单个字节的读和写事务。一旦配置了外部传感器,MPU-6000可以使用传感器I2 C总线执行单节或多字节读取。