大多數32位MCU都有一項非常實用的功能——內部集成了一個溫度傳感器,這個溫度傳感器產生一個隨溫度線性變化的電壓VTS。
因為是內置, 測試的當然是芯片內部溫度, 這對控制芯片發熱和保障MCU健康運行非常重要。對于一些惡劣的應用環境,可以通過檢測芯片內部而感知設備的工作環境溫度, 如果溫度過高或者過低,就觸發進入睡眠狀態或者停止運轉,以提高設備運行的可靠性。
圖1. AT32單片機芯片內含溫度傳感器
如果芯片外接負載不變,那么芯片的發熱也基本穩定,相對于外界的溫度而言,溫度變化值也是基本穩定的。就是說,也可以用MCU芯片的內置傳感器來測量外界環境的溫度。以下以AT32 MCU為例,說明內置溫度傳感器應用和評估測試方法,并提供測試數據供使用者設計參考。
內部傳感器特性
AT32單片機芯片內含溫度傳感器,它產生一個隨溫度線性變化的電壓,在內部被連接到ADC1_IN16的輸入通道上,用于將傳感器的輸出轉換到數字數值。
圖2. AT32 MCU的溫度傳感器特性
以AT32F413為例,只要遵守以下公式,即可求得目前溫度傳感器量測出的溫度:
溫度(°C) = {(V25 - VSENSE) / Avg_Slope} + 25
這里:V25 = VSENSE在25 °C時的數值,Avg_Slope = 溫度與VSENSE曲線的平均斜率(單位為mV/°C),VSENSE為溫度傳感器經由ADC轉換出的電壓換算成mV,再依照上述公式,只要將V25帶入典型值1280mV,Avg_Slope帶入-4.20mV/°C即可求得。
圖3為套用典型值計算出的溫度與傳感器輸出電壓(VSENSE)的特性曲線。
圖3. VSENSE對溫度理想曲線圖
應用此溫度傳感器需注意因生產過程的變化,每個芯片的溫度傳感器V25具有相對大的偏移,若以Avg_Slope典型值來換算相當于47.6°C,最小值與最大值一般會有最多200mV的誤差。因此,內部溫度傳感器更適合于檢測溫度的變化,而不是測量絕對的溫度。
內部溫度傳感器的使用
AT32芯片的溫度傳感器在內部被連接到ADC1_IN16的輸入通道上,用于將傳感器的輸出轉換到數字數值。這個數值為溫度的變化數,而非絕對溫度。
AT32芯片溫度傳感器為內部弱電壓源,ADC進行采樣時需要足夠時間讓VSENSE輸出為采樣電路達到充放電平衡而穩定,使用者需確實遵照數據手冊中的TS_TEMP參數為內部溫度傳感器設置足夠的采樣時間,以獲得正確的轉換數值。
在3.6V、3.3V和2.6V操作電壓下,不同AT32溫度傳感器的Avg_Slope在各電壓條件下幾乎一致。但細部分析,就發現各芯片V25參數之間具有相對較大的差異,這是造成AT32溫度傳感器量測與實際溫度徧差的主要原因。若以軟件校正偏移量(offset)后或僅作為相對溫度量測時,在芯片全溫度-40到105°C操作范圍內,溫度誤差(線性度)可以達到±2°C之內。
但若未做偏移校正或用以量測絕對溫度,因溫度傳感器本身架構于芯片生產過程的變化,溫度變化曲線的偏移在不同芯片上會有明顯差異。因此,建議AT32芯片內部溫度傳感器僅用作檢測溫度的變化,而不是測量絕對的溫度。如果需要測量精確的溫度值,應該使用一個外置的溫度傳感器。
審核編輯:湯梓紅
-
mcu
+關注
關注
146文章
16992瀏覽量
350314 -
溫度傳感器
+關注
關注
48文章
2913瀏覽量
155889
發布評論請先 登錄
相關推薦
評論