- 相關推薦
兼容SPI接口的低功耗數字溫度傳感器ADT7301及其接口技術
摘要:ADT7301是AD公司推出的13位數字溫度傳感器芯片。該芯片采用+2.7V~+5.5V電源供電,具有溫度轉換精度高、功耗低、串行接口靈活方便等特點。文中介紹了ADT7301的主要特性,并以其與8052接口為例,給出了ADT7301的串行接口電路、應用程序。關鍵詞:溫度傳感器;SPI;ADT7301
。备攀
ADT7301是一個完整的溫度監測系統,有SOT-32和MSOP兩種封裝形式。在芯片內部集成了一個用于溫度監測的帶隙溫度傳感器和一個13位AD轉換器,其最小溫度分辨率為0.03125°C。ADT7301帶有一個非常靈活的串行接口,可非常容易地與大多數微控制器接口;而且該接口還可與SPITM、QSPI及MICROWIRETM協議及DSP接口兼容,通過串口控制可使器件處于待機模式。ADT7301的寬供電電源范圍、低供電電流及與SPI兼容的接口使得該器件非常適合于個人計算機、辦公設備及家電設備等各種領域。
。粒模裕罚常埃惫δ芴匦匀缦拢
●供電電源+2.7V~+5.5V;
●內含13位數字溫度傳感器;
●測溫精度為±0.5℃;
●具有0.03125℃溫度分辨率;
●工作電流典型值為1μA;
●帶有SPI及DSP兼容的串行接口;
●工作溫度范圍寬達-40~+150℃;
●采用節省空間的SOT-23和MSOP封裝。
。矁炔拷Y構與管腳說明
。玻惫苣_描述
。粒模裕罚常埃蹦K的內部結構如圖1所示。該器件具有6腳SOT-23和8腳MOSP兩種封裝形式,各引腳的功能如下:
GND:模擬地和數字地;
DIN:串行數據輸入口。裝入芯片控制寄存器的數據可在時鐘SCLK上升沿通過該管腳串行輸入;
。郑模模汗╇婋娫凑斎攵。供電電源范圍為:+2.7V~+5.5V;
。樱茫蹋耍号c串行端口對應的串行時鐘輸入;
。茫樱浩x輸入,低電平有效;
DOUT:串行數據輸出端口。溫度值在串行時鐘SCLK的下降沿通過該管腳串行輸出。
。粒模裕罚常埃钡拇薪涌谟桑茫印ⅲ樱茫蹋、DIN及DOUT四線構成。將CS和DIN接地可使該接口工作于兩線模式,在這種模式下,該接口只能通過DOUT來讀取數據寄存器中的值。推薦使用CS端口,這樣有利于ADT7301與其主控器件之間同步。DIN端口用于寫控制寄存器,也可使芯片處于節電模式。使用時,在電源和地線之間應加一個0.1μF的去耦電容。
圖2
。玻补ぷ鬟^程與應用時序
。粒模裕罚常埃眱炔考捎芯w振蕩器,所以工作時只需在串口接入時鐘,而不需再提供A/D轉換時鐘。該芯片具有兩種工作模式,即正常工作模式和節電工作模式。在正常工作模式,內部時鐘振蕩器將驅動自動轉換時序,從而使芯片每秒鐘對模擬電路上電一次,以進行一次溫度轉換。完成一次溫度轉換一般需800μs,轉換結束后,芯片的模擬電路自動斷電,并在1秒鐘后自動上電。因此,在溫度值寄存器中總可以得到最新的溫度轉換值。
通過設置ADT7301控制寄存器可將其設置為節電模式。在節電模式下,片內振蕩器被關閉,ADT7301不進行溫度轉換,直到恢復到正常工作模式?上蚩刂萍拇嫫髦袑懥闶蛊浠謴偷秸9ぷ髂J。在進入節電模式前?其溫度轉換結果即使在進入節電模式后仍可被正確讀取。
在正常轉換模式下,執行讀/寫操作時,其內部振蕩器可在讀寫操作結束后自動復位,以使溫度轉換器能夠重新進行溫度轉換。若在ADT7301進行溫度轉換過程中執行讀寫操作?則會使其自動停止轉換,并在串行通訊結束后又重新開始,而讀取的溫度值是前一次的轉換結果。ADT7301執行讀/寫操作時的時序如圖2所示。
當片選端口CS為低時,SCLK時鐘輸入有效,而在執行讀操作后,系統會將2位零標志位、1位符號位和13位的數據位在16個時鐘脈沖下降沿從溫度值寄存器中取出。如果CS持續為低的時間超過16個SCLK時鐘周期,ADT7301將循環輸出2位零標志位加14位數值位。而一旦CS變為高電平,DOUT輸出端將處于高阻狀態?此時輸出數據將在SCLK的下降沿被鎖存在DOUT線上。
。粒模裕罚常埃钡膶懖僮髋c讀操作可同步進行。當寫數據流中的第三位寫1而其余位為0時,ADT7301進入節電模式;寫數據流全為0時,為正常工作模式。在正常工作模式?數據在第16個SCLK的上升沿被裝入控制寄存器并立刻起作用。若CS在第16個SCLK上升沿之前變為高電平,那么,控制寄存器中的數據將不會被裝入,但此時工作模式不變。
。玻硿囟戎稻幋a
溫度值寄存器是一個14位的只讀寄存器,用于存儲ADC的13位二進制補碼加1位符號位的溫度轉換結果(最高位為符號位)。理論上,ADC測量的溫度范圍可達255℃,實際上,內部溫度傳感器能確保的溫度范圍為-40℃~+150℃。溫度數據格式如表1所列。
表1溫度寄存器數據格式
溫度值(℃)數據輸出DB13DB0-4011,101100000000-3011,110001000000-2511,110011100000-1011,111011000000-0.312511,111111111111000,000000000000+0.312500,000000000001+1000,000101000000+2500,001100100000+5000,011001000000+7500,100101100000+10000,110010000000+12500,111110100000+15001,001011000000
其溫度轉換公式如下:
正溫度值=ADC轉換結果代碼(d)/32;
負溫度值=(ADC轉換結果代碼(d)-16384)/32(使用符號位);
負溫度值=(ADC轉換結果代碼(d)-8192)/32(不使用符號位)。
3應用電路
。常保粒模裕罚常埃迸c單片機的串行接口電路
圖3為ADT7301與單片機的串行通訊接口電路,該接口方式具有轉換速度快的優點,但不能被設置成節電工作模式。
這里應注意的是:由于在單片機串行通訊中是先低后高,而ADT7301在向外串行輸出溫度值時是先高后低,所以要先進行高低位互換?然后再進行處理,具體處理程序這里不再給出。下面是ADT7301與8051單片機進行串行接口的軟件編程:
;*****主程序*****
。恚幔椋:
callreceive?;讀取溫度值子程序
calldispose?;讀取結果處理子程序
。螅辏恚稹
;###串行通訊子程序###
receive:setbp1.3
movscon,#11h?;選擇串行口為方式0接收
movr7,#2;字節計數
movr0,#30h;指向溫度值緩沖區
clrp1.3;選通ADT7301
clrri?;清接收中斷標志,準備接收
loop:jnbri,$
。恚铮觯,sbuf
。恚铮觯溃颍,a
。椋睿悖颍
。悖欤颍颍
djnzr7,loop
。螅澹簦猓穑保
。颍澹
3.2ADT7301與單片機的全雙工通訊接口
通過ADT7301與單片機的全雙工通訊接口可以使ADT7301工作在節電模式。圖4是ADT7301與8051單片機進行全雙工通訊接口連接圖。相應的軟件編程如下。
?###全雙工通訊子程序###
。螅澹簦猓穑保
。恚铮觯颍,#30h?;讀溫度值緩沖器?30h31h?
。恚铮觯颍,#32h?;控制寄存器寫入值(32h33h)
。恚铮觯颍,#08h?;循環移位計數
。恚铮觯颍,#02h?;字節計數
clrp1.3?;選通
loop0:
setbp1.0?;控制p1.0產生下降沿
clrp1.0?;準備讀取數據
movcy,p1.1?;讀值
mova,@r0?;將上次結果重裝入
。颍欤悖?;移位存儲讀取結果
。恚铮觯溃颍,a?;暫存
。恚铮觯,@r1?;將要寫入值給累加器
。颍欤悖?;移出要寫入位
。恚铮觯穑保,cy?;循環寫入
mov@r1,a?;暫存
djnzr7?loop0
。椋睿悖颍
incr1
。洌辏睿颍,loop0
。悖欤颍穑保
ret
。唇Y束語
。粒模裕罚常埃笨捎糜跍y量物體的表面溫度或空氣溫度。由于該器件采用低功耗設計,因此,在利用熱傳導粘結劑將ADT7301粘結到被測物體表面時,測得的溫度與表面實際溫度之差不超過0.1℃。另外,當被測物周圍溫度與被測物表面溫度存在溫度差時,應注意將器件的背面和管腳與周圍空氣隔離開。由于接地引腳提供了管芯最好的熱傳導途徑,因此,管芯溫度與印制電路板的地線溫度最接近,所以應保證該管腳與被測表面良好接觸。
該溫度傳感器不宜長期處于極限工作狀態,當工作在+150℃時,該器件的使用壽命是其工作在+55℃時的5%。當長期工作在電壓和溫度極限時,器件的結構完整性也將會遭到破壞。
【兼容SPI接口的低功耗數字溫度傳感器ADT7301及其接口技術】相關文章:
基于串行外設接口(SPI)的CAN總線隔離擴展設計08-06
數字視頻接口——DVI 1.004-12
嵌入式家庭網關中SPI接口的軟件模擬08-06
PCI總線接口芯片9050及其應用08-06
語音數字記錄儀的電話接口08-06
PCI接口芯片s5935及其應用08-06