028-87409729
: 9:00-18:00
17348136089
: 7*24h
高精度數(shù)據(jù)采集儀作為數(shù)據(jù)采集的有力工具,廣泛運(yùn)用于工業(yè)自動化、環(huán)境監(jiān)測和醫(yī)療健康等多個領(lǐng)域,溫度傳感器作為溫度測量設(shè)備的核心部分,可以幫助數(shù)據(jù)采集儀實(shí)現(xiàn)溫度的閉環(huán)控制,保證采集儀器的各個元器件穩(wěn)定工作,此外,它還可以多片組成陣列,實(shí)現(xiàn)大范圍的溫度采集以及溫度控制。本文主要探討,如何通過FPGA準(zhǔn)確讀取高精度溫度傳感器的溫度數(shù)據(jù),實(shí)現(xiàn)較高精度的數(shù)據(jù)輸出。
高精度溫度傳感器 ADT7422
本文使用的溫度傳感器是(ADI)推出的ADT7422,它是一款高精度數(shù)字IIC溫度傳感器,符合 ASTM E1112 標(biāo)準(zhǔn)的臨床溫度測定規(guī)范。
ADT7422內(nèi)包含一個內(nèi)置基準(zhǔn)電壓源、一個溫度傳感器和 一個精密模數(shù)轉(zhuǎn)換器(ADC)。在進(jìn)行焊接后無需校準(zhǔn)即可提供25℃至50℃溫度范圍內(nèi)分辨率為 0.0078℃、精度高達(dá)±0.1℃的16位溫度測量結(jié)果。ADT7422使用IIC時序規(guī)格,3.3VTTL電平。時鐘線SCL的最大頻率可達(dá)400kHz,具體時序規(guī)格如圖:
ADT7422有A0、A1兩個串行總線地址選擇引腳,一個IIC總線可掛載4片ADT7422,其內(nèi)部使用的是一個16位ADC來監(jiān)控溫度。但是需要注意:上電時默認(rèn)分辨率設(shè)置是13位,需要配置相應(yīng)的寄存器才可使用16位精度。
ADT7422配置有4種工作模式:正常、單次采樣、間隔1s采樣、關(guān)斷。芯片上電時默認(rèn)正常模式(即連續(xù)轉(zhuǎn)換模式,一次溫度轉(zhuǎn)換完成后立馬開始下一次轉(zhuǎn)換),轉(zhuǎn)換一次一般需要240ms;單次模式:使能單次模式后進(jìn)行一次采樣,而后進(jìn)入關(guān)斷模式,此種模式有利于降低功耗;間隔1s采樣模式即每隔1s進(jìn)行一次溫度轉(zhuǎn)換;關(guān)斷模式即不進(jìn)行轉(zhuǎn)換(但是此模式下仍可讀取最后一次的轉(zhuǎn)換結(jié)果),本文主要介紹ADT7244配置的正常模式。
ADT7422寄存器
ADT7244寄存器位寬均為8bit,芯片上電時地址指針寄存器指向0x00(地址指針寄存器用于連續(xù)讀取,比如本場景中:將0x00的溫度高8位讀出后地址指針自動指向存有低8位數(shù)據(jù)的0x01寄存器,主機(jī)在讀取完高8位后即可直接讀取低8位數(shù)據(jù)而無需再次寫入地址0x01。)右圖中溫度值寄存器、狀態(tài)寄存器、ID寄存器為只讀寄存器,只能讀出數(shù)據(jù)、不可寫入數(shù)據(jù)。
ADT7422器件地址
ADT7422具有7bit位寬的器件地址,具體根據(jù)A0、A1引腳的電平配置如下:
根據(jù)IIC通信協(xié)議,數(shù)據(jù)線在只能在時鐘為低時變化,在時鐘為高時必須保持穩(wěn)定(在時鐘高電平期間變化則代表起始或終止信號)。需要注意的一點(diǎn)是,IIC器件的時鐘和數(shù)據(jù)線都推薦上拉10KΩ電阻,以便總線空閑時將時鐘和數(shù)據(jù)線鉗制在高電平,也可提高總線驅(qū)動能力。
通過FPGA讀取ADT7422溫度值(13位模式)
模塊“adt7422_drv”接入時鐘、復(fù)位、數(shù)據(jù)輸入有效信號、相應(yīng)的器件地址,當(dāng)使能輸入有效信號時,模塊啟動一次讀取流程、讀出最近一次轉(zhuǎn)換所得出的溫度數(shù)據(jù)(與一般ADC配置過程不同,如果不進(jìn)行配置,ADT7422上電復(fù)位完成后即開始進(jìn)行連續(xù)轉(zhuǎn)換溫度數(shù)據(jù),將轉(zhuǎn)換完成的數(shù)據(jù)存入0x00、0x01兩個寄存器。下一次轉(zhuǎn)換完成時,將寄存器內(nèi)數(shù)據(jù)刷新)。此時輸出有效信號(frame_done)使能,將讀取到的16位數(shù)據(jù)輸出、等待下一次觸發(fā)讀取。
注:方便起見,tb文件模仿從機(jī)行為時僅發(fā)送“0”。配置器件地址為1001_011,寫入的寄存器地址為0000_0001。讀出的16位數(shù)據(jù)為0000_0000_0000_0000。
由于ADT7422上電默認(rèn)高13位溫度數(shù)據(jù)有效,如果上電后未配置成16位模式,則在拼接和轉(zhuǎn)換數(shù)據(jù)的時候需要注意取高13位。實(shí)際采集到的ADT7422的原始ADC值以及轉(zhuǎn)換后的溫度數(shù)據(jù)如下,溫度數(shù)據(jù)可由FPGA穩(wěn)定讀出。
高精度溫度傳感器應(yīng)用場景
ADT7422屬于數(shù)字溫度傳感器,優(yōu)點(diǎn)是具有較高精度的數(shù)字輸出、無需信號調(diào)理,缺點(diǎn)是溫度范圍受限(?55°C~+155°C)。
一、測量PCB溫度
PCB上的熱量大部分通過芯片的引腳傳輸至溫度傳感器芯片(ADT7422)。由此,ADT7422可以測量電路板的溫度、發(fā)熱量較大的芯片的溫度(如:FPGA、電源芯片等)以及連接器的溫度。
作此用途時應(yīng)注意,設(shè)計(jì)PCB時被測溫元件和ADT7422應(yīng)盡量靠近、同層共地(確保GND及時導(dǎo)熱)?;谝陨显?,ADT7422可用于元器件、電路接插件等的高精度溫度實(shí)時監(jiān)測。例如:
1、電機(jī)電路驅(qū)動控制系統(tǒng)、電池控制板的溫度監(jiān)測;
2、精密醫(yī)療器械的運(yùn)行溫度監(jiān)測;
3、芯片溫度可視化;
4、USB等連接器的溫度監(jiān)測;
5、激光二極管的溫度控制等。二、測量環(huán)境溫度
當(dāng)需要使用ADT7422測量芯片周邊空氣溫度而非電路板溫度時,需注意防止PCB熱源影響測量結(jié)果。
如圖,需要盡量使ADT7422遠(yuǎn)離熱源元件、盡量減少與熱源的引腳連接(如ADT7422的GND引腳使用較窄的走線、盡量減少與主GND鋪銅面的連接)。也可用于代替熱敏電阻、電阻溫度檢測器?;谝陨显?,ADT7422可用于環(huán)境溫度測量、生命體征監(jiān)測、食品的存儲及運(yùn)輸過程中溫度控制等。例如:
1、空調(diào)溫度的閉環(huán)控制;
2、運(yùn)動手環(huán)等穿戴式設(shè)備;
3、米、面、玉米等谷物倉庫的分布式溫度監(jiān)測、閉環(huán)控制等。
結(jié)論
利用FPGA驅(qū)動可準(zhǔn)確讀取高精度溫度傳感器ADT7422的數(shù)據(jù),實(shí)現(xiàn)測量PCB溫度和環(huán)境溫度,多片ADT7422還可以組成陣列,進(jìn)行大范圍的溫度采集,可廣泛運(yùn)用于電機(jī)電路驅(qū)動控制系統(tǒng)、電池控制板的溫度監(jiān)測及精密醫(yī)療器械的運(yùn)行溫度監(jiān)測等,配合其他控溫設(shè)備實(shí)現(xiàn)溫度的精準(zhǔn)控制。