數字溫度傳感器TC77與AVR單片機的接口設計
TC77是Microchip公司生產(chǎn)的一款13位串行接口輸出的集成數字溫度傳感器,其溫度數據由熱傳感單元轉換得來(lái)。TC77內部含有一個(gè)13位ADC,溫度分辨率為0.062 5℃/LSB。在正常工作條件下,靜態(tài)電流為250μA(典型值)。其他設備與TC77的通信由SPI串行總線(xiàn)或Microwire兼容接口實(shí)現,該總線(xiàn)可用于連接多個(gè)TC77,實(shí)現多區域溫度監控,配置寄存器CONFIG中的SHDN位激活低功耗關(guān)斷模式,此時(shí)電流消耗僅為0.1μA(典型值)。TC77具有體積小巧、低裝配成本和易于操作的特點(diǎn),是系統熱管理的理想選擇。
2 TC77的內部結構及引腳功能
圖1所示為T(mén)C77的內部結構原理圖。TC77由CMOS結型溫度傳感器、帶符號位的13位∑-△A/D轉換器、溫度寄存器、配置寄存器、制造商ID寄存器及三線(xiàn)制串行接口等部分組成。
其引腳定義如下:
SI/O:串行數據引腳
SCK:串行時(shí)鐘
Vss:地
CE:片選端(低電平有效)
VDD:電源電壓(6.0 V)
3 TC77的工作原理
數字溫度傳感器TC77從固態(tài)(PN結)傳感器獲得溫度并將其轉換成數字數據。再將轉換后的溫度數字數據存儲在其內部寄存器中,并能在任何時(shí)候通過(guò)SPI串行總線(xiàn)接口或Microwire兼容接口讀取。TC77有兩種工作模式,即連續溫度轉換模式和關(guān)斷模式。連續溫度轉換模式用于溫度的連續測量和轉換,關(guān)斷模式用于降低電源電流的功耗敏感型應用。
3.1 TC77的上電與復位
上電或電壓復位時(shí),TC77即處于連續溫度轉換模式,上電或電壓復位時(shí)的第一次有效溫度轉換會(huì )持續大約300 ms,在第一次溫度轉換結束后,溫度寄存器的第2位被置為邏輯“1”,而在第一次溫度轉換期間,溫度寄存器的第2位是被置為邏輯“0”的,因此,可以通過(guò)監測溫度寄存器第2位的狀態(tài)判斷第一次溫度轉換是否結束。
3.2 TC77的低功耗關(guān)斷模式
在得到TC77允許后,主機可將其置為低功耗關(guān)斷模式,此時(shí),A/D轉換器被中止,溫度數據寄存器被凍結,但SPI串行總線(xiàn)端口仍然正常運行。通過(guò)設置配置寄存器CONFIG中的SHDN位,可將TC77置于低功耗關(guān)斷模式:即設置SHDN=0時(shí)為正常模式;SHDN=1時(shí)為低功耗關(guān)斷模式。
3.3 TC77的溫度數據格式
TC77采用13位二進(jìn)制補碼表示溫度,表1所列是TC77的溫度、二進(jìn)制碼補碼及十六進(jìn)制碼之間的關(guān)系。表中最低有效位(LSB)為0.062 5 ℃,最后兩個(gè)LSB位(即位1和位0)為三態(tài),表中為“1”。在上電或電壓復位事件后發(fā)生第一次溫度轉換結束時(shí),位2被置為邏輯“1”。
3.4 TC77的串行總線(xiàn)
TC77的串行總線(xiàn)包括片選信號線(xiàn)CE、串行時(shí)鐘信號線(xiàn)SCK及串行數據信號線(xiàn)SI/O,遵循SPI或Mi-crowire接口標準協(xié)議。在有多個(gè)TC77連接到串行時(shí)鐘和串行數據信號線(xiàn)時(shí),CE用于選擇其中的某一個(gè)TC77器件,CS為邏輯“0”時(shí),用于寫(xiě)入器件或從器件中讀出數據的同步;CS為邏輯“1”時(shí),SCK被禁止。CS的下降沿啟動(dòng)器件間的相互通信,CS的上升沿則停止器件間的相互通信。圖2是對溫度寄存器進(jìn)行讀操作的時(shí)序。
圖3是TC77的多字節通信操作時(shí)序,包括對溫度寄存器的讀操作和對配置寄存器的寫(xiě)操作。第一組的16個(gè)SCK脈沖用于將TC77的溫度數據傳送到微處理器,第二組的16個(gè)SCK脈沖用于接收微處理器的指令,以便使TC77進(jìn)入關(guān)斷模式或連續轉換模式。寫(xiě)入TC77配置寄存器的數據應為全0或全1,分別與連續轉換模式或關(guān)斷模式相對應,當配置寄存器的C0~C7全為1時(shí)為關(guān)斷模式,當C0~C7中有一個(gè)0被寫(xiě)入時(shí)即變?yōu)檫B續轉換模式。
4 TC77與AVR單片機的接口
4.1 TC77與AVR單片機的硬件接口
圖4是TC77與AVR單片機的接口硬件連接原理圖。圖中使用的是同步串行三線(xiàn)SPI接口,可以方便地連接采用SPI通信協(xié)議的外設或另一片AVR單片機,實(shí)現短距離的高速同步通信。
ATmega128的SPI采用硬件方式實(shí)現面向字節的全雙工3線(xiàn)同步通信,支持主機、從機和兩種不同極性的SPI時(shí)序。ATmega128單片機內部的SPI接口也可用于程序存儲器和數據E2PROM的編程下載和上傳。但需要特別注意的是,此時(shí)SPI的MOSI和MISO接口不再對應PB2和PB3引腳,而是轉換到PE0和PE1引腳(PDI、PDO)。
4.2 TC77與AVR單片機的軟件接口
TC77與AVR單片機的接口軟件包括主程序和中斷服務(wù)程序。在主程序中首先要對ATmega128的硬件SPI進(jìn)行初始化。在初始化時(shí),應將PORTB的MOSI、SCLK和SS引腳作為輸出,同時(shí)將MISO引腳作為輸入,并開(kāi)啟上拉電阻。接著(zhù)對SPI的寄存器進(jìn)行初始化設置,并空讀一次SPSR(SPX Status Reg-ister,SPI狀態(tài)寄存器)、SPDR(SPI Data Register SPI,數據寄存器),使ISP空閑等待發(fā)送數據。AVR的SPI由一個(gè)16位的循環(huán)移位寄存器構成,當數據從主機方移出時(shí),從機的數據同時(shí)也被移入,因此SPI的發(fā)送和接收可在同一中斷服務(wù)程序中完成。在SPI中斷服務(wù)程序中,先從SPDR中讀一個(gè)接收的字節存人接收數據緩沖器中,再從發(fā)送數據緩沖器取出一個(gè)字節寫(xiě)入SPDR中,由ISP發(fā)送到從機。數據一旦寫(xiě)入SPDR,ISP硬件開(kāi)始發(fā)送數據。下一次ISP中斷時(shí)表示發(fā)送完成,并同時(shí)收到一個(gè)數據。程序中putSPIchar()和getSPIchar()為應用程序的底層接口函數,同時(shí)也使用了兩個(gè)數據緩沖器,分別構成循環(huán)隊列。下面這段代碼是通過(guò)SPI主機方式連續批量輸出、輸人數據的接口程序:
5 結束語(yǔ)
TC77可與具有SPI或相同接口的MCU直接連接,對于不具有SPI接口的MCU則可通過(guò)軟件編程合成SPI操作。TC77非常適用于溫度測控的低成本和小型應用,如電腦硬盤(pán)驅動(dòng)器或PC其他外圍設備的熱保護,同時(shí)也適用于要求較低的溫度測量與控制系統。
評論