DS1620數字溫度計和恒溫器提供9位溫度讀數,指示器件溫度。該溫度以 0.5°C 為增量表示,提供 0.5°C 分辨率。在0°C至+70°C范圍內,該器件的精度也高達0.5°C。在-40°C至0°C范圍以及+70°C至+85°C范圍內,DS1620的精度在1°C以內。 該器件將溫度范圍進一步擴展至-55°C至-40°C和+85°C至+125°C,精度在2°C以內。
就溫度傳感器而言,這些精度非常好,但在某些情況下,0.5°C的分辨率是不夠的。在絕對溫度不如溫度趨勢那么重要的比例控制系統中,可能需要更高的分辨率。
對DS1620使用一些未記錄的測試模式,用戶可以在DS1620和一些架空軟件上提供0.1°C的分辨率。雖然這不會提高器件的精度,但它可以通過具有更精細的溫度分辨率來更好地控制某些系統。
操作測量溫度
DS1620通過使用板載專有的溫度測量技術來測量溫度。溫度測量電路的框圖如圖1所示。
DS1620通過計算低溫度系數振蕩器在由高溫度系數振蕩器確定的柵極周期內經過的時鐘周期數來測量溫度。計數器預設了對應于-55°C的基數。 如果計數器在柵極周期結束前達到零,則溫度寄存器(也預設為-55°C值)將遞增,表示溫度高于-55°C。
同時,計數器被預設為由斜率累加器電路確定的值。需要該電路來補償振蕩器在整個溫度范圍內的拋物線行為。然后再次計時計數器,直到它達到零。如果門期仍未完成,則重復此過程。
斜率累加器用于補償振蕩器隨溫度變化的非線性行為,從而產生高分辨率的溫度測量值。這是通過更改計數器在溫度中每個增量度數所需的計數數來完成的。因此,為了獲得所需的分辨率,必須知道計數器的值和給定溫度下每攝氏度的計數數(斜率累加器的值)。
在內部,該計算在DS1620內部完成,以提供0.5°C分辨率。注意,DS1620的溫度以1/2°C LSB表示,9位格式如下:
通過讀取溫度并從讀取值截斷0.5°C位(LSB)可以獲得更高的分辨率。此值為 TEMP_READ。然后可以讀取計數器中留下的值。此值是門期結束后剩余的計數 (COUNT_REMAIN)。通過將斜率累加器的值加載到計數寄存器中,可以讀取該值,從而在該溫度下產生每攝氏度(COUNT_PER_C)的計數數。然后,用戶可以使用以下內容計算實際溫度:
圖1.溫度測量電路
使用DS1620獲得0.1°C分辨率
以下步驟描述了從DS1620獲得0.1°C分辨率所需的過程。如果DS1620尚未處于ONESHOT模式,則發送帶有適當寫入數據的WRITE CONFIG協議。有關該協議和模式設置的更多信息,請參見DS1620數據資料。
設置ONESHOT和CPU模式的協議:
0C 03(十六進制)
僅設置單脈沖模式的協議:
0C 01(十六進制)
上面列出的第一種協議通常是使用計算機控制DS1620時所需的模式設置。
向零件發出“開始轉換”命令(EE 十六進制)。
發出READ CONFIG命令(交流十六進制)從DS1620讀取配置寄存器數據。重復此命令,直到寄存器的最高有效位(即 DONE 位)為“1”。這意味著溫度轉換已完成。使用 C 語言命名法對該條件的邏輯描述是:
(config & 0x80) = = 0x80
發出讀取溫度命令,如數據手冊中所述,該命令為 AA 十六進制。從讀取值中截斷 1/2 度位,并將其轉換為有符號整數。修改后的值TEMP_READ。
發出讀取計數器命令,該命令未記錄在數據手冊中。該協議的工作方式與讀取恒溫器設置的協議相同。首先,發送協議,即 A0 十六進制。然后從部件中讀回一個 9 位值。此值為 COUNT_REMAIN。
發出負載斜率命令,該命令也沒有記錄在數據手冊中。該協議為 41 十六進制,不需要讀取或寫入數據。此命令將斜率值加載到計數器中。
再次發出讀取計數器命令,如上面的步驟 5 中所述。讀取的值為 COUNT_PER_C。
使用以下公式計算實際溫度,再次使用 C 命名法:
溫度=TEMP_READ - 0.25
+ (COUNT_PER_C - COUNT_REMAIN) /
COUNT_PER_C
根據需要重復步驟 2 到 8。
審核編輯:郭婷
-
傳感器
+關注
關注
2553文章
51407瀏覽量
756630 -
振蕩器
+關注
關注
28文章
3847瀏覽量
139366 -
計數器
+關注
關注
32文章
2261瀏覽量
94986
發布評論請先 登錄
相關推薦
評論