DS1854、DS1857和DS1858監測VCC、環境溫度和外部模擬輸入。本應用筆記解釋了如何解釋存儲在主器件SRAM中的值并將其轉換為溫度和電壓。還介紹了2補體轉換的回顧。
將溫度從二進制轉換為十進制
轉換DS1854/57/58的溫度值的過程首先讀取以字節60h(溫度的MSB)和61h(LSB的溫度)存儲的值。這兩個字節包含最新的溫度讀數。12 個上位被認為是重要的。較低的4位可供讀取,但是通過讀取這些位獲得的分辨率通常沒有用,因為最佳分辨率為0.0586°C。 大多數應用不需要這種分辨率,因為電阻的溫度查找表僅隨每2°C變化而變化。因此,讀取時應用4屏蔽0個較低的位,以避免溫度校準中不斷的微小變化。4個較低位的位權重和掩碼如表1所示。
60小時 (溫度兆字節) | 61小時 (溫度LSB) | ||||||||||||||
S | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 2-1 | 2-2 | 2-3 | 2-4 | 2-5 | 2-6 | 2-7 | 2-8 |
S | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 2-1 | 2-2 | 2-3 | 2-4 | 0 | 0 | 0 | 0 |
最左邊的位是符號位,指示 2 的補碼二進制數是正數還是負數。如果此位為 0,則溫度為正。如果位為 1,則溫度為負。接下來的 11 位包含溫度值,并根據值是正數還是負數以不同的方式轉換為十進制。
正溫度轉換
下面是如何將正溫度值從十六進制轉換為十進制的示例。在此示例中,地址 60h 和 61h 中的值分別讀取為 3Ch 和 50h。組合這兩個字節以獲得 3C50h 的十六進制值(屏蔽下部 4 位后)。接下來,將十六進制數據轉換為二進制。3C50h 的二進制等效值是 0011 1100 0101 0000。由于上位為 0,因此溫度為正。表 2 顯示了從十六進制到二進制的轉換以及低 4 位的屏蔽。
十六進制數據 | 二進制數據 | 屏蔽的二進制數據 |
3C50h | 0011 1100 0101 0000 | 0011 1100 0101 0000 |
由于符號位為 0,因此溫度為正,不需要 2 的補碼變換。因此,可以使用計算器將該值直接轉換為十進制數。二進制數 0011 1100 0101 0000 等于十進制值 15440。十進制值必須除以 256(或乘以 2-8)才能計算出正確的十進制溫度值。將十進制值 15440 除以 256 得到十進制溫度值為 60.3125°C。
負溫度轉換
轉換負溫度值(上位 = 1)稍微復雜一些。例如,如果地址 60h 和 61h 包含數據 D3h 和 60h(較低的 4 位被屏蔽)。第一步是將十六進制值轉換為二進制。表 3 顯示了從十六進制到二進制的轉換以及 4 個低位的屏蔽。
十六進制數據 | 二進制數據 | 屏蔽的二進制數據 |
D360h | 1101 0011 0110 0000 | 1101 0011 0110 0000 |
下一步是獲取掩碼二進制值的 2 補碼。這是通過首先反轉屏蔽的二進制數據,然后將 1 添加到最低有效位來完成的。反轉二進制數 1101 0011 0110 0000 結果為 0010 1100 1001 1111。在最右側位上加 1 會得到二進制數 0010 1100 1010 0000。此二進制數等于十進制數 11424。由于符號位指示溫度為負值,因此轉換后的十進制值除以 -256。因此,十進制值 11424 除以 -256,得出十進制溫度值為 -44.625°C。
替代方法
DS1854/57/58數據資料中描述的另一種方法是將二進制溫度數據轉換為十進制溫度值。將 60 小時和 61 小時內的 MSB 和 LSB 值組合為無符號二進制值。確定此無符號二進制值的十進制值,然后除以 256。如果結果小于 128,則這是溫度的 °C 十進制值。如果該值大于或等于 128,則減去 256 得到溫度的十進制 °C 值。
VCC 翻譯
VCC 值存儲在地址位置 62h 和 63h 中。電壓數據作為無符號的16位值讀取。同樣,雖然所有 16 位都可供讀取,但只有較高的 12 位被認為是重要的。由于VCC轉換所使用的比例因子為100μV,因此12位的分辨率為1.6mV。使用更多位獲得更精細的分辨率會產生不準確的電壓值,因為這些值將低于轉換器的本底噪聲。因此,4 個較低的位被 0 屏蔽。表 4 顯示了 VCC 數據的位權重和 4 個較低位的屏蔽。在屏蔽較低的 4 位的情況下,最大范圍為 65520。將該值乘以100μV的比例因子,得到最大比例電壓值為6.5520V。
62小時(V抄送MSB) | 63小時(V抄送LSB) | ||||||||||||||
215 | 214 | 213 | 212 | 211 | 210 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
215 | 214 | 213 | 212 | 211 | 210 | 29 | 28 | 27 | 26 | 25 | 24 | 0 | 0 | 0 | 0 |
例如,從 62h 和 63h 讀取的值為 D7A0h。將此數字轉換為十進制將導致值為 55200。將該值乘以100μV的比例因子,得到5.520V的標定電壓值。
受監控的模擬輸入 (MON) 轉換
模擬輸入引腳MON1、MON2和DS1858的MON3均為無符號16位數字,采用類似于V的方法進行轉換抄送譯本。與 V 一樣抄送換言之,較低的4位被0屏蔽,因為使用這些位獲得的分辨率會產生不準確的電壓值,因為這些值將低于轉換器的本底噪聲。表5顯示了模擬輸入字節的位權重和4個較低位的屏蔽。在屏蔽較低的4位時,最大范圍為65520,當乘以0.2μV的比例因子時,這意味著電壓范圍為499V至38.147V。
64小時 (月1 毫秒) | 65小時 (月1 LSB) | ||||||||||||||
66小時 (月2 毫秒) | 67小時 (月2 LSB) | ||||||||||||||
68小時(僅 MON3 MSB,僅限 DS1858) | 69小時 (僅 MON3 LSB,僅限 DS1858) | ||||||||||||||
215 | 214 | 213 | 212 | 211 | 210 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
215 | 214 | 213 | 212 | 211 | 210 | 29 | 28 | 27 | 26 | 25 | 24 | 0 | 0 | 0 | 0 |
例如,從兩個地址位置讀取十六進制值 9E70h。用 4 屏蔽 0 個低位后,二進制值確定為 1001 1110 0111 0000。十進制等效項為 40560。將該值乘以比例因子 38.147μV 得到 1.547V 的縮放電壓值。
結論
本應用筆記演示如何將DS1854、DS1857和DS1858中存儲的二進制數據轉換為有用的電壓和溫度值。
審核編輯:郭婷
-
轉換器
+關注
關注
27文章
8639瀏覽量
146897 -
分辨率
+關注
關注
2文章
1051瀏覽量
41888
發布評論請先 登錄
相關推薦
評論