ADC與DAC原理簡介


數模轉換與模數轉換

這里以STM32G474為例來介紹STM32中的ADC與DAC編程

主要作為電賽的筆記

模數轉換ADC

四個基本部分

  • 采樣:定時對連續變化的模擬信號進行測量得到的瞬時值
  • 保持:采樣結束后將得到信號保持一段時間,使ADC有充分時間進行ADC轉換。一般采樣脈沖頻率越高、采樣越密,采樣值就越多,采樣保持電路的輸出信號就越接近輸入信號的波形。對采樣頻率要求(滿足采樣定理):采樣頻率Fs >= 2*輸入模擬信號頻譜中最高頻率Fmax
  • 量化:將采樣電壓轉換為某個最小單位電壓的整數倍
  • 編碼:用二進制代碼表示量化后的量化電平

量化級越細,量化誤差就越小,所用二進制代碼的位數就越多,電路也越復雜

分類

常見的ADC主要分成三種:

  • 積分型:將輸入電壓轉換成脈沖寬度信號或脈沖頻率,使用定時器/計數器獲取數字值

    • 優點:電路簡單、分辨率高
    • 缺點:轉換精度依賴於積分時間,轉換速率較低
  • 逐次比較型:由一個比較器和DAC轉換器通過逐次比較邏輯構成,從最高位開始順序地對每一位將輸入電壓與內置DAC轉換器的輸出進行比較,經過n次比較來輸出數字值

    這個類型的ADC可以看作使用快速逼近-快速排序的方法來讓DAC輸出值靠近模擬值來實現ADC

    • 優點:速度高,功耗低,在低分辨率(12位)式具有性價比優勢
    • 缺點:轉換速率一般,電路規模中等
  • Σ-Δ調制型:使用積分器、比較器、1位DAC轉換器和數字濾波器等構成,將輸入電壓轉換成脈沖寬度信號,使用數字濾波器處理后得到數字值

    • 優點:可以容易地做到高分辨率測量
    • 缺點:轉換速率低、電路規模大

主要參數

  1. 分辨率:輸出數字量變化一個相鄰數值所需輸入模擬電壓的變化量,一般用二進制的位數表示,分辨率為n表示是滿刻度Fs的2的n次方分之一
  2. 量化誤差:ADC的有限位數對模擬量進行量化而引起的誤差。要准確表示模擬量,ADC的位數需要很大甚至無窮大,所以ADC器件都有量化誤差。一個分辨率有限的ADC的階梯狀轉換特性曲線與具有無限分辨率的ADC轉化特性曲線之間的最大偏差就是量化誤差
  3. 轉換速率:每秒進行轉換的次數
  4. 轉換量程:ADC所能測量的最大電壓,一般等於參考電壓,超過此電壓有可能損毀ADC。當信號較小時可以考慮降低參考電壓來提高分辨率,改變參考電壓后,對應的轉換值也會改變,計算實際電壓時需要將參考電壓考慮進去,所以說一般參考電壓都要做到很穩定且不帶有高次諧波
  5. 偏移誤差:ADC輸入信號為0時,但ADC轉換輸出信號不為0的值
  6. 滿刻度誤差:ADC滿刻度輸出時對應的輸入信號與理想輸入信號值之差
  7. 線性度:實際ADC的轉移函數和理想直線的最大偏移

STM32G4中的ADC

基本特性:

  • 五路12/10/8/6位可編程分辨率ADC,內置自動校准
  • ADC轉換時間與AHB總線時鍾頻率無關,只能通過降低分辨率加快轉換時間
  • 4Msps最大轉化率與全分辨率
  • 每個ADC有多達19路通道,各通道AD轉換可以以單一、連續、掃描或不連續方式進行,ADC結果存儲在左對齊/右對齊的16位數據寄存器中
  • 有外部參考引腳,允許輸入電壓范圍獨立於電源
  • 可調的單端和差分模式輸入
  • ADC1和ADC2緊密耦合,ADC3和ADC4緊密耦合,可以分別以ADC1、ADC3作master模式進行雙模式運行;ADC5獨立控制
  • 允許DMA控制

程序可以通過輪詢、中斷、定時器中斷、同步、DMA等等方式來獲取ADC值

使用函數HAL_ADC_Start()啟動一次ADC轉換,同理可使用HAL_ADC_Start_IT()HAL_ADC_Start_DMA()來以中斷或DMA的方式使用ADC

使用函數HAL_ADC_GetValue()在啟動ADC轉換一定延時時間后獲取上次轉換得到的ADC值

使用HAL_ADC_Stop()HAL_ADC_Stop_IT()HAL_ADC_Stop_DMA()停止使用ADC

數模轉換DAC

基本結構

數字寄存器:寄存輸入的數字量和控制信號

模擬開關和轉換網絡:轉換網絡一般由一列電阻構成,模擬開關和對應的電阻按位加權

參考電壓源:用於確定轉換系數

求和放大器:對來自轉換網絡的模擬量進行相加

DAC的操作過程類似積分

分類

  • 電壓輸出型:從電阻網絡直接輸出電壓,通常會在輸出端加放大器來降低輸出阻抗。

  • 在輸出端不加放大器的電壓輸出型:減少了輸出端部分的延遲,常用於高速場合

  • 電流輸出型:一般很少直接利用電流輸出,大多數會外接電流-電壓轉換電路得到電壓輸出。根據如何進行電流-電壓轉換又分成兩類:

    • 在輸出引腳上接負載電阻
      • 缺點:輸出阻抗高、必須在規定的輸出電流范圍內使用,否則可能損壞DAC
    • 外接運算放大器
      • 缺點:加入了外接運放和導線的延遲,響應變慢

    電流輸出型很少用,一般使用電壓輸出型

主要參數

  1. 分辨率:最小輸出電壓(也就是輸入數字量為1時的電壓)與最大輸出電壓(也就是輸入數字量為最大(每一位都是1)時的電壓)之比。一般通過輸入數字量的位數來表示
  2. 轉換量程:DAC能輸出的最大電壓,一般的關於參考電壓或其倍數
  3. 建立時間:從輸入數字量到輸出模擬量之間的延時時間
  4. 轉換精度:與ADC的轉換精度類似

STM32G4中的DAC

基本特性:

  • 4路配置為8位/12位的電壓輸出DAC,3個1MHz速率的DAC外部輸出通道;4個15MHz速率的DAC內部輸出通道
  • 可生成噪聲、三角波、鋸齒波
  • 可實現雙DAC通道,兩個通道組合在一起進行同步更新操作,轉換可以獨立或同步地完成
  • 可通過設置獨立的輸入參考電壓VREF+來獲得更好的分辨率(注意該引腳和其他模擬外設如ADC、OPAMP等共用)
  • DAC1、DAC2引腳由GPIO復用;DAC3、DAC4僅用於內部輸出
  • 可開啟輸出緩沖
  • 可單獨啟用的DAC輸出緩沖器來輸出高電流
  • 支持低功耗模式、采樣模式、保持模式,支持獨立校准

可直接使用HAL_DAC_SetValue()來設置DAC輸出值

一般將某個波形的所有輸出值保存在一個數組中並傳給函數來輸出特定波形;可以配合定時器來輸出方波、三角波等


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM