Motion Processing Unit 运动处理单元 6轴姿态传感器,可以测量芯片自身X、Y、Z轴的加速度、角速度参数,通过数据融合的互补滤波,可进一步得到较为精确且稳定的姿态角 常应用于平衡车、飞行器等需要检测自身姿态的场景

  • 3轴加速度计(Accelerometer):测量X、Y、Z轴的加速度 具有静态稳定性,不适合动态求角度
  • 3轴陀螺仪传感器(Gyroscope):测量X、Y、Z轴的角速度 具有动态稳定性,当物体静止时,角速度会因为噪声而无法完全归零,随时间的积累使得计算出的角度产生缓慢的偏移

Pasted image 20240815235024.png

参数

16 位ADC 采集传感器的模拟信号量化范围: -32768~32767 加速度计满量程选择: 陀螺仪满量程选择: 可配置的数字低通滤波电路 可配置的时钟源和采样分频

I2C 从机地址:

  • 1101000(AD0=0)
  • 1101001(AD0=1)

1101000 使用十六进制写为 0x68 则在 I2C 通信中,对此设备进行读写的第一个字节为: (0x68<<1)|0 —> 0xD0 (0x68<<1)|1 —> 0xD1 或 0xD0|1 先左移 1 位,再或上 0 或 1 来设置读还是写 所以 MPU6050 的从机地址可以认为是 0x68 也可以是 0xD0(融合读写位)

硬件电路

Pasted image 20240815212325.png

引脚功能
VCC、GND电源
SCL、SDAI2C通信引脚
XCL、XDA主机I2C通信引脚
AD0从机地址最低位,可以改变作为从机时的 I2C 地址
INT中断信号输出,可以用来配置芯片内部的事件来出发中断引脚输出

XCL、XDA 可以用来扩展姿态传感器用于外接磁力计或者气压计来扩展为 9 轴、10 轴的传感器。当接入时,MPU6050 的主机接口可以直接访问扩展芯片的数据,内置 Digital Motion Processor 单元进行数据融合和姿态解算

还内置实用小功能:自由落体检测、运动检测、零运动检测等

结构框图

Pasted image 20240815215127.png

  1. ADC 自动转换,数据统一放到数据寄存器中
  2. 内置自测单元,启动自测后,芯片内部模拟外力。先使能自测读取数据,再失能自测读取数据,两个数据相减得到自测响应,与自测范围比较,判断是否可以正常工作
  3. 电荷泵升压电路给陀螺仪传感器供电
  4. 自带 Digital Motion Processor 进行姿态解算
  5. 接口旁路选择器,拨到上面,辅助 I2C 引脚和正常 I2C 引脚连接在一起,两路总线合并,主机控制全部交给 STM32 ;拨到下面,辅助 I2C 引脚由 MPU6050 控制,正常 I2C 引脚由 STM32 控制

寄存器

寄存器名称意义
SMPLRT_DIV采样频率分频器设置分频系数,分频越小,内部 A/D 转换越快
CONFIG配置寄存器配置外部同步、低通滤波器
低通滤波器数字越大,输出数据越平滑
GYRO_CONFIG陀螺仪配置寄存器X/Y/Z 自测使能位、满量程选择位
ACCEL_CONFIG加速度计配置寄存器X/Y/Z 自测使能位、满量程选择位、配置高通滤波器
ACCEL_XOUT_H加速度数据
ACCEL_XOUT_L
ACCEL_YOUT_H
ACCEL_YOUT_L
ACCEL_ZOUT_H
ACCEL_ZOUT_L
TEMP_OUT_H温度数据
TEMP_OUT_L
GYRO_XOUT_H陀螺仪数据
GYRO_XOUT_L
GYRO_YOUT_H
GYRO_YOUT_L
GYRO_ZOUT_H
GYRO_ZOUT_L
PWR_MGMT_1电源管理寄存器 1
PWR_MGMT_2电源管理寄存器 2
WHO_AM_I器件 ID 号

_L 表示低 8 位 _H 表示高 8 位