esp32系列(10):mpu6050驱动

MPU6050初始化与数据读取实践
本文介绍了MPU6050传感器的概述、引脚功能、中断配置及I2C通信协议。详细展示了如何进行驱动初始化,包括设置满量程范围、配置中断、设置采样率等,并提供了获取加速度计和陀螺仪数据的代码。此外,还预告了利用内部DMP进行3D运动处理和手势识别算法的应用。

1 mpu6050 学习

1.1 概述

MPU-60X0:

  • 具有嵌入式3轴MEMS陀螺仪、3轴MEMS加速度计和数字运动处理器(Digital Motion Processor,DMP)硬件加速器引擎,带有辅助I2C端口。
  • 三个16位模数转换器(ADC),用于采样陀螺仪的输出。
  • 三个16位模数转换器(ADC),用于采样加速度计的输出。
  • 可编程陀螺仪满量程范围为±250、±500、±1000和±2000°/sec(dps),用户可编程加速计满量程范围为±2g、±4g、±8g和±16g。
  • 使用最高400kHz的I2C或1MHz的SPI(仅限MPU-6000)与设备的所有寄存器进行通信。
  • MPU-6000和MPU-6050完全相同,只是MPU-6050仅支持I2C串行接口,并且有一个单独的VLOGIC参考引脚。

1.2 引脚

在这里插入图片描述

在这里插入图片描述

AUX_DA和AUX_CL是一组辅助I2C接口,用于连接外部传感器。
SDA 和 SCL 是主I2C接口,用于我们读取数据。
AD0 为地址LSB选择引脚。
INT 为中断输出。

1.3 关于中断信号

中断功能通过中断配置寄存器进行配置。可配置的项目包括INT引脚配置、中断锁定和清除方法,以及中断触发器。可触发中断的项目包括

  • 1 锁定到新参考振荡器的时钟发生器(在切换时钟源时使用);
  • 2 可读取新数据(从FIFO和数据寄存器);
  • 3 加速计事件中断;
  • 4 MPU-60X0没有从辅助I2C总线上的辅助传感器接收到确认。中断状态可以从中断状态寄存器中读取。

中断源可以配置为:
在这里插入图片描述

1.4 I2C通信协议

在这里插入图片描述

器件地址: b110100(AD0)

2 mpu6050驱动

2.1 初始化配置

主要的寄存器:

  • 1 复位
    在这里插入图片描述
    配置 0x6B 为 0x80 ,复位后 DEVICE_RESET 自动清零。默认值为0x40。
    配置 0x6B 为 0x00 ,清除睡眠模式。
  • 2 配置参数
    设置满量程范围
    配置 0x1B 为 0x18 , 陀螺仪满量程配置为 ± 2000 °/s。
    配置 0x1C 为 0x00 , 陀螺仪满量程配置为 ± 2 g。
    在这里插入图片描述
    设置中断
    配置 0x38 为 0x00 , 禁用中断
    在这里插入图片描述
    设置AUX I2C接口
    配置 0x6A 为 0x00
    在这里插入图片描述
    设置FIFO
    配置 0x23 为 0x00
    在这里插入图片描述
    设置采样率 Sample Rate = Gyroscope Output Rate / (1 + SMPLRT_DIV)
    Gyroscope Output Rate = 8kHZ(reg26.DLPF_CFG=0或7),Gyroscope Output Rate = 1kHZ(reg26.DLPF使能),
    配置 0x19 为 0x63,Sample Rate = 1KHz / (1 + 99) = 100Hz
    在这里插入图片描述
    设置数字低通滤波器, 我们的采样率为100Hz,设置带宽为44Hz即可。
    配置 0x1A 为 0x13。
    在这里插入图片描述
    设置系统时钟源为X轴陀螺仪PLL参考时钟
    设置 0x6B 为 0x09
    在这里插入图片描述
    使能传感器
    设置 0x6C 为 0x00
    在这里插入图片描述

初始化函数:

// 初始化寄存器列表  
static const uint8_t mpu6050_init_cmd[11][2] = {
   
   
    {
   
   0x6B, 0x80}, 
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ChipWeaver

觉得有用的话点个赞吧 :)

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

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

打赏作者

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

抵扣说明:

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

余额充值