AVR單片機(jī)(學(xué)習(xí)ing)—(九)、ATMEGA16的模數(shù)轉(zhuǎn)換器—01
4、預(yù)分頻及ADC 轉(zhuǎn)換時(shí)序
在默認(rèn)條件下,逐次逼近電路需要一個(gè)從50 kHz到200 kHz的輸入時(shí)鐘以獲得最大精度。
如果所需的轉(zhuǎn)換精度低于10 比特,那么輸入時(shí)鐘頻率可以高于200 kHz,以達(dá)到更高的
采樣率。
ADC 模塊包括一個(gè)預(yù)分頻器,它可以由任何超過100 kHz 的CPU 時(shí)鐘來產(chǎn)生可接受的
ADC 時(shí)鐘。預(yù)分頻器通過ADCSRA 寄存器的ADPS 進(jìn)行設(shè)置。置位ADCSRA 寄存器的
ADEN 將使能ADC,預(yù)分頻器開始計(jì)數(shù)。只要ADEN 為1,預(yù)分頻器就持續(xù)計(jì)數(shù),直到
ADEN 清零。
ADCSRA寄存器的ADSC置位后,單端轉(zhuǎn)換在下一個(gè)ADC時(shí)鐘周期的上升沿開始啟動(dòng)。差
分轉(zhuǎn)換時(shí)序見P197“ 差分增益信道” 。
正常轉(zhuǎn)換需要13 個(gè)ADC 時(shí)鐘周期。為了初始化模擬電路,ADC 使能(ADCSRA 寄存器
的ADEN 置位) 后的第一次轉(zhuǎn)換需要25 個(gè)ADC 時(shí)鐘周期。
在普通的ADC 轉(zhuǎn)換過程中,采樣保持在轉(zhuǎn)換啟動(dòng)之后的1.5 個(gè)ADC 時(shí)鐘開始;而第一次
ADC轉(zhuǎn)換的采樣保持則發(fā)生在轉(zhuǎn)換啟動(dòng)之后的13.5 個(gè)ADC時(shí)鐘。轉(zhuǎn)換結(jié)束后,ADC結(jié)果
被送入ADC 數(shù)據(jù)寄存器,且ADIF 標(biāo)志置位。ADSC 同時(shí)清零( 單次轉(zhuǎn)換模式)。之后軟
件可以再次置位ADSC 標(biāo)志,從而在ADC 的第一個(gè)上升沿啟動(dòng)一次新的轉(zhuǎn)換。
使用自動(dòng)觸發(fā)時(shí),觸發(fā)事件發(fā)生將復(fù)位預(yù)分頻器。這保證了觸發(fā)事件和轉(zhuǎn)換啟動(dòng)之間的延
時(shí)是固定的。在此模式下,采樣保持在觸發(fā)信號(hào)上升沿之后的2 個(gè)ADC 時(shí)鐘發(fā)生。為了
實(shí)現(xiàn)同步邏輯需要額外的3 個(gè)CPU 時(shí)鐘周期。如果使用差分模式,加上不是由ADC 轉(zhuǎn)
換結(jié)束實(shí)現(xiàn)的自動(dòng)觸發(fā),每次轉(zhuǎn)換需要25 個(gè)ADC 時(shí)鐘周期。因?yàn)槊看无D(zhuǎn)換結(jié)束后都要
關(guān)閉ADC 然后又啟動(dòng)它。
在連續(xù)轉(zhuǎn)換模式下,當(dāng)ADSC 為1 時(shí),只要轉(zhuǎn)換一結(jié)束,下一次轉(zhuǎn)換馬上開始。轉(zhuǎn)換時(shí)
間請(qǐng)見 Table 81。
5、差分增益信道
當(dāng)使用差分增益通道,需要考慮轉(zhuǎn)換的確定特征。
差分轉(zhuǎn)換與內(nèi)部時(shí)鐘CKADC2 同步等于ADC 時(shí)鐘的一半。同步是當(dāng)ADC 接口在CKADC2
邊沿出現(xiàn)采樣與保持時(shí)自動(dòng)實(shí)現(xiàn)的。當(dāng)CKADC2 為低時(shí),通過用戶啟動(dòng)轉(zhuǎn)換( 即,所有的
單次轉(zhuǎn)換與第一次連續(xù)轉(zhuǎn)換) 將與單端轉(zhuǎn)換使用的時(shí)間( 接著的預(yù)分頻后的13 個(gè) ADC 時(shí)
鐘周期)。當(dāng) CKADC2 為高時(shí),由于同步機(jī)制,將會(huì)使用14 個(gè) ADC 時(shí)鐘周期。在連續(xù)轉(zhuǎn)
換模式時(shí),一次轉(zhuǎn)換結(jié)束后立即啟動(dòng)新的轉(zhuǎn)換,而由于CKADC2 此時(shí)為高,所有的自動(dòng)啟
動(dòng)( 即除第一次外) 將使用14 個(gè) ADC 時(shí)鐘周期。
在所有的增益設(shè)置中,當(dāng)帶寬為4 kHz 時(shí)增益級(jí)最優(yōu)。更高的頻率可能會(huì)造成非線性放
大。當(dāng)輸入信號(hào)包含高于增益級(jí)帶寬的頻率時(shí),應(yīng)在輸入前加入低通濾波器。注意,ADC
時(shí)鐘頻率不受增益級(jí)帶寬限制。比如,不管通道帶寬是多少, ADC 時(shí)鐘周期為6 μs,允
許通道采樣率為12 kSPS。
如果使用差分增益通道且通過自動(dòng)觸發(fā)啟動(dòng)轉(zhuǎn)換,在轉(zhuǎn)換時(shí)ADC 必須關(guān)閉。當(dāng)使用自動(dòng)
觸發(fā)時(shí), ADC 預(yù)分頻器在轉(zhuǎn)換啟動(dòng)前復(fù)位。由于在轉(zhuǎn)換前的增益級(jí)依靠穩(wěn)定的ADC 時(shí)
鐘,該轉(zhuǎn)換無(wú)效。在每次轉(zhuǎn)換( 在寄存器 ADCSRA 的ADEN 位中 寫 “0” 接著為“1”),通
過禁用然后重使能ADC,只執(zhí)行擴(kuò)展轉(zhuǎn)換。擴(kuò)展轉(zhuǎn)換結(jié)果有效。
6、改變通道和基準(zhǔn)源
ADMUX寄存器中的MUXn及REFS1:0通過臨時(shí)寄存器實(shí)現(xiàn)了單緩沖。CPU可對(duì)此臨時(shí)寄
存器進(jìn)行隨機(jī)訪問。這保證了在轉(zhuǎn)換過程中通道和基準(zhǔn)源的切換發(fā)生于安全的時(shí)刻。在轉(zhuǎn)
換啟動(dòng)之前通道及基準(zhǔn)源的選擇可隨時(shí)進(jìn)行。一旦轉(zhuǎn)換開始就不允許再選擇通道和基準(zhǔn)
源了,從而保證ADC 有充足的采樣時(shí)間。在轉(zhuǎn)換完成(ADCSRA 寄存器的ADIF 置位) 之
前的最后一個(gè)時(shí)鐘周期,通道和基準(zhǔn)源的選擇又可以重新開始。轉(zhuǎn)換的開始時(shí)刻為ADSC
置位后的下一個(gè)時(shí)鐘的上升沿。因此,建議用戶在置位ADSC 之后的一個(gè)ADC 時(shí)鐘周期
里,不要操作ADMUX 以選擇新的通道及基準(zhǔn)源。
使用自動(dòng)觸發(fā)時(shí),觸發(fā)事件發(fā)生的時(shí)間是不確定的。為了控制新設(shè)置對(duì)轉(zhuǎn)換的影響,在更
新ADMUX 寄存器時(shí)一定要特別小心。
若ADATE及ADEN都置位,則中斷事件可以在任意時(shí)刻發(fā)生。如果在此期間改變ADMUX
寄存器的內(nèi)容,那么用戶就無(wú)法判別下一次轉(zhuǎn)換是基于舊的設(shè)置還是最新的設(shè)置。在以下
時(shí)刻可以安全地對(duì)ADMUX 進(jìn)行更新:
1. ADATE 或ADEN 為 0
2. 在轉(zhuǎn)換過程中,但是在觸發(fā)事件發(fā)生后至少一個(gè)ADC 時(shí)鐘周期
3. 轉(zhuǎn)換結(jié)束之后,但是在作為觸發(fā)源的中斷標(biāo)志清零之前
如果在上面提到的任一種情況下更新ADMUX,那么新設(shè)置將在下一次ADC 時(shí)生效。
當(dāng)改變差分通道時(shí)要特別注意。一旦選定差分通道,增益級(jí)要用125 μs 來穩(wěn)定該值。因
此在選定新通道后的125 μs 內(nèi)不應(yīng)啟動(dòng)轉(zhuǎn)換?;蛏釛壴摃r(shí)間段內(nèi)的轉(zhuǎn)換結(jié)果。
7、ADC 輸入通道
選擇模擬通道時(shí)請(qǐng)注意以下指導(dǎo)方針:
工作于單次轉(zhuǎn)換模式時(shí),總是在啟動(dòng)轉(zhuǎn)換之前選定通道。在ADSC 置位后的一個(gè)ADC 時(shí)
鐘周期就可以選擇新的模擬輸入通道了。但是最簡(jiǎn)單的辦法是等待轉(zhuǎn)換結(jié)束后再改變通
道。
在連續(xù)轉(zhuǎn)換模式下,總是在第一次轉(zhuǎn)換開始之前選定通道。在ADSC 置位后的一個(gè)ADC
時(shí)鐘周期就可以選擇新的模擬輸入通道了。但是最簡(jiǎn)單的辦法是等待轉(zhuǎn)換結(jié)束后再改變
通道。然而,此時(shí)新一次轉(zhuǎn)換已經(jīng)自動(dòng)開始了,下一次的轉(zhuǎn)換結(jié)果反映的是以前選定的模
擬輸入通道。以后的轉(zhuǎn)換才是針對(duì)新通道的。
當(dāng)切換到差分增益通道,由于自動(dòng)偏移抵消電路需要沉積時(shí)間,第一次轉(zhuǎn)換結(jié)果準(zhǔn)確率很
低。用戶最好舍棄第一次轉(zhuǎn)換結(jié)果。
8、ADC 基準(zhǔn)電壓源
ADC的參考電壓源(VREF)反映了ADC的轉(zhuǎn)換范圍。若單端通道電平超過了VREF,其結(jié)果將
接近0x3FF。VREF 可以是AVCC、內(nèi)部2.56V 基準(zhǔn)或外接于AREF 引腳的電壓。
AVCC通過一個(gè)無(wú)源開關(guān)與ADC相連。片內(nèi)的2.56V參考電壓由能隙基準(zhǔn)源(VBG)通過內(nèi)部
放大器產(chǎn)生。無(wú)論是哪種情況,AREF 都直接與ADC 相連,通過在AREF 與地之間外加
電容可以提高參考電壓的抗噪性。VREF 可通過高輸入內(nèi)阻的伏特表在AREF 引腳測(cè)得。
由于VREF 的阻抗很高,因此只能連接容性負(fù)載。
如果將一個(gè)固定電源接到AREF 引腳,那么用戶就不能選擇其他的基準(zhǔn)源了,因?yàn)檫@會(huì)導(dǎo)
致片內(nèi)基準(zhǔn)源與外部參考源的短路。如果AREF 引腳沒有聯(lián)接任何外部參考源,用戶可以
選擇AVCC 或1.1V 作為基準(zhǔn)源。參考源改變后的第一次ADC 轉(zhuǎn)換結(jié)果可能不準(zhǔn)確,建
議用戶不要使用這一次的轉(zhuǎn)換結(jié)果。
9、相關(guān)寄存器
1)ADMUX
• Bit 7:6 – REFS1:0: 參考電壓選擇
如Table 83 所示,通過這幾位可以選擇參考電壓。如果在轉(zhuǎn)換過程中改變了它們的設(shè)置,
只有等到當(dāng)前轉(zhuǎn)換結(jié)束(ADCSRA 寄存器的ADIF 置位) 之后改變才會(huì)起作用。如果在
AREF 引腳上施加了外部參考電壓,內(nèi)部參考電壓就不能被選用了。
• Bit 5 – ADLAR: ADC 轉(zhuǎn)換結(jié)果 左對(duì)齊
ADLAR影響ADC轉(zhuǎn)換結(jié)果在ADC數(shù)據(jù)寄存器中的存放形式。ADLAR置位時(shí)轉(zhuǎn)換結(jié)果為左
對(duì)齊,否則為右對(duì)齊。ADLAR 的改變將立即影響ADC 數(shù)據(jù)寄存器的內(nèi)容,不論是否有
轉(zhuǎn)換正在進(jìn)行。
• Bits 4:0 – MUX4:0: 模擬通道與增益選擇位
通過這幾位的設(shè)置,可以對(duì)連接到ADC 的模擬輸入進(jìn)行選擇。也可對(duì)差分通道增益進(jìn)行
選擇。細(xì)節(jié)見Table 84。如果在轉(zhuǎn)換過程中改變這幾位的值,那么只有到轉(zhuǎn)換結(jié)束
(ADCSRA 寄存器的ADIF 置位) 后新的設(shè)置才有效。
評(píng)論