OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9739|回复: 5

MPU6050 报错:Unsupported software product rev 6 是什么鬼?

[复制链接]

29

主题

84

帖子

0

精华

高级会员

Rank: 4

积分
659
金钱
659
注册时间
2014-5-11
在线时间
87 小时
发表于 2018-7-30 18:51:16 | 显示全部楼层 |阅读模式
1金钱

最近在调试 MPU6050模块,在F4上还能跑起来,但程序移植到L151上时就报错:Unsupported software product rev 6。找了好多资料也没有具体的解决方案,对比了F4上的程序和L151上的程序,确认没有什么重大区别。

另外,用探索者板子板载的MPU6050启动很快,dmp初始化一下就OK, 但用外置MPU6050模块挂在探索者板子上,有时需要初始化5,6下有时几分钟才通过,就是下面这块代码:

while((mpu_dmp_init()))
    {
        LCD_ShowString(30,130,200,16,16,"MPU6050 Error");
        delay_ms(200);
        LCD_Fill(30,130,239,130+16,WHITE);
         delay_ms(200);
    }
    printf("MPU6050 OK\r\n");

这个模块难道对硬件的要求这么高吗?


“Unsupported software product rev 6“ 这个报警在代码:
/* Check product revision. */
    if (i2c_read(st.hw->addr, st.reg->accel_offs, 6, data))
        return -1;
    rev = ((data[5] & 0x01) << 2) | ((data[3] & 0x01) << 1) |
        (data[1] & 0x01);
   
    printf("data: %02x,%02x,%02x,%02x,%02x,%02x\r\n", data[0],data[1],data[2],data[3],data[4],data[5]);
    if (rev) {
        /* Congrats, these parts are better. */
        if (rev == 1)
            st.chip_cfg.accel_half = 1;
        else if (rev == 2)
            st.chip_cfg.accel_half = 0;
        else {
            log_e("Unsupported software product rev %d.\r\n", rev);
            return -1;
        }
    }

I2C读写没有问题,不然前面就报错了。st.reg->accel_offs  在代码中的值为0x06, 在MPU6050的寄存器手册中没有看到这个寄存器?寄存器是从0X0D~0X75啊。

返回的数值为 data: f6,b0,fd,ff,ff,ff, 算出来rev的值就是6.

为什么F4上就行,L151上就不行了?这个Unsupported software product rev 6 是什么鬼?





最佳答案

查看完整内容[请看2#楼]

说明不支持你这个芯片
bwu
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2018-7-30 18:51:17 | 显示全部楼层
说明不支持你这个芯片
回复

使用道具 举报

29

主题

84

帖子

0

精华

高级会员

Rank: 4

积分
659
金钱
659
注册时间
2014-5-11
在线时间
87 小时
 楼主| 发表于 2018-7-31 09:26:37 | 显示全部楼层
正点原子 发表于 2018-7-30 18:51
说明不支持你这个芯片

原子哥,这说法好像也说不过去啊,同样的代码在F407上就可以啊,在L151上就不行,只是改了几个IIC的引脚而已,库那块都没有改动,不应该不支持这个芯片啊?
bwu
回复

使用道具 举报

29

主题

84

帖子

0

精华

高级会员

Rank: 4

积分
659
金钱
659
注册时间
2014-5-11
在线时间
87 小时
 楼主| 发表于 2018-8-10 14:10:23 | 显示全部楼层
本帖最后由 chinacool_00 于 2018-8-10 14:11 编辑

遇到的问题最终还是解决了,一直忘了发帖回复。
程序实际没有大的问题。我在移植的时候手痒,把IIC那块的程序稍微改动了一下:
void IIC_Ack(void)
{
        IIC_SCL(0);//=0;        SCL必须在前?否则MPU6050出错:Unsupported software product rev 6.
        SDA_OUT();
        delay_us(2);

        IIC_SDA(0);//=0;
        delay_us(3);
        
        IIC_SCL(1);//=1;
        delay_us(5);
        IIC_SCL(0);//=0;
}

上面的写法是对的。F4板子上是这样写的。移植时我改动了一点:
        SDA_OUT();
        delay_us(2);
IIC_SCL(0);
这样就不行。


想来还是要先钳住总线才能操作?
bwu
回复

使用道具 举报

3

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
336
金钱
336
注册时间
2016-9-19
在线时间
54 小时
发表于 2019-5-12 12:51:59 | 显示全部楼层
顶顶顶顶顶顶顶顶顶顶顶顶
回复

使用道具 举报

37

主题

212

帖子

0

精华

高级会员

Rank: 4

积分
900
金钱
900
注册时间
2019-6-6
在线时间
100 小时
发表于 2019-9-10 20:47:51 | 显示全部楼层
chinacool_00 发表于 2018-8-10 14:10
遇到的问题最终还是解决了,一直忘了发帖回复。
程序实际没有大的问题。我在移植的时候手痒,把IIC那块的 ...

遇到了同样的问题也是同样的解决方法,但是还是不理解为什么会这样。
无论如何还是非常感谢你,这个问题也困惑了我很久。不知道楼主有没有新的感悟
不会就要俯身倾耳以请啊,博客地址:https://blog.csdn.net/qq_39521541?spm=1001.2101.3001.5343
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 16:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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