智能车制作

标题: MCF52255 I2C读取MPU6050 出现问题及解决方法 [打印本页]

作者: 问乐寻音    时间: 2013-5-13 14:50
标题: MCF52255 I2C读取MPU6050 出现问题及解决方法
做四轴的的不少,但是用ColdFire的人估计不多,话不多说,上问题及解决方案,希望对大家有帮助,如有错误欢迎指出~
问题1:硬件I2C写的完全没错,软件模拟也试了,程序是对的,但就是读不出数据。
解决方法:1、确保MPU6050供电稳定; 2、在I2C读或写操作后(I2C_Stop函数后面),重新初始化I2C。

问题2:读取的值是对的,但是只有一次结果,也就是说读出的结果是第一次的,然后就不变了。
解决方法:不知道是不是寄存器配置的问题,试了一下,在读取数据前重新写MPU6050寄存器,解除休眠状态,问题就解决了。

问题3:MPU6050 I2C的速度到底有多快?
解决方法:手册里说I2C支持最高400KHz的速度,但是以这个速度读取6轴12个数据,时间长度可想而知(超过1ms,当然可以用中断和DMA的方式解决),现在让我们来试试提高I2C总线速度可不可行。单片机总线频率:48MHz。
分频20,I2C读取失败……分频24,I2C读取失败……分频26,读取成功!分频28,读取成功!也就是说,I2C的速度可以达到1.847MHz。这时候,即使不用中断和DMA,读取12个数据也只需要270us。



作者: automatic爱好者    时间: 2013-8-31 00:32
你好  对于第二个问题我想问一下  你是具体在哪些位置加的解除休眠哪   我的陀螺仪出现了类似的情况  正常最多三四分钟之后采集的值就一直保持不变了   我也试着在读取前加了解除休眠的语句  可是不起作用  很纳闷~希望高人指点一二  不胜感激
作者: 问乐寻音    时间: 2013-8-31 16:36
automatic爱好者 发表于 2013-8-31 00:32
你好  对于第二个问题我想问一下  你是具体在哪些位置加的解除休眠哪   我的陀螺仪出现了类似的情况  正常最 ...

[attach]50424[/attach]
我是这么弄的。像你的这种情况是不是供电不稳?或者可以试试隔一段时间就重新初始化一次6050.

作者: automatic爱好者    时间: 2013-9-1 05:00
问乐寻音 发表于 2013-8-31 16:36
我是这么弄的。像你的这种情况是不是供电不稳?或者可以试试隔一段时间就重新初始化一次6050.

多谢回复  我试试先  
作者: automatic爱好者    时间: 2013-9-1 06:23
问乐寻音 发表于 2013-8-31 16:36
我是这么弄的。像你的这种情况是不是供电不稳?或者可以试试隔一段时间就重新初始化一次6050.

还没解决~我贴个代码上来看看  希望快点解决掉这个问题[attach]50434[/attach]

作者: 问乐寻音    时间: 2013-9-1 09:41
automatic爱好者 发表于 2013-9-1 06:23
还没解决~我贴个代码上来看看  希望快点解决掉这个问题

我是一次只读一个数据,连续读出了问题。
作者: 蓝狼lc    时间: 2014-7-15 08:34
为什么我的mpu6050用串口调试工具老读不出来?求大神解答




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2