
1. 項目概述為什么從SAR ADC開始在模擬信號和數字信號之間架起橋梁是電子系統設計的核心任務之一而模數轉換器ADC就是這座橋梁的基石。ADC的種類繁多從高速的Flash型到高精度的Sigma-Delta型各有各的戰場。但如果你問我哪種ADC結構最能體現模擬與數字設計的精妙平衡同時又是初學者理解ADC原理的最佳切入點我會毫不猶豫地推薦逐次逼近型ADC也就是SAR ADC。SAR ADC就像一個精明的“猜數字”游戲玩家。它面對一個未知的模擬電壓通過一套嚴謹的“二分法”邏輯用一串已知的電壓砝碼去試探、比較最終用一串二進制代碼精確地“描述”出這個電壓值。這個過程完美融合了模擬電路中的比較器、開關電容陣列以及數字電路中的邏輯控制和時序。對于硬件工程師尤其是剛入行的朋友來說吃透SAR ADC就等于拿到了理解整個數據轉換器世界的鑰匙。它結構相對清晰原理直觀但其中涉及的采樣保持、電容失配、開關時序、噪聲分析等細節又足以讓你深入模擬設計的殿堂。這個系列筆記就是我結合多年項目踩坑經驗對SAR ADC從原理到實踐的一次系統性梳理希望能幫你繞過那些我當年摔過的跤。2. SAR ADC的核心原理與架構拆解2.1 二分搜索SAR ADC的算法靈魂SAR ADC的核心算法是二分搜索或者叫逐次逼近寄存器算法。我們可以用一個經典的“天平稱重”實驗來類比。假設你有一個最大量程為1V的天平ADC量程和一個1V的未知重物輸入模擬電壓Vin。你手頭有一套二進制權重的砝碼512mV、256mV、128mV、64mV、32mV、16mV、8mV、4mV、2mV、1mV對應一個10位ADC。轉換過程開始第一次比較放上最大的512mV砝碼。如果天平顯示砝碼這邊輕了Vin 512mV說明未知重物比512mV重那么我們就保留這個512mV砝碼并在心里記下最高位數字“1”。如果砝碼這邊重了Vin 512mV說明未知重物比512mV輕我們就拿走這個砝碼記下“0”。第二次比較在第一次操作的基礎上加上下一個256mV的砝碼。再次比較如果Vin 當前累計砝碼重量則保留256mV砝碼對應位記“1”否則拿走記“0”。重復此過程依次對128mV、64mV……直到1mV的砝碼進行相同的“試探-比較-決策”操作。經過10次比較后我們保留的砝碼組合總重量將無限逼近那個1V的未知重物。而這一系列“保留/拿走”的決策結果1或0就組成了最終代表Vin的10位二進制數字碼。這個過程是確定性的對于N位ADC只需要N個時鐘周期就能完成一次轉換速度可預測。注意這個“二分”是對于電壓范圍的二分而不是對數字碼的二分。每次比較都將剩余的不確定電壓范圍縮小一半。2.2 核心模塊解剖一個典型的SAR ADC由哪些部分組成理解了算法我們來看硬件如何實現它。一個最基本的SAR ADC包含以下三個核心模塊它們協同工作完成了從模擬到數字的魔術。1. 采樣保持電路這是ADC的“快門”。模擬信號是連續變化的而ADC轉換需要在一個穩定的電壓值上進行。采樣保持電路的任務就是在某個精確的時刻采樣時鐘邊沿“咔嚓”一下捕捉到輸入電壓的瞬時值并將其“保持”在一個電容上在后續整個轉換周期內供比較器穩定地使用。它的性能直接決定了ADC能處理多高頻率的信號采樣率以及精度采樣精度。2. 比較器這是ADC的“裁判”。它的任務非常簡單卻至關重要比較兩個輸入電壓的大小并輸出一個數字判決通常是高電平或低電平代表1或0。在SAR ADC中它比較的是被保持的輸入電壓Vin和內部DAC產生的猜測電壓VDAC。比較器的速度決定了ADC能達到的最高轉換速率而它的精度失調電壓、噪聲則深刻影響著ADC的整體線性度和有效位數。3. 數模轉換器與逐次逼近邏輯控制這是ADC的“大腦”和“執行手臂”。數模轉換器DAC根據數字控制邏輯的指令產生那個用于比較的猜測電壓VDAC。逐次逼近邏輯控制則嚴格遵循二分搜索算法它從最高位開始根據比較器的輸出結果設置對應DAC位的數字碼1或0然后移動到下一位直到最低位完成。最終這個邏輯控制模塊鎖存的數字碼就是轉換結果。其中DAC的實現方式決定了SAR ADC的很多特性。最常見的是電荷再分配型開關電容DAC它巧妙地利用電容陣列和開關同時實現了采樣保持和數模轉換兩個功能是SAR ADC的主流選擇也是我們后面需要重點剖析的對象。3. 電荷再分配型SAR ADC的詳細工作流程電荷再分配結構是SAR ADC的經典實現它優雅地將采樣、保持和數模轉換功能集成在一個電容陣列中。我們以一個簡單的3位ADC為例來一步步拆解它的工作過程。假設量程為Vref電容陣列由4C 2C 1C三個二進制權重電容和一個與它們等值的“冗余”或“底板”電容C組成總電容為8C。3.1 采樣階段在采樣階段所有電容的上極板頂板通過一個開關連接到比較器的輸入節點我們通常將這個節點初始化為一個共模電壓Vcm例如Vref/2。同時所有電容的下極板底板連接到輸入信號Vin。操作閉合采樣開關所有電容的下極板接Vin上極板接Vcm。物理過程電容開始充電。每個電容存儲的電荷為 Q C_i * (Vcm - Vin)。總存儲電荷 Q_total ΣC_i * (Vcm - Vin) 8C * (Vcm - Vin)。目的將輸入電壓Vin以電荷的形式“存儲”在電容陣列中。此時比較器不工作。3.2 保持階段采樣階段結束進入保持階段。此時輸入信號與電容陣列斷開。操作斷開采樣開關。所有電容的下極板從Vin斷開并全部連接到地GND。電容的上極板頂板保持浮空狀態連接到比較器的輸入端我們稱這個節點電壓為Vx。物理過程根據電荷守恒原理電容陣列存儲的總電荷在采樣前后必須相等。采樣結束時總電荷為 Q_total 8C * (Vcm - Vin)。在保持階段所有下極板接地0V因此每個電容兩端的電壓變為 (Vx - 0) Vx。此時總電荷為 Q_total‘ ΣC_i * Vx 8C * Vx。推導由 Q_total Q_total‘得到 8C * (Vcm - Vin) 8C * Vx。因此Vx Vcm - Vin。目的將輸入電壓信息Vin轉化為比較器輸入節點Vx的電壓。注意此時Vx是一個相對于Vcm的差值為后續的二分比較做好了準備。3.3 逐次逼近轉換階段這是最精彩的二分搜索硬件實現。我們從最高位MSB對應4C電容開始。第一次比較MSB決策操作將最大電容4C的下極板從地切換到參考電壓Vref。其他電容2C 1C C的下極板保持接地。物理過程根據電荷守恒節點Vx的電壓會發生變化。切換后總電荷仍為 8C * (Vcm - Vin)。但現在4C電容兩端的電壓為 (Vx - Vref)其他電容兩端電壓為 (Vx - 0)。電荷方程變為8C * (Vcm - Vin) 4C * (Vx - Vref) 2C * (Vx - 0) 1C * (Vx - 0) 1C * (Vx - 0)簡化得8C * (Vcm - Vin) 8C * Vx - 4C * Vref解得Vx Vcm - Vin (Vref/2)比較與決策比較器比較此時的Vx和Vcm注意比較器的另一端通常接Vcm。即比較(Vcm - Vin Vref/2)和Vcm等價于比較(Vref/2)和Vin。如果 Vin Vref/2 則 Vx Vcm 比較器輸出0。這意味著輸入電壓大于量程的一半MSB應為1。但注意在電荷再分配邏輯中如果比較器輸出0我們保持這個電容接Vref即該位為1。如果 Vin Vref/2 則 Vx Vcm 比較器輸出1。這意味著MSB應為0。此時我們需要將4C電容的底板切換回地即該位為0。結果根據比較器輸出決定MSB是1電容接Vref還是0電容接地。第二次比較中間位決策操作在MSB決策后的狀態下將下一個電容2C的下極板從地切換到Vref。物理過程再次應用電荷守恒。假設MSB決策后為14C接Vref那么此時電荷方程為8C * (Vcm - Vin) 4C * (Vx - Vref) 2C * (Vx - Vref) 1C * (Vx - 0) 1C * (Vx - 0)解得Vx Vcm - Vin (4C*Vref 2C*Vref) / 8C Vcm - Vin (3/4)Vref比較與決策比較器再次比較Vx和Vcm。這等價于比較Vin和(3/4)Vref如果MSB1或其他值。根據結果決定是否保留2C電容接Vref該位為1或切回地該位為0。第三次比較LSB決策重復上述過程對1C電容進行操作。經過三次比較后電容陣列的底板連接狀態Vref或GND就唯一確定了并且使得最終的Vx無限逼近Vcm。此時電容底板連接狀態對應的二進制碼接Vref為1接地為0就是最終的ADC輸出碼。實操心得理解這個過程的關鍵是牢牢抓住電荷守恒。在每次開關動作前后浮空節點Vx上的總電荷量是不變的忽略泄漏。列出開關動作前后的電荷方程就能準確計算出Vx的變化從而理解比較器是在對Vin和哪個電壓閾值進行比較。自己動手推導一遍3位或4位的情況勝過看十遍文檔。4. SAR ADC的關鍵性能參數與非理想因素分析設計或選用一個SAR ADC不能只看位數和速度。以下幾個核心參數和背后的非理想因素才是決定系統性能的關鍵。4.1 核心性能參數解讀分辨率通常用位數N表示如10位、12位、16位。它決定了ADC能區分的最小電壓變化即1 LSB Vref / (2^N)。但分辨率不等于精度。采樣率ADC每秒能完成多少次完整的采樣-轉換操作單位是SPS。SAR ADC的采樣率上限主要受限于比較器的建立時間、邏輯電路的延遲以及電容陣列的開關切換速度。信噪比衡量ADC輸出信號中有用信號功率與噪聲功率的比值。一個理想的N位ADC其理論信噪比約為SNR 6.02N 1.76 dB。實際值往往低于此值差值體現了ADC引入的額外噪聲。有效位數這是一個更實際的指標它告訴你這個ADC在實際表現上相當于一個多少位的理想ADC。ENOB (SNR_measured - 1.76) / 6.02。一個標稱16位的ADCENOB可能只有14位這很常見。積分非線性與微分非線性INLADC實際傳輸特性曲線與一條理想直線連接零點與滿量程點的最大偏差單位是LSB。它反映了ADC整體的線性度主要由DAC電容的匹配誤差決定。DNLADC實際碼寬與理想1 LSB碼寬的差值單位是LSB。DNL 1 LSB可能導致失碼即某些數字碼永遠不會出現這是ADC的嚴重缺陷。4.2 主要非理想因素及其影響電容失配這是限制高精度SAR ADC如14位性能的首要因素。在制造過程中電容陣列中單位電容的實際值會存在隨機偏差。這種失配會導致DAC產生的電壓階躍不精確直接引起INL和DNL誤差。為了緩解這個問題高精度ADC會采用校準技術或分段電容陣列結構。比較器噪聲與失調比較器就像一個帶有噪聲和偏見的裁判。其輸入參考噪聲會在判決時引入隨機誤差降低SNR。而失調電壓則像一個固定的偏見會導致整個ADC傳輸特性曲線發生平移產生偏移誤差。設計時需要采用低噪聲、高增益的預放大器并常常集成失調校準電路。開關的非理想性電荷注入MOS開關在關斷時溝道中的電荷會注入到電容節點引起電壓誤差。通過采用下極板采樣、互補開關等技術可以顯著抑制。時鐘饋通開關的控制時鐘信號通過柵漏/柵源電容耦合到信號通路。導通電阻開關的電阻會導致采樣建立時間常數影響高速性能。參考電壓的穩定性SAR ADC的DAC完全依賴于參考電壓Vref。如果Vref在轉換期間有波動或噪聲會直接反映到輸出碼上。因此一個干凈、穩定、驅動能力強的參考電壓源至關重要通常需要緊鄰ADC放置高質量的旁路電容。非理想因素主要影響典型緩解措施電容失配INL DNL 限制有效分辨率校準技術 分段電容陣列 共質心版圖布局比較器噪聲/失調增加總噪聲 造成偏移誤差自動歸零 斬波 數字校準開關電荷注入采樣誤差 非線性下極板采樣 虛擬開關 互補對稱結構參考電壓噪聲輸出碼整體波動使用低噪聲LDO/基準源 充分去耦 參考緩沖器5. 設計考量與選型指南當你準備在項目中使用SAR ADC時無論是選擇現成的芯片還是進行定制設計都需要從以下幾個維度進行權衡。5.1 精度、速度與功耗的“不可能三角”SAR ADC的性能存在一個經典的權衡高精度、高速度和低功耗三者難以同時兼得。高精度16位需要極好的電容匹配和極低的噪聲。這通常意味著更大的電容面積降低熱噪聲但增加寄生電容、更精細的制造工藝、更復雜的校準電路從而導致成本上升、速度受限、功耗也可能增加。高速度10 MSPS要求比較器在極短時間內做出穩定判決邏輯和開關速度要快。高速往往伴隨著高功耗比較器、邏輯電路、開關驅動電流增大并且對采樣保持電路和參考電壓源的建立時間要求極為苛刻精度容易受損。低功耗通常需要降低電源電壓、減小電容尺寸、使用更簡單的電路結構。但這往往會犧牲速度和精度噪聲增大匹配變差。在實際選型中必須明確項目的首要需求。是電池供電的傳感器需要16位精度但每秒只需采樣幾次還是高速數據采集卡需要1 MSPS以上的速度12位精度即可這個決策必須放在最前面。5.2 關鍵外圍電路設計要點即使選對了ADC芯片外圍電路設計不當也會讓性能大打折扣。模擬輸入驅動SAR ADC的輸入在采樣瞬間會有一個瞬態電流脈沖用于對內部采樣電容充電。這個電流必須由前級驅動電路如運放提供。如果驅動能力不足輸入電壓會在采樣期間跌落造成誤差。務必查閱數據手冊中的“模擬輸入阻抗”或“采樣瞬態電流”參數并確保驅動運放能在采樣窗口內穩定建立。踩坑記錄我曾用一個高精度但輸出電流能力一般的運放去驅動一個1MSPS的SAR ADC結果在輸入信號頻率稍高時SFDR無雜散動態范圍急劇惡化。換成一個驅動能力強的運放后立刻改善。數據手冊中的“建議驅動電路”章節一定要仔細看。參考電壓電路這是SAR ADC的“心臟”。必須使用低噪聲、低漂移的基準電壓源芯片。PCB布局時基準源的輸出到ADC的VREF引腳走線要盡量短而粗并緊挨引腳放置一個容值合適通常為10uF鉭電容0.1uF陶瓷電容的去耦電容組合以提供瞬態電流并濾除高頻噪聲。對于高精度或多通道ADC甚至需要考慮為參考電壓單獨設計一個緩沖放大器。電源與地模擬電源和數字電源必須分開并使用磁珠或0Ω電阻進行單點連接。模擬地和數字地也要做同樣處理。每個電源引腳都需要就近放置去耦電容如0.1uF和1uF。時鐘信號等數字高速信號線要遠離模擬輸入和參考電壓走線。5.3 數字接口與時序現代SAR ADC的數字接口主要有并行、SPI和I2C幾種。SPI因其簡單和高速成為主流。需要注意以下幾點時序嚴格滿足數據手冊中關于CS片選、SCLK時鐘、SDI數據輸入用于配置、SDO數據輸出的建立時間和保持時間要求。微控制器的SPI外設時鐘相位和極性必須與ADC匹配。數字噪聲隔離在ADC數字輸出引腳靠近微控制器的一端可以串聯一個小的阻尼電阻如22-100歐姆以減緩信號邊沿減少回溝和數字噪聲對模擬電源的干擾。如果可能使用獨立的IO電源為ADC的數字接口部分供電。6. 常見問題排查與調試技巧在實際電路調試中SAR ADC出現的問題往往有跡可循。下面是一個基于癥狀的快速排查指南。問題現象可能原因排查步驟與解決方案輸出碼噪聲大ENOB低1. 模擬輸入或參考電壓噪聲大。2. 電源噪聲大。3. 接地不良存在地環路。4. 外部或內部時鐘抖動嚴重。5. 輸入信號超出ADC輸入范圍。1. 用示波器檢查模擬輸入和VREF引腳上的噪聲確保驅動電路和基準源穩定。2. 檢查電源紋波加強電源濾波。3. 檢查PCB布局確保模擬地單點接地數字地噪聲未串擾。4. 使用更穩定的時鐘源檢查時鐘走線是否受到干擾。5. 確認輸入信號在AGND和AVDD之間或數據手冊規定范圍。靜態測試時INL/DNL差1. 電容失配對于高精度ADC。2. 比較器失調未校準。3. 參考電壓負載調整率差在轉換期間被拉低。4. 采樣開關的電荷注入誤差顯著。1. 對于芯片這是固有特性需選擇更高檔型號。對于自研需優化電容版圖共質心或啟用內部校準。2. 檢查或啟用ADC的失調校準功能。3. 測量轉換期間VREF引腳的電壓跌落增加去耦電容或使用帶緩沖的基準源。4. 確保采樣時鐘邊沿干凈或選擇電荷注入更小的ADC。動態性能差SFDR低諧波多1. 模擬輸入驅動能力不足建立不充分。2. 輸入信號含有超出奈奎斯特頻率的高頻成分混疊。3. PCB布局不佳數字信號耦合到模擬通路。4. 參考電壓緩沖器帶寬不足。1. 降低輸入信號頻率或幅度測試。換用更高帶寬、更高壓擺率的驅動運放。2. 在ADC前端添加抗混疊濾波器。3. 重新檢查布局隔離數字和模擬部分。可能需使用屏蔽或重新制板。4. 對于高速ADC確認參考電壓源或內部緩沖器能跟上轉換節奏。轉換結果完全不對或不變1. 電源電壓未正確連接。2. 數字接口時序或模式配置錯誤。3. 參考電壓未連接或短路。4. 芯片損壞。1. 測量所有電源引腳電壓是否正確。2. 用邏輯分析儀抓取SPI/I2C時序與數據手冊逐位比對。確認配置寄存器寫入正確。3. 測量VREF引腳電壓。4. 作為最后手段更換芯片。調試心法調試ADC是一個系統性的工程。務必養成“由靜到動由簡到繁”的習慣。首先在直流輸入下測試看輸出碼是否穩定、線性。這能排除大部分電源、基準和靜態配置問題。然后再進行動態測試使用純凈的正弦波信號從低頻開始逐步增加頻率觀察信噪比和失真度的變化從而定位帶寬、建立時間或布局相關的問題。示波器、邏輯分析儀和頻譜分析儀或具備FFT功能的示波器是你最得力的助手。