陳敏,鄧穎
(1.凌云科技集團有限責任公司; 2.武鋼自動化公司,武漢430073)
隨著微處理器的發展,越來越多的單片機向著小型、低成本、低功耗、高集成度的方向發展。NXP(原 Philips半導體)公司推出了集成溫度傳感器的芯片P89LPC92X1系列微型處理器,進一步為系統設計帶來方便。
P89LPC9251(簡稱 LPC9251)是 P89LPC92X1系列的一種。它是一款高性能數字微控制器,包括一個內部溫度傳感器。該傳感器可用來校正與溫度相關的信號,或作為一個獨立的溫度計。在嵌入式系統設計中,使用 LPC9251不僅可以省去如 DS18B20、TMP04等常用的溫度傳感器件,同時可以節省系統設計的I/O口資源,以及減小布板PCB的尺寸空間,進一步降低了系統設計的成本。
LPC9251有 2個模數轉換模塊:ADC0和ADC1。ADC1是一個8位、4通道復用逐次逼近 A/D轉換器。ADC0是專門用于片上寬溫度范圍的溫度傳感器,其溫度測量的范圍是-40℃~+85℃,在該工作溫度范圍內輸出分辨率近似為+11 mV/℃。其性能遠遠高于一般的溫度傳感器,如TMP04的測量范圍,適宜于中低溫的測量,因此LPC9251溫度傳感器可以在低溫環境的系統中可靠工作。
片上溫度傳感器集成在ADC0功能模塊中,通過Anin03通道測量溫度傳感器 Vsen,其他 3個通道Anin00、Anin01和Anin02暫未使用。溫度傳感器和內部參考電壓Vref(bg)(1.23 V±0.123 V)引腳一起復用在相同的輸入通道Anin03。通過配置CONTROL LOGIC(控制邏輯單元)中 TPSCON寄存器的 TSEL1和 TSEL0位來選擇溫度傳感器還是內部參考電壓。
為了準確地測量溫度值,必須首先測量內部參考電壓Vref(bg)的電源電壓。溫度傳感器的電壓計算公式如下:

在式(1)中,Aref(bg)是Vref的A/D轉換的結果,Asen是Vsen的A/D轉換的結果。該溫度傳感器的計算公式如下:

溫度傳感器的使用步驟如下:
①配置TSEL1和TSEL0為“01”,選擇內部參考電壓;
②使用ADC獲得 Aref轉換結果;
③配置TSEL1和TSEL0為“10”,選擇溫度傳感器;
④等待至少200 μ s,使傳感器穩定,然后使用ADC測量Asen;
⑤通過公式(1)計算Vsen;
⑥通過公式(2)計算溫度的數值。
本代碼將讀出溫度傳感器的數值,并將溫度的計算結果發送給UART0。
ADC0的配置方法如下:

根據前述溫度傳感器的測量步驟,應當首先測量內部參考電壓Vref(bg)。內部參考電壓測量程序如下:


每次配置TSEL1和TSEL0為“10”,用來選擇溫度傳感器。在獲取ADC轉換結果前必須固定地延時200 μ s,用來獲取穩定的ADC轉換結果。溫度傳感器的計量程序如下:


(編者注:LPC9251溫度傳感器完整的DEMO代碼見本刊網站www.mesnet.com.cn。)
2.3.1硬件環境配置
硬件電路原理如圖1所示。LPC9251的供電電壓采用3.3 V供電,可以通過MAX3232輸出給串行口或者74LVC244輸出點亮8個LED來實時觀測溫度傳感器的數值。PC軟件終端使用的是Tera Term,用于接收LPC9251串行口發出的溫度數據。該設置如圖2所示。

圖1 硬件原理圖

圖2 Tera Term配置
2.3.2使用LPC9251輸出固定格式的溫度數值
程序中以固定的間隔測量溫度傳感器的溫度數值,并將計量的溫度結果發送給 UART0,然后在PC機上顯示測量結果,如圖3所示。

圖3 溫度信息的輸出
實際測量1000個溫度數值,在工作溫度范圍內100個離散溫度點讀數的最大標準偏差僅為2.5個ADC最小分辨率或0.25%誤差,說明LPC9251的片上溫度傳感器具有極佳的重復性。由此看來,LPC9251的重復性比市場上大多數性能出色的溫度傳感器還好。使用LPC9251用于片上溫度監控,具有體積小、功耗低、精度高、易于實現等優點,可以比較容易地實現系統溫度監測功能,有一定的推廣價值。
[1]NXP.UM10336(P89LPC9201/9211/922A1/9241/9251)用戶手冊[OL].[2009-06-19].http://www.nxp.com/redirect/keil.com/mcb900.
[2]何此昂,等.Freescale 08系列單片機開發與應用實例[M].北京:北京航空航天大學出版社,2009.