找回密码
 立即注册
查看: 162|回复: 13

直接用降龙棍和屠龙刀开发板测试NTC温度读取,误差怎么这么大呢?

[复制链接]
  • TA的每日心情
    开心
    14 小时前
  • 签到天数: 166 天

    [LV.7]常住居民III

    11

    主题

    107

    回帖

    735

    积分

    高级会员

    积分
    735
    发表于 2024-5-9 13:20:37 | 显示全部楼层 |阅读模式
    为了检查我在网上买的NTC(10K@3950,火柴头型)的准确性,分别用屠龙刀和降龙棍进行验证。结果读到的ADC值查表对应的温度值误差5℃以上。现在深圳室温差不多为27~28℃,读到的ADC值约为2210~2230,查表对应的温度值为20~22℃之间。不知是元器件的问题还是电路连接的问题。ADC入口既没有串电阻,也没有并联电容,我想也不应该差这么多。请大家帮忙诊断一下。


    中断方式读取P10通道(ADC0)程序:
    //全局变量
    u16 ADC_VAL=0;

    void ADC_Init( void )
                    {
                            P1M0 = 0x00;                                         //设置P10为高阻输入
                            P1M1 = 0x01;
                            ADC_CONTR |=0x00;     //ADC通道选择。通道0(P10)
                            ADCTIM = 0X3F;                                        //
                            ADCCFG = 0X2F;                                        //数据右对齐,时钟选择位SYSCLK/2/16最慢
                            ADC_POWER = 1;                                        //打开adc电源
                            EADC = 1;                                                    //打开ADC中断
                            ADC_START = 1;                                        //开启ADC转换
                    }

                    void ADC_Isr(void) interrupt 5
                    {
                            ADC_FLAG = 0;                                                //清空读取标志位
                            ADC_VAL = (u16)((ADC_RES << 8) + ADC_RESL);        //读取adc的数值
                            ADC_START = 1;                                        //继续开启ADC转换
                    }



    ntc1.bmp
    ntc2.jpg
    NTC3.bmp
    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 09:59
  • 签到天数: 113 天

    [LV.6]常住居民II

    43

    主题

    1039

    回帖

    7153

    积分

    荣誉版主

    冲哥视频教程和各种开源资料QQ交流群884047237,可群

    积分
    7153
    QQ
    发表于 2024-5-9 14:24:56 | 显示全部楼层
    1.先用万用表测量下adc引脚的电压,排除电路问题。
    2.万用表量下VREF引脚的电压,判断下基准电压有没有问题

    点评

    1、用AVREF给NTC供电,AVREF取值2.5V~AVCC,纹波要小。 2、ADC输入口要设置为高阻。 NTC测温是比例测量,只要NTC没有损坏,一般0~50度的误差不超过1度。  详情 回复 发表于 2024-5-9 14:34
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    3173

    回帖

    7169

    积分

    超级版主

    积分
    7169
    发表于 2024-5-9 14:34:33 | 显示全部楼层
    电子DIY小家 发表于 2024-5-9 14:24
    1.先用万用表测量下adc引脚的电压,排除电路问题。
    2.万用表量下VREF引脚的电压,判断下基准电压有没有问题 ...

    1、用AVREF给NTC供电,AVREF取值2.5V~AVCC,纹波要小。
    2、ADC输入口要设置为高阻。
    NTC测温是比例测量,只要NTC没有损坏,一般0~50度的误差不超过1度。
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.7]常住居民III

    11

    主题

    107

    回帖

    735

    积分

    高级会员

    积分
    735
     楼主| 发表于 2024-5-9 21:39:05 | 显示全部楼层
    本帖最后由 Tuier 于 2024-5-9 22:06 编辑
    电子DIY小家 发表于 2024-5-9 14:24
    1.先用万用表测量下adc引脚的电压,排除电路问题。
    2.万用表量下VREF引脚的电压,判断下基准电压有没有问题 ...

    板子由笔记本电脑USB供电,实测电压5.09V。ADC0通道(P10,接上NTC)电压为2.77~2.78V,比较稳定,此时ADC值约为2235,通过换算:(2235/4096)*5.09=2.777V,符合实际值,说明电路没问题,ADC读取也没问题。但是NTC查表(官方教程范例程序《15.NTC温度采集》里的换算表)对应的温度不对。当ADC值=2235对应的温度在20~21℃之间,实际室内温度为28~29℃,相差太大。NTC为10k@3950,望技术大佬帮忙分析问题所在。
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.7]常住居民III

    11

    主题

    107

    回帖

    735

    积分

    高级会员

    积分
    735
     楼主| 发表于 2024-5-9 21:41:46 | 显示全部楼层
    梁工 发表于 2024-5-9 14:34
    1、用AVREF给NTC供电,AVREF取值2.5V~AVCC,纹波要小。
    2、ADC输入口要设置为高阻。
    NTC测温是比例测量, ...

    没有专门的AVREF,接VCC的。P10已设为高阻状态:P1M0=0X00,P1M1=0X01

    点评

    那将NTC拆下,放置半小时后跟室温一致,数字万用表测量电阻,并测量室温,查表核对此温度对应的NTC电阻,看看其误差。12位的ADC在室温能测量0.1度的分辨率,准确度就跟NTC的温度-电阻准确度有关。  详情 回复 发表于 2024-5-9 22:44
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    3173

    回帖

    7169

    积分

    超级版主

    积分
    7169
    发表于 2024-5-9 22:44:25 | 显示全部楼层
    Tuier 发表于 2024-5-9 21:41
    没有专门的AVREF,接VCC的。P10已设为高阻状态:P1M0=0X00,P1M1=0X01

    那将NTC拆下,放置半小时后跟室温一致,数字万用表测量电阻,并测量室温,查表核对此温度对应的NTC电阻,看看其误差。12位的ADC在室温能测量0.1度的分辨率,准确度就跟NTC的温度-电阻准确度有关。
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.7]常住居民III

    11

    主题

    107

    回帖

    735

    积分

    高级会员

    积分
    735
     楼主| 发表于 2024-5-10 12:55:22 | 显示全部楼层
    本帖最后由 Tuier 于 2024-5-10 13:03 编辑
    梁工 发表于 2024-5-9 22:44
    那将NTC拆下,放置半小时后跟室温一致,数字万用表测量电阻,并测量室温,查表核对此温度对应的NTC电阻, ...

    单独测NTC:室温28.6℃,阻值为8.55KΩ,对照表对应温度为28~29℃之间,符合温阻特性,证明NTC正常。程序是官方视频里的,分压电阻R1也是比较稳定的10.04kΩ。有点晕了,一时不知查找问题的方向了。
    NTC4.bmp
    NTC5.bmp

    点评

    NTC是好的,再将NTC接在电路中,数字万用表测量NTC电压,NTC电压理论值=RT*VCC/(RT+10K),看看差别大不大。NTC测温很简单,从没遇到过问题。  详情 回复 发表于 2024-5-10 13:16
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    3173

    回帖

    7169

    积分

    超级版主

    积分
    7169
    发表于 2024-5-10 13:16:55 | 显示全部楼层
    Tuier 发表于 2024-5-10 12:55
    单独测NTC:室温28.6℃,阻值为8.55KΩ,对照表对应温度为28~29℃之间,符合温阻特性,证明NTC正常。程序 ...

    NTC是好的,再将NTC接在电路中,数字万用表测量NTC电压,NTC电压理论值=RT*VCC/(RT+10K),看看差别大不大。NTC测温很简单,从没遇到过问题。
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.7]常住居民III

    11

    主题

    107

    回帖

    735

    积分

    高级会员

    积分
    735
     楼主| 发表于 2024-5-10 15:42:18 | 显示全部楼层
    问题基本解决,原因基本找到,将另外开贴详述过程,给广大爱好者以提示,避免走弯路!

    点评

    放个链接岂不美哉  详情 回复 发表于 2024-5-10 22:41
    可在此贴说明,以便结贴,或者搜到看贴的朋友直接知道原因。  详情 回复 发表于 2024-5-10 17:50
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.5]常住居民I

    38

    主题

    476

    回帖

    594

    积分

    高级会员

    积分
    594
    发表于 2024-5-10 15:53:06 | 显示全部楼层
    刚学到adc   我的也是降龙棍  去试试
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-6-13 22:49 , Processed in 0.072139 second(s), 69 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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