陳敏,鄧穎
(1.凌云科技集團(tuán)有限責(zé)任公司; 2.武鋼自動(dòng)化公司,武漢430073)
隨著微處理器的發(fā)展,越來(lái)越多的單片機(jī)向著小型、低成本、低功耗、高集成度的方向發(fā)展。NXP(原 Philips半導(dǎo)體)公司推出了集成溫度傳感器的芯片P89LPC92X1系列微型處理器,進(jìn)一步為系統(tǒng)設(shè)計(jì)帶來(lái)方便。
P89LPC9251(簡(jiǎn)稱(chēng) LPC9251)是 P89LPC92X1系列的一種。它是一款高性能數(shù)字微控制器,包括一個(gè)內(nèi)部溫度傳感器。該傳感器可用來(lái)校正與溫度相關(guān)的信號(hào),或作為一個(gè)獨(dú)立的溫度計(jì)。在嵌入式系統(tǒng)設(shè)計(jì)中,使用 LPC9251不僅可以省去如 DS18B20、TMP04等常用的溫度傳感器件,同時(shí)可以節(jié)省系統(tǒng)設(shè)計(jì)的I/O口資源,以及減小布板PCB的尺寸空間,進(jìn)一步降低了系統(tǒng)設(shè)計(jì)的成本。
LPC9251有 2個(gè)模數(shù)轉(zhuǎn)換模塊:ADC0和ADC1。ADC1是一個(gè)8位、4通道復(fù)用逐次逼近 A/D轉(zhuǎn)換器。ADC0是專(zhuān)門(mén)用于片上寬溫度范圍的溫度傳感器,其溫度測(cè)量的范圍是-40℃~+85℃,在該工作溫度范圍內(nèi)輸出分辨率近似為+11 mV/℃。其性能遠(yuǎn)遠(yuǎn)高于一般的溫度傳感器,如TMP04的測(cè)量范圍,適宜于中低溫的測(cè)量,因此LPC9251溫度傳感器可以在低溫環(huán)境的系統(tǒng)中可靠工作。
片上溫度傳感器集成在ADC0功能模塊中,通過(guò)Anin03通道測(cè)量溫度傳感器 Vsen,其他 3個(gè)通道Anin00、Anin01和Anin02暫未使用。溫度傳感器和內(nèi)部參考電壓Vref(bg)(1.23 V±0.123 V)引腳一起復(fù)用在相同的輸入通道Anin03。通過(guò)配置CONTROL LOGIC(控制邏輯單元)中 TPSCON寄存器的 TSEL1和 TSEL0位來(lái)選擇溫度傳感器還是內(nèi)部參考電壓。
為了準(zhǔn)確地測(cè)量溫度值,必須首先測(cè)量?jī)?nèi)部參考電壓Vref(bg)的電源電壓。溫度傳感器的電壓計(jì)算公式如下:
在式(1)中,Aref(bg)是Vref的A/D轉(zhuǎn)換的結(jié)果,Asen是Vsen的A/D轉(zhuǎn)換的結(jié)果。該溫度傳感器的計(jì)算公式如下:
溫度傳感器的使用步驟如下:
①配置TSEL1和TSEL0為“01”,選擇內(nèi)部參考電壓;
②使用ADC獲得 Aref轉(zhuǎn)換結(jié)果;
③配置TSEL1和TSEL0為“10”,選擇溫度傳感器;
④等待至少200 μ s,使傳感器穩(wěn)定,然后使用ADC測(cè)量Asen;
⑤通過(guò)公式(1)計(jì)算Vsen;
⑥通過(guò)公式(2)計(jì)算溫度的數(shù)值。
本代碼將讀出溫度傳感器的數(shù)值,并將溫度的計(jì)算結(jié)果發(fā)送給UART0。
ADC0的配置方法如下:
根據(jù)前述溫度傳感器的測(cè)量步驟,應(yīng)當(dāng)首先測(cè)量?jī)?nèi)部參考電壓Vref(bg)。內(nèi)部參考電壓測(cè)量程序如下:
每次配置TSEL1和TSEL0為“10”,用來(lái)選擇溫度傳感器。在獲取ADC轉(zhuǎn)換結(jié)果前必須固定地延時(shí)200 μ s,用來(lái)獲取穩(wěn)定的ADC轉(zhuǎn)換結(jié)果。溫度傳感器的計(jì)量程序如下:
(編者注:LPC9251溫度傳感器完整的DEMO代碼見(jiàn)本刊網(wǎng)站www.mesnet.com.cn。)
2.3.1硬件環(huán)境配置
硬件電路原理如圖1所示。LPC9251的供電電壓采用3.3 V供電,可以通過(guò)MAX3232輸出給串行口或者74LVC244輸出點(diǎn)亮8個(gè)LED來(lái)實(shí)時(shí)觀測(cè)溫度傳感器的數(shù)值。PC軟件終端使用的是Tera Term,用于接收LPC9251串行口發(fā)出的溫度數(shù)據(jù)。該設(shè)置如圖2所示。
圖1 硬件原理圖
圖2 Tera Term配置
2.3.2使用LPC9251輸出固定格式的溫度數(shù)值
程序中以固定的間隔測(cè)量溫度傳感器的溫度數(shù)值,并將計(jì)量的溫度結(jié)果發(fā)送給 UART0,然后在PC機(jī)上顯示測(cè)量結(jié)果,如圖3所示。
圖3 溫度信息的輸出
實(shí)際測(cè)量1000個(gè)溫度數(shù)值,在工作溫度范圍內(nèi)100個(gè)離散溫度點(diǎn)讀數(shù)的最大標(biāo)準(zhǔn)偏差僅為2.5個(gè)ADC最小分辨率或0.25%誤差,說(shuō)明LPC9251的片上溫度傳感器具有極佳的重復(fù)性。由此看來(lái),LPC9251的重復(fù)性比市場(chǎng)上大多數(shù)性能出色的溫度傳感器還好。使用LPC9251用于片上溫度監(jiān)控,具有體積小、功耗低、精度高、易于實(shí)現(xiàn)等優(yōu)點(diǎn),可以比較容易地實(shí)現(xiàn)系統(tǒng)溫度監(jiān)測(cè)功能,有一定的推廣價(jià)值。
[1]NXP.UM10336(P89LPC9201/9211/922A1/9241/9251)用戶(hù)手冊(cè)[OL].[2009-06-19].http://www.nxp.com/redirect/keil.com/mcb900.
[2]何此昂,等.Freescale 08系列單片機(jī)開(kāi)發(fā)與應(yīng)用實(shí)例[M].北京:北京航空航天大學(xué)出版社,2009.
單片機(jī)與嵌入式系統(tǒng)應(yīng)用2010年1期