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