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