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