MPU-6050详解

一. MPU6050简介

在这里插入图片描述
MPU-6000为全球首例整合性6轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速器时之轴间差的问题,减少了大量的包装空间。MPU-6000整合了3轴陀螺仪、3轴加速器,并含可藉由第二个I2C端口连接其他厂牌之加速器、磁力传感器、或其他传感器的数位运动处理(DMP: Digital Motion Processor)硬件加速引擎,由主要I2C端口以单一数据流的形式,向应用端输出完整的9轴融合演算技术InvenSense的运动处理资料库,可处理运动感测的复杂数据,降低了运动处理运算对操作系统的负荷,并为应用开发提供架构化的API。MPU-6000的角速度全格感测范围为±250、±500、±1000与±2000 °/sec (dps),可准确追緃快速与慢速动作,并且,用户可程式控制的加速器全格感测范围为±2g、±4g±8g与±16g。产品传输可透过最高至400kHz的I2C或最高达20MHz的SPI。MPU-6000可在不同电压下工作,VDD供电电压介为2.5V±5%、3.0V±5%或3.3V±5%,逻辑接口VVDIO供电为1.8V± 5%。MPU-6000的包装尺寸4x4x0.9mm(QFN),在业界是革命性的尺寸。其他的特征包含内建的温度感测器、包含在运作环境中仅有±1%变动的振荡器。

1. 陀螺仪特点

  • 陀螺仪线性误差:0.1°/秒
  • 陀螺仪输出频率:最高8000Hz
  • 数字输出X、Y和Z轴角速率传感器(陀螺仪),用户可编程全量程范围为±250、±500、±1000和±2000°/秒
  • 连接到FSYNC引脚的外部同步信号支持图像、视频和GPS同步
  • 集成的16位ADC可同时对陀螺仪进行采样
  • 增强的偏置和灵敏度温度稳定性减少了用户校准的需要
  • 改进的低频噪声性能
  • 数字可编程低通滤波器
  • 陀螺仪工作电流:3.6mA* 待机电流:5µA
  • 工厂校准的灵敏度比例因子
  • 用户自检

2. 加速度计特点

  • 加速度线性误差:0.1g
  • 加速度输出频率:最高1000Hz
  • 数字输出三轴加速度计,可编程满量程范围为±2g、±4g、±8g和±16克
  • 集成的16位ADC实现了加速度计的同时采样,而无需外部多路转换器
  • 加速度计正常工作电流:500µA
  • 低功率加速度计模式电流:1.25Hz时为10µA,5Hz时为20µA,20Hz时为60µA,110µA 40Hz
  • 方位检测和信号
  • 抽头检测
  • 用户可编程中断
  • 自由落体中断
  • 高G中断
  • 零运动/运动中断
  • 用户自检

3. 其他特点

  • 片上数字运动处理器(DMP)的9轴运动融合
  • DMP姿态解算频率:最高200Hz
  • 辅助主I2用于从外部传感器(例如磁力计)读取数据的C总线
  • 启用所有6个运动感应轴和DMP时的3.9mA工作电流
  • VDD电源电压范围为2.375V-3.46V
  • 灵活的VLOGIC参考电压支持多个I2C接口电压(仅限MPU-6050)
  • 适用于便携式设备的最小、最薄QFN封装:4x4x0.9mm
  • 加速度计和陀螺仪轴之间的最小跨轴灵敏度
  • 1024字节FIFO缓冲区允许主机处理器读取数据,从而降低功耗突发,然后随着MPU收集更多数据而进入低功率模式
  • 数字输出温度传感器
  • 陀螺仪、加速度计和温度传感器的用户可编程数字滤波器
  • 10000 g耐冲击
  • 400kHz快速模式I2C用于与所有寄存器通信
  • 1MHz SPI串行接口,用于与所有寄存器通信(仅限MPU-6000)
  • 用于读取传感器和中断寄存器的20MHz SPI串行接口(仅限MPU-6000)
  • MEMS结构在晶圆级密封和接合
  • 符合RoHS和绿色

4. DMP模块(Digital Motion Processor数字运动处理器)

从MPU6050的参数中可以得到,加速度计和陀螺仪的采样频率分别是1000Hz和8000Hz,它们是指加速度及角速度数据的采样频率,我们可以使用STM32控制器把这些数据读取出来然后进行姿态融合解算,以求出传感器当前的姿态(包括偏航角、横滚角、俯仰角)。而如果我们使用传感器内部的DMP数字运动处理器单元进行解算,他可以直接对采样得到的加速度及角速度进行姿态解算,解算得到的结果再输出给STM32控制器,即STM32无需自己计算,可直接获取偏航角、横滚角及俯仰角,该DMP每秒可输出200次姿态解算。

二. 引脚和接线

1. 引脚

在这里插入图片描述

引脚编号MPU-6000MPU-6050引脚名称描述
1YYCLINK可选的外部时钟输入,如果不用则连到GND
6YYAUX_DAI2C主串行数据,用于外接传感器
7YYAUX_CLI2C主串行时钟,用于外接传感器
8Y/CSSPI片选(0=SPI model)
8YVLOGIC数字I/O供电电压
9YYAD0/SD0I2C Slave地址LSB(AD0)
SPI串行数据输出(SD0)
9YYAD0I2C Slave 地址LSB(AD0)
10YYREGOUT校准滤波电容连线
11YYFSYNC帧同步数字输入
12YYINT中断数字输出(推挽或开漏)
13YYVDD电源电压及数字I/O供电电压
18YYGND电源地
19,21,22YYRESV预留,不接
20YYCPOUT电荷泵电容连线
23YSCL/SCLIKI2C 串行时钟(SCL)
SPI串行时钟(SCLK)
23YSCLI2C串行时钟(SCL)
24YSDA/SDII2C串行数据(SDA)
SPI串行数据输入(SDI)
24YSDAI2C串行数据(SDA)
2,3,4,5,14,15,16,17YYNC不接

2. 典型接线方式

在这里插入图片描述

三. MPU6050经典电路图

在这里插入图片描述

在这里插入图片描述

  • SCL:IIC从时钟信号线SCL,模块需要外接上拉电阻,一般为4.7K
  • SDA:IIC从时钟信号线SDA,模块需要外接上拉电阻,一般为4.7K
  • INT:中断输出引脚
  • AUX_CL:IIC主串行数据信号线,用于外接传感器
  • AUX_DA:IIC主串行时钟信号线,用于外接传感器
  • VDD:3.3/5V电源输入
  • VLOGIC:IO口电压,该引脚最低可以到1.8V,我们一般直接接VDD即可
  • AD0:从IIC接口(接MCU)的地址控制引脚,该引脚控制IIC地址的最低位。如果接GND,则MPU6050的IIC地址是:0X68;如果VDD,则是0X69

四. MPU6050使用方式及寄存器操作

1. 复位MPU6050

让MPU6050内部所有寄存器恢复默认值,通过对电源管理寄存器1(0X6B)的位7写1实现。复位后,电源管理寄存器1恢复默认值(0X40),然后必须设置该寄存器为0X00,以唤醒MPU6050,进入正常工作状态。

电源管理寄存器1(0X6B)

在这里插入图片描述

  • 位7 DEVICE_RESET:该位设置1,重启内部寄存器到默认值。复位完成后该位自动清0。
  • 位6 SLEEP:该位置1,MPU6050进入睡眠模式。
  • 位5 CYCLE:当失能SLEEP且CYCLE位置1,MPU6050进入循环模式。在循环模式,设备在睡眠模式和唤醒模式间循环,根据LP_WAKE_CTRL寄存器设定的速率从加速度计采集样品数据。
  • 位3 TEMP_DIS:该位置1,使能温度传感器。
  • 位[2:0] CLKSEL:3位无符号数值。指定设备的系统时钟源。

其中,DEVICE_RESET 位用来控制复位,设置为 1,复位 MPU6050,复位结束后,MPU硬件自动清零该位。SLEEEP 位用于控制 MPU6050 的工作模式,复位后,该位为 1,即进入了 睡眠模式(低功耗),所以我们要清零该位,以进入正常工作模式。TEMP_DIS 用于设置是否使能温度传感器,设置为 0,则使能;CLKSEL[2:0]用于选择系统时钟源,默认是使用内部 8M RC 晶振的,精度不高,所以我们一般选择 X/Y/Z 轴陀螺作为参考的PLL 作为时钟源,一般设置 CLKSEL=001 即可。

2. 设置传感器满量程范围

设置两个传感器的满量程范围(FSR),分别通过陀螺仪配置寄存器(0X1B)加速度传感器配置寄存器(0X1C)设置。我们一般设置陀螺仪的满量程范围为±2000dps,加速度传感器的满量程范围为±2g。

陀螺仪配置寄存器(0X1B)

在这里插入图片描述

  • 位7 XG_ST:置位X轴进行自检。
  • 位6 YG_ST:置位Y轴进行自检。
  • 位5 ZG_ST:置位Z轴进行自检。
  • 位[4:3] FS_SEL:2位无符号数值,选择陀螺仪的满量程范围。
    在这里插入图片描述
    该寄存器我们只关心 FS_SEL[1:0]这两个位,用于设置陀螺仪的满量程范围:0,±250°/S;1,±500°/S;2,±1000°/S;3,±2000°/S;我们一般设置为 3,即±2000°/S,因为陀螺 仪的 ADC 为 16 位分辨率,所以得到灵敏度为:65536/4000=16.4LSB/(°/S)。

加速度传感器配置寄存器(0X1C)

在这里插入图片描述

  • 位7 XA_ST:该位置1,加速度计的X轴执行自检。
  • 位6 YA_ST:该位置1,加速度计的Y轴执行自检。
  • 位5 ZA_ST:该位置1,加速度计的Z轴执行自检。
  • 位[4:3] AFS_SEL:2位无符号值。选择加速度计的满量程范围。

在这里插入图片描述
该寄存器我们只关心 AFS_SEL[1:0]这两个位,用于设置加速度传感器的满量程范围:0, ±2g;1,±4g;2,±8g;3,±16g;我们一般设置为 0,即±2g,因为加速度传感器的 ADC也是 16 位,所以得到灵敏度为:65536/4=16384LSB/g。

3. 设置陀螺仪采样率

采样率分频寄存器(0X19)

该寄存器用于MPU60X0的陀螺仪采样频率输出设置
在这里插入图片描述

  • 位[7:0] SMPLRT_DIV:8位无符号值。陀螺仪输出频率由这个值的分频所确定。

该寄存器用于设置 MPU6050 的陀螺仪采样频率,计算公式为:

采样频率 = 陀螺仪输出频率 / ( 1 + S M P L R T _ D I V ) 采样频率 = 陀螺仪输出频率 / (1+SMPLRT\_DIV) 采样频率=陀螺仪输出频率/(1+SMPLRT_DIV)

这里陀螺仪的输出频率,是 1Khz 或者 8Khz,与数字低通滤波器(DLPF)的设置有关, 当 DLPF_CFG=0/7 的时候,频率为 8Khz,其他情况是 1Khz。而且 DLPF 滤波频率一般设置为 采样率的一半。采样率,我们假定设置为 50Hz,那么 SMPLRT_DIV=1000/50-1=19。

配置寄存器(0X1A)

该寄存器配置外部Frame Synchronization(FSYNC)引脚采样,陀螺仪和加速度计的数字低通滤波器
在这里插入图片描述

  • 位[5:3] EXT_SYNC_SET:3位无符号数值。配置FSYNC引脚采样
  • 位[2:0] DLPF_CFG:3位无符号数值。配置DLPF设置

在这里插入图片描述
这里的加速度传感器,输出速率(Fs)固定是 1Khz,而角速度传感器的输出速率(Fs), 则根据 DLPF_CFG 的配置有所不同。

4. 其他

地址验证寄存器(0X75)

在这里插入图片描述
此寄存器用于验证设备的标识。WHO_AM_ I的内容是MPU-60X0的7位I2C地址的高6位。MPU-60X0的I2C地址的最低有效位由AD0引脚的值确定。AD0引脚的值没有反映在此寄存器中。寄存器的默认值为0x68。比特0和7被保留。(硬编码为0)

  • 位[6:1] WHO_AM_I:包含MPU-60X0的6位I2C地址。Bit6:Bit1的开机复位值为110 100。

加速度数据输出寄存器(0X3B~0X40)

在这里插入图片描述

通过读这六个寄存器,就可以读到加速度计x/y/z轴的值。比方说X轴的数据,可以通过读取0X3B(高8位)和0X3C(低8位)寄存器得到。这六个寄存器都是8位寄存器,而读取加速度计x/y/z的寄存器都是十六位寄存器,所以每两个寄存器配置一个轴。

温度传感器数据输出寄存器(0X41~0X42)

在这里插入图片描述

通过读取0X41(高8位)和0X42(低8位)寄存器得到

陀螺仪数据输出寄存器(0X43~0X48)

在这里插入图片描述

通过读这六个寄存器,就可以读到陀螺仪x/y/z轴的值。比方说X轴的数据,可以通过读取0X43(高8位)和0X44(低8位)寄存器得到。这六个寄存器都是8位寄存器,而读取陀螺仪x/y/z的寄存器都是十六位寄存器,所以每两个寄存器配置一个轴。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AoDeLuo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值