「免費」的ADC設計:不完美但仍實用

作者 : Stephen Woodward,EDN特約作者

邏輯電源對類比參考來說並不是最佳選擇,因此所謂「免費」ADC的精度最終將取決於實際所用電源的好壞。但這並非否定其實用性或受歡迎程度,它雖然不完美但依然實用...

儘管晶片上(on-chip)類比周邊裝置種類和數量不斷提高且其成本持續降低,但很多工程師仍然喜歡採用PWM DAC這種簡單設計,因為它可以獲得「免費」的DAC。具體做法就是重新利用未指定的DIO接腳和計數器/計時器模組,然後添加一個簡單的低通濾波器來濾除紋波,這樣就得到了一個雖然不完美但依然實用的類比輸出。

但是,這一資料轉換(類比-數位-類比)訊號鏈的反方向該怎麼辦呢?距離零成本的(雖然不完美但依然實用的)ADC設計還有多遠呢?圖1是我所設計的「免費」ADC,其中僅使用了兩個電晶體、四個電阻器和一個電容器,成本小於0.5美元。

圖1:近乎「免費」的ADC電路設計。

以下是它的工作原理。

當將三態I/O接腳DIO1經編程設計為高阻態時,就可以讓C1的頂端透過R1進行充電並對輸入電壓Vin進行採集,如2的「採集」(ACQUIRE)階段所示

圖2:「免費」的ADC之採集、轉換和校準階段。

DIO1處於高阻態採集階段的最短持續時間,將由N (所需的轉換精度位數)和R1C1時間常數所決定。

最小採集間隔=R1C1·ln(2N)

例如,對於本文給定的RC值和N=8,最小間隔約為1.5ms。如果N=12,則最小間隔約為2ms。當向C1充電時,Q1的正向偏置狀態和飽和基極將提供大約1Ω的低阻抗接地路徑,且其偏移量(Vq1b)約為650mV。採集階段結束時,將DIO1重新編為0輸出。這就會將C1的頂端驅動至地,並將Vq1b驅動為負,從而使Q1關斷。Q1關斷即可讓DIO2=1——之所以將該接腳編程至此,就是為了讓微控制器(MCU)計數器/計時器周邊裝置能開始對時脈週期(例如1MHz)進行計數——從而測量Q1關斷的持續時間。

Q1關斷期間將會持續計數,直到C1的負電荷消散而讓Vq1b能夠返回到650mV。該過程所經過的時間(也即計算的週期數)與Vin成正比,而與電流源Q2的集電極電流成反比:

C1放電間隔=C1·Vin/Iq2c

Iq2c=(5V–Vq2e)/R3·αq2≈430µA

因此可得以下近似值:

計數間隔=51µs·電壓轉換次數=51·fclk(MHz)·Vin

R2的作用是避免Q2發生飽和。R4是Q1的集電極和DIO2的上拉電阻。將採集時間(1.5ms)和轉換時間(在8位元和1MHz時脈的條件下為256µs)結合起來,即可預測最大轉換速率約為560Sps。

但是,如何解決那個「近似值」的問題呢?這個電路要做到「免費」,就意味著它包含大量限制,例如廉價的電阻器、電容器和電晶體偏置電壓和電流增益的溫度係數,因此簡單地忽略這個問題是行不通的。

幸運的是,如2右側所示,這個「免費」的ADC具有自校準功能。

為了實現自校準,需要將DIO1編程為輸出,將其設置為1而為C1充電,然後設置為0以產生計數間隔和Ncal計數值。隨後的轉換結果將按比例縮放為:

Vin=5V·轉換次數/Ncal

這樣就糾正了上述大多數誤差來源。但遺憾的是,並非全部。

由於將Q1關斷而產生非零計數間隔有最小Vq1b偏移量的要求,剩下的一個誤差來源就是未校準的零偏移。這樣做所需最小的Vin約為10mV,對於滿量程5V、8位元轉換結果的情況也即0.01/5=1/500≈1/2LSB。

這樣就只留下一個明顯潛在不準確的來源:5V電源。邏輯電源對類比參考來說並不是最佳選擇,因此這種「免費」ADC的精度最終將取決於實際所用電源的好壞。

當然,經典的PWM DAC也會有完全相同的邏輯電源限制問題,但這並沒有否定它的實用性或受歡迎程度。

這就有點將這個「免費」類比周邊裝置的主題帶回到它開始之處——雖然不完美但依然實用?

編譯:Ricardo Xie

(參考原文:A “free” ADC,by Stephen Woodward)

活動簡介

從無線連接、更快的處理和運算、網路安全機制、更複雜的虛擬實境(VR)到人工智慧(AI)等技術,都將在未來的每一個嵌入式系統中發揮更關鍵功能。「嵌入式系統設計研討會」將全面涵蓋在電子產業最受熱議的「智慧」、「互連」、「安全」與「運算」等系統之相關硬體和軟體設計。

會中將邀請來自嵌入式設計相關領域的研究人員、代表廠商以及專家,透過專題演講、產品展示與互動交流,從元件、模組到系統,從概念設計到開發工具,深入介紹嵌入式系統設計領域的最新趨勢、創新和關注重點,並深入分享關於嵌入式系統設計的經驗、成果以及遇到的實際挑戰及其解決方案。

贊助廠商

加入LINE@,最新消息一手掌握!

發表評論