數字溫度測控芯片DS1620的應用
摘要:DS1620是一種半導體溫度測控芯片,9位溫度數據值,測溫范圍-55~+125℃,0.5℃分辨率。通過(guò)三線(xiàn)串行接口與CPU連接,可作為熱傳感器使用;用三個(gè)溫控觸發(fā)端控制加熱或制冷裝置,可用作熱繼電器。本文介紹它的功能和使用方法,并給出C51的源程序。
關(guān)鍵詞:DS1620 溫度傳感器 三線(xiàn)串行接口 熱繼電器
引 言
1 概 述
DS1620是Dallas公司推出的數字溫度測控器件。 2.7~ 5.0V供電電壓,測量溫度范圍為-55~+125℃,9位數字量表示溫度值,分辨率為0.5℃。在0~+70℃精確度為0.5℃, -40~0℃和+70~+85℃精確度為1℃,-55~-40℃和+85~ +125℃精確度為2℃。TH和TL寄存器中的溫度報警限設定值存放在非易失性存儲器中,掉電后不會(huì )丟失。通過(guò)三線(xiàn)串行接口,完成溫度值的讀取和TH、TL的設定。
2 引腳功能說(shuō)明
DS1620采用8腳DIP封裝或8腳SOIC封裝。引腳排列如圖1所示,引腳功能說(shuō)明如表1所列。
表1 DS1620引腳功能說(shuō)明
引 腳 | 名 稱(chēng) | 功 能 |
1 | DQ | 三線(xiàn)制的數據輸入/輸出 |
2 | CLK/CONV | 三線(xiàn)制的時(shí)鐘輸入和標準轉換輸入 |
3 | RST | 三線(xiàn)制的復位輸入 |
4 | GND | 地 |
5 | TCOM | 溫度高/低限觸發(fā)輸出 |
6 | TLOW | 溫度低限觸發(fā)輸出 |
7 | THIGH | 溫度高限觸發(fā)輸出 |
8 | VDD | 3~5V電源 |
3 溫度值數據格式
DS1620的溫度值為9位數字量,數據用補碼表示,最低位表示0.5℃。幾個(gè)典型溫度的數字量如表2所列。通過(guò)三線(xiàn)傳送數據時(shí),低位在前,高位在后。DS1620讀出或寫(xiě)入的溫度數據值可以是9位的字(在第9位后將置為低電平),也可以作為兩個(gè)8位字節的16位字。這時(shí)高7位為無(wú)關(guān)位。這種方式在8位單片機中處理是比較方便的。
4 操作和控制
控制/狀態(tài)寄存器用于決定DS1620在不同場(chǎng)合的操作方式,也指示溫度轉換時(shí)的狀態(tài)??刂?狀態(tài)寄存器的定義如下。
DONE | THF | TLF | NVB | 1 | 0 | CPU | 1SHOT |
DONE:溫度轉換完標志?!?”轉換完成,“0”轉換進(jìn)行中。
THF:溫度過(guò)高標志。溫度高于或等于TH寄存器中的設定值時(shí)變?yōu)椤?”。當THF為“1”后,即使溫度降到TH以下,THF值也仍為“1”??梢酝ㄟ^(guò)寫(xiě)入“0”或斷開(kāi)電源來(lái)清除這個(gè)標志。
TLF:溫度過(guò)低標志。溫度低于或等于TL寄存器中的設定值時(shí)變?yōu)椤?”。當TLF為“1”后,即使溫度升高到TL以上,TLF值也仍為“1”??梢酝ㄟ^(guò)寫(xiě)入“0”或斷開(kāi)電源來(lái)清除這個(gè)標志。
NVB:非易失性存儲器忙標志?!?”表示正在向存儲器中寫(xiě)入數據;“0”表示存儲器不忙。寫(xiě)入存儲器要10ms時(shí)間。
CPU:CPU使用標志?!?”表示使用CPU,DS1620和CPU通過(guò)三線(xiàn)制進(jìn)行數據傳輸;“0”表示不使用CPU,當不使用CPU時(shí), 接低電平,CLK/作為轉換控制使用。這一位存放在非易失存儲器中,允許至少 50 000次寫(xiě)操作。
1SHOT:一次突發(fā)模式?!?”時(shí)按轉換協(xié)議進(jìn)行一次轉換;“0”時(shí)連續轉換。這一位存放在非易失性存儲器中,允許至少50 000次寫(xiě)操作。
DS1620有兩種操作模式。
表2 DS1620的幾個(gè)典型溫度和數字量對應關(guān)系
溫度/℃ | 數字輸出(二進(jìn)制) | 數字輸出(十六進(jìn)制) |
+125 | 0 11111010 | 00FAH |
+25 | 0 0011 | 0032H |
+0.5 | 0 0000000 | 0001H |
0 | 0 0000000 | 0000H |
-0.5 | 1 11111111 | 01FFH |
-25 | 1 11001110 | 01CEH |
-55 | 1 1001001 | 0192H |
(1)單獨工作模式
在這種工作模式下,DS1620作為熱繼電器使用,常用連續轉換方式,可在沒(méi)有CPU參與下工作。預先必須寫(xiě)入控制寄存器操作模式和TH、TL寄存器的溫度設定值,CLK/用作轉換開(kāi)始控制端。要注意:這種工作模式下,控制/狀態(tài)寄存器的CPU標志位必須設為“0”。為了使CLK/作轉換控制,必須為低電平。如果CLK/被拉低,且在10ms以?xún)戎酶?,則產(chǎn)生一次轉換;如果CLK/保持低,則DS1620連續進(jìn)行轉換。當CPU為“0”時(shí),轉換由CLK/控制,而不受1SHOT控制位的限制。
DS1620有三個(gè)溫度觸發(fā)控制端。當DS1620的溫度高于或等于TH寄存器設定值時(shí),THIGH輸出為高電平;當溫度低于或等于TL寄存器設定值時(shí),TLOW輸出高電平;當溫度高于TH寄存器設定值時(shí),TCOM輸出為高電平,直到溫度下降到TL寄存器設定值以下時(shí)才會(huì )變?yōu)榈碗娖?。三個(gè)溫度觸發(fā)控制端的輸出特性如圖2所示。
(2)三線(xiàn)串行通信模式
三線(xiàn)制由三個(gè)信號線(xiàn)組成:(復位)、CLK(時(shí)鐘)和DQ(數據)。數據傳輸在由低電平變?yōu)楦唠娖胶箝_(kāi)始。在數據傳輸過(guò)程中,使變?yōu)榈碗娖綍?huì )終止數據傳輸。時(shí)鐘由一序列上升沿和下降沿組成。DS1620輸入、輸出數據時(shí),都必須是上升沿數據有效。讀寫(xiě)數據時(shí)低位在前,高位在后。DS1620的三線(xiàn)制操作時(shí)序如圖3所示。
從時(shí)序圖可知,三線(xiàn)制的操作大部分是命令字在前,數據在后(部分命令后不需要數據)。下面是DS1620的幾個(gè)主要命令字:
開(kāi)始轉換[EEh] 開(kāi)始轉換溫度,后面不需要有其它
數據;
讀溫度[AAh] 讀出最后一次溫度轉換的結果,后
面的9個(gè)脈沖輸出9位溫度值;
讀配置寄存器[0Ch] 命令后的連續8個(gè)脈沖讀出配
置寄存器的內容;
寫(xiě)配置寄存器[ACh] 命令后的連續8個(gè)脈沖寫(xiě)入配
置寄存器新的內容;
寫(xiě)TH寄存器[01h] 命令后的連續9個(gè)脈沖寫(xiě)入TH
寄存器9位溫度高限設定值;
寫(xiě)TL寄存器[02h] 命令后的連續9個(gè)脈沖寫(xiě)入TL
寄存器9位溫度低限設定值;
讀TH寄存器[A1h] 命令后的連續9個(gè)脈沖讀出TH
寄存器9位溫度高限設定值;
讀TL寄存器[A2h] 命令后的連續9個(gè)脈沖讀出TL
寄存器9位溫度低限設定值。
5 應用實(shí)例
5.1 無(wú)CPU參與下的應用
DS1620有三個(gè)溫度觸發(fā)輸出,都可作為溫控端使用,用于控制加熱或制冷裝置。在設置控制/狀態(tài)寄存器以及TH和TL寄存器內容后,DS1620可在脫離CPU的情況下單獨作溫控器使用。圖4是用THIGH作控制的應用實(shí)例。當環(huán)境溫度高于TH寄存器的溫度設定值后,THIGH輸出為高,2N7000導通,啟動(dòng)風(fēng)扇散熱;當環(huán)境溫度低于TH寄存器的設定值后,THIGH輸出為低電平,2N7000截止,風(fēng)扇停轉。
5.2 有CPU參與下的應用
(1)硬件連線(xiàn)
圖5是用AT89C51單片機作CPU來(lái)操作DS1620的。單片機的P1口連接DS1620的三線(xiàn)通信接口:P1.1接DQ,P1.2接CLK/,P1.3接。
(2)程序設計
程序采用C51編制,在KEIL C V6.20下調試通過(guò)。本刊網(wǎng)絡(luò )補充版(http://www.dpj.com.cn)中,給出操作DS1620的幾個(gè)主要子函數。DS1620SetConf(unsigned char val)用于配置控制/狀態(tài)寄存器的內容;用DS1620startConv(void)開(kāi)始進(jìn)行溫度轉換;用DS1620ReadConf(void)返回控制/狀態(tài)寄存器內容;可查尋DONE位來(lái)判斷是否轉換完成,轉換完成后用DS1620read(void)讀出轉換的溫度值。也可采用軟件延時(shí)方式,在開(kāi)始轉換后延時(shí)1s以上,再讀轉換的溫度數據值。
6 小 結
DS1620的外圍接線(xiàn)簡(jiǎn)單,使用靈活。使用時(shí)請注意它的測量范圍及精度能否滿(mǎn)足要求。用作熱繼電器使用時(shí)必須寫(xiě)入控制寄存器操作模式和TH、TL寄存器的溫度設定值。
評論