你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于使用spi接口配置MPU6500/MPU9250 读取地磁传感器数据的问题

[复制链接]
ppprrr 提问时间:2015-6-12 18:13 /
有没有人用过mpu9250  或者mpu6500 + 地磁
想问下设置mpu6500为i2c master来通过辅助i2c通道读取地磁传感器数据的方法

最近被他搞得头都大了。。依然都不出数据
尝试过初始化时候把Register 106 – User Control寄存器的I2C_MST_EN  I2C_IF_DIS  I2C_MST_RST设置为1
MPU_USER_CTRL寄存器的I2C_MST_EN_BIT   I2C_IF_DIS_BIT  I2C_MST_RESET_BIT拉高,之后读取 地磁模块的ID:
                uint8_t slv0addr;

                spi_writedata(MPU_I2C_SLV0_ADDR,0x80);
                spi_writedata(MPU_I2C_SLV0_REG,0x00);
                spi_writedata(MPU_I2C_SLV0_CTRL,0x81);

                slv0addr = spi_readdata(0x63);

读不出来,都是0,有哪位仁兄调过的可以分享下经验么?

收藏 1 评论25 发布时间:2015-6-12 18:13

举报

25个回答
Klchongzi 回答时间:2016-1-14 13:41:08
ahaiff 发表于 2016-1-14 12:43
8963内部也需要操作,并注意SPI写完要延时,20M的spiy要等待400K的内部I2C操作完成,附上我的源码 ...

捕获2.PNG
SPI透过I2C master 操作8963c的寄存器
Klchongzi 回答时间:2016-1-14 12:43:29
priestyoyo 发表于 2015-12-23 20:20
看到你说搞定了。我又把板子翻出来调了一晚上。。。我确定一定是我的问题,不知道哪里理解错了。。
我首 ...

捕获.PNG 8963内部也需要操作,并注意SPI写完要延时,20M的spiy要等待400K的内部I2C操作完成,附上我的源码
ppprrr 回答时间:2015-12-23 20:20:04
ahaiff 发表于 2015-12-19 14:24
也调了好几天,终于搞定了,用内部I2C MASTER 转发,slv4单字节读写AK88963寄存器,用SLV0接收数据到EXT_SE ...

看到你说搞定了。我又把板子翻出来调了一晚上。。。我确定一定是我的问题,不知道哪里理解错了。。
我首先用slv0 写入CNTL1寄存器,让它工作在连续模式1,代码是这样的
        spi_writedata(MPU_I2C_SLV0_ADDR,0x0c);                        //write I2C address
        spi_writedata(MPU_I2C_SLV0_DO,0x12);                        //CNTL1 配置为连续模式1
        spi_writedata(MPU_I2C_SLV0_REG,AK8963_CNTL1);
        spi_writedata(MPU_I2C_SLV0_CTRL,0x81);
        Delay(10);
然后 开始用slv1读 HXL开始的6个字节数据
        uint8_t data;
        spi_writedata(MPU_I2C_SLV1_ADDR,0x8c);                        //write I2C address               
        spi_writedata(MPU_I2C_SLV1_REG,AK8963_HXL);
        spi_writedata(MPU_I2C_SLV1_CTRL,0x86);
        data= spi_readdata(MPU_EXT_SENS_DATA_00);
但是依旧不能读数据。。请教一下你具体是怎么做的
ppprrr 回答时间:2015-6-12 21:13:56
QianFan 发表于 2015-6-12 19:06
https://www.stmcu.org.cn/module/forum/thread-601675-1-1.html

对于这个贴主的Master,相当的佩服。但这不是同一个问题。依然谢谢你的热心
qianfan 回答时间:2015-6-12 21:22:46
priestyoyo 发表于 2015-6-12 21:13
对于这个贴主的Master,相当的佩服。但这不是同一个问题。依然谢谢你的热心 ...

是要告诉你,先读whoami,看看你的SPI是不是能用。
ppprrr 回答时间:2015-6-13 12:27:47
QianFan 发表于 2015-6-12 21:22
是要告诉你,先读whoami,看看你的SPI是不是能用。

可以用,加速度计和陀螺仪的数据都能读出来
ppprrr 回答时间:2015-6-13 12:28:02
QianFan 发表于 2015-6-12 21:22
是要告诉你,先读whoami,看看你的SPI是不是能用。

可以用,加速度计和陀螺仪的数据都能读出来
左岸右岸 回答时间:2015-6-13 13:28:24
最近也想搞搞这个,占座学习
为什么是EEFOCUS小白 回答时间:2015-6-13 15:09:38
不懂帮顶
lkl0305 回答时间:2015-6-13 23:21:56
来学习学习,帮顶
wyxy163@126.com 回答时间:2015-6-14 14:30:32
提示: 作者被禁止或删除 内容自动屏蔽
shadow丶 回答时间:2015-6-14 23:06:07
呃呃   mpu6050 iic的   之前用过  有段时间也是读取全0   后来怎么弄的就记不清  好像是设置的问题。。。好久之前了0.0
ppprrr 回答时间:2015-6-15 23:30:06
shadow丶 发表于 2015-6-14 23:06
呃呃   mpu6050 iic的   之前用过  有段时间也是读取全0   后来怎么弄的就记不清  好像是设置的问题。。。 ...

-。-哎  用了i2c其实依然读不出
chengwei-202140 回答时间:2015-7-15 16:53:40
楼主能不能看一下你的代码
Klchongzi 回答时间:2015-12-19 14:24:12
也调了好几天,终于搞定了,用内部I2C MASTER 转发,slv4单字节读写AK88963寄存器,用SLV0接收数据到EXT_SENS_DATA_,然后可以随时和加速度陀螺仪数据一起读出
12下一页

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版