shucht 发表于 2013-9-13 07:53:03

AK8975罗盘超量程,求助

MPU9150集成的AK8975,返回数据全是0,且HOFL位一直置1,有谁遇到过这种情况吗?

详细如下:
MPU9150,四元数读取没有问题,温度也能读取,设置成I2C旁路模式,MCU不经过9150,直接与其内部集成的 AK8975 通信,8975的寄存器读写正常,WHO I AM可返回0x48H,设置成 Single measure 后,等待ST1寄存器的 Ready 位置 1,之后读取03H-08H寄存器中的数据,全为0,并且ST2寄存器的 HOFL 位置1 ,按照手册第14页的说法,这种情况是超量程,也就是 |X|+|Y|+|Z| >= 2400 μ T单纯的地磁场不可能这样大。

一些线索:
1.用手机的电子罗盘测试PCB周围,没有异常。

2.和手册描述的一样,如果循环读取03H-08H不加延时的话,则DERR位会正常的置1,HOFL位不再会置1,数据同样全是0,这看起来是正常的

3.9150的20脚电压很高,交流测有50V,300M示波器看不出波形,摸上去也没有感觉,会不会是它对8975产生了影响?我的PCB布局有问题?(自己画的)我看淘宝上的 9150 模块20脚接的电容就在芯片边上,没什么特别,我的也是。

4.官方的自检程序中,从03H-08H读回6字节数据后是这样做的(tmp-tmp我读回全是0)
data = (short)(tmp << 8) | tmp;
if ((data > -300) || (data < -1000))
    return 正确;
我不知道为什么要这样做,反正我是不能通过自检,但陀螺和加速自检没问题。

5.虽然9150寄存器中的那些中断位会自行置1,但外部中断从来就没产生过,不只试过一种中断,而且配置流程是按手册来的,我也不知道是为什么,已经放弃中断了,一直用查询。

迫切的问题就是超量程怎么解决?
谢谢大家!

shucht 发表于 2013-9-14 10:28:58

自己顶一下~

黄瓜 发表于 2014-2-26 12:19:00

楼主,原因找到了吗? 是9150芯片坏了吗?

shucht 发表于 2014-5-1 13:14:16

你好MPU9150内的AK8975超量程问题没有解决,不知道是不是芯片问题,我的9150下面覆铜了,不知有没有影响,你也有类似情况吗?超量程 或 不产生外部中断

Yanise 发表于 2014-10-28 08:27:08

楼主AK8975自检问题解决没??自检要求Z轴数据在-300到-1000才说明AK8975工作正常,我的现在也是不在这个范围
页: [1]
查看完整版本: AK8975罗盘超量程,求助