12
返回列表 发新帖
楼主: adarly

[分享] KL02Z 内部温度传感器读出来的温度感觉不对

[复制链接]

该用户从未签到

16

主题

705

帖子

0

金牌会员

Rank: 6Rank: 6

积分
1745
最后登录
1970-1-1
发表于 2014-6-9 09:52:36 | 显示全部楼层

RE:KL02Z 内部温度传感器读出来的温度感觉不对

还有一篇应用笔记你可以看看:
http://cache.freescale.com/files/microcontrollers/doc/app_note/AN3031.pdf?fromsite=zh-Hans
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2017-4-27 08:44
  • 签到天数: 64 天

    连续签到: 1 天

    [LV.6]常住居民II

    26

    主题

    577

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1703
    最后登录
    1970-1-1
     楼主| 发表于 2014-6-9 11:26:22 | 显示全部楼层

    RE:KL02Z 内部温度传感器读出来的温度感觉不对

    float ADC_Calculate(uint16 result_A,uint16 result_B)
    {
    float Vdd_Cal,ADCR_Temp25,ADCR_100m;
    float i;
    float Temp;
    Vdd_Cal=655350/result_A;
    ADCR_Temp25=471197/Vdd_Cal;
    ADCR_100m=112393/Vdd_Cal;
    Temp=(float)((result_B-ADCR_Temp25)*100/ADCR_100m);
    i=(float)(25-Temp);
    return (uint16)i;
    }
    看KL02的datasheet,ADC只有8bit、10bit、12bit模式,没有16bit模式,请问上面代码中的常数655350 471197 112393是如何计算来的???
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16

    主题

    705

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1745
    最后登录
    1970-1-1
    发表于 2014-6-10 14:24:53 | 显示全部楼层

    回复:KL02Z 内部温度传感器读出来的温度感觉不对

    回复第 12 楼 于2014-06-09 11:26:22发表:
    float ADC_Calculate(uint16 result_A,uint16 result_B)
    {
    float Vdd_Cal,ADCR_Temp25,ADCR_100m;
    float i;
    float Temp;
    Vdd_Cal=655350/result_A;
    ADCR_Temp25=471197/Vdd_Cal;
    ADCR_100m=112393/Vdd_Cal;
    Temp=(float)((result_B-ADCR_Temp25)*100/ADCR_100m);
    i=(float)(25-Temp);
    return (uint16)i;
    }
    看KL02的datasheet,ADC只有8bit、10bit、12bit模式,没有16bit模式,请问上面代码中的常数655350 471197 112393是如何计算来的???
     
    上面的代码是针对16位的KL25的ADC的,当然前提是选择12位的ADC。
    KL02的是这个代码:
     
    float ADC_Calculate(uint16 result_A,uint16 result_B)
    {
     float Vdd_Cal,ADCR_Temp25,ADCR_100m;
     float i;
     float Temp;
     Vdd_Cal=40950/result_A;
     ADCR_Temp25=29320/Vdd_Cal;
     ADCR_100m=6633/Vdd_Cal;
     Temp=(float)((result_B-ADCR_Temp25)*100/ADCR_100m);
     i=(float)(25-Temp);
     return (uint16)i;

    其中的40950是12位的ADC,即2的12次方-1 然后乘10.
    29320是ADCRvdd*Vtemp25*10 即4095*0.716*10,Vtemp25你可以到KL02的datasheet中查看。
    6633是ADCRvdd*m*1000=4095*0.00162*1000,m的值同样可以到datasheet中查看。
     
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16

    主题

    705

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1745
    最后登录
    1970-1-1
    发表于 2014-6-10 15:29:32 | 显示全部楼层

    RE:KL02Z 内部温度传感器读出来的温度感觉不对

    其实11楼主的AN中都讲了,怎么带入公式,用哪些参数。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11

    主题

    354

    帖子

    0

    高级会员

    Rank: 4

    积分
    693
    最后登录
    1970-1-1
    发表于 2014-6-10 15:59:03 | 显示全部楼层

    回复:KL02Z 内部温度传感器读出来的温度感觉不对

    额 24°不对吗?
    这个是芯片内部温度,不是室温。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16

    主题

    705

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1745
    最后登录
    1970-1-1
    发表于 2014-6-13 11:39:28 | 显示全部楼层

    RE:KL02Z 内部温度传感器读出来的温度感觉不对

    楼主测试还有问题吗?
    我测试是好的啊,温度的确是芯片的温度,如果用手放在上面,温度值也会上升。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    147

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    343
    最后登录
    1970-1-1
    发表于 2014-6-27 11:22:25 | 显示全部楼层

    RE:KL02Z 内部温度传感器读出来的温度感觉不对

    如果室温是24度,那芯片读出的温度在这个范围也属于正常的啊。
    如果你想要小数点,那你计算方便就不是采用非浮点方法了,就要采用浮点计算了。
    11楼给出的应用笔记已经讲了这个问题。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-5-24 10:39
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    140

    主题

    2087

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    3913
    最后登录
    2020-5-24
    发表于 2015-9-3 21:40:42 | 显示全部楼层
    xinyinzhou 发表于 2014-6-9 09:52
    还有一篇应用笔记你可以看看:
    http://cache.freescale.com/files/microcontrollers/doc/app_note/AN3031.p ...

                  链接打不开
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

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

    GMT+8, 2025-7-23 05:34 , Processed in 0.092498 second(s), 25 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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