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