028-87409729
: 9:00-18:00
17348136089
: 7*24h
高精度数据采集仪作为数据采集的有力工具,广泛运用于工业自动化、环境监测和医疗健康等多个领域,温度传感器作为温度测量设备的核心部分,可以帮助数据采集仪实现温度的闭环控制,保证采集仪器的各个元器件稳定工作,此外,它还可以多片组成阵列,实现大范围的温度采集以及温度控制。本文主要探讨,如何通过FPGA准确读取高精度温度传感器的温度数据,实现较高精度的数据输出。
高精度温度传感器 ADT7422
本文使用的温度传感器是(ADI)推出的ADT7422,它是一款高精度数字IIC温度传感器,符合 ASTM E1112 标准的临床温度测定规范。
ADT7422内包含一个内置基准电压源、一个温度传感器和 一个精密模数转换器(ADC)。在进行焊接后无需校准即可提供25℃至50℃温度范围内分辨率为 0.0078℃、精度高达±0.1℃的16位温度测量结果。ADT7422使用IIC时序规格,3.3VTTL电平。时钟线SCL的最大频率可达400kHz,具体时序规格如图:
ADT7422有A0、A1两个串行总线地址选择引脚,一个IIC总线可挂载4片ADT7422,其内部使用的是一个16位ADC来监控温度。但是需要注意:上电时默认分辨率设置是13位,需要配置相应的寄存器才可使用16位精度。
ADT7422配置有4种工作模式:正常、单次采样、间隔1s采样、关断。芯片上电时默认正常模式(即连续转换模式,一次温度转换完成后立马开始下一次转换),转换一次一般需要240ms;单次模式:使能单次模式后进行一次采样,而后进入关断模式,此种模式有利于降低功耗;间隔1s采样模式即每隔1s进行一次温度转换;关断模式即不进行转换(但是此模式下仍可读取最后一次的转换结果),本文主要介绍ADT7244配置的正常模式。
ADT7422寄存器
ADT7244寄存器位宽均为8bit,芯片上电时地址指针寄存器指向0x00(地址指针寄存器用于连续读取,比如本场景中:将0x00的温度高8位读出后地址指针自动指向存有低8位数据的0x01寄存器,主机在读取完高8位后即可直接读取低8位数据而无需再次写入地址0x01。)右图中温度值寄存器、状态寄存器、ID寄存器为只读寄存器,只能读出数据、不可写入数据。
ADT7422器件地址
ADT7422具有7bit位宽的器件地址,具体根据A0、A1引脚的电平配置如下:
根据IIC通信协议,数据线在只能在时钟为低时变化,在时钟为高时必须保持稳定(在时钟高电平期间变化则代表起始或终止信号)。需要注意的一点是,IIC器件的时钟和数据线都推荐上拉10KΩ电阻,以便总线空闲时将时钟和数据线钳制在高电平,也可提高总线驱动能力。
通过FPGA读取ADT7422温度值(13位模式)
模块“adt7422_drv”接入时钟、复位、数据输入有效信号、相应的器件地址,当使能输入有效信号时,模块启动一次读取流程、读出最近一次转换所得出的温度数据(与一般ADC配置过程不同,如果不进行配置,ADT7422上电复位完成后即开始进行连续转换温度数据,将转换完成的数据存入0x00、0x01两个寄存器。下一次转换完成时,将寄存器内数据刷新)。此时输出有效信号(frame_done)使能,将读取到的16位数据输出、等待下一次触发读取。
注:方便起见,tb文件模仿从机行为时仅发送“0”。配置器件地址为1001_011,写入的寄存器地址为0000_0001。读出的16位数据为0000_0000_0000_0000。
由于ADT7422上电默认高13位温度数据有效,如果上电后未配置成16位模式,则在拼接和转换数据的时候需要注意取高13位。实际采集到的ADT7422的原始ADC值以及转换后的温度数据如下,温度数据可由FPGA稳定读出。
高精度温度传感器应用场景
ADT7422属于数字温度传感器,优点是具有较高精度的数字输出、无需信号调理,缺点是温度范围受限(−55°C~+155°C)。
一、测量PCB温度
PCB上的热量大部分通过芯片的引脚传输至温度传感器芯片(ADT7422)。由此,ADT7422可以测量电路板的温度、发热量较大的芯片的温度(如:FPGA、电源芯片等)以及连接器的温度。
作此用途时应注意,设计PCB时被测温元件和ADT7422应尽量靠近、同层共地(确保GND及时导热)。基于以上原理,ADT7422可用于元器件、电路接插件等的高精度温度实时监测。例如:
1、电机电路驱动控制系统、电池控制板的温度监测;
2、精密医疗器械的运行温度监测;
3、芯片温度可视化;
4、USB等连接器的温度监测;
5、激光二极管的温度控制等。二、测量环境温度
当需要使用ADT7422测量芯片周边空气温度而非电路板温度时,需注意防止PCB热源影响测量结果。
如图,需要尽量使ADT7422远离热源元件、尽量减少与热源的引脚连接(如ADT7422的GND引脚使用较窄的走线、尽量减少与主GND铺铜面的连接)。也可用于代替热敏电阻、电阻温度检测器。基于以上原理,ADT7422可用于环境温度测量、生命体征监测、食品的存储及运输过程中温度控制等。例如:
1、空调温度的闭环控制;
2、运动手环等穿戴式设备;
3、米、面、玉米等谷物仓库的分布式温度监测、闭环控制等。
结论
利用FPGA驱动可准确读取高精度温度传感器ADT7422的数据,实现测量PCB温度和环境温度,多片ADT7422还可以组成阵列,进行大范围的温度采集,可广泛运用于电机电路驱动控制系统、电池控制板的温度监测及精密医疗器械的运行温度监测等,配合其他控温设备实现温度的精准控制。