本應用筆記解釋了DS1856的內部校準程序,以及使用該功能如何有益于應用。應用筆記還提供了確定和實現DS1856內部校準和右移特性的步驟。
介紹
DS1856采用內部校準和右移(可擴展動態量程)來增強內置的12位ADC。這使得DS1856具有16位ADC的精度和準確度,而不會增加尺寸和成本。此外,該器件的可編程增益和失調功能可以減少甚至消除對外部信號調理電路的需求。校準后,這些功能將模擬輸入信號轉換為數字值,而無需用戶執行任何操作。
DS1856的功能與DS1859類似,但存儲器映射與DS1852存儲器結構兼容。DS1856的內部校準程序也與DS1859非常相似。(有關DS1859內部校準的示例,請參考應用筆記2858。但是,DS1856具有不同的表分配,以及用于計算失調寄存器值的公式略有不同。
本應用筆記解釋了DS1856的內部校準程序,以及使用該功能如何使應用受益。本文還提供了確定和實現DS1856內部校準和右移特性的步驟。
關于密碼訪問的說明
三個MON輸入的電平和失調值設置位于DS03的表1856中。若要讀取或寫入這些值,需要 2 級密碼訪問 (PW2)。如果使用一個 2 字節 WRITE 命令將 PW7 級別條目的密碼輸入到密碼條目字節(PWE 位于地址 7Bh-4Eh)中,則授予此訪問權限。
DS1856模擬監測器輸入
與DS1859一樣,DS1856具有三個模擬輸入。這些輸入 MON1、MON2 和 MON3 可用于監控發射功率、接收功率和發射偏置等信號。圖1中的框圖顯示了MON輸入的結構。
圖1.DS1856 MON輸入框圖
MON引腳的輸入模塊由模擬和數字部分組成。在模擬部分,單端電壓連接到MON引腳。然后將該電壓發送到刻度模塊,該模塊能夠衰減或對輸入電壓施加增益。設置刻度值可以設置所需的LSB或滿量程電壓。滿量程電壓是在相應的MON寄存器中產生FFF8h值的電壓。通過為每個MON輸入的刻度值設置刻度值,可以控制這些信號的增益,以充分利用ADC。
12 位 ADC 遵循刻度模塊。來自ADC的轉換是左對齊的數字輸出。每個輸出是一個 16 位值,三個 LSB 在內部屏蔽為 0.這允許 ADC 輸出從 0000h 到 FFF8h 的值。
然后,ADC的數字輸出通過可編程失調值進一步調整。正或負失調可以通過數字加法或減法施加到ADC輸出。這些調整仍然被鉗制在0000h和FFF8h的值。
對該信號的最后一次調整是使用右移。右移寄存器存儲一個 3 位值,用于將每個 MON 值從 0 向右移動到 7 個空格。這樣可以更好地利用ADC范圍并提高讀數的準確性。右移是數字值發送到MON寄存器之前對MON信號執行的最后一個功能。
一旦確定了MON信號的數字值,內部警告和報警限值就會將其值與數字MON值進行比較。相應地設置/重置警告和警報標志。
出廠校準DS1856
每款DS1856出廠時均經過校準,當8.2V電壓施加于相應的MON輸入引腳時,在MON寄存器中產生FFF5h。每個MON輸入的失調寄存器設置為零,以便當0V施加到MON引腳時,將讀取該MON輸入的數字輸出0000h。右移寄存器的默認值為 0,因此不會發生右移。
在出廠調整的情況下,DS1856將為4096至0.2V的MON輸入電壓產生5個數字值之一。對于610位轉換,分辨率為2μV (5.4096V/12)。但是,并非所有應用都會使用此范圍,并且可能僅施加0.5V的最大電壓。在這些情況下,只會產生 820 個可能的數字值,剩下 3276 個永遠不會使用的值。雖然分辨率仍為610μV,但12位轉換器的使用效率不高。
為了更好地利用12位轉換器,必須將DS1856 MON值重新校準至0.5V滿量程電壓。為此,除了調整比例和偏移值外,還必須使用右移,如下一節所述。
如何使用DS1856內部校準和右移
內部校準和右移的最佳用途是當MON輸入信號很小(小于2.5V)并且不使用太多的默認ADC范圍時。通過在模擬信號中增加增益,然后在數字域中將該信號分頻,可以保持所需的LSB,并使用更多的ADC范圍。使用這種方法,每個右班次的精度和準確度都會提高兩倍(最多 4 個班次)。四次右移后,數字輸出開始失去精度,但精度不斷提高。
圖2是一個很好的例子,說明如何充分利用內部校準和右移。 第一個圖A顯示了要監控的示例信號。施加于MON輸入的最大電壓為0.5V。圖B顯示了工廠校準的傳遞函數,圖C顯示了使用兩個右移位和設置為0.625V (2.5V/4)的滿量程電壓的傳遞函數。當滿量程電壓為0.625V時,與使用2.5V滿量程電壓相比,將使用更多的數字代碼。由此產生的轉換將是2.5V滿量程電壓的四倍。但是,通過使用右移函數,這些轉換將除以四倍(兩次右移)。
圖2.右移比較。
如圖2中的所有三個圖所示,相同的y軸可以用作比較點。通過所有三個圖繪制的水平線表示施加到該引腳的最大輸入電壓電平。通過比較圖B和C,可以看到右移的好處。圖B顯示了不使用內部校準和右移浪費了多少數字輸出范圍。圖C顯示了如何使用內部校準和右移來恢復損失的范圍并提高信號精度。
確定可能的右移次數
兩個因素決定了可以使用的右移位數。一個因素是滿量程電壓的函數。另一個因素是使用的數字代碼的百分比。如果已知MON信號的最大電壓和滿量程電壓,則可以計算數字輸出值。否則,需要一種試錯法來確定理想的正確班次數。以下步驟詳細介紹了試錯法。
將右移位設置為 0。
在內部校準器件以產生所需的LSB,這將決定初始滿量程電壓。
應用最小和最大輸入信號,然后讀取相應的數字輸出以確定使用的數字代碼范圍。
確定使用的ADC范圍的百分比。如果數字讀數在FFF8h和7FF8h之間,則不應使用右移位,右移次數應設置為0。如果數字讀數在 7FF8h 和 3FF8h 之間,則可以使用一個右移位。如果數字讀數在 3FF8h 和 1FF8h 之間,則可以使用兩個右移位,依此類推。其余范圍請參考DS9數據資料中的表1856。
如果使用右移來更有效地利用ADC范圍,則必須校準增益,以保持所需的LSB(滿量程電壓)。調整后的增益(標度值)使用以下公式計算:新的滿量程電壓=初始滿量程電壓/2#右移。例如,如果上述步驟2的內部校準產生2.0V的滿量程電壓(以獲得所需的LSB),并且數字讀數大于1FF8h但從未超過3FF8h,則將使用兩個右移位。本例的新滿量程電壓為2.0V/22 = 0.5V。
將右移位值設置為 0 時,將 MON 通道校準到新的滿量程電壓。
將正確的移位設置為其新值。
一旦評估確定了特定應用的理想右移位數和滿量程電壓,只需步驟1、6和7即可進行生產校準。
DS1856內部校準和右移寄存器
DS1856寄存器保存校準設置(刻度、偏移和右移)以及每個模擬輸入的數字讀數,總結于表1。顯示每個 MON 通道以及 VCC 的地址。(為完整起見,VCC包含在表中,但本應用筆記中不討論。包括數字轉換的位置以顯示其相對位置。請注意,刻度、偏移和右移寄存器位于DS03的存儲器表1856h中。通過將 03h 寫入表選擇字節 03Fh 來選擇表 7h。由于數字轉換位于內存的下部(0 到 7Fh),因此它們與表選擇字節值無關。
可變資本公司 | 月1 | 月2 | 月3 | |
刻度校準 | 92小時至93小時 | 94小時至95小時 | 96小時至97小時 | 98小時至99小時 |
偏移校準 | A2h 至 A3h | A4h 至 A5h | A6h 至 A7h | A8h 至 A9h |
右移 | 不適用 | 8Eh (B6-B4) | 8Eh (B2-B0) | 8Fh (B6-B4) |
讀數 | 62小時至63小時 | 64小時至65小時 | 66小時至67小時 | 68小時至69小時 |
表 03h |
刻度校準寄存器
刻度校準寄存器是一個雙字節值,用于確定相應 MON 輸入的增益或衰減。這使用戶能夠將滿量程電壓校準到~500mV至6.5535V之間的任何所需值。必須校準刻度校準寄存器,以便對 MON 引腳上的信號施加所需的增益或衰減。該校準程序在DS1856數據資料的“內部校準”部分提供。本應用筆記后面的“如何內部校準”部分將提供更多信息。
校準DS1856時需要注意的是,必須知道失調和右移寄存器的值。否則,如果這些值是某個非零值,并且存儲在刻度校準寄存器中的值不考慮這些偏移和右移值,則器件將無法正確校準。
偏移校準寄存器
DS1856的失調是對ADC產生的轉換值的數字加法或減法。雙字節失調校準值在校準DS1856的刻度(增益)后進行編程。此過程使用偏移校準值來“清零”任何偏移,或為每個監控輸入提供數字輸出范圍偏移。
DS1856數據資料“內部校準”部分的內部失調校準偽代碼顯示了如何確定失調校準以消除失調。以下部分提供了其他信息,以及正偏移和負偏移的示例。
首先,失調校準的計算方法是確定ADC產生的數字轉換應增加或減去多少計數。這通常是通過應用零輸入(例如激光關閉)來完成的,然后在偏移校準寄存器設置為0000h的情況下讀取轉換。從MON寄存器讀取的數字值是從所有轉換中減去的值,此處稱為“計數”。
然后,將所需計數插入DS1856數據資料中給出的公式中,確定需要寫入失調校準寄存器的值,并在下面重復:
偏移校準寄存器 = [計數/4]
以下示例顯示了失調校準應用于ADC數字結果的不同方式。
示例1:如果對MON輸入施加0V并看到計數為200(C8h),則可以使用失調寄存器從A/D轉換中減去200(C8h)以將其歸零。然后,使用上面給出的公式確定要寫入偏移校準寄存器的值:
偏移校準寄存器 = [00C8h/4] = 0032h
因此,值 0032h 是要寫入偏移校準寄存器的值。在這種情況下,正在執行減法,因此滿量程計數 (FFF8h) 也將減少 C8h,從而得到新的滿量程計數 FF30h。
示例 2:在此示例中,我們將整個范圍向上移動 200 個計數。結果是以下等式:
偏移校準寄存器 = [-00C8h/4] = FFCEh
值 FFCEh 將寫入偏移校準寄存器。要計算新的滿量程計數,您需要嘗試將 C8h 添加到 FFF8h。然而,FFF8h是最大可能的讀數,因此滿量程計數將保持FFF8h。
示例 3:計算零偏移的偏移校準值。
偏移校準寄存器 = [0000h/4] = 0000h
這也是偏移校準寄存器的出廠默認設置。
右移寄存器
右移寄存器(表 03h,字節 8Eh-8Fh)比刻度和偏移寄存器更容易理解。由于 MON1 至 MON3 能夠執行多達 1 個右移位,因此每個 MON 輸入需要 2 位。MON03 和 MON8 的設置位于表 3h,字節 03Eh 中。MON8 的設置位于表 1856h, 00Fh 中。有關右移位的位置,請參考DS1856數據資料中的存儲器圖。這些EEPROM寄存器的出廠默認值為<>h,這意味著DS<>器件出廠時沒有使能右移。
為了進一步說明右移的結果,圖3顯示了右移如何影響MON值的幾個示例。
圖3.周一注冊右移示例。
如何進行內部校準
雖然有幾種方法可以進行內部校準,但本應用筆記重點介紹DS1856數據資料中描述的二進制搜索方法。偽代碼算法的輸出是標度(增益)和失調寄存器值,產生所需的傳遞函數(所需的LSB)。
要使用偽碼算法,必須將激光設置為兩種不同的強度。一個設置是最小強度設置,另一個是最大強度的 90%。必須在兩個設置之間來回切換的功能可用。對于非光學應用,必須對MON輸入施加兩種不同的電壓。數據手冊中提供的算法使用最大可能輸入電壓的90%,因此上限箝位的可能性較小。但是,當使用所需滿量程的百分比作為最大值時,計算數字值的相應百分比也很重要。
該算法首先將偏移和右移寄存器設置為 0000h。接下來,通過將刻度校準寄存器設置為半刻度 8000h 來啟動對刻度(增益)值的二叉搜索。然后,通過將90%最大輸入施加到要校準的MON通道,然后讀取相應的數字轉換來測試增益。此值稱為 Meas2。檢查 Meas2 是否在 FFF8h 處被鉗位。如果讀數被箝位,則無法斷定轉換是否實際上是FFF8h,或者是否大于FFF8h,而只是箝位到FFF90h。由于結果太高,二叉搜索的下一步是將增益值減半;再次施加<>%最大輸入以檢查箝位。該過程重復,直到找到非鉗位增益值。
一旦找到非鉗位Meas2,算法就會通過強制零輸入并讀取其數字轉換值來繼續。此值變為 Meas1。值CNT1(零點/LSB)和CNT2(滿量程值/LSB的90%)是計算出的期望轉換輸出值。使用算法開始時計算的常數計算 Meas2 和 Meas1 之間的增量并將其與所需的增量 (CNT2 - CNT1) 進行比較。如果 Meas2 - Meas1 小于 CNT2 - CNT1,則增益再次減半。但是,如果Meas2 - Meas1大于CNT2 - CNT1,則通過將增益減少一半并將其添加到當前增益值中來增加增益。該過程將重復,直到總共執行 16 次迭代。得到的結果是一個16位值,產生所需的增益(和所需的LSB)。
還有另一種可視化增益校準過程的方法。從 15 位刻度校準寄存器的 MSB (b16) 開始,將該位設置為 1(所有其他位最初設置為 0)。當MSB = 1時,執行施加模擬輸入和讀取數字輸出的過程。如果數字輸出被箝位,則增益過高,MSB寫回0。否則,MSB 仍然是 1.MSB 現在已知。接下來,將 b15 設置為已確定的內容,將 b14 設置為 1,并將 b13 到 b0 設置為 0。再次執行該過程以確定增益是否仍然過高。如果是這樣,則 b14 變為 0。否則,它將變為 1。該過程一直持續到確定所有 16 位。結果再次是一個16位值,產生所需的增益。
一旦確定了所需的增益,就可以校準新的偏移,或者將其保持在0000h(無偏移)。校準方法取決于如何使用偏移特征。數據手冊中算法附帶的說明假設用戶希望應用負偏移來使數字讀數為零,因此MON引腳上的零輸入將在數字輸出上產生所有零。這是通過在校準的MON輸入上應用零輸入并讀取轉換來實現的。例如,如果零輸入產生20h的數字輸出,則可以對失調進行編程,以便從每次轉換中以數字方式減去20h。在本例中,將20h代入失調公式,然后將結果編程到所需MON通道的失調校準寄存器中。
內部校準和右移示例
這里提供的另一個示例演示了本應用筆記中介紹的概念。在此示例中,MON3用于監視RxPower。當施加-40dBm的最小輸入時,DS10的MON3引腳得到1856mV的電壓。該輸入所需的數字輸出為0000h。當施加0dBm信號時,MON300上存在3mV。在這種情況下,所需的數字輸出為2710h,選擇以滿足SFF-8472規定的LSB。(RxPower 的 LSB 為 0.1μW。
下一步是確定理想的右班次數。由于所需數字輸出的范圍為0000h至2710h,DS9數據資料的表1856可用于選擇理想的右移位數,在本例中為2。
為了在兩次右移后實現2710h的最終數字輸出,我們必須設置Scale Cal值,使300mV輸入在發生右移之前產生9C40h(2710h乘以22)的轉換。因此,內部校準將用于計算增益,以便ADC在9mV輸入時產生至40C300h的轉換。一旦失調的內部校準和編程完成,將啟用兩個右移。表 2 總結了我們的示例。
客戶信號接收功率 (dBm) | 施加于 MON3 引腳的電壓 (mV) | 校準期間的數字輸出(0 右移) | 最終數字輸出(兩個右移) |
-40 | 10 | 0000小時 | 0000小時 |
50 | 0563小時 | ||
100 | 0C1Fh | ||
150 | 12分貝 | ||
200 | 1997小時 | ||
250 | 2051小時 | ||
0 | 300 | 9C40h | 2710小時 |
一旦確定了輸入和輸出之間的關系(如表2所示),DS1856數據資料中提供的內部校準程序用于內部校準器件。例程首先執行一些初步計算,如下所示。請注意,此處不使用數據手冊例程中顯示的90%,因為第二個校準點(300mV = 9C40h)已經小于滿量程值的90%。因此,本例中使用的內部校準例程刪除了對90%的所有引用。
給定表 2,進行以下計算:
LSB = (0.300V - 0.010V)/(9C40h - 0000h) = 0.290V/40,000 = 7.25μV 滿量程電壓 = FS = LSB x 65535 = 7.25μV x 65535 = 0.475128V
CNT1 = 0.010/LSB = 1379.3 => 1379 (十進制程) CNT2 = 0.300/LSB = 41379.31 => 41379 (十進制程)
CNT1 和 CNT2 是應用兩個校準點時的預期(所需)數字輸出。內部校準程序將導致斜率盡可能接近由這兩者確定的斜率 值。
例程的迭代部分以二叉搜索方式對斜率進行編程的 16 個周期,然后進行比較以查看它是否等效于所需的斜率。本例采用內部校準程序對DS1856進行校準,所有16次迭代的輸入和輸出如表3所示。
表 3 的第一列“迭代”等效于例程中的 n。列gain_result是每次迭代編程到刻度校準寄存器(設備表 03h,字節 98-99h)中的值。Meas2和Meas1列是從器件讀取的數字值,分別施加300mV和10mV輸入。最后,對于Meas2沒有鉗位的迭代,將Meas2 - Meas1與CNT2 -CNT1進行比較。如果 Meas2 - Meas1 大于 CNT2 - CNT1,則gain_result太大。對應于該迭代的 Scale Cal 位變為零,這反過來決定了連續迭代的gain_result。完成所有 16 次迭代后,即可知道 Scale Cal 值。此示例中使用的設備導致刻度校準值為 5038h。
迭 代 | gain_result | 測量2 | 測量1 | 測量2 | 測量1 | 測量2-測量1 | 碳化鈉2-碳化碳化合物1 | 位結果 | 刻度校準 |
---|---|---|---|---|---|---|---|---|---|
(12月) | (十六進制) |
(十六進制) |
(12月) | (12月) | (12月) | (垃圾桶) | (十六進制) | ||
15 | 8000 | FD58 | 0870 | 64856 | 2160 | 62696 | 40000 | 0 | 5 |
14 | 4000 | S2A0 | 0450 | 33440 | 1104 | 32336 | 40000 | 1 | |
13 | 6000 | 貨號 C010 | 0658 | 49168 | 1624 | 47544 | 40000 | 0 | |
12 | 5000 | A138 | 0558 | 41272 | 1368 | 39904 | 40000 | 1 | |
11 | 5800 | B0BS | 0500 | 45240 | 1280 | 43960 | 40000 | 0 | 0 |
10 | 5400 | A938 | 05A0 | 43320 | 1440 | 41880 | 40000 | 0 | |
9 | 5200 | 空客A530 | 0578 | 42288 | 1400 | 40888 | 40000 | 0 | |
8 | 5100 | 空客A328 | 0568 | 41768 | 1384 | 40384 | 40000 | 0 | |
7 | 5080 | 空客A238 | 0568 | 41528 | 1384 | 40144 | 40000 | 0 | 3 |
6 | 5040 | A1A8 | 0560 | 41384 | 1376 | 40008 | 40000 | 0 | |
5 | 5020 | 空客A170 | 0558 | 41328 | 1368 | 39960 | 40000 | 1 | |
4 | 5030 | 空客A190 | 0558 | 41360 | 1368 | 39992 | 40000 | 1 | |
3 | 5038 | A198 | 0558 | 41368 | 1368 | 40000 | 40000 | 1 | 8 |
2 | 503C | A1A0 | 0558 | 41376 | 1368 | 40008 | 40000 | 0 | |
1 | 503A | A1A0 | 0558 | 41376 | 1368 | 40008 | 40000 | 0 | |
0 | 5039 | A1A0 | 0558 | 41376 | 1368 | 40008 | 40000 | 0 |
將器件編程為其新的刻度校準值時,偏移校準通過強制 10mV(我們想要讀取 0000h 的電壓)并讀取數字結果來確定。本例中使用的器件在施加0558mV時產生的值為10h。使用偏移公式,偏移校準計算公式為:
MON3 偏移校準 = [0558h/4] = 0156h
值 0156h 將寫入 MON3 偏移校準寄存器字節。
新的鉗位值可以計算如下:
新鉗位值(右移前)= FFF8h - 0558h = FAA0h
內部校準完成后,通過將20h寫入表03h,位置8Fh來啟用兩個右移。
結論
DS1856的內部校準和右移功能提供了最大的靈活性,使DS1856適合各種應用。本應用筆記提供了DS1856數據資料中沒有的其他信息,特別是為什么內部校準和右移是有益的,以及如何實現它們。還提供了一個例子來將這些概念聯系在一起。
審核編輯:郭婷
-
寄存器
+關注
關注
31文章
5363瀏覽量
120939 -
存儲器
+關注
關注
38文章
7528瀏覽量
164187 -
adc
+關注
關注
99文章
6533瀏覽量
545452
發布評論請先 登錄
相關推薦
評論