搜索
bottom↓
回复: 70

求助:HMC5883L的X,Y,Z数据寄存器的读出值不准确,而其他的寄存器的数据读出是准确的

[复制链接]

出0入0汤圆

发表于 2011-1-20 16:44:35 | 显示全部楼层 |阅读模式
求助:HMC5883L的X,Y,Z数据寄存器的读出值不准确,而其他的寄存器的数据读出是准确的


配置寄存器B初始化为:0x20 //默认值
模式寄存器MR初始化为:0x00 //连续测量
配置寄存器A初始化为:0x18 //正常测量模式  75HZ

结果发现读出的   STAT  X     Y     Z    值如下:
                  11 00 00 00 04 FF FE
                  11 00 02 00 01 00 03
                  11 FF FE FF FE 00 00
                  11 00 04 00 00 00 01
                  11 FF FE 00 04 00 00
                  11 00 FE 00 01 00 00
                  11 00 00 00 00 FF FA
                  11 00 02 00 00 00 02
                  11 FF FE 00 00 00 02
                  11 00 03 00 00 00 02
                  11 00 00 FF FF 00 03
XYZ的值明显不对,可是其他寄存器A B MR STAT读出的值是正确的
对XY值求角度,发现角度都是45°的倍数,哪位大侠能告诉我,这是为什么啊?》

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

发表于 2011-1-21 09:48:14 | 显示全部楼层
我最近也在用5883L。
我觉得可能原因是:1,I2C修改配置寄存器A,B数据后,是否寄存器被修改,如果寄存器不被修改,可能你的I2C的连接不良。2,读下寄存器10,11,12,看是不是‘H’‘4’‘3’。如果正确,改配置寄存器也正常,考虑是否5883L中的测量电路在焊接过程中被损坏。高温容易坏的,如损坏,就无法使用了。
我的使用经验,仅供参考。

出0入0汤圆

发表于 2011-1-21 17:13:58 | 显示全部楼层

配置寄存器B,模式寄存器,配置寄存器都改为0X00。我在这个模式下是可以正常使用的。别的模式下性能不是很清楚了。如果不是这个原因,那要考虑我上面说的情况了。尤其是情况2的因素。

出0入0汤圆

发表于 2011-1-21 18:42:03 | 显示全部楼层
是不是没有先进行自校准?

出0入0汤圆

发表于 2011-1-30 17:45:57 | 显示全部楼层
把4.7的电容换成陶瓷的试试.

出0入0汤圆

发表于 2011-2-5 21:24:47 | 显示全部楼层
回复【楼主位】isimeng
-----------------------------------------------------------------------

我和楼主状况相同,其他寄存器的值读出都对,但09寄存器的值始终为3,LOCK值一直为1,根据DATASHEET所述应该是X,Y,Z寄存器没有全部读出LOCK值才为1,奇怪的是不论等多久,X,Y,Z寄存器都不能全部读出,不知是何缘故?

出0入0汤圆

发表于 2011-2-6 23:39:50 | 显示全部楼层
在国外坛子上有用过的网友也提到: 要先进行自校准.

我也订了块带PCB板(模块化)的HMC5883L, 想用在Arduino上与GPS和气压计一起向我的AR.Drone提供位置和航向.
春节期间商家不发货, 只好等 ...

出0入0汤圆

发表于 2011-2-6 23:52:52 | 显示全部楼层
还有, 如何与3轴陀螺仪数据融合得到更精确的磁角度? (消除抖动)

出0入0汤圆

发表于 2011-2-9 10:40:44 | 显示全部楼层
回复【楼主位】isimeng
-----------------------------------------------------------------------

楼主,从你所采集到的数据来看,这些数据是存在问题的,根据HMC5883L的数据手册上的说明来看,
其范围是-2048 to 2047而满量程的数据显示"-4096"(十进制的数据),而你所采集的数据存在4607,因此这是不正常的数据;
其主要产生的问题,还是可能由于你的配置仅存器A所设置采样频率的问题而引起,因此建议你设置MA1:MA0=00试试

出0入0汤圆

发表于 2011-2-9 10:43:04 | 显示全部楼层
回复【6楼】MAPGPS
-----------------------------------------------------------------------

自校准,这是不需要的,自校准的主要目的是看Sensor是否损坏或者SMT焊锡是否OK;

出0入0汤圆

发表于 2011-2-23 14:08:32 | 显示全部楼层
那么巧哦 楼主。哈哈  以前我一直用5843  挺好的  现在换成了5883L 今天测试结果合一的差不多 貌似数据都是45的倍数。不知道你的解决了没有  我想一定是和5843配置不一样 虽然可以通信 但是没有正常的工作起来…………寻找原因中…………

出0入0汤圆

发表于 2011-2-23 14:19:06 | 显示全部楼层
哦 貌似找到原因了  哈哈 CRA7
CRA7
This bit must be cleared for correct operation

出0入0汤圆

发表于 2011-2-23 15:29:53 | 显示全部楼层
嗨  大失所望  还是不行

出0入0汤圆

发表于 2011-2-23 17:19:23 | 显示全部楼层
我的HMC5883L模块刚收到. 开始(X, Y, Z)数据读出也是错位的.
后来仔细阅读HMC5883L的Datasheet, 发现其接口修改了, (X, Y, Z)数据读出与早期的HMC5843是反着的!
应为(X, Z, Y)

我是接在Arduino Nano上测的. 准备通过USB口用在AR.Drone四轴上.

出0入0汤圆

发表于 2011-2-24 12:05:36 | 显示全部楼层
还是跳  我的数据!

出0入0汤圆

发表于 2011-2-24 12:44:09 | 显示全部楼层
回复【15楼】KOUYU
还是跳  我的数据!
-----------------------------------------------------------------------
我的输出很稳定, 精度<1度.
但与正北有30来度的偏移, 不知何故?

附上Arduino源代码(类C++).

X:282.00         Y:43.68         Z:-401.05
Heading: 188.80
X:279.00         Y:42.73         Z:-399.16
Heading: 188.71
X:280.00         Y:41.78         Z:-401.05
Heading: 188.49
X:280.00         Y:41.78         Z:-401.99
Heading: 188.49
X:279.00         Y:41.78         Z:-400.11
Heading: 188.52
X:282.00         Y:42.73         Z:-401.99
Heading: 188.62
X:280.00         Y:41.78         Z:-400.11
Heading: 188.49
X:278.00         Y:41.78         Z:-400.11
Heading: 188.55
X:280.00         Y:42.73         Z:-399.16
Heading: 188.68
X:281.00         Y:42.73         Z:-400.11
Heading: 188.65

点击此处下载 ourdev_618181HG355N.zip(文件大小:18K) (原文件名:HMC5883L.zip)

出0入0汤圆

发表于 2011-2-24 13:22:45 | 显示全部楼层
回复【16楼】MAPGPS
-----------------------------------------------------------------------

我现在焊接的是IIC总线都不稳定了  真是郁闷  估计我要是保证硬件焊接不出错 我就找软件的错误了…………

出0入0汤圆

发表于 2011-2-24 13:29:58 | 显示全部楼层
回复【17楼】KOUYU
回复【16楼】mapgps  
-----------------------------------------------------------------------
我现在焊接的是iic总线都不稳定了  真是郁闷  估计我要是保证硬件焊接不出错 我就找软件的错误了…………
-----------------------------------------------------------------------
真行, 你还自己焊HMC5883L.
我的焊技很差, 眼都看不清HMC5883L的密密管脚. 直接到淘宝买那种带PCB焊好的模块, 省事.


(原文件名:HMC5883L_1.JPG)


(原文件名:HMC5883L_2.JPG)

出0入0汤圆

发表于 2011-2-24 17:03:38 | 显示全部楼层
回复【16楼】MAPGPS
-----------------------------------------------------------------------

从你所给出的数据来看,传感器还是相当稳定的,
但是从你所反馈的正北方向的偏差比较,建议你按照下面的方法试试;
1 如果你是在实验室的话,建议你到外面空旷的地方测试,以确定是否由于周边的干扰造成;
2 将Gain值调大一点测试
希望以上对你有所帮助

出0入0汤圆

发表于 2011-2-24 17:21:48 | 显示全部楼层
捣鼓了两天  没有成功!!!  ………………

出0入0汤圆

发表于 2011-2-24 17:25:20 | 显示全部楼层
那个4.7UF的电容 正常工作的话电压值是多少?谁给量一下
O(∩_∩)O~

出0入0汤圆

发表于 2011-2-26 11:16:32 | 显示全部楼层
回复【16楼】MAPGPS  
-----------------------------------------------------------------------

你好,请问你的角度是怎么算的?

X:282.00         Y:43.68         Z:-401.05
Heading: 188.80

我根据X,Y算出来的是8度。
我的算法是:
atan2(Y,X)*180/3.14。

先谢过了。

出0入0汤圆

发表于 2011-2-26 11:18:40 | 显示全部楼层
回复【楼主位】isimeng  
-----------------------------------------------------------------------

楼主,你的问题解决了吗?

能把数据贴出来看一下吗?我比较一下。

我的如下(X轴全是负的,不知道是否有问题):

-895, -245, -787
-1067, 201, -668
-710, 38, -635

出0入0汤圆

发表于 2011-2-26 11:25:32 | 显示全部楼层
HMC5883L,这种封装的,焊是个大问题,我测试时,至少焊了10次(焊功差!),才能正常读出数据。大家也可以用万用表测下引脚有没有焊上。没焊上时,电阻无穷大。

出0入0汤圆

发表于 2011-2-26 11:32:32 | 显示全部楼层
回复【22楼】muojie
回复【16楼】mapgps   
-----------------------------------------------------------------------
你好,请问你的角度是怎么算的?
x:282.00  y:43.68  z:-401.05  
heading: 188.80  
我根据x,y算出来的是8度。
我的算法是:
atan2(y,x)*180/3.14。
先谢过了。
-----------------------------------------------------------------------

(atan2(y,x)+3.14)*180/3.14
差个180度, 就看你HMC5883L的安装方位而定.

出0入0汤圆

发表于 2011-3-1 10:17:05 | 显示全部楼层
回复【23楼】muojie
-----------------------------------------------------------------------

你所采集的数据是在水平面旋转的时候所采集到的吗?还是仅仅只是停留其中一个方向

出0入0汤圆

发表于 2011-3-7 13:39:39 | 显示全部楼层
这个芯片的确是太娇气了

出0入0汤圆

发表于 2011-3-8 10:28:27 | 显示全部楼层
回复【27楼】KOUYU  
-----------------------------------------------------------------------
焊接要求高点,但娇气好像不是吧

出0入0汤圆

 楼主| 发表于 2011-3-15 16:04:34 | 显示全部楼层
回复【3楼】ssaweee
是不是没有先进行自校准?
--------------------------------------------------------------------
是不是自测试啊?现在我弄好了了,我也不知道什么原因,估计是评估板质量太差了

出0入0汤圆

 楼主| 发表于 2011-3-15 16:05:45 | 显示全部楼层
回复【8楼】COMPASS1
回复【楼主位】isimeng  
-----------------------------------------------------------------------
楼主,从你所采集到的数据来看,这些数据是存在问题的,根据hmc5883l的数据手册上的说明来看,
其范围是-2048 to 2047而满量程的数据显示"-4096"(十进制的数据),而你所采集的数据存在4607,因此这是不正常的数据;
其主要产生的问题,还是可能由于你的配置仅存器a所设置采样频率的问题而引起,因此建议你设置ma1:ma0=00试试
-----------------------------------------------------------------------

谢谢提醒

出0入0汤圆

 楼主| 发表于 2011-3-15 16:06:46 | 显示全部楼层
回复【11楼】KOUYU
那么巧哦 楼主。哈哈  以前我一直用5843  挺好的  现在换成了5883l 今天测试结果合一的差不多 貌似数据都是45的倍数。不知道你的解决了没有  我想一定是和5843配置不一样 虽然可以通信 但是没有正常的工作起来…………寻找原因中…………
-----------------------------------------------------------------------

我的好了。。。,有空加我交流QQ545716093

出0入0汤圆

发表于 2011-3-17 15:21:23 | 显示全部楼层
回复【31楼】isimeng
-----------------------------------------------------------------------

可否透露一下是什么原因,怎么解决的呢?

出0入0汤圆

发表于 2011-3-21 10:42:18 | 显示全部楼层
回复【32楼】lihua  
-----------------------------------------------------------------------

磁传感器对于板的品质也有比较高的要求,特别是对于铁镍的物质含量不能太高,这样会造成很大的干扰,
还有就是Set/Reset回路的设计是否正常,电容值是否达到要求,内阻是否比较低(用陶瓷的电容效果比较好);

出0入0汤圆

发表于 2011-3-23 15:07:08 | 显示全部楼层
Set/Reset回路如何设计?我的是在SETP和SETC之间串了一个224电容,别的没有电路了。请教,指点一下吧

出0入0汤圆

发表于 2011-3-24 11:34:32 | 显示全部楼层
回复【34楼】tanker110  
-----------------------------------------------------------------------

在这中间如果电容材质好的话,你就只需增加0.22uF的电容就可以了,5883L外围电路比较简单的

出0入0汤圆

发表于 2011-3-26 13:31:15 | 显示全部楼层
请教一下,为什么我的HMC5883L模块Z周没有数据呢,还有X、Y轴的数据也不变呢?

出0入0汤圆

发表于 2011-3-26 13:31:27 | 显示全部楼层
请教一下,为什么我的HMC5883L模块Z周没有数据呢,还有X、Y轴的数据也不变呢?

出0入0汤圆

发表于 2011-3-28 11:09:48 | 显示全部楼层
回复【37楼】xiaona  
-----------------------------------------------------------------------
Z轴没有数据,是一个什么样的情况呢?还有你的XY轴的数据没有变化,其读出来的数据大概是多少呢?

出0入0汤圆

发表于 2011-4-3 14:17:09 | 显示全部楼层
回复【36楼】xiaona
-------------------------------------------------------------------
首先确定你的配置是否正确,
你是在连续测量模式吗,先设置模式寄存器为00,然后设置寄存器A,B依次为0。再试。
然后如果在所有方向都反转,Z轴都没有数据,而XY轴数据正常,那么可能Z轴电路已损坏。我有遇到过这样情况。我的是高温损坏了芯片内部分电路。

出0入0汤圆

发表于 2011-4-15 15:16:57 | 显示全部楼层
回复【40楼】tanker110  
回复【36楼】xiaona
-----------------------------------------------------------------------

建议最好还是用self-test模式的设置来检测就更直观简便

出0入0汤圆

发表于 2011-4-15 18:51:37 | 显示全部楼层
5883L的确是娇气的很。搞定它还是两个因素。一个是PCB  一个焊接。至于PCB就不用说了。现在最新的资料都有PCB的按照上面的做就可以了。当然用你原来的5843的PCB电路也是可以的。就是换一个封装。至于焊接,不是那么好搞定的。以前5843都是手工焊接,没有问题的。现在5883L一般是焊接不好的。原因是焊接温度不能太高。PDF说是不要超过260°不过当你还没有到得时候估计它就死了。所以不是一般的焊接高手我估计你是搞定不了的。所以这个焊接工艺还是用工具吧——做钢网,机器焊接。

出0入0汤圆

发表于 2011-5-20 17:33:44 | 显示全部楼层
回复【37楼】xiaona
请教一下,为什么我的hmc5883l模块z周没有数据呢,还有x、y轴的数据也不变呢?
-----------------------------------------------------------------------

这个问题是有很多原因造成的,请传邮件给我:
amylp7982@gmail.com

出0入0汤圆

发表于 2011-5-20 17:36:48 | 显示全部楼层
回复【7楼】MAPGPS
还有, 如何与3轴陀螺仪数据融合得到更精确的磁角度? (消除抖动)
-----------------------------------------------------------------------

你是什么品牌的陀螺仪呢?可以交流一下!我们的技术支持这个方面比较熟悉,你可以发邮件给我amylp7982@gmail.com

出0入0汤圆

发表于 2011-7-27 11:28:26 | 显示全部楼层
回复【41楼】COMPASS1  航纬
-----------------------------------------------------------------------

能告诉我具体怎么自测试么

出0入0汤圆

发表于 2011-7-27 15:40:22 | 显示全部楼层
回复【楼主位】isimeng
-----------------------------------------------------------------------

你的配置寄存器A只设置了一次吗?  文档中,配置寄存器A从0x00到0x01变化是什么意思啊?

出0入0汤圆

发表于 2011-10-18 09:37:37 | 显示全部楼层
回复【25楼】MAPGPS  
-----------------------------------------------------------------------

嗯 学习了

出0入0汤圆

发表于 2011-10-18 09:38:00 | 显示全部楼层
回复【16楼】MAPGPS  
-----------------------------------------------------------------------

多谢楼主分享 谢谢

出0入0汤圆

发表于 2011-10-18 17:13:17 | 显示全部楼层
我也刚玩这颗芯片,是不是STAT的数值是0X01比较正常啊,0X11的话有问题吧;手册上只有提到BIT2~BIT7是保留的,读出为0.我的在0X13的时候锁死数据寄存器。

出0入0汤圆

发表于 2011-10-21 17:00:08 | 显示全部楼层
回复【16楼】MAPGPS  
-----------------------------------------------------------------------

用了楼主您的代码,测试后发现我的读数都是0……不知道是什么原因。

出0入0汤圆

发表于 2011-10-22 22:08:00 | 显示全部楼层
回复【8楼】COMPASS1 航纬
回复【楼主位】isimeng  
-----------------------------------------------------------------------
楼主,从你所采集到的数据来看,这些数据是存在问题的,根据hmc5883l的数据手册上的说明来看,
其范围是-2048 to 2047而满量程的数据显示"-4096"(十进制的数据),而你所采集的数据存在4607,因此这是不正常的数据;
其主要产生的问题,还是可能由于你的配置仅存器a所设置采样频率的问题而引起,因此建议你设置ma1:ma0=00试试
-----------------------------------------------------------------------

我饿的更惨。。。。


  write_24c02(0x00,0x70);
  write_24c02(0x01,0xe0);
  write_24c02(0x02,0x00);
  
while(1)
{

  readxyz();

sendstr("  X: ");  
printf16(mx);

sendstr("  Y: ");  
printf16(my);

sendstr("  Z: ");  
printf16(mz);


sendchar(0x0d);
sendchar(0x0a);
//sendchar((mx>>8)&0xff);
//sendchar(mx&0xff);

delay_ms(100);
}
}


X: 0000  Y: FFFF  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: FFFF  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: FFFF  Z: 0000
  X: 0000  Y: 0000  Z: 0000
  X: FFFF  Y: FFFF  Z: 0000
  X: 0000  Y: FFFF  Z: 0000
  X: 0000  Y: FFFF  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: FFFF  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: 0000  Z: FFFF
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: 0000  Z: FFFF
  X: FFFF  Y: 0000  Z: FFFF
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: 0000  Z: FFFF
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: 0000  Y: FFFF  Z: 0000
  X: 0000  Y: 0000  Z: FFFF
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: FFFF  Z: 0000
  X: FFFF  Y: 0000  Z: FFFF
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: 0000  Y: FFFF  Z: 0000
  X: FFFF  Y: 0000  Z: FFFF
  X: FFFF  Y: 0000  Z: FFFF
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: FFFF  Z: 0000
  X: FFFF  Y: FFFF  Z: 0000
  X: 0000  Y: FFFF  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: FFFF  Z: FFFF
  X: FFFF  Y: 0000  Z: FFFF
  X: FFFF  Y: FFFF  Z: 0000
  X: 0000  Y: 0000  Z: FFFF
  X: FFFF  Y: 0000  Z: 0000
  X: 0000  Y: FFFF  Z: 0000
  X: 0000  Y: FFFF  Z: FFFF
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: 0000  Z: FFFF
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: FFFF  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: 0000  Y: 0000  Z: 0000
  X: 0000  Y: 0000  Z: FFFF
  X: FFFF  Y: 0000  Z: FFFF
  X: FFFF  Y: 0000  Z: 0000
  X: 0000  Y: 0000  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: 0000  Z: FFFF
  X: 0000  Y: 0000  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: 0000  Y: FFFF  Z: 0000
  X: FFFF  Y: 0000  Z: FFFF
  X: 0000  Y: FFFF  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: FFFF  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: 0000  Z: FFFF
  X: FFFF  Y: 0000  Z: FFFF
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: 0000  Y: 0000  Z: 0000
  X: FFFF  Y: 0000  Z: FFFF
  X: 0000  Y: 0000  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: FFFF  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: FFFF  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: 0000  Z: FFFF
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: 0000  Z: FFFF
  X: FFFF  Y: FFFF  Z: FFFF
  X: 0000  Y: 0000  Z: 0000
  X: FFFF  Y: 0000  Z: FFFF
  X: FFFF  Y: 0000  Z: FFFF
  X: 0000  Y: FFFF  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: 0000  Y: 0000  Z: FFFF
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: FFFF  Z: 0000
  X: FFFF  Y: FFFF  Z: 0000
  X: FFFF  Y: FFFF  Z: 0000
  X: 0000  Y: FFFF  Z: 0000
  X: FFFF  Y: FFFF  Z: 0000
  X: 0000  Y: 0000  Z: FFFF
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: 0000  Z: FFFF
  X: 0000  Y: FFFF  Z: 0000
  X: 0000  Y: 0000  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: 0000  Z: FFFF
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: FFFF  Z: 0000
  X: 0000  Y: 0000  Z: 0000
  X: 0000  Y: 0000  Z: 0000
  X: FFFF  Y: FFFF  Z: 0000
  X: 0000  Y: 0000  Z: 0000
  X: FFFF  Y: FFFF  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: FFFF  Y: FFFF  Z: FFFF
  X: FFFF  Y: FFFF  Z: 0000
  X: 0000  Y: 0000  Z: 0000
  X: 0000  Y: 0000  Z: 0000
  X: FFFF  Y: FFFF  Z: 0000
  X: 0000  Y: FFFF  Z: 0000
  X: FFFF  Y: 0000  Z: 0000
  X: 0000  Y: 0000  Z: FFFF
  X: 0000  Y: 0000  Z: 0000
  X: 0000  Y: FFFF  Z: 0000
  X: 0000  Y: 0000  Z: 0000



  write_24c02(0x00,0x70);
  write_24c02(0x01,0xe0);
  write_24c02(0x02,0x00);

  X: FFDA  Y: 000C  Z: 0000
  X: FFE5  Y: 0004  Z: 0000
  X: FFD6  Y: 0002  Z: 0000
  X: FFDB  Y: 0002  Z: FFFF
  X: FFC5  Y: 0007  Z: 0000
  X: FFD6  Y: 0006  Z: 0000
  X: FFC5  Y: FFFF  Z: 0000
  X: FFC6  Y: FFFE  Z: 0000
  X: FFD9  Y: 0000  Z: 0000
  X: FFC5  Y: FFFE  Z: 0000
  X: FFC6  Y: FFFE  Z: 0000
  X: FFC4  Y: FFFD  Z: 0000
  X: FFCB  Y: 0000  Z: 0000
  X: FFBE  Y: 0000  Z: FFFF
  X: FFBD  Y: FFFF  Z: FFFF
  X: FFD0  Y: 0003  Z: 0000
  X: FFCD  Y: 0013  Z: 0000
  X: FFC6  Y: 0002  Z: FFFF
  X: FFC8  Y: 0001  Z: FFFF
  X: FFD7  Y: FFFE  Z: 0000
  X: FFBE  Y: 0003  Z: 0000
  X: FFE0  Y: FFFF  Z: 0000
X: FFE1  Y: 0001  Z: 0000
  X: FFBE  Y: FFFF  Z: FFFF
  X: FFD3  Y: 0001  Z: 0000
  X: FFD5  Y: 0012  Z: 0000
  X: FFC6  Y: 0000  Z: 0000
  X: FFC6  Y: FFFE  Z: FFFF
  X: FFC4  Y: 000A  Z: 0001
  X: FFCC  Y: FFFF  Z: 0000
  X: FFC3  Y: FFFF  Z: FFFF
  X: FFC1  Y: 000F  Z: 0000
  X: FFC1  Y: 0010  Z: 0000
  X: FFF2  Y: 0014  Z: 0001
  X: FFC7  Y: 0008  Z: FFFF
  X: FFD1  Y: 0000  Z: 0000
  X: FFCF  Y: FFFF  Z: 0001
  X: FFCC  Y: 0004  Z: 0000
  X: FFC4  Y: FFFB  Z: 0000
  X: FFD9  Y: 0010  Z: 0000
  X: FFC3  Y: FFFD  Z: 0000
  X: FFC1  Y: 000B  Z: 0000
  X: FFD4  Y: FFFE  Z: FFFF
  X: FFDE  Y: FFFF  Z: 0000
  X: FFC8  Y: 000D  Z: 0000
  X: FFCC  Y: 000E  Z: 0000
  X: FFC8  Y: FFFC  Z: FFFF

怎么办啊。。。。

出0入0汤圆

发表于 2011-10-22 22:49:10 | 显示全部楼层
回复【54楼】aishiqi1992  小鸡
-----------------------------------------------------------------------

应该是外围的两个电容出问题了...我也经历过这个问题...我的是因为复位电容虚焊了...

出0入0汤圆

发表于 2011-10-23 10:08:33 | 显示全部楼层
回复【55楼】racede
回复【54楼】aishiqi1992  小鸡
-----------------------------------------------------------------------
应该是外围的两个电容出问题了...我也经历过这个问题...我的是因为复位电容虚焊了...
-----------------------------------------------------------------------

现在最恐怖的是芯片想焊也焊不上去,想拆也拆不下来。我只有电烙铁。。。而且电动我没有说明书上的那种我都用104瓷片电容。

出0入0汤圆

发表于 2011-10-23 10:29:33 | 显示全部楼层
回复【56楼】aishiqi1992  小鸡
-----------------------------------------------------------------------

额.................那真帮不了你了...

出0入0汤圆

发表于 2011-10-23 11:22:13 | 显示全部楼层
回复【57楼】racede
回复【56楼】aishiqi1992  小鸡
-----------------------------------------------------------------------
额.................那真帮不了你了...
-----------------------------------------------------------------------

你要是确定是电容的问题我将想尽一切办法搞定它。。。。

出0入0汤圆

发表于 2011-10-23 14:30:03 | 显示全部楼层
回复【58楼】aishiqi1992  小鸡
-----------------------------------------------------------------------

恩~~90%了

出0入0汤圆

发表于 2011-10-23 17:31:50 | 显示全部楼层
这个东西好像没这么复杂吧。我一次就搞定了啊,板子自己做的,芯片也是自己焊的。掌握技巧了这些芯片都好焊啊

出0入0汤圆

发表于 2011-10-23 22:46:22 | 显示全部楼层
回复【59楼】racede  
回复【58楼】aishiqi1992  小鸡
-----------------------------------------------------------------------
恩~~90%了
-----------------------------------------------------------------------

还是没反应……明天我最后一次对他施暴……用打火机把它烧下来,再焊上去,坏了就算了……

出0入0汤圆

发表于 2011-10-23 23:33:27 | 显示全部楼层
回复【61楼】aishiqi1992  小鸡
-----------------------------------------------------------------------

可以用烙铁焊的啊...有刀头更容易....网上找个视频看看吧~

出0入0汤圆

发表于 2011-10-25 09:10:50 | 显示全部楼层
回复【16楼】MAPGPS  
-----------------------------------------------------------------------

您好,我现在用的是arduino板子,芯片是STM32F103RBT6  这个芯片对应的I2C引脚是29 30 但是arduino中的wire库里面定义的是20和21
我现在也是用hmc5883l  但是不知道如何把这引脚对应起来,arduino中的29和30引脚我现在已经用掉了。

求解答,谢谢!

出0入0汤圆

发表于 2011-10-31 16:30:07 | 显示全部楼层
回复【61楼】aishiqi1992  小鸡
-----------------------------------------------------------------------

从你上面的数据来看,基本三轴的数据都接近为零了?!
你有用自带的self-test测试吗?如果没有,可以先试试

出0入0汤圆

发表于 2011-10-31 16:33:41 | 显示全部楼层
回复【63楼】Farid  
-----------------------------------------------------------------------

如果你的Pin20和21能被定义为SCL和SDA引脚吗?
如果可以,那你直接连接那两引脚和HMC5883L的相应引脚连接就好了;

出0入0汤圆

发表于 2011-11-12 21:00:19 | 显示全部楼层
學習!!!

出0入0汤圆

发表于 2011-11-24 14:06:34 | 显示全部楼层
回复【16楼】MAPGPS  
-----------------------------------------------------------------------

您好,用了你的代码,发现读书都不变化,不知何故。好像数据没有更新。我用的是maple开发环境。请问你的arduino是什么版本?

出0入0汤圆

发表于 2011-11-27 15:38:49 | 显示全部楼层
回复【62楼】racede  
-----------------------------------------------------------------------

买了两套PCB用刀头焊,都是没反应。。我崩溃了。。。伤心死了

出0入0汤圆

发表于 2012-11-21 17:16:01 | 显示全部楼层
我用的HMC5883L传感器的XY轴数据都正常,但是Z轴数据返回都是0不变,这是不是焊接的问题呢?我手工焊接的,重新焊接了N次还是这样

出0入0汤圆

发表于 2014-12-10 17:42:45 | 显示全部楼层
wy943103 发表于 2011-2-5 21:24
回复【楼主位】isimeng
-----------------------------------------------------------------------

你好,你的问题解决了吗?我读hmc5883时也遇到了问题,就是09状态寄存器一直是3,这是怎么回事?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-3 03:14

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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