溫度感測器ADT7301中文資料
1 概述
ADT7301是一個完整的溫度監測系統,有SOT-32和MSOP兩種封裝形式。在晶元內部集成了一個用於溫度監測的帶隙溫度感測器和一個13位AD轉換器,其最小溫度解析度為0.03125°C。ADT7301帶有一個非常靈活的串列介面,可非常容易地與大多數微控制器介面;而且該介面還可與SPITM、QSPI及MICROWIRETM協議及DSP介面兼容,通過串口控制可使器件處於待機模式。ADT7301的寬供電電源範圍、低供電電流及與SPI兼容的介面使得該器件非常適合於個人計算機、辦公設備及家電設備等各種領域。
ADT7301功能特性如下:
●供電電源+2.7V~+5.5V;
●內含13位數字溫度感測器;
●測溫精度為±0.5℃;
●具有0.03125℃溫度解析度;
●工作電流典型值為1μA;
●帶有SPI及DSP兼容的串列介面;
●工作溫度範圍寬達-40~+150℃;
●採用節省空間的SOT-23和MSOP封裝。
2 內部結構與管腳說明
2.1 管腳描述
ADT7301模塊的內部結構如圖1所示。該器件具有6腳SOT-23和8腳MOSP兩種封裝形式,各引腳的功能如下:
GND:模擬地和數字地;
DIN:串列數據輸入口。裝入晶元控制寄存器的數據可在時鐘SCLK上升沿通過該管腳串列輸入;
VDD:供電電源正輸入端。 供電電源範圍為:+2.7V~+5.5V;
SCLK:與串列埠對應的串列時鐘輸入;
CS:片選輸入,低電平有效;
DOUT:串列數據輸出埠。溫度值在串列時鐘SCLK的下降沿通過該管腳串列輸出。
ADT7301的串列介面由CS、SCLK、DIN及DOUT四線構成。將CS和DIN接地可使該介面工作於兩線模式,在這種模式下,該介面只能通過DOUT來讀取數據寄存器中的值。推薦使用CS埠,這樣有利於ADT7301與其主控器件之間同步。DIN埠用於寫控制寄存器,也可使晶元處於節電模式。使用時,在電源和地線之間應加一個0.1μF的去耦電容。
圖2
2.2 工作過程與應用時序
ADT7301內部集成有晶體振蕩器,所以工作時只需在串口接入時鐘,而不需再提供A/D轉換時鐘。該晶元具有兩種工作模式,即正常工作模式和節電工作模式。在正常工作模式,內部時鐘振蕩器將驅動自動轉換時序,從而使晶元每秒鐘對模擬電路上電一次,以進行一次溫度轉換。完成一次溫度轉換一般需800μs,轉換結束后,晶元的模擬電路自動斷電,並在1秒鐘后自動上電。因此,在溫度值寄存器中總可以得到最新的溫度轉換值。
通過設置ADT7301控制寄存器可將其設置為節電模式。在節電模式下,片內振蕩器被關閉,ADT7301不進行溫度轉換,直到恢復到正常工作模式。可向控制寄存器中寫零使其恢復到正常工作模式。在進入節電模式前?其溫度轉換結果即使在進入節電模式后仍可被正確讀取。
在正常轉換模式下,執行讀/寫操作時,其內部振蕩器可在讀寫操作結束后自動複位,以使溫度轉換器能夠重新進行溫度轉換。若在ADT7301進行溫度轉換過程中執行讀寫操作?則會使其自動停止轉換,並在串列通訊結束后又重新開始,而讀取的溫度值是前一次的轉換結果。ADT7301執行讀/寫操作時的時序如圖2所示。
當片選埠CS為低時,SCLK時鐘輸入有效,而在執行讀操作后,系統會將2位零標誌位、1位符號位和13位的數據位在16個時鐘脈衝下降沿從溫度值寄存器中取出。如果CS持續為低的時間超過16個SCLK時鐘周期,ADT7301將循環輸出2位零標誌位加14位數值位。而一旦CS變為高電平,DOUT輸出端將處於高阻狀態?此時輸出數據將在SCLK的下降沿被鎖存在DOUT線上。
ADT7301的寫操作與讀操作可同步進行。當寫數據流中的第三位寫1而其餘位為0時, ADT7301進入節電模式;寫數據流全為0時,為正常工作模式。在正常工作模式?數據在第16個SCLK的上升沿被裝入控制寄存器並立刻起作用。若CS在第16個SCLK上升沿之前變為高電平,那麼,控制寄存器中的數據將不會被裝入,但此時工作模式不變。
2.3 溫度值編碼
溫度值寄存器是一個14位的只讀寄存器,用於存儲ADC的13位二進位補碼加1位符號位的溫度轉換結果(最高位為符號位)。理論上,ADC測量的溫度範圍可達255℃,實際上,內部溫度感測器能確保的溫度範圍為-40℃~ +150℃。溫度數據格式如表1所列。
表1 溫度寄存器數據格式
溫度值(℃) | 數據輸出DB13DB0 |
-40 | 11,1011 0000 0000 |
-30 | 11,1100 0100 0000 |
-25 | 11,1100 1110 0000 |
-10 | 11,1110 1100 0000 |
-0.3125 | 11,1111 1111 1111 |
0 | 00,0000 0000 0000 |
+0.3125 | 00,0000 0000 0001 |
+10 | 00,0001 0100 0000 |
+25 | 00,0011 0010 0000 |
+50 | 00,0110 0100 0000 |
+75 | 00,1001 0110 0000 |
+100 | 00,1100 1000 0000 |
+125 | 00,1111 1010 0000 |
+150 | 01,0010 1100 0000 |
其溫度轉換公式如下:
正溫度值=ADC轉換結果代碼(d)/32;
負溫度值=(ADC轉換結果代碼(d)-16384)/32(使用符號位);
負溫度值=(ADC轉換結果代碼(d)-8192)/32(不使用符號位)。
3 應用電路
3.1 ADT7301與單片機的串列介面電路
圖3為ADT7301與單片機的串列通訊介面電路,該介面方式具有轉換速度快的優點,但不能被設置成節電工作模式。
這裡應注意的是:由於在單片機串列通訊中是先低后高,而ADT7301在向外串列輸出溫度值時是先高后低,所以要先進行高低位互換?然後再進行處理,具體處理程序這裡不再給出。下面是ADT7301與8051單片機進行串列介面的軟體編程:
;*****主程序*****
main:
call receive ?;讀取溫度值子程序
call dispose ?;讀取結果處理子程序
sjmp $
;###串列通訊子程序###
receive: setb p1.3
mov scon,#11h ?;選擇串列口為方式0接收
mov r7,#2 ;位元組計數
mov r0,#30h ;指向溫度值緩衝區
clr p1.3 ;選通ADT7301
clr ri ?;清接收中斷標誌,準備接收
loop: jnb ri,$
mov a,sbuf
mov @r0,a
inc r0
clr ri
djnz r7,loop
setb p1.3
ret
3.2 ADT7301與單片機的全雙工通訊介面
通過ADT7301與單片機的全雙工通訊介面可以使ADT7301工作在節電模式。圖4是ADT7301與8051單片機進行全雙工通訊介面連接圖。相應的軟體編程如下。
?###全雙工通訊子程序###
setb p1.3
mov r0,#30h ?;讀溫度值緩衝器?30h31h?
mov r1,#32h ?;控制寄存器寫入值(32h33h)
mov r6,#08h ?;循環移位計數
mov r7,#02h ? ;位元組計數
clr p1.3 ? ;選通
loop0:
setb p1.0 ?;控制p1.0產生下降沿
clr p1.0 ?;準備讀取數據
mov cy,p1.1 ?;讀值
mov a,@r0 ?;將上次結果重裝入
rlc a ?;移位存儲讀取結果
mov @r0,a ?;暫存
mov a,@r1 ?;將要寫入值給累加器
rlc a ?;移出要寫入位
mov p1.2,cy ?;循環寫入
mov @r1,a ?;暫存
djnz r7?loop0
inc r0
inc r1
djnz r7,loop0
clr p1.3
ret
4 結束語
ADT7301可用於測量物體的表面溫度或空氣溫度。由於該器件採用低功耗設計,因此,在利用熱傳導粘結劑將ADT7301粘結到被測物體表面時,測得的溫度與表面實際溫度之差不超過0.1℃。另外,當被測物周圍溫度與被測物表面溫度存在溫度差時,應注意將器件的背面和管腳與周圍空氣隔離開。由於接地引腳提供了管芯最好的熱傳導途徑,因此,管芯溫度與印製電路板的地線溫度最接近,所以應保證該管腳與被測表面良好接觸。
該溫度感測器不宜長期處於極限工作狀態,當工作在+150℃時,該器件的使用壽命是其工作在+55℃時的5%。當長期工作在電壓和溫度極限時,器件的結構完整性也將會遭到破壞。
[admin via 研發互助社區 ] 溫度感測器ADT7301中文資料已經有2329次圍觀
http://cocdig.com/docs/show-post-37891.html