新型數字溫度傳感器ADT75的原理及應用
(2)傳送ADT75地址
在讀取溫度值之前必須向從器件發(fā)送地址。ADT75的7位地址為0x48。由于是讀數據(讀/寫(xiě)位為1),所以傳送的8位地址命令為0x91。在傳送數據時(shí),當SCL為0時(shí),才允許SDA上的數據變化;為1時(shí),SDA上的數據保持不變。8位地址傳送結束后,主機釋放SDA(令SDA=1),等待從機的應答信號。
(3)檢測ADT75的應答位
I2C總線(xiàn)傳輸完8位數據后由從機給主機一個(gè)低電平的應答信號,表示從機正常工作并可以接收下一個(gè)字節的數據。檢測ADT75的應答位時(shí),應注意把GPIOB1口設置為輸入。本文引用地址:http://dyxdggzs.com/article/195703.htm
EALLOW:
GpioMuxRegs.GPBDIR.bit.GPIOB1=0;
EDIS;
如果SDA=0,則TMSS20F2812開(kāi)始從ADT75中讀取數據的高字節;SDA=1,表示ADT75忙或者損壞,結束數據讀取。
(4)讀取數據
當檢測到ADT75的應答信號為0時(shí),開(kāi)始讀取溫度值。I2C總線(xiàn)的數據傳輸是以字節為單位的,首先讀取溫度值的高字節(溫度值的整數部分,最高位為符號位),讀取的數據存放在retc中。每接收1位數據,retc左移1位。若SDA=1,retc加1;SDA=0,retc不變。
高8位數據傳輸完后,TMS320F2812傳給ADT75一個(gè)低電平的應答信號,由Mack()函數完成。此時(shí),需要將GPIOB1端口的數據傳輸方向改為輸出:
EALLOW:
GpioMuxRegs.GPBDIR.bit.GPIOB1=1;
EDIS:
然后開(kāi)始接收溫度值的低字節(溫度值的小數部分),讀取成功后由TMS320F2812發(fā)送一個(gè)非應答位,表示本次溫度值的讀取結束,進(jìn)入停止狀態(tài)。
(5)結束數據傳輸
結束數據傳輸由Stop()函數完成,結束條件如下:
Delay(50);
至此,讀取一個(gè)溫度值的全過(guò)程結束。在程序調試過(guò)程中發(fā)現,當設置斷點(diǎn)單步運行時(shí),無(wú)法檢測到ADT75發(fā)出的低電平應答信號,應答信號始終為1;若不設斷點(diǎn)連續執行時(shí),則可以檢測到低電平應答信號。這點(diǎn)是ADT75和其他I2C總線(xiàn)器件(如E2PROM芯片AT24C256)的不同之處,在調試程序的過(guò)程中要注意該細節。
ADT75的溫度轉換周期為100 ms。在本設計中,每隔大約250 ms讀取一次溫度值,可以實(shí)現監測光纖延遲線(xiàn)系統溫度的變化。
結 語(yǔ)
在光纖延遲線(xiàn)系統的硬件設計中,ADT75完全能夠滿(mǎn)足實(shí)時(shí)溫度采集的要求,而且測溫準確,靈敏度高。由于使用了I2C總線(xiàn)接口,所以溫度檢測電路結構簡(jiǎn)單,占用空間小,串行接口占用TMS320F2812的資源少,可靠性高,功耗低,不易受環(huán)境干擾。實(shí)驗證明,設計和運行都達到了令人滿(mǎn)意的效果。
評論