STM32中的 SAR ADC 簡(jiǎn)介
1、模擬轉(zhuǎn)換器原理
模數(shù)轉(zhuǎn)換器,即ADC(Analog to Digital Converter),是一個(gè)將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)的器件(電路),例如將溫度、濕度、壓力、位置(都是基于電阻,電容上面產(chǎn)生的電壓信號(hào))等信息轉(zhuǎn)換為數(shù)字信號(hào)。但由于數(shù)字信號(hào)本身不具有實(shí)際意義,僅僅表示一個(gè)相對(duì)大小。因此所有ADC轉(zhuǎn)換過(guò)程中都需要一個(gè)參考模擬量(REF)作為轉(zhuǎn)換的標(biāo)準(zhǔn)。
而對(duì)于SAR ADC,即逐次逼近型ADC是一種直接ADC。由于其采樣速率中等,分辨率中等,且位數(shù)較多時(shí)使用元器件較少等原因(成本較低),所以被廣泛應(yīng)用于集成ADC中。例如集成在各種ARM內(nèi)核的MCU中。
2、AD轉(zhuǎn)換原理與步驟
A/D轉(zhuǎn)換的作用是將時(shí)間、幅值連續(xù)的模擬信號(hào)轉(zhuǎn)換為時(shí)間、幅值離散的數(shù)字信號(hào)。所以,A/D轉(zhuǎn)換一般要經(jīng)過(guò)采樣、保持、量化及編碼四個(gè)過(guò)程。
3、采樣和保持(Sampling and Holding)
采樣是指在時(shí)間上將模擬信號(hào)離散化,即是將時(shí)間上連續(xù)的信號(hào)轉(zhuǎn)為一系列等時(shí)間間隔的信號(hào)離散序列。其中離散信號(hào)脈沖的幅度取決于輸入模擬量。下圖列舉了一個(gè)模擬信號(hào)從采樣到保持的過(guò)程。
采樣需要滿足香農(nóng)定理: 采樣頻率大于模擬信號(hào)中最高頻率成分的兩倍時(shí),采樣值才能不失真的反映原來(lái)模擬信號(hào)。
4、量化和編碼(Quantizing and Encoding)
量化是用有限個(gè)幅度值近似原來(lái)連續(xù)變化的幅度值,把模擬信號(hào)的連續(xù)幅度變?yōu)橛邢迶?shù)量的有一定間隔的離散值。而編碼則是按照一定的規(guī)律,把量化后的值用二進(jìn)制數(shù)字表示。
下圖列舉了12bits ADC FSR為3V時(shí)的量化到編碼的過(guò)程
n:分辨率,用于對(duì)輸入進(jìn)行量化的位數(shù)
FSR: Full-Scale Range,滿量程
LSB: Least Significant Bit,最低有效位
MSB: Most Significant Bit,最高有效位
5、分辨率
理論上,n位輸出的ADC能區(qū)分2^n個(gè)不同等級(jí)的模擬輸入電壓。如上圖所示,能分辨的最小輸入電壓步長(zhǎng)LSB = FSR / 2^n = 732uV。
6、量化誤差
量化誤差是由于量化過(guò)程引入的誤差,通常是以輸出誤差的最大值形式標(biāo)出。表示ADC實(shí)際輸出的數(shù)字量和理論輸出數(shù)字量之間的誤差。使用“四舍五入法”時(shí),ADC 轉(zhuǎn)換器的量化誤差是 ±? LSB。
7、轉(zhuǎn)換時(shí)間
轉(zhuǎn)換時(shí)間是指ADC從轉(zhuǎn)換控制信號(hào)觸發(fā)開(kāi)始,到輸出端得到穩(wěn)定的數(shù)字信號(hào)所經(jīng)過(guò)的時(shí)間。該時(shí)間受ADC類(lèi)型、ADC時(shí)鐘和外部輸入阻抗等因素影響。
8、STM32中的SAR ADC
STM32中的ADC是逐次逼近型ADC(Successive Approximation ADC),是逐個(gè)產(chǎn)生比較電壓Vref,并逐次與輸入電壓分別比較,以逐漸逼近的方式進(jìn)行A/D轉(zhuǎn)換的。而其中的用來(lái)產(chǎn)生Vref的電路就是DAC電路。 因此一般DAC電路比較容易設(shè)計(jì),而DAC在采樣速度和精度的權(quán)衡上會(huì)比較復(fù)雜。
SAR ADC的轉(zhuǎn)換原理是把輸入的模擬信號(hào)按規(guī)定的時(shí)間間隔采樣(采樣),并與一系列標(biāo)準(zhǔn)的數(shù)字信號(hào)相比較,數(shù)字信號(hào)逐次收斂,直至兩種信號(hào)相等為止(量化完成),最后輸出代表此信號(hào)的二進(jìn)制數(shù)(編碼)。
9、SAR ADC結(jié)構(gòu)
結(jié)構(gòu)上主要包括采樣保持電路(S/H),比較器(COMPARATOR,COMP),SAR邏輯控制電路、時(shí)鐘(CLOCK)和時(shí)序(TIMING)控制電路及DAC電路。
10、S/H電路
為了達(dá)到快速的采樣,被采樣的脈沖寬度一般是很短的,在下一個(gè)采樣脈沖到來(lái)之前,要暫時(shí)保持所采得的樣值脈沖幅度,以便進(jìn)行后續(xù)轉(zhuǎn)換。所以,在采樣電路之后和比較電路之間要加保持電路。它的原理是通過(guò)一個(gè)開(kāi)關(guān)連接一個(gè)電容,通過(guò)給電容進(jìn)行充電來(lái)保持模擬信號(hào)的幅值信息。
11、DAC電路
大多SAR ADC的DAC都使用電容式DAC來(lái)提供內(nèi)在的跟蹤/保持功能。電容式DAC是采用電荷再分配原理來(lái)產(chǎn)生模擬輸出電壓的。電容式DAC由N個(gè)具有二進(jìn)制權(quán)重值的電容器陣列再加上一個(gè)“虛擬LSB”電容器組成。
首先通過(guò)Sa開(kāi)關(guān)連接VIN,并將所有S1-S11的開(kāi)關(guān)連接到VIN,給所有并聯(lián)的電容進(jìn)行充電,這樣就將所有電容充滿,并且充電電壓為VIN。
然后通過(guò)將Sa開(kāi)關(guān)連接到Vref,并且通過(guò)數(shù)字信號(hào)對(duì)應(yīng)到S1-S11的開(kāi)關(guān)上,也就是關(guān)閉一些電容的開(kāi)關(guān)連接到GND上,斷開(kāi)電容,對(duì)地放電。
此時(shí)對(duì)于Vref上的電壓就會(huì)根據(jù)斷開(kāi)電容的容量使得輸出電壓降低,從而將數(shù)字信號(hào)轉(zhuǎn)換成一個(gè)模擬信號(hào)。
電容器陣列容量總量要等于2C。
12、轉(zhuǎn)換步驟
轉(zhuǎn)換步驟數(shù)等于 ADC的分辨率,比如12bits ADC就有12個(gè)轉(zhuǎn)換步驟,每個(gè) ADC 時(shí)鐘產(chǎn)生一個(gè)數(shù)據(jù)位。
13、采樣狀態(tài)
該狀態(tài)下,電容充電至電壓VIN。Sa切換至VIN,采樣期間Sb開(kāi)關(guān)閉合。
14、保持狀態(tài)
該狀態(tài)下,輸入斷開(kāi),電容保持輸入電壓。Sb開(kāi)關(guān)打開(kāi),然后S1-S11切換至接地,且Sa切換至VREF。
15、轉(zhuǎn)換(量化和編碼)狀態(tài)
該狀態(tài)下,每個(gè) ADCCLK 執(zhí)行一個(gè)步驟,每一步完成后 ADC 輸出一位數(shù)。采用二分法進(jìn)行逐次逼近到 ADC 的精度(位數(shù))。整個(gè)轉(zhuǎn)換過(guò)程如下圖所示。