极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11972|回复: 2

乐高NXT,I2C初始化MPU9150最后一步失败,求解......

[复制链接]
发表于 2014-6-25 10:49:15 | 显示全部楼层 |阅读模式
硬件乐高的NXT主机,MPU9150模块(淘宝上买的);
软件ROBOT C 3.62,I2C端配置成CUS FAST模式(约为4K速率).

初始化代码:

         I2C_Write(S2,3,Adr,MPU9150_PWR_MGMT_1,0x80,0); //RESET唤醒
         wait1Msec(100);
         I2C_Write(S2,3,Adr,MPU9150_SMPLRT_DIV,0x00,0);
         wait1Msec(100);
         I2C_Write(S2,3,Adr,MPU9150_CONFIG,0x00,0);
         wait1Msec(100);
         I2C_Write(S2,3,Adr,MPU9150_GYRO_CONFIG,0x18,0);  //gyro 2000
         wait1Msec(100);
         I2C_Write(S2,3,Adr,MPU9150_ACCEL_CONFIG,0x08,0);  //accel 4g
         wait1Msec(50);
         //以下三行初始化磁力计并找打开进入单次测量模式
         I2C_Write(S2,3,Adr,MPU9150_Bypass_Enable_CFG,0x02,0);  //Bypass_Enable_CFG enable
         wait1Msec(50);
         I2C_Write(S2,3,Adr,MPU9150_USER_CTRL,0x00,0);      //关闭I2C MASTER模式
         wait1Msec(50);
         I2C_Write(S2,3,AK8975_I2C_ADDR,AK8975_CNTL,0x01,0); //开启COMPASS :single measurement mode
         wait1Msec(100);  

}//end off init MPU9150


如果不读磁力计AK8975,完全没有问题,GYRO和ACCEL是和MPU6050一样的,挺好用的!但是我想用MPU9150的磁力计所以才买9150的,每次DEBUG到 I2C_Write(S2,3,AK8975_I2C_ADDR,AK8975_CNTL,0x01,0); 这行时,I2C端口返回的就不是NO-ERR,初始化就失败,已经查了三天了,没有任何进展........


现在怀疑是不是硬件电路上有问题,NXT要求上拉是82K,我的模块只有10K,昨天试了一下换成50K,一样不行!是不是还有其他硬件部份要注意,(但是,其他模块接到NXT上,我从不都不改上拉的,一直很正常)......

走过路过的出出主意吧......三个晚上,为了它,球都没有看........
回复

使用道具 举报

发表于 2014-6-25 11:01:29 | 显示全部楼层
先扫描一下确定地址对不对吧....
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-26 10:02:14 | 显示全部楼层
地址正确的!
MPU9150的我设的是0X68,内部的磁力计按DATASHEET是0X0C
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-10 04:38 , Processed in 0.047215 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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