AVR M16 ADC應(yīng)用設(shè)計(jì)要點(diǎn)
3、ADC轉(zhuǎn)換結(jié)果
A/D轉(zhuǎn)換結(jié)束后(ADIF=1),在ADC數(shù)據(jù)寄存器(ADCL和ADCH)中可以取得轉(zhuǎn)換的結(jié)果。對(duì)于單端輸入的A/D轉(zhuǎn)換,其轉(zhuǎn)換結(jié)果為:
ADC=(VIN×1024)/VREF
其中VIN表示選定的輸入引腳上的電壓,VREF表示選定的參考電源的電壓。0x000表示輸入引腳的電壓為模擬地,0x3FF表示輸入引腳的電壓為參考電壓值減去一個(gè)LSB。
對(duì)于差分轉(zhuǎn)換,其結(jié)果為:
ADC=(VPOS-VNEG)×GAIN×512/VREF
例:若差分輸入通道選擇為ADC3-ADC2,10倍增益,參考電壓2.56V,左端對(duì)齊(ADMUX=0xED),ADC3引腳上電壓300mV,ADC2引腳上電壓500mV。
則ADCR=(300-500)×10×512/2560=-400=0x270,ADCL=0x00,ADCH=0x9C。
若結(jié)果為右端對(duì)齊時(shí)(ADLAR=“0”),則ADCL=0x70,ADCH=0x02。
附錄2、ADC應(yīng)用設(shè)計(jì)的深入討論
盡管AVR內(nèi)部集成了10位的ADC,但是在實(shí)際應(yīng)用中,要想真正實(shí)現(xiàn)10位精度,比較穩(wěn)定的ADC的話,并不象上一節(jié)中的例子那么簡(jiǎn)單。需要進(jìn)一步從硬件、軟件等方面進(jìn)行綜合的、細(xì)致的考慮。下面介紹一些在ADC設(shè)計(jì)應(yīng)用中應(yīng)該考慮的幾個(gè)要點(diǎn)。
1、AVcc的穩(wěn)定性。
AVcc是提供給ADC工作的電源,如果AVcc不穩(wěn)定,就會(huì)影響ADC的轉(zhuǎn)換精度。在圖10-5中,系統(tǒng)電源通過(guò)一個(gè)LC濾波后接入AVcc,這樣就能很好的抑制掉系統(tǒng)電源中的高頻躁聲,提高了AVcc的穩(wěn)定性。另外在要求比較高的場(chǎng)合使用ADC時(shí),PA口上的那些沒(méi)被用做ADC輸入的端口盡量不要作為數(shù)字I/O口使用。因?yàn)镻A口的工作電源是由AVcc提供的,如果PA口上有比較大的電流波動(dòng),也會(huì)影響AVcc的穩(wěn)定。
2、參考電壓VREF的選擇確定
在實(shí)際應(yīng)用中,要根據(jù)輸入測(cè)量電壓的范圍選擇正確的參考電壓VREF,以求得到比較好的轉(zhuǎn)換精度。ADC的參考電壓VREF還決定了A/D轉(zhuǎn)換的范圍。如果單端通道的輸入電壓超過(guò)VREF,將導(dǎo)致轉(zhuǎn)換結(jié)果全部接近于0x3FF,因此ADC的參考電壓應(yīng)稍大于模擬輸入電壓的最高值。
ADC的參考電壓VREF可以選擇為AVCC,或芯片內(nèi)部的2.56V參考源,或者為外接在AREF引腳上的參考電壓源。外接參考電壓應(yīng)該穩(wěn)定,并大于2.0V(芯片的工作電壓為1.8V時(shí),外接參考電壓應(yīng)大于1.0V)。要求比較高的場(chǎng)合,建議在AREF引腳外接標(biāo)準(zhǔn)參考電壓源來(lái)作為ADC的參考電源。
3、ADC通道帶寬和輸入阻抗
不管使用單端輸入轉(zhuǎn)換還是差分輸入轉(zhuǎn)換方式,所有模擬輸入口的輸入電壓應(yīng)在AVcc-GND之間。
在單端ADC轉(zhuǎn)換方式時(shí),ADC通道的輸入頻率帶寬取決于ADC轉(zhuǎn)換時(shí)鐘頻率。一次常規(guī)的ADC轉(zhuǎn)換需要13個(gè)ADC時(shí)鐘,當(dāng)ADC轉(zhuǎn)換時(shí)鐘為1MHz時(shí),一秒種內(nèi)ADC采樣轉(zhuǎn)換的次數(shù)約77K。根據(jù)采樣定理,此時(shí)ADC通道的帶寬為38.5KHz。
差分方式ADC轉(zhuǎn)換的帶寬是由芯片內(nèi)部的差分放大器的帶寬決定,為4KHz。
4、ADC采樣時(shí)鐘的選擇
通常條件下,AVR的ADC逐次比較電路要達(dá)到轉(zhuǎn)換的最大精度,需要一個(gè)50K~200KHz的采樣時(shí)鐘。一次正常的ADC轉(zhuǎn)換過(guò)程需要13個(gè)采樣時(shí)鐘,假定ADC采樣時(shí)鐘為200KHz,那么最高的采樣速率為200K/13=15.384K。因此根據(jù)采樣定理,理論上被測(cè)模擬信號(hào)的最高頻率為7.7K!
盡管可以設(shè)置ADC的采樣時(shí)鐘為1M,但并不能提高ADC轉(zhuǎn)換精度,反而會(huì)降低轉(zhuǎn)換精度(受逐次比較硬件電路的限制),因此AVR的ADC不能完成高速ADC的任務(wù)。如果所需的轉(zhuǎn)換精度低于10位,那么采樣時(shí)鐘可以高于200KHz,以達(dá)到更高的采樣頻率。
ADC采樣時(shí)鐘的選擇方式為:給出或估計(jì)被測(cè)模擬信號(hào)的最高頻率fs,取采樣頻率為fs的4-10倍,再乘上13為ADC采樣時(shí)鐘頻率,該頻率應(yīng)在50K~200KHz之間。如果該頻率大于200KHz,則ADC的10位精度不能保證。如果該頻率小于50Khz,則可選擇50K~200KHz之間的數(shù)值。
5、模擬噪聲的抑制
器件外部和內(nèi)部的數(shù)字電路會(huì)產(chǎn)生電磁干擾,并會(huì)影響模擬測(cè)量的精度。如果ADC轉(zhuǎn)換精度要求很高,可以采用以下的技術(shù)來(lái)降低噪聲的影響:
(1)使模擬信號(hào)的通路盡可能的短。模擬信號(hào)連線應(yīng)從模擬地的布線盤上通過(guò),并使它們盡可能遠(yuǎn)離高速開(kāi)關(guān)數(shù)字信號(hào)線。
(2)AVR的AVcc引腳應(yīng)該通過(guò)LC網(wǎng)絡(luò)與數(shù)字端電源Vcc相連。
(3)采用ADC噪聲抑制器功能來(lái)降低來(lái)自MCU內(nèi)部的噪聲。
(4)如果某些ADC引腳是作為通用數(shù)字輸出口使用,那么在ADC轉(zhuǎn)換過(guò)程中,不要改變這些引腳的狀態(tài)。
6、ADC的校正
由于AVR內(nèi)部ADC部分的放大器非線性等客觀原因,ADC的轉(zhuǎn)換結(jié)果會(huì)有誤差的。如果要獲得高精度的ADC轉(zhuǎn)換,還需要對(duì)ADC結(jié)果進(jìn)行校正。具體的方法請(qǐng)參考AVR應(yīng)用筆記AVR120(avr_app_120.pdf),在這篇應(yīng)用設(shè)計(jì)參考中詳細(xì)介紹了誤差的種類,以及校正方案。
7、ADC精度的提高
在有了上述幾點(diǎn)的保證后,通過(guò)軟件的手段也能適當(dāng)?shù)奶岣逜DC的精度。如采用多次測(cè)量取平均,軟件濾波算法等。在AVR應(yīng)用筆記AVR121(avr_app_121.pdf)中介紹了一種使用過(guò)采樣算法的軟件實(shí)現(xiàn),可以將ADC的精度提高到11位或更高,當(dāng)然這是在花費(fèi)更多的時(shí)間基礎(chǔ)上實(shí)現(xiàn)的。
評(píng)論