MPU6050

1.个人总结

  常用的MPU6050有八个针脚,VCC 跟GND 给模块供电,模块通讯方式采用IIC通讯,SCL跟SDA为信号传递通道,XDA 跟 XCl是用来外接电磁传感器,玩过MPU6050的想必一定知道,即使模块不动,数值也会有波动。而外加电磁传感器就是更好的解决这一问题。AD0 是从 IIC 接口(接 MCU)的地址控制引脚。

遇到的问题

  玩这个模块最大的问题就是MPU6050模块的初始化,好几次我都无法判断我的MPU6050是否初始化,刚开始找不到问题,然后就各种找资源,测试了种种模块,然后在网上得知,MPU6050 初始化是个大问题。然后我就通过判断初始化是否成功,我写了一个就是当MPU6050初始化成功后,就点亮一个灯。 还有在给MPU6050上电的时候最好把模块平放。然后就是有时候初始化时候会很长,需要等待一会,我在用的时候通过串口打印,如果出现串口打印出现错误估计是初始化问题,多试几次,不行就换MPU6050.

我用的是STM32F103ZET6的扩展板,MPU6050 在某宝一大堆,只要几块钱。

2.MPU6050简介

1.1 什么是MPU6050 MPU6050是InvenSense公司推出的全球首款整合性6轴运动处理组件,内带3轴陀螺仪和3轴加速度传感器,并且含有一个第二IIC接口,可用于连接外部磁力传感器,利用自带数字运动处理器(DMP: Digital Motion Processor)硬件加速引擎,通过主IIC接口,可以向应用端输出完整的9轴姿态融合演算数据。有了DMP,我们可以使用InvenSense公司提供的运动处理资料库,非常方便的实现姿态解算,降低了运动处理运算对操作系统的负荷,同时大大降低了开发难度 。

3.通信方式 iic

IIC简述(以应用为主,不要深究IIC通信原理) IIC简介 IIC(Inter-Integrated Circuit)总线是一种由 PHILIPS 公司开发的两线式串行线,用于连接微控制器及其外围设备。它是由数据线 SDA 和时钟 SCL 构成的串行总线,可发送和接收数据。在 CPU 与被控 IC 之间、 IC 与 IC 之间进行双向传送, 高速 IIC 总线一般可达 400kbps 以上。 IIC总线的两条信号线SCL和SDA同时处于高电平时,规定为IIC的空闲状态(IIC初始化) IIC 总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号(不是电平信号,而是电平跳变时序信号的原因)

开始信号:

SCL 为高电平时, SDA 由高电平向低电平跳变,开始传送数据。

结束信号:

SCL 为高电平时, SDA 由低电平向高电平跳变,结束传送数据。

应答信号

:接收数据的IIC 在接收到8bit(1字节8bit)数据后,向发送数据的 IC 发出特定的低电平脉冲,表示已收到数据。CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。 对于反馈有效应答位ACK的要求时,接收器在第9个时钟脉冲之前的低电平期间将SDA电平拉低,并且保持在第9个时钟脉冲的高电平期间为稳定的低电平。

数据有效性:

IIC总线在进行数据传输时,时钟信号为高电平时,数据线上的电平状态必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的电平状态才允许发生变化。 数据的传送:IIC总线上传输的每一位数据都有一个时钟脉冲同步控制,在SCL串行时钟的配合下,SDA上逐位串行传送每一位数据。

MPU6050_第1张图片

    其中,SCL 和 SDA 是连接 MCU 的 IIC 接口,MCU 通过这个 IIC 接口来控制 MPU6050,另外还有一个 IIC 接口:AUX_CL 和 AUX_DA,这个接口可用来连接外部从设备,比如磁传感器,这样就可以组成一个九轴传感器。VLOGIC 是 IO 口电压,该引脚最低可以到 1.8V,我们一般直接接 VDD 即可。AD0 是从 IIC 接口(接 MCU)的地址控制引脚,该引脚控制IIC 地址的最低位。如果接 GND,则 MPU6050 的 IIC 地址是:0X68,如果接 VDD,则是0X69,注意:这里的地址是不包含数据传输的最低位的(最低位用来表示读写)。

例 0x68:1101000 + 最低位表示读写,构成8位的IIC地址模块自带了 3.3V 超低压差稳压芯片,给 MPU6050 供电,因此外部供电可以选择:3.3V / 5V 都可以。模块通过 P1 排针与外部连接,引出了 VCC、GND、IIC_SDA、IIC_SCL、MPU_INT 和 MPU_AD0 等信号,其中,IIC_SDA 和 IIC_SCL 带了 4.7K上拉电阻,外部可以不用再加上拉电阻了,另外 MPU_AD0 自带了 10K 下拉电阻,当 AD0悬空时,默认 IIC 地址为(0X68)。 

MPU6050_第2张图片

 MPU6050点灯实验

MPU6050_第3张图片

MPU6050_第4张图片

MPU6050_第5张图片

 实验视频连接:

MPU6050_哔哩哔哩_bilibili

你可能感兴趣的:(单片机,嵌入式硬件)