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