搜索
bottom↓
回复: 24

HMC5983 X、Y、Z轴数据一直为零,怎么解决呢?

[复制链接]

出0入0汤圆

发表于 2014-8-31 18:52:54 | 显示全部楼层 |阅读模式
我分两次在X宝上共买了6颗HMC5983,采用焊锡膏+风枪吹电路板背面的方法焊接,目前焊接了4颗,除一颗虚焊外,其它三颗都是所有的ID、寄存器读写等操作都没问题,就是XYZ轴读数全部为0!
焊接前两颗芯片时采用320°风枪,网友说高了,剩下的两颗全部270°风枪背面吹,这温度够低了。在配置过程中我加了各种长度的delay读数依然为0.
有的网友说要烘烤芯片,我确实没烘烤,没有烘烤设备,不知道是不是这个原因导致的。
我两次买的芯片表面编号都是:A983 2244 。

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

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!
头像被屏蔽

出0入0汤圆

发表于 2014-8-31 19:00:16 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

 楼主| 发表于 2014-8-31 19:36:01 | 显示全部楼层
csaaa 发表于 2014-8-31 19:00
我曾经买了10片5883.一个月后才上机测试,结果全部是塑料做的假货。卖家说太晚了不认。 ...

能读出ID吗?
我怀疑我的也是假货,虽然能读ID,能配置寄存器。

出0入0汤圆

发表于 2014-8-31 20:01:58 | 显示全部楼层
按我的经验,可能是烫坏了

出0入0汤圆

 楼主| 发表于 2014-8-31 20:04:58 | 显示全部楼层
sunnyqd 发表于 2014-8-31 20:01
按我的经验,可能是烫坏了

还剩下两颗没焊接,我这回用手把芯片按在电路板上,再来看看,如何还是ID什么都对,就是不出数据,那就是芯片有问题了。
对于能不能按住芯片,我实在没把握,但也只有这个方法了。

出0入0汤圆

发表于 2014-8-31 20:09:14 | 显示全部楼层
SMC 发表于 2014-8-31 20:04
还剩下两颗没焊接,我这回用手把芯片按在电路板上,再来看看,如何还是ID什么都对,就是不出数据,那就是 ...

我以前是用电烙铁焊的,这东西很容易烫坏

出0入0汤圆

 楼主| 发表于 2014-9-2 00:14:15 | 显示全部楼层
第五颗芯片用250°风枪吹,尼玛的数据还是0.

出0入0汤圆

发表于 2014-9-2 00:36:27 | 显示全部楼层
正面 220度吹

出0入0汤圆

 楼主| 发表于 2014-9-2 12:48:09 | 显示全部楼层

正面213°吹,还是ID什么都对就是数据为零。
网友们说的lock我也注意到了,也尝试读取之前改变配置或者模式,但数据一直保持0

出0入0汤圆

发表于 2014-9-2 12:54:55 | 显示全部楼层
国产歪货。。。。。。

出0入0汤圆

 楼主| 发表于 2014-9-2 13:56:08 | 显示全部楼层
guowei681 发表于 2014-9-2 12:54
国产歪货。。。。。。

跟店家说你卖的是“国产歪货”,店家说配货的是新来的,不太懂可能拿错了,然后说再给我补发3颗。难不成他们有正品和假冒之分,不然咋会拿错。

出0入0汤圆

发表于 2014-9-2 14:03:54 | 显示全部楼层
SMC 发表于 2014-9-2 13:56
跟店家说你卖的是“国产歪货”,店家说配货的是新来的,不太懂可能拿错了,然后说再给我补发3颗。难不成 ...

哈    这个料水很深的 我每次用  都要先试2个  确保没问题才会批量  不管哪个周期的  都存在这问题

出0入0汤圆

发表于 2014-9-2 15:38:25 | 显示全部楼层
MARK!!!!!!!

出0入0汤圆

 楼主| 发表于 2014-9-3 23:57:54 | 显示全部楼层
本帖最后由 SMC 于 2014-9-4 11:39 编辑
guowei681 发表于 2014-9-2 14:03
哈    这个料水很深的 我每次用  都要先试2个  确保没问题才会批量  不管哪个周期的  都存在这问题 ...


店家新寄给我的焊了一颗还是一模一样的现象。ID对,数据全为零。
我都怀疑是不是我电路图或者程序错了,麻烦你给指导下。
实在不行我就只能换方案了。
u8 HMC5983_Init(void)
{
  u8 i = 0, TimeOutCheck=0;
       
  u8 HMC5983_Init_Data[3][2] =
        {
      {0x9C, Configuration_Register_A},
      {0x20, Configuration_Register_B},
      {0x00, Mode_Register},
        };
        for(I=0; I<3; I++)     
        {
                TimeOutCheck+=HMC5983_WriteReg(HMC5983_Init_Data[I][1], HMC5983_Init_Data[I][0]);
                delayms(1);
        }
        /*time out check */
        if(TimeOutCheck!=3*SUCCESS)
                return ERROR;
        return SUCCESS;
}
u8         HMC5983_Read(void)
{
        u8 TimeOutCheck=0,ReadBuf[6];
        s16 mx,my,mz;
       
        /* Read XYZ Output register */
        TimeOutCheck+=HMC5983_ReadRegs(Data_Output_X_MSB_Register, ReadBuf, 6);
       
       
        mx=ReadBuf[0]<<8 | ReadBuf[1];   
        mz=ReadBuf[2]<<8 | ReadBuf[3];
        my=ReadBuf[4]<<8 | ReadBuf[5];
       
        printf("mx=%d, my=%d, mz=%d\n",mx,my,mz);
       
        if(TimeOutCheck!=SUCCESS)
                return ERROR;
        return SUCCESS;
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-9-4 08:07:15 | 显示全部楼层
这颗料水是蛮深的,tb上卖的基本都是赚翻的,所以不在乎多发两颗给你
但是,我用了不少,坏的没遇到过

TimeOutCheck+=HMC5983_WriteReg(HMC5983_Init_Data[1], HMC5983_Init_Data[0]);
这句没问题吗?二维数组这样一维引用,真的是你想要的结果吗?

出0入0汤圆

 楼主| 发表于 2014-9-4 11:36:27 | 显示全部楼层
本帖最后由 SMC 于 2014-9-4 11:40 编辑
longhandmonkey 发表于 2014-9-4 08:07
这颗料水是蛮深的,tb上卖的基本都是赚翻的,所以不在乎多发两颗给你
但是,我用了不少,坏的没遇到过


你用的时候烘烤过吗?
粘贴的时候显示出错了,我源程序是这样的。怪事了,网页显示的时候居然把二维数组变成了一维数组显示,把小写的 i 改成大写 I 就正确显示了
TimeOutCheck+=HMC5983_WriteReg(HMC5983_Init_Data[I][1], HMC5983_Init_Data[I][0]);

出0入0汤圆

发表于 2014-9-4 14:38:45 | 显示全部楼层
不烤也没事的,多少有数据的

出0入0汤圆

发表于 2014-9-6 09:20:22 | 显示全部楼层
楼主正常了?

出0入0汤圆

 楼主| 发表于 2014-9-6 10:50:39 | 显示全部楼层

店家寄给我的我焊接了一颗还是不行,剩下的两颗已经没信心了。

出0入0汤圆

发表于 2014-9-6 12:50:09 来自手机 | 显示全部楼层
首先确保程序没问题再说,另外260以下温度猛吹,不会坏

出0入0汤圆

发表于 2014-9-7 00:23:42 | 显示全部楼层
先考虑程序问题吧

出0入0汤圆

发表于 2014-9-7 00:40:26 来自手机 | 显示全部楼层
买个焊好的模块可以知道是不是程序问题了。担心焊不好可以把芯片反过来,用细铜丝把管脚连出来焊

出0入0汤圆

 楼主| 发表于 2014-9-9 13:52:38 | 显示全部楼层
guowei681 发表于 2014-9-7 00:23
先考虑程序问题吧

总共就三个需要配置的寄存器,手册都快背下来了,我反复检查程序了,没问题的,我决定了,换其它芯片。

出0入0汤圆

 楼主| 发表于 2014-9-9 13:53:33 | 显示全部楼层
hblf2009 发表于 2014-9-7 00:40
买个焊好的模块可以知道是不是程序问题了。担心焊不好可以把芯片反过来,用细铜丝把管脚连出来焊 ...

不折腾了,换其他芯片,重新制版。

出0入4汤圆

发表于 2016-9-30 11:55:39 | 显示全部楼层
跟楼主遇到相似的问题,开始时能正常操作配置、模式、状态以及特征值寄存器,但是数据结果寄存器读取值一直无正常变化。
目前通过调整读写时钟速率和寄存器读写顺序,已得到跟随磁场明显变化的数据结果,待进一步分析数据是否正常。
估计楼主的问题跟我一样,应该还是程序的问题。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-25 09:34

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

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