请选择 进入手机版 | 继续访问电脑版
查看: 178|回复: 3

[分享] [IRD-LPC1768-DEV测试]六、I2C测试Temp-续

[复制链接]
  • TA的每日心情
    开心
    2019-2-14 16:49
  • 签到天数: 296 天

    [LV.8]以坛为家I

    240

    主题

    2242

    帖子

    6

    金豆

    金牌会员

    Rank: 6Rank: 6

    积分
    4454
    最后登录
    2019-5-14
    发表于 2019-3-26 08:12:59 | 显示全部楼层 |阅读模式
    芯片的I2C地址为0x96——这是网上朋友测试得到的,与手册上不一样!!!这不是误人子弟吗!?
    出差后病一场,好了接着做实验,按照网上朋友的结果——Taddr=0x96,测试还算顺利。
    首先初始化芯片,函数名setI2c96(void):
    //Intial Temp Regedit
    void setI2c96(void){
    char kTemp[3];//,data[9];
    wait(0.00001);
    kTemp[0]=0x0A;//Conversion rate
    kTemp[1]=0x09;//0.06~32Hz-00~09
    i2c.write(taddr[2],kTemp,2,true);
    kTemp[0]=0x0B;//LocalH
    kTemp[1]=0x1A;//26 Du
    i2c.write(taddr[2],kTemp,2,true);
    kTemp[0]=0x0D;//LocalL
    kTemp[1]=0x17;//23 Du
    i2c.write(taddr[2],kTemp,2,true);
    kTemp[0]=0x0C;//RemoteH
    kTemp[1]=0x17;//23 Du
    i2c.write(taddr[2],kTemp,2,true);
    kTemp[0]=0x0E;//Remotel
    kTemp[1]=0x1C;//28 Du
    i2c.write(taddr[2],kTemp,2,true);
    kTemp[0]=0x11;//Remove Only=0x00
    kTemp[1]=0x00;//0 Du
    i2c.write(taddr[2],kTemp,2,true);
    kTemp[0]=0x19;//Remote T_CRIT
    kTemp[1]=0x1C;//28 Du
    i2c.write(taddr[2],kTemp,2,true);
    kTemp[0]=0x20;//Local T_CRIT
    kTemp[1]=0x1A;//26 Du
    i2c.write(taddr[2],kTemp,2,true);
    kTemp[0]=0x21;//hysteresis
    kTemp[1]=0x01;//1 Du
    i2c.write(taddr[2],kTemp,2,true);
    kTemp[0]=0x09;//Configration
    kTemp[1]=0x10;//14,Rmote-1 Locol-4 Disable Alert
    i2c.write(taddr[2],kTemp,2,true);
    kTemp[0]=0xBF;//Set Alert
    kTemp[0]=0x01;//Enabe
    i2c.write(taddr[2],kTemp,2,true);
    }
    在main加入初始化芯片函数:
    setI2c96();
    而后是编写读取2个温度值——芯片和半导体测温,函数名testI2c96():
    //Test Temper
    void testI2c96(void){
    char data[2];
    data[0]=0x00;//Set Addr
    i2c.write(taddr[2],data,1,true);
    wait(0.0001);
    i2c.read(taddr[2],data,2,true);
    keyVale[0]=data[0];
    wait(0.0001);
    data[0]=0x01;//Set Addr
    i2c.write(taddr[2],data,1,true);
    wait(0.0001);
    i2c.read(taddr[2],data,2,true);
    keyVale[1]=data[0];
    }
    在循环体中加入测试函数,并且将测试结果显示在LCD上,表示为:LT=、RT=。为了省事,只读取和显示整数部分。
    设置关键寄存器:
    上下限告警寄存器:0B,0D、0C,0E;远程温度:11;告警温差:21;告警点:19,20;告警控制:BF;本地远程告警屏蔽:09。
    照片0_81是芯片上电时的结果;照片0_82是手指压在芯片上温度超过26+1度时,告警灯亮;照片0_83是远程传感器的静态温度;照片0_84是手指捏住传感器温度达到28+1度是告警灯亮;照片0_85是松开手后,温度回落,告警灯恢复不亮。
    至此SA56004X温度传感器的测试告一段落。

    0_80

    0_80

    0_81

    0_81

    0_82

    0_82

    0_83

    0_83

    0_84

    0_84

    0_85

    0_85
    回复

    使用道具 举报

  • TA的每日心情
    开心
    7 小时前
  • 签到天数: 176 天

    [LV.7]常住居民III

    16

    主题

    430

    帖子

    12

    金豆

    高级会员

    Rank: 4

    积分
    938
    最后登录
    2019-6-24
    发表于 2019-3-26 12:45:23 | 显示全部楼层
    大家都在用各自的LCD屏啊!!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-2-14 16:49
  • 签到天数: 296 天

    [LV.8]以坛为家I

    240

    主题

    2242

    帖子

    6

    金豆

    金牌会员

    Rank: 6Rank: 6

    积分
    4454
    最后登录
    2019-5-14
     楼主| 发表于 2019-3-26 14:14:13 | 显示全部楼层
    jobszheng5 发表于 2019-3-26 12:45
    大家都在用各自的LCD屏啊!!

    他那个屏可显示的资料太少,还不如128X64的显示的多。有事测试芯片寄存器,恨不得有十组数据或更多。但以后测试通过了,知道该显示什么救不了那么多了。谢谢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2019-5-1 06:15
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    0

    主题

    91

    帖子

    0

    金豆

    中级会员

    Rank: 3Rank: 3

    积分
    201
    最后登录
    2019-5-1
    发表于 2019-4-30 10:33:03 | 显示全部楼层
    谢谢分享
    开心!!!
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|手机版|Archiver|恩智浦技术社区

    GMT+8, 2019-6-24 16:50 , Processed in 0.096307 second(s), 18 queries , MemCache On.

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

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