模擬積體電路設計系列部落格——7.1.5 SAR ADC中的錯誤糾正

sasasatori發表於2024-06-14

7.1.5 SAR ADC中的錯誤糾正

片上部件的最佳匹配精度可以達到百分之0.1,但是這對於有著10位元及以上精度的SAR ADC來說仍然不夠,因此需要一種校正手段。其中一種用於獲得16位元線性ADC的錯誤糾正方式如下圖所示[Lee, 1984]:

image

在這種方式中,MSB部分透過二進位制權重電容陣列來實現,例如,這個16位元ADC的高10位元。對於後6位元這透過一個額外的電容和一個被稱為副DAC的電阻串來轉換。儘管這種MSB電容陣列,LSB電阻串的方式本質上並不是單調的,但其可以透過引入第二個電阻串被稱之為校準DAC的電阻串來實現啟動時的自動校驗。

校準的方式是透過測量每個電容的誤差,從最大的電容開始,計算所需的校正項,並將校正項儲存到資料暫存器\(DV_{ei}\)中。在一個常規的逐次逼近操作中,任何時候使用任意一個電容,其誤差可以透過加上儲存在資料暫存器中的值完成抵消,並儲存在累加暫存器中,其包含了所有目前連線到\(V_{ref}\)上的電容校正項之和。對於電阻副DAC來說,不需要測量其校準值,因為其只決定剩下的LSB,精度並不關鍵。

錯誤項從MSB電容\(C_1\)開始檢測,其被連線到地,其他所有的電容被連線到\(V_{ref}\),比較器進行重置。接下來,比較器退出重置模式,所有的電容切換到地,\(C_1\)切換到\(V_{ref}\)。假設\(C_{total}\)為總的電容值,\(C_1\)的理想值為\(C_{total}/2\)。但是在實際上\(C_1\)會偏離這個理想值,換而言之,\(C_1\)可以被寫為:

\[C_1=(C_{total}/2)+\Delta C_1 \tag{7.1.11} \]

其中\(\Delta C_1\)是電容誤差值(可以為正也可以為負)。作為結果,簡化後的模型如下圖(a)所示。此處,剩餘的所有電容之和應當為\((C_{total}/2)-\Delta C_1\)。在這個過程中,如果\(\Delta C_1\)等於零,那麼\(V_x\)會保持為零,然而如果\(\Delta C_1\)不為零,那麼結果電壓\(V_x\)就將是誤差電壓的兩倍,定義為\(V_{e1}\),這個誤差電壓將會在一個逐次逼近過程中\(C_1\)單獨連線到\(V_{ref}\)時被引入。\(V_{e1}\)的數字表示被定義為\(DV_{e1}\),透過校正DAC做逐次逼近來獲得,然後將其除以二來獲得最終的數字校正項\(DV_{e1}\),這個值被儲存在資料暫存器中用於常規轉換。

為了獲得類似的\(C_2\)的校正項\(DV_{e2}\),可以採用下圖中(b)的模型,此處開關\(b_1\)連線到地,比較器重置,\(b_2\)接地,其他開關\(b_{3-N}\)\(S_N\)連線\(V_{ref}\)。隨後\(b_2\)以及\(b_{3-N}\)\(S_N\)開關全部方向(例如,\(b_2\)連線到\(V_{ref}\),其他開關接地)。注意即使\(\Delta C_2\)等於零,測量到的\(V_{x}\)會等於\(-DV_{e1}\),因為\(-\Delta C_1\)被認為是\(C_{3,NB}\)的一部分。因此,僅由\(C_2\)引發的誤差項可以透過數字化\(V_x\)後,再透過數位電路減去偏差量\(DV_{e1}\)獲得,數學上為:

\[DV_{e2}=\frac{1}{2}(DV_{x2}-DV_{e1}) \tag{7.1.12} \]

image

類似的過程可以作用於其他的電容。具體來說,對於\(DV_{xi}\)來說,可以透過在重置時將所有小於\(C_i\)的電容連線到\(V_{ref}\),將\(C_i\)和所有更大的電容連線到地,接著比較器退出重置模式,所有小於\(C_i\)的電容切換到地,\(C_i\)切換到\(V_{ref}\),而所有大於\(C_i\)的電容保持連線在地。\(DV_{xi}\)透過校正DAC進行逐次逼近獲得。\(DV_{ei}\)透過公式:

\[DV_{ei}=\frac{1}{2}(DV_{xi}-\sum_{j=1}^{i-1}DV_{ej}) \tag{7.1.13} \]

來計算,並將第i個碼字存放在資料暫存器中。

在一次常規轉換中,MSB電容陣列進行正常的逐次逼近,然而,合適的矯正電壓透過校正DAC和\(C_{NB}\)電容或加或減。合適的矯正電壓透過使用數字累加器求和所有為1的MSB電容(即連線到\(V_{ref}\))的數字誤差來確定。換而言之,當第i個位元在測試時,\(DV_{ei}\)被加入到驅動校正DAC的數字累加器中。如果第i個位元為零,那麼數字累加器回到其原來的值,否則其保持為新的值。最後,使用副DAC進行正常的逐次逼近操作決定最後的LSB。透過這個過程,每個位元迴圈需要一個數字加法,此外需要一個小的數字RAM(對於10位元MSB來說,需要10 bytes)。

最後,需要注意的是類似的錯誤矯正技術也被用於解決電容的不精確性(例如,[Tan, 1990])。

相關文章