OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/FPGA开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...
查看: 1622|回复: 4
打印 上一主题 下一主题

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

[复制链接]

26

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
451
金钱
451
注册时间
2014-5-11
在线时间
58 小时
跳转到指定楼层
楼主
发表于 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
回复

使用道具 举报

543

主题

10万

帖子

32

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
142226
金钱
142226
注册时间
2010-12-1
在线时间
1519 小时
2#
发表于 2018-7-30 18:51:17 | 只看该作者
说明不支持你这个芯片
回复

使用道具 举报

26

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
451
金钱
451
注册时间
2014-5-11
在线时间
58 小时
3#
 楼主| 发表于 2018-7-31 09:26:37 | 只看该作者
正点原子 发表于 2018-7-30 18:51
说明不支持你这个芯片

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

使用道具 举报

26

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
451
金钱
451
注册时间
2014-5-11
在线时间
58 小时
4#
 楼主| 发表于 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
回复

使用道具 举报

2

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
234
金钱
234
注册时间
2016-9-19
在线时间
37 小时
5#
发表于 2019-5-12 12:51:59 | 只看该作者
顶顶顶顶顶顶顶顶顶顶顶顶
回复

使用道具 举报

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

本版积分规则



关闭

正点原子STM32/FPGA资料免费下载上一条 /1 下一条

正点原子公众号

QQ|手机版|官方淘宝店|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2019-7-2 14:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表
三级片电影