在写温度传感器驱动之前:热敏电阻的温度、电阻、电压的映射关系

一、前言

  • 在日常的Soc驱动开发中,对于芯片的实际使用者,大多数时间所调试的是外围设备的驱动,或者说是自己新增设备的驱动。
  • 本文即介绍其中常用的一个小模组:温度传感器(NTC热敏电阻)的使用方法,关键是搞懂其中的映射关系是否正确:温度值、电阻值、ADC读取的电压值。当映射正确后,我们就可以很快的将它们组织成需要的温度曲线,或者填写各个温控阈值(在什么温度,干什么事情)。
  • 中学生略过、在读大学生略过……

二、准备工作

  • 温度传感器,常使用的核心器件就是NTC热敏电阻,其特性就是热敏电阻的阻值(欧姆)会随着温度的变化而变化,并且十分灵敏。而对于温度数据的采集,如本文所采用的全志H713 Soc芯片,实际上获得的一般是热敏电阻两端的实时电压(毫伏)。
  • 所以,对于软件开发人员来了说,首先要搞懂的就是几个变量之间的映射关系:温度–>电阻值–>电压值。

2.1 NTC规格书

  • 拿到设备后,首先需要阅读NTC热敏电阻的规格书,其中最重要的就是其温度-阻值的映射表
  • 最要注意的是,注意观察其阻值是不是一个相对线性的,或者说使用过程中给对温度的精度要求不是那么高,那么只要不是个别部分非线性差异过大,就可以接受,或者分段成若干线性的部分。
  • 本文针对的设备,是投影仪,对于这类设备,比较关注的是高温,不要因为高温而烧毁了LED灯珠或者LCD\DMD等关键显示器件,所以日常选择的温度区间,基本上,只要涵盖30°~90°即可
  • 从本文的NTC规格书中,可以得知30°~90°这个区间基本上是线性的,对于使用方法的讲解,以60°做个例子。

在这里插入图片描述

2.2 原理图

  • 获得了NTC的规格书之后,下一步要准备的就是温度传感器模块的原理图,下面黑线框部分,是对于软件人员更容易理解的一个电路简化,相关信息也可以咨询下硬件工程师。
  • 从这个电路图中,容易干扰的部分,就是R2电阻,它因为连接的是GPADC0(Soc的ADC引脚),这一路向硬件咨询,其实是一个高阻的线路,所以可以将其忽略,因此,继续简化后,就剩下一个R1和Rx(热敏电阻,相当于一个可变电阻器)的串联分压电路。
  • Rx两端的电压值Vx,就是ADC读取后反馈的数据,也可以通过实际测量获得(使用万用表的直流电压档位,红黑表笔连接热敏电阻的两端)。

在这里插入图片描述

2.3 新手的疑问

Soc的ADC引脚读取的是电压值,而规格书里面列出来的却是温度和电阻值的对应关系,电压值怎么和这个电阻值对应上呢?如何验证算法是否正确呢?这是软件人员经常困惑的地方,虽然物理学了那么多年了,但终归用得少,但通过楼上的简化电路,用初中的电路知识,就可以得出答案。

三、问题求解

此处有两个问题(双向验证,double check):

(1)一个是根据电阻值,算出理论上的Vx应该等于多少?

(2)另一个是,根据实际测量获得的Vx,倒推出理论的Rx热敏电阻的阻值是多少?

最终获得的数值,(1)和 (2)的阻值和电压参数应该基本一致

3.1 知道Rx, 求Vx的理论值

  • 在不测量具体Vx的情况下,通过公式计算出Vx的理论值

  • 查规格书,以60°为例,Rx = 2.4734 KΩ

  • 串联电路的电流相等

  • Vx/Rx = 1.8/(Rx+R1) ,其中单位:电阻为欧姆,电压为伏特,R1=3000欧姆

  • 即:Vx = 1.8Rx /(Rx+R1)

计算: Vx = 1.8 * 2473 / (2473 + 3000) = 0.813 v

3.2 实测得知Vx,求Rx的理论值

  • Vx可以通过测量直接获得,而NTC的规格书上只有温度和电阻的MAP,所以如何确定电压和当前温度的对应关系呢?
  • 串联电路的电流相等
  • Vx/Rx = 1.8/(Rx+R1) ,其中单位:电阻为欧姆,电压为伏特,R1=3000欧姆
  • 即: Rx = Vx*R1/(1.8 - Vx)
  • 实际抓打印:zs, gadc_thermal_adc_to_temp temp=60000, val=813
  • 实际测量Vx = 0.813v 和=打印的ADC读数一致

计算:Rx = 0.813*3000 / (1.8-0.813) = 2,471.12 Ω

3.3 综上

从3.1和3.2的计算结果可知,60°时候的电压、电阻的映射关系是正确的。后续通过进一步的对其他值抽样,可以做再次的确认。

四、篇尾

每当搞起热敏电阻类似的简单电路器件,写它们的控制驱动时,总会痛心疾首,当年大学为啥不好好学物理,不好好学习模电和数电,……,总算知道啥都有用了吧!书到用时方恨少!

  • 17
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿迷创客

感谢!您的支持是我写作的动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值