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

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

[复制链接]
priestyoyo 提问时间:2015-6-12 18:13 /
阅读主题, 点击返回1楼
收藏 1 评论25 发布时间:2015-6-12 18:13
25个回答
shadow丶 回答时间:2015-6-14 23:06:07
呃呃   mpu6050 iic的   之前用过  有段时间也是读取全0   后来怎么弄的就记不清  好像是设置的问题。。。好久之前了0.0
priestyoyo 回答时间:2015-6-15 23:30:06
shadow丶 发表于 2015-6-14 23:06
呃呃   mpu6050 iic的   之前用过  有段时间也是读取全0   后来怎么弄的就记不清  好像是设置的问题。。。 ...

-。-哎  用了i2c其实依然读不出
chengwei-202140 回答时间:2015-7-15 16:53:40
楼主能不能看一下你的代码
ahaiff 回答时间:2015-12-19 14:24:12
也调了好几天,终于搞定了,用内部I2C MASTER 转发,slv4单字节读写AK88963寄存器,用SLV0接收数据到EXT_SENS_DATA_,然后可以随时和加速度陀螺仪数据一起读出
priestyoyo 回答时间: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);
但是依旧不能读数据。。请教一下你具体是怎么做的
ahaiff 回答时间:2016-1-14 12:43:29
priestyoyo 发表于 2015-12-23 20:20
看到你说搞定了。我又把板子翻出来调了一晚上。。。我确定一定是我的问题,不知道哪里理解错了。。
我首 ...

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

捕获2.PNG
SPI透过I2C master 操作8963c的寄存器
power568 回答时间:2016-3-2 13:56:08
本帖最后由 power568 于 2016-3-2 15:06 编辑

这几天也在捣鼓这个模块,目前正在读取磁力计的数据,学习中...
要是能提供宏定义数据更好...
power568 回答时间:2016-3-2 17:46:32
ahaiff 发表于 2016-1-14 13:41
SPI透过I2C master 操作8963c的寄存器

大侠,今天试了一下,读不出数据,读取I2C的Slv4_done状态时,一直不会置位,可否指点一下?
枫叶20101112 回答时间:2016-3-28 21:48:33
各位成功用spi读出9轴数据的分享一下经验啦,spi无法读磁力计数据啊,折腾啊,我的配置如下,就是读不了磁力计:
    /* 读 MPU9250 ID 判断是否在线 */
    if (MPU9250_ID == MPU9250_Read_Reg())
    {
      MPU9250_Write_Reg(USER_CTRL,    0x30); /* 使能 MPU9250 SPI 工作模式和 I2C 主机 I/F 模式 */
      MPU9250_Write_Reg(PWR_MGMT_1,   0x80); /* 电源管理,复位 MPU9250 */
      MPU9250_Write_Reg(SMPLRT_DIV,   0x07,); /* 采样率 1000/(1+7)=125HZ */
      MPU9250_Write_Reg(CONFIG,       0x06); /* 低通滤波器 0x06 5Hz */
      MPU9250_Write_Reg(GYRO_CONFIG,  0x18,); /* 陀螺仪测量范围 0x18 正负 2000 度 */
      MPU9250_Write_Reg(ACCEL_CONFIG, 0x18); /* 加速度计测量范围 0x18 正负 16g */

      /* MPU9250-AK8963 磁力计初始化 */
      if (!MPU9250_AK8963_Init()) return false;                       
    }

其中MPU9250_AK8963_Init()是参考楼主的,只能读加速度和陀螺仪

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版