不知大家是否有注意到,現在的PIC® MCU內部幾乎都有一個溫度指示器。其實早在2007年Microchip推出的PIC16F72X就有此功能了。早期推出此功能的主要目的是測量芯片內部的溫度,可用以補償IC內部類比模組因溫度所造成的漂移。下文主要會介紹如何使用此功能以測量環境溫度,大家亦可以發揮想像力,思考更多溫度指示器相關的應用。
讓我們先看此功能的方塊圖:
依圖示,只要利用一個類比數位轉換器(Analog-to-digital converter,ADC)將類比訊號轉換成數位資料讀取,即可使用溫度指示器的功能。但當我們再深入研究,可能就會發現事情沒有想像那樣簡單。首先讓我們來看一下此溫度指示器的線路圖:
從圖中可見,此線路是由4個二極體再加上一個定電流源組成。眾所周知二極體會因溫度影響,使其順向電壓改變,其特性為負溫度系數。因此當溫度上升,Vtemp輸出的電壓亦會跟隨上升,然後可經由Microchip所推導出的公式計算環境溫度,請參考應用筆記AN1333。
但因製程不同也會影響二極體的順向電壓,再加上實際應用時所使用的VDD電壓及輸出電流等因素都會影響其內部接合的溫度,為了修正這些誤差,我們可以使用單點或雙點校正。
單點校正就是以一個溫度點來修正溫度的偏移量,此方法的好處是操作簡易,但零件之間的差異就較大,僅適合對溫度準確度要求較低的應用。
若要求較高溫度準確的應用就需要雙點校正,補償溫度的偏移量及斜率,以得到較精準的環境溫度。
以上的校正方法是在工廠生產階段進行,雖然方便執行,但只局限於調校環境溫度處於0 ~ 85°C時。若想應用在更廣泛的溫度範圍,或更精準的溫度測量,就需要在產品設計階段導入校正因子。
如前文所述,溫度指示器的關鍵因素是二極體的順向電壓及溫度系數,所以應用時我們需要準備數量充足的電路板,這些電路板也要焊上相應的零件,MCU也要燒錄應用所需的韌體,亦建議利用不同批號的MCU作測試。
另外我們也需要準備溫度計在外部測量環境溫度,測量時愈靠近MCU愈好,甚至把溫度計貼在MCU封裝表面,這時可以選用Microchip的溫度IC MCP9800。然後把全部工具放入恆溫器當中,以每間隔10°C做測試,再來可以使用Microchip PICkit™ Serial Analyzer讀取ADC及MCP9800的資料,將所得的ADC數據導入下列方程式可得到Vt值。
再將Vt值整理後畫成圖,如下:
圖中的斜率-0.00137就是方程式中的Tc,0.731就是Vf。 接下來再依上面所述的單點校正的方法得出方程式中的抵消。
在比較新的一代PIC MCU,如PIC16F及PIC18F系列產品,此溫度指示器的線路略有不同,如下所示:
所以其計算公式也稍有不同,如下:
另外其內部有一個Device Information Area(DIA)表格,此表中有在90°C時溫度指示器的ADC值及VREF的電壓輸出值。這個改變有下列好處:
1. 若對溫度的精確度要求不太高時,我們可以直接用DIA表格作校正,簡化工廠的生產流程及降低生產成本。
2. 若對溫度的精確度有一定要求時,我們則可在生產時只做單點校正的程序,再配合DIA表格就可以做到雙點校正的效果。
以上就是以IC內部的溫度指示器來計算出環境溫度的方法,各位讀者可以配合IC的電器特性表所列的參數來校正各種模組,歡迎到下述Microchip網址了解更多相關的產品資訊。
參考資料 :
AN1333: https://ww1.microchip.com/downloads/en/Appnotes/00001333B.pdf
AN2092: http://ww1.microchip.com/downloads/en/appnotes/00002092a.pdf
AN2798: https://ww1.microchip.com/downloads/en/Appnotes/AN2798-00002798A.pdf
TB3165: https://ww1.microchip.com/downloads/en/Appnotes/TB3165-Temperature-Indicator-Module-on-8-bit-MCU-90003165B.pdf
本文作者為:Microchip應用工程師 徐廣安