搜索
bottom↓
回复: 25

MPU6050的DMP初始化错误

[复制链接]

出0入0汤圆

发表于 2013-8-20 21:11:47 | 显示全部楼层 |阅读模式
小弟移植了论坛里大大的MPU6050 DMP程序 但是程序下载到单片机后 一直是dmp_load_motion_driver_firmware() 这个函数不能初始化错误
dmp_load_motion_driver_firmware come across error ......

我将错误信息传到串口助手发现返回错误号为-2,查看inv_mpu.c库里面确定是这一句返回的      
if (memcmp(firmware+ii, cur, this_write));
            return -2;
还望论坛里的大大们帮帮忙 给小弟指点迷津
开发环境使用的是MDK

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2013-8-20 21:15:41 | 显示全部楼层
本帖最后由 NJ8888 于 2013-8-20 21:18 编辑

比较不等的错,通常用数字示波器能排除问题,你写入和读出分别输出到串口,我开始也错,经断点看是移植时写错,把地址当内容送到6050里,读出校验当然不对

出0入0汤圆

 楼主| 发表于 2013-8-20 21:23:01 | 显示全部楼层
NJ8888 发表于 2013-8-20 21:15
比较不等的错,通常用数字示波器能排除问题,你写入和读出分别输出到串口,我开始也错,经断点看是移植时写 ...

哎 我属于屌丝级别的 没有示波器 不过我正在仔细看我移植的代码 很有可能是哪里弄错了
谢谢nj8888

出0入0汤圆

发表于 2013-8-20 22:15:43 | 显示全部楼层
    for (ii = 0; ii < length; ii += this_write) {
        this_write = min(LOAD_CHUNK, length - ii);
        if (mpu_write_mem(ii, this_write, (unsigned char*)&firmware[ii]))
            return -1;
                                delay_ms(2);
        if (mpu_read_mem(ii, this_write, cur))
            return -1;
        if (memcmp(firmware+ii, cur, this_write))
            return -2;
                                delay_ms(2);
    }



这样   加个延时

出0入0汤圆

 楼主| 发表于 2013-8-21 20:16:30 | 显示全部楼层
wangjt1988 发表于 2013-8-20 22:15
for (ii = 0; ii < length; ii += this_write) {
        this_write = min(LOAD_CHUNK, length - ii); ...

好像也不行
我将程序运行时的firmware和cur的发回到串口 发现在第一次循环就出现错误了 因为第一次循环firmware的值为0x00,cur的值为0x25 就跳出循环了 返回错误-2

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出105入79汤圆

发表于 2013-8-21 20:53:05 来自手机 | 显示全部楼层
看看iic多字节写入函数移植是否正常。

出0入0汤圆

 楼主| 发表于 2013-8-21 22:12:47 | 显示全部楼层
qwe2231695 发表于 2013-8-21 20:53
看看iic多字节写入函数移植是否正常。

是正确的 我用ds3231测试的,写入十组数 然后读出都是正确的啊

出0入4汤圆

发表于 2013-8-23 16:21:51 | 显示全部楼层
看看i2c地址对不对,d0,d2

出0入0汤圆

 楼主| 发表于 2013-8-24 18:06:46 | 显示全部楼层
ronic 发表于 2013-8-23 16:21
看看i2c地址对不对,d0,d2

i2c地址是对的,因为都能读到mpu6050的who am i 的值

出0入0汤圆

发表于 2013-8-24 19:10:44 | 显示全部楼层
没示波器确实悲剧

出0入0汤圆

 楼主| 发表于 2013-8-24 21:49:47 | 显示全部楼层
已经搞好了 谢谢大家的帮忙 主要出问题的地方是就是qwe2231695说的连续些操作出现了问题

出0入0汤圆

发表于 2014-8-14 15:01:37 | 显示全部楼层
dcl_yufeimen 发表于 2013-8-24 21:49
已经搞好了 谢谢大家的帮忙 主要出问题的地方是就是qwe2231695说的连续些操作出现了问题
...

我想问下怎么样式连续操作出现问题呢??

出0入0汤圆

 楼主| 发表于 2014-8-14 21:45:01 | 显示全部楼层
Free_man 发表于 2014-8-14 15:01
我想问下怎么样式连续操作出现问题呢??

当时是I2C 写多字节函数有一个小bug

出0入0汤圆

发表于 2014-8-14 23:08:09 | 显示全部楼层
dcl_yufeimen 发表于 2014-8-14 21:45
当时是I2C 写多字节函数有一个小bug

你好,请问你的BUG是个什么问题,我也在这个地方卡了好久了,求指教啊,不甚感激!!!!

出0入0汤圆

发表于 2014-8-14 23:17:46 | 显示全部楼层
楼主能把出错的函数发出来吗?
急!!

出0入0汤圆

发表于 2014-8-15 13:04:39 | 显示全部楼层
dcl_yufeimen 发表于 2014-8-14 21:45
当时是I2C 写多字节函数有一个小bug

有没有试过fifo溢出

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-8-15 14:35:00 | 显示全部楼层
NJ8888 发表于 2013-8-24 19:10
没示波器确实悲剧

有没有试过fifo溢出的情况呢
??

出0入0汤圆

 楼主| 发表于 2014-8-15 21:32:22 | 显示全部楼层
Free_man 发表于 2014-8-15 14:35
有没有试过fifo溢出的情况呢
??

没有试过fifo溢出情况 主要后来觉得DMP的Z轴漂移太大 就没使用了

出0入0汤圆

 楼主| 发表于 2014-8-15 21:32:57 | 显示全部楼层
jelick 发表于 2014-8-14 23:17
楼主能把出错的函数发出来吗?
急!!

程序就在楼主位啊 你下载看呗

出0入0汤圆

 楼主| 发表于 2014-8-15 21:39:07 | 显示全部楼层
zhan278047442 发表于 2014-8-14 23:08
你好,请问你的BUG是个什么问题,我也在这个地方卡了好久了,求指教啊,不甚感激!!!! ...

我记得是当时等待标志位写错了 楼主位的程序 你看看吧 时间太久忘了

出0入0汤圆

发表于 2014-8-18 09:54:02 | 显示全部楼层
dcl_yufeimen 发表于 2014-8-15 21:39
我记得是当时等待标志位写错了 楼主位的程序 你看看吧 时间太久忘了

好的,谢谢了!

出0入0汤圆

发表于 2014-8-18 10:30:17 | 显示全部楼层
dcl_yufeimen 发表于 2014-8-15 21:32
没有试过fifo溢出情况 主要后来觉得DMP的Z轴漂移太大 就没使用了

为什么z轴会漂移那么厉害呢

出0入0汤圆

发表于 2014-8-18 19:23:41 | 显示全部楼层
我认为是系统时钟的设置太高的原因,你可以把IIC初始化的时钟总线往下调试试

出0入0汤圆

 楼主| 发表于 2014-8-18 20:25:41 | 显示全部楼层
Free_man 发表于 2014-8-18 10:30
为什么z轴会漂移那么厉害呢

没有仔细研究了 DMP本来就是人家的东西 就是个黑盒,资料太少了,还不如自己融合的好

出0入0汤圆

发表于 2014-8-28 20:54:49 | 显示全部楼层
谢谢,我也出现了这个问题,根据大家的思路再次对我的代码进行审查,发现iic多字节读取没问题,但是问题确实是在这个地方(就是用了一个DMP提供的swap函数,但是并没用他提供的iic函数,导致被坑。哈哈,其实是自己水。)。以后大家如果出了这个问题,多看看是不是iic的问题。
即使你可以用iic进行通讯,但这不代表多字节的读取没有问题!

出0入0汤圆

发表于 2014-10-23 15:16:55 | 显示全部楼层
麻烦问下,用DMP的同时能不能读出陀螺仪的值??
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-9 02:37

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表