本文檔介紹了ADI公司(ADI)系列iButton熱時線器件(特別是DS1921、DS1922和DS1925)的演變,并概述了它們的主要區(qū)別和優(yōu)勢。 它還描述了從一臺設(shè)備遷移到另一臺設(shè)備所需的必要軟件更改。
介紹
ADI公司(ADI)硬幣大小的1-Wire溫度時線iButton記錄器系列是堅固耐用的電池供電模塊,可按用戶指定的時間間隔獨立測量和記錄溫度。本文檔介紹了ADI系列iButton熱時線器件(特別是DS1921、DS1922和DS1925)的演變,并概述了它們的主要區(qū)別和優(yōu)勢。它還描述了從一臺設(shè)備遷移到另一臺設(shè)備所需的必要軟件更改。
內(nèi)存特性
半導(dǎo)體行業(yè)中有各種存儲器技術(shù),可提供獨特的性能和功耗優(yōu)勢。存儲器類型包括電可擦除可編程只讀存儲器 (EEPROM)、閃存、靜態(tài)隨機存取存儲器 (SRAM) 等。最終應(yīng)用通常決定哪種內(nèi)存技術(shù)最有益。內(nèi)存選擇的因素包括數(shù)據(jù)是否易失,或者在設(shè)備電源斷開時是否必須保留數(shù)據(jù)。功耗也是一個重要因素,尤其是在設(shè)備由電池供電的情況下。表 1 描述了每個器件的集成內(nèi)存特性。
裝置 | 內(nèi)存類型 | 揮發(fā)性的? |
DS1921 | SRAM | 是的 |
DS1922 | SRAM | 是的 |
DS1925 | 閃光 | 不 |
表1所示,DS1925是唯一具有數(shù)據(jù)記錄存儲器的器件,即使內(nèi)部電池電量耗盡,也可以提取數(shù)據(jù)記錄存儲器。電池電量耗盡后,DS1921和DS1922器件中的數(shù)據(jù)將永久丟失。電池在所有三個設(shè)備中都不可更換。
閃存比SRAM需要更多的編程能力。然而,閃存在電池電量耗盡時保留其數(shù)據(jù)的能力對于某些應(yīng)用來說是一個有吸引力的功能。由于DS1925的存儲器是非易失性的,器件的前端和狀態(tài)機被改變,允許從1-Wire接口收集功率,從而在器件電池電量耗盡時下載數(shù)據(jù)。此電源傳輸要求改變了以前設(shè)備使用的命令集,這些設(shè)備引入了外部電源命令或 XPC。許多DS1925命令都增加了XPC功能,以消除任務(wù)配置和數(shù)據(jù)下載過程中電池的負載。
DS0200和DS1921在存儲器地址1922h處的配置寄存器非常相似,但在兩者之間遷移代碼時需要注意一些差異。從表面上看,DS1925的配置寄存器看起來與其同級寄存器非常相似,但是寄存器位置和解碼存在顯著差異,因此需要更多的代碼遷移工作。
命令集代碼遷移
這三款器件共享通用的1-Wire ROM功能命令(例如,讀取ROM、跳過ROM、匹配ROM等),但DS1921中沒有的恢復(fù)ROM命令除外。因此,從DS1921切換到DS<>的任何一個同級時,ROM功能命令代碼都不會發(fā)生變化。
雖然DS1921和DS1922之間共享許多器件專用命令,但也存在一些重要差異。DS1925的新狀態(tài)機架構(gòu)和寄存器映射定義與前代產(chǎn)品大相徑庭。
表 2 顯示了設(shè)備特定命令之間的交叉兼容性。如表中所示,只有兩個命令完全兼容,無需在所有三個設(shè)備上更改代碼。DS1922和DS1925均引入密碼保護,導(dǎo)致命令字節(jié)排序發(fā)生變化。命令所需的軟件更改如下所示。
DS1921 命令 | DS1922 命令 | DS1925 命令 | 代碼更改? |
寫入 SPAD (0Fh) | 寫入 SPAD (0Fh) | 寫入 SPAD (0Fh) | 不 |
讀取 SPAD (AAh) | 讀取 SPAD (AAh) | 讀取 SPAD (AAh) | 不 |
復(fù)制SPAD(55小時) | 復(fù)制帶PW的SPAD(99小時) | XPC Copy SPAD (99h) | 是的 |
讀取內(nèi)存 (F0h) | 帶 PW + CRC 的讀存儲器(69 小時) | XPC 讀內(nèi)存 (44h) | 是的 |
帶 CRC 的讀存儲器 (A5h) | 帶 PW + CRC 的讀存儲器(69 小時) | XPC 讀內(nèi)存 (44h) | 是的 |
清除內(nèi)存(3通道) | 清除內(nèi)存(帶PW)(96小時) | XPC 清除內(nèi)存 (96h) | 是的 |
轉(zhuǎn)換溫度(44小時) | 強制轉(zhuǎn)換(55小時) | XPC 強制轉(zhuǎn)換 (4Bh) | 是的 |
開始任務(wù) – 無命令 | 開始任務(wù) w/PW (CCh) | XPC啟動任務(wù)(DDh) | 是的 |
停止任務(wù) – 無命令 | 停止任務(wù) w/PW (33h) | XPC停止任務(wù)(BBh) | 是的 |
復(fù)制暫存器
DS1921至DS1922代碼遷移
將命令字節(jié)從 55h 更改為 99h。
主機必須在 ES 字節(jié)之后傳輸 64 位密碼。
復(fù)制時間保持不變,每字節(jié)2μs。
流程的其余部分與DS1921相同。
DS1921至DS1925代碼遷移
將函數(shù)名稱更改為 XPC 復(fù)制暫存器。
將命令字節(jié)從 55h 更改為 99h。
在ROM級命令之后添加XPC命令(66h)并傳輸長度字節(jié)。
在 XPC 命令之后傳輸 XPC 復(fù)制暫存器命令。
按照數(shù)據(jù)資料中的其余流程,與DS1921不同。
DS1922至DS1925代碼遷移
將函數(shù)名稱更改為 XPC 復(fù)制暫存器。
命令字節(jié)沒有變化。
在ROM級命令之后添加XPC命令(66h)并傳輸長度字節(jié)。
在 XPC 命令之后傳輸 XPC 復(fù)制暫存器命令。
按照數(shù)據(jù)資料中的其余流程,與DS1922不同。
讀內(nèi)存
DS1921至DS1922代碼遷移
將命令字節(jié)從 F0h 更改為 69h。
主機必須在目標(biāo)地址之后傳輸 64 位密碼。
必須修改主機的代碼才能在每個頁面的末尾接收CRC16。
DS1921至DS1925代碼遷移
將函數(shù)名稱更改為 XPC 讀取內(nèi)存。
將命令字節(jié)從 F0h 更改為 44h。
在ROM級命令之后添加XPC命令(66h)并傳輸長度字節(jié)。
在 XPC 命令之后傳輸 XPC 讀取內(nèi)存命令。
主機必須在目標(biāo)地址之后傳輸 64 位密碼。
按照數(shù)據(jù)資料中的其余流程,與DS1921不同。
注冊地圖
寄存器頁面既為任務(wù)配置部件(時間、采樣率等),又提供各種項目的狀態(tài),例如警報、樣本計數(shù)等。表 3 顯示了各種項目的寄存器地址空間以及它們?nèi)绾卧谟涗浧飨盗兄羞M行映射。本節(jié)討論表 3 中每個項目所需的代碼遷移。
注冊 | DS1921存儲器地址 | DS1922存儲器地址 | DS1925存儲器地址 |
實時時鐘 | 0200h 至 0206h | 0200h 至 0205h | 0200h 至 0203h |
室控報警 | 0207H至020Ah | - | - |
溫度報警 | 020Bh 至 020Ch | 0208h 至 0209h | 0208h 至 0209h |
采樣率 | 020分 | 0206h 至 0207h | 0206h 至 0207h |
控制 | 020Eh | 各種 | 各種 |
最新溫度 | 0211小時 | 020Ch 至 020Dh | 020Ch 至 020Dh |
任務(wù)開始延遲 | 0212h 至 0213h | 0216h 至 0218h | 0216h 至 0218h |
地位 | 0214小時 | 各種 | 各種 |
任務(wù)時間戳 | 0215h 至 0219h | 0219h 至 021Eh | 0219h 至 021Ch |
任務(wù)樣品計數(shù)器 | 021Ah 至 021Ch | 0220h 至 0222h | 0220h 至 0222h |
設(shè)備采樣計數(shù)器 | 021Dh 至 021Fh | 0223h 至 0225h | 0223h 至 0225h |
味道 | - | 0226小時 | 0226小時 |
讀取訪問密碼 | - | 0228h 至 022Fh | 0228h 至 022Fh |
完全訪問密碼 | - | 0230h 至 0237h | 0230h 至 0237h |
實時時鐘
RTC 寄存器位于兩個設(shè)備的相同地址位置。但是,DS1921在地址0203h處使用星期,而DS1922上不存在該星期,導(dǎo)致地址下移<>。其余寄存器的功能保持不變,因此除了更改目標(biāo)地址外,無需更改代碼。
DS1921至DS1925代碼遷移
雖然DS1925的RTC寄存器位于相同的地址空間中,但解碼卻大不相同。RTC 使用 32 位值,表示自 1 年 1970 月 0204 日午夜以來的秒數(shù)。這被稱為紀(jì)元時間。不使用地址 0205 和 <>h。
DS1922至DS1925代碼遷移
DS1922的代碼遷移與DS1921相同(見上文)。
室控報警
DS1922和DS1925不具備此功能,因此沒有遷移路徑。
溫度報警
DS1921至DS1922代碼遷移
溫度報警方程略有不同;有關(guān)詳細信息,請參閱數(shù)據(jù)手冊。
DS1921至DS1925代碼遷移
溫度報警方程略有不同;有關(guān)詳細信息,請參閱數(shù)據(jù)手冊。
DS1922至DS1925代碼遷移
溫度報警方程略有不同;有關(guān)詳細信息,請參閱數(shù)據(jù)手冊。
采樣率
DS1921至DS1922代碼遷移
DS1921的采樣速率以分鐘為單位,而DS1922的采樣速率低至<>秒。有關(guān)詳細信息,請參閱數(shù)據(jù)手冊。
DS1921至DS1925代碼遷移
DS1925的采樣速率不同,需要更改代碼。有關(guān)詳細信息,請參閱數(shù)據(jù)手冊。
DS1922至DS1925代碼遷移
對于這兩個器件,采樣率的存儲器地址位置相同,并且操作相同。但是,DS1925的采樣速率不應(yīng)超過1925分鐘。DS<>中的閃存比SRAM消耗更多的電流,SRAM需要時間恢復(fù)電池。閃存提供了在電池耗盡時保留其內(nèi)容的能力,但代價是采樣率較慢。
控制寄存器
DS1921至DS1922代碼遷移
DS1921中的控制寄存器提供對表4所示各種特性的訪問。DS1922的一些功能集成在啟動/停止任務(wù)等命令中,而其他功能則位于使用存儲器寫入啟用的各種存儲器地址中。
DS1921 控制寄存器 | DS1922寄存器地址 |
020Eh 位 0:TAS – 定時器報警搜索 | 0215h Bit4: WFTA – 等待溫度報警 |
020Eh 位 1:THS – 高溫報警搜索 | 0214h Bit1: THF – 溫度高報警標(biāo)志 |
020Eh 位 2:TLS – 溫度低報警搜索 | 0214h 位0: TLF – 溫度低報警標(biāo)志 |
020Eh 位 3:RO – 翻轉(zhuǎn)啟用/禁用 | 0213h Bit4: RO – 翻轉(zhuǎn)控制 |
020Eh 位 4:EM – 啟用任務(wù) | 0215h Bit1: MIP – 任務(wù)進行中 |
020Eh 位 5:0 | - |
020Eh 位 6:EMCLR – 使能內(nèi)存清除 | 未實現(xiàn) |
020Eh 位 7:EOSC – 使能振蕩器 | 0212h Bit0: EOSC – 使能振蕩器 |
定時器報警搜索(位 0)
DS1922沒有類似的特性。
高溫報警搜索(位 1)
DS1922的THF標(biāo)志指示溫度是否超過門限。與DS1921一樣,條件搜索ROM可識別報警器件。該標(biāo)志位于DS1寄存器中地址0214h處的第1922位。
低溫報警搜索(位 2)
DS1922的TLF標(biāo)志指示溫度是否降至門限以下。與DS1921一樣,條件搜索ROM可識別報警器件。該標(biāo)志在DS0寄存器中地址0214h處為1922位。
翻轉(zhuǎn)啟用/禁用(位 3)
兩個器件之間的功能相同,只是在DS1922中的寄存器地址位置不同。
啟用任務(wù)(位 4)
DS1921的使能任務(wù)(第4位)直接寫入,DS1922使用啟動/停止任務(wù)命令,而任務(wù)狀態(tài)反映在MIP位(第1位)中。
內(nèi)存清除啟用(位 6)
與DS1921不同,DS1922不需要使能位來清除存儲器。“內(nèi)存清除”命令擦除內(nèi)存,而不使用任何門控位。兩個器件都有一個內(nèi)存清除 (MEMCLR) 狀態(tài)位。它們位于DS3地址0215h的第1922位和DS6地址0214h的第1921位。
使能振蕩器(位 7)
該位控制RTC的晶體振蕩器。每個器件的位在邏輯上是相反的,因此需要更改代碼才能啟用RTC。DS1中的邏輯1921停止振蕩器,同時啟動DS1922中的振蕩器。
DS1921至DS1925代碼遷移
代碼更改與DS1922類似,只是翻轉(zhuǎn)位在DS1925中沒有實現(xiàn)。
DS1921 控制寄存器 | DS1922寄存器地址 |
020Eh 位 0:TAS – 定時器報警搜索 | 0215h Bit4: WFTA – 等待溫度報警 |
020Eh 位 1:THS – 高溫報警搜索 | 0214h Bit1: THF – 溫度高報警標(biāo)志 |
020Eh 位 2:TLS – 溫度低報警搜索 | 0214h 位0: TLF – 溫度低報警標(biāo)志 |
020Eh 位 3:RO – 翻轉(zhuǎn)啟用/禁用 | 未實現(xiàn) |
020Eh 位 4:EM – 啟用任務(wù) | 0215h Bit1: MIP – 任務(wù)進行中 |
020Eh 位 5:0 | - |
020Eh 位 6:EMCLR – 使能內(nèi)存清除 | 未實現(xiàn) |
020Eh 位 7:EOSC – 使能振蕩器 | 0212h Bit0: EOSC – 使能振蕩器 |
DS1922至DS1925代碼遷移
DS1922沒有像DS1921那樣的控制寄存器。對于DS0210和DS0215,該寄存器的功能范圍為1922h至1925h。代碼更改需要使用本文檔前面所述的 XPC 命令來讀取和寫入這些寄存器位置。
最新溫度
DS1921至DS1922代碼遷移
DS1921的最新溫度轉(zhuǎn)換存儲在地址0211h,而DS1922的兩個字節(jié)存儲在地址020Ch和020Dh。代碼更改需要針對新的起始地址以及讀取兩個溫度數(shù)據(jù)字節(jié)而不是一個。此外,代碼應(yīng)詢問任務(wù)控制寄存器中的溫度記錄格式選擇(TLFS)位以確定分辨率,使主機能夠為溫度計算選擇正確的方程。
DS1921至DS1925代碼遷移
DS1925的最新溫度轉(zhuǎn)換結(jié)果跨越兩個字節(jié),地址為020Ch和020Dh。代碼更改需要使用XPC命令,并需要針對新的起始地址以及讀取兩個溫度數(shù)據(jù)字節(jié)而不是一個。此外,代碼應(yīng)詢問任務(wù)控制寄存器中的溫度記錄格式選擇(TLFS)位以確定分辨率,使主機能夠為溫度計算選擇正確的方程。
DS1922至DS1925代碼遷移
兩個設(shè)備的寄存器位置相同。代碼更改需要使用 XPC 命令。
任務(wù)開始延遲
DS1921至DS1922代碼遷移
DS1922的任務(wù)開始延遲計數(shù)器在尺寸和地址位置上有所不同。DS1922的計數(shù)器長度為<>字節(jié),因此讀取、寫入和尋址寄存器位置需要更改代碼。
DS1921至DS1925代碼遷移
DS1925的任務(wù)開始延遲計數(shù)器在尺寸和地址位置上有所不同。DS1925的計數(shù)器長度為<>字節(jié),因此讀取、寫入和尋址寄存器位置需要更改代碼。代碼更改需要使用 XPC 命令。
DS1922至DS1925代碼遷移
兩個設(shè)備的寄存器位置和任務(wù)開始延遲計數(shù)器的操作相同。但是,代碼更改需要使用 XPC 命令。
地位
狀態(tài)寄存器為主機系統(tǒng)提供各種指示器。DS1921將這些標(biāo)志集中于單個寄存器中,而DS1922和DS1925則跨越兩個寄存器。使用表6將DS1921代碼遷移到DS1922和DS1925。DS1921的MIP、TLF、THF和TAF位只能寫入0。所有其他位都是只讀的。表6中的所有位對于DS1922和DS1925均為只讀。從DS1922遷移到DS1925時不需要更改寄存器地址,因為它們保持不變。但是,代碼更改需要使用 XPC 命令。
任務(wù)時間戳
任務(wù)時間戳指示采集第一個任務(wù)樣本的日期和時間。任務(wù)的第一個溫度樣本的時間可以通過將任務(wù)時間戳與任務(wù)開始延遲相加來計算。
計數(shù)器。這三種器件在多個寄存器中的表示方式不同,因此請參閱器件數(shù)據(jù)手冊,了解器件之間的映射以及如何解碼寄存器值。
任務(wù)和設(shè)備樣品計數(shù)器
樣本數(shù)用一個三字節(jié)值表示,表示所有三個器件的 24 位無符號整數(shù);但是,寄存器地址不同(見表3)。
味道
DS0226和DS1922位于地址1925h的規(guī)格字節(jié)表示器件類型(DS1922L、DS1922T等),它們是相同的器件(DS1925除外),但溫度范圍不同。之所以需要該指示器,是因為DS1922x系列器件具有相同的家族代碼,因此彼此無法區(qū)分。DS1921不提供此功能。
讀取和完全訪問密碼
讀取密碼和完全訪問密碼位于DS1922和DS1925的同一地址空間中(表3)。在通過位于地址 0228h 的 EPW 位啟用密碼之前寫入密碼。
結(jié)論
本文檔提供有關(guān)如何將軟件從一個 Thermochron 器件系列遷移到另一個系列的指導(dǎo),而無需花費大量時間參考器件數(shù)據(jù)手冊。
審核編輯:郭婷
-
ADI
+關(guān)注
關(guān)注
144文章
45812瀏覽量
248706 -
存儲器
+關(guān)注
關(guān)注
38文章
7452瀏覽量
163599 -
電池
+關(guān)注
關(guān)注
84文章
10459瀏覽量
128998
發(fā)布評論請先 登錄
相關(guān)推薦
評論