OpenEdv-开源电子网

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

MPU6050 的 DMP初始化问题。

[复制链接]

12

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
419
金钱
419
注册时间
2015-4-14
在线时间
53 小时
发表于 2016-1-21 14:59:39 | 显示全部楼层 |阅读模式
1金钱

用的是圆点DMP库。把陀螺仪初始化的每一步骤通过串口打印出来,会出现:“加载dmp固件失败 ,,,,使能DMP失败”。程序如下:[mw_shl_code=applescript,true]u8 AnBT_DMP_MPU6050_Init(void)       
{
        AnBT_DMP_MPU6050_DEV_CFG();                //etootle: init the mpu6050 chip
        AnBT_Uart1_Send_String("P-1,Finish DMP device init.",27);
        //
        if(!mpu_set_sensors(INV_XYZ_GYRO | INV_XYZ_ACCEL)) AnBT_Uart1_Send_String("P-2,Finish DMP set sensor.",26);
        else AnBT_Uart1_Send_String("P-2,DMP set sensor error.",25);
        //
        if(!mpu_configure_fifo(INV_XYZ_GYRO | INV_XYZ_ACCEL)) AnBT_Uart1_Send_String("P-3,Finish DMP configure fifo.",30);
        else AnBT_Uart1_Send_String("P-3,DMP configure fifo error.",29);
        //
        if(!mpu_set_sample_rate(DEFAULT_MPU_HZ))AnBT_Uart1_Send_String("P-4,Finish DMP set sample rate.",31);
        else AnBT_Uart1_Send_String("P-4,DMP set sample_rate error.",30);
        //
        if(!dmp_load_motion_driver_firmware())        AnBT_Uart1_Send_String("P-5,Finish DMP load motion driver firmware.",43);
        else AnBT_Uart1_Send_String("P-5,DMP load motion driver firmware error.",42);
        //
        if(!dmp_set_orientation(inv_orientation_matrix_to_scalar(gyro_orientation))) AnBT_Uart1_Send_String("P-6,Finish DMP set orientation.",31);
        else AnBT_Uart1_Send_String("P-6,DMP set orientation error.",30);
        //
        if(!dmp_enable_feature(DMP_FEATURE_6X_LP_QUAT | DMP_FEATURE_TAP |
        DMP_FEATURE_ANDROID_ORIENT | DMP_FEATURE_SEND_RAW_ACCEL | DMP_FEATURE_SEND_CAL_GYRO |
        DMP_FEATURE_GYRO_CAL))                AnBT_Uart1_Send_String("P-7,Finish DMP enable feature.",30);
        else AnBT_Uart1_Send_String("P-7,DMP enable feature error.",29);
        //
        if(!dmp_set_fifo_rate(DEFAULT_MPU_HZ)) AnBT_Uart1_Send_String("P-8,Finish DMP set fifo rate.",29);
        else AnBT_Uart1_Send_String("P-8,DMP set fifo rate error.",28);
        //
        run_self_test();
        if(!mpu_set_dmp_state(1)) AnBT_Uart1_Send_String("P-9,Finish DMP set dmp state.",29);
        else AnBT_Uart1_Send_String("P-9,DMP set dmp state error.",28);       
        //
        return 0;
}[/mw_shl_code]

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
419
金钱
419
注册时间
2015-4-14
在线时间
53 小时
 楼主| 发表于 2016-1-21 15:00:42 | 显示全部楼层
在用战舰开发板连接笔记本调试时,初始化都是成功的,从没失败过。可是换到小车上联调时就会出现初始化不成功的问题,出现概率大概是50%.卡在这里两天了,求大神指点啊!!!

回复

使用道具 举报

12

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
419
金钱
419
注册时间
2015-4-14
在线时间
53 小时
 楼主| 发表于 2016-1-21 15:05:24 | 显示全部楼层
小车载的是是12V转5V的电源系统,测试过板子电压都是正常的。又用车用电源系统单独给开发板供电,用235串口跳线测试,发现初始化失败概率也是一半。有时连续成功。有时连续失败,纳闷啊。
回复

使用道具 举报

20

主题

468

帖子

3

精华

金牌会员

Rank: 6Rank: 6

积分
1684
金钱
1684
注册时间
2014-2-25
在线时间
230 小时
发表于 2016-1-21 19:09:00 | 显示全部楼层
仿真一下,看看是死在哪里了
回复

使用道具 举报

12

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
419
金钱
419
注册时间
2015-4-14
在线时间
53 小时
 楼主| 发表于 2016-1-22 17:03:17 | 显示全部楼层
@正点原子
DMP加载固件库失败的概率为10%左右,是什么原因呢?不是用杜邦线连接的。
回复

使用道具 举报

12

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
419
金钱
419
注册时间
2015-4-14
在线时间
53 小时
 楼主| 发表于 2016-1-22 17:04:58 | 显示全部楼层
@正点原子
I2C速率也调整过的,你们说的调整堆栈大小是什么意思?
回复

使用道具 举报

12

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
419
金钱
419
注册时间
2015-4-14
在线时间
53 小时
 楼主| 发表于 2016-1-22 17:05:48 | 显示全部楼层
@正点原子
原子哥救我脱离苦海吧。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165558
金钱
165558
注册时间
2010-12-1
在线时间
2118 小时
发表于 2016-1-23 19:09:47 | 显示全部楼层
估计电源不稳导致的。检查下电源
回复

使用道具 举报

6

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2017-2-27
在线时间
12 小时
发表于 2017-2-28 15:06:27 | 显示全部楼层
楼主解决问题了吗????
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-8-23 19:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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