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