1、介紹 1)特點(diǎn): 10 位 精度 0.5 LSB 的非線性度 ± 2 LSB 的絕對(duì)精度 65 - 260 μs 的轉(zhuǎn)換時(shí)間 最高分辨率時(shí)采樣率高達(dá)15 kSPS 8 路復(fù)用的單端輸入通道 7 路差分輸入通道 2 路可選增益為10x 與200x 的差分輸入通道 可選的左對(duì)齊ADC 讀數(shù) 0 - VCC 的 ADC 輸入電壓范圍 可選的2.56V ADC 參考電壓 連續(xù)轉(zhuǎn)換或單次轉(zhuǎn)換模式 通過自動(dòng)觸發(fā)中斷源啟動(dòng)ADC 轉(zhuǎn)換 ADC 轉(zhuǎn)換結(jié)束中斷 基于睡眠模式的噪聲抑制器 Note: 1. 在PDIP封裝下的差分輸入通道器件未經(jīng)測試。只保證器件在TQFP 與MLF封裝下正常 工作。 2)介紹和框圖 ATmega16有一個(gè)10位的逐次逼近型ADC。ADC與一個(gè)8通道的模擬多路復(fù)用器連接,能 對(duì)來自端口A 的8 路單端輸入電壓進(jìn)行采樣。單端電壓輸入以0V (GND) 為基準(zhǔn)。 器件還支持16 路差分電壓輸入組合。兩路差分輸入(ADC1、ADC0 與ADC3、ADC2) 有可編程增益級(jí),在A/D 轉(zhuǎn)換前給差分輸入電壓提供0dB(1x)、20dB(10x) 或46dB(200x) 的放大級(jí)。七路差分模擬輸入通道共享一個(gè)通用負(fù)端(ADC1), 而其他任何ADC 輸入可做 為正輸入端。如果使用1x 或10x 增益,可得到8 位分辨率。如果使用200x 增益,可得 到7 位分辨率。 ADC 包括一個(gè)采樣保持電路,以確保在轉(zhuǎn)換過程中輸入到ADC 的電壓保持恒定。ADC 的 框圖如 Figure 98 所示。 ADC 由AVCC 引腳單獨(dú)提供電源。AVCC 與VCC 之間的偏差不能超過± 0.3V 標(biāo)稱值為2.56V 的基準(zhǔn)電壓,以及AVCC,都位于器件之內(nèi)?;鶞?zhǔn)電壓可以通過在AREF 引腳上加一個(gè)電容進(jìn)行解耦,以更好地抑制噪聲。 ![AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01 AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01](http://image59.360doc.com/DownloadImg/2013/04/0821/31505865_1)
2、ADC的工作過程
ADC 通過逐次逼近的方法將輸入的模擬電壓轉(zhuǎn)換成一個(gè)10 位的數(shù)字量。最小值代表 GND,最大值代表AREF引腳上的電壓再減去1 LSB。通過寫ADMUX寄存器的REFSn位 可以把AVCC 或內(nèi)部2.56V 的參考電壓連接到AREF 引腳。在AREF 上外加電容可以對(duì) 片內(nèi)參考電壓進(jìn)行解耦以提高噪聲抑制性能。 模擬輸入通道與差分增益可以通過寫ADMUX 寄存器的MUX 位來選擇。任何ADC 輸入 引腳,像GND 及固定能隙參考電壓,都可以作為ADC 的單端輸入。ADC 輸入引腳可選 做差分增益放大器的正或負(fù)輸入。 如果選擇差分通道,通過選擇被選輸入信號(hào)對(duì)的增益因子得到電壓差分放大級(jí)。然后放大 值成為ADC 的模擬輸入。如果使用單端通道,將繞過增益放大器。 通過設(shè)置ADCSRA 寄存器的ADEN 即可啟動(dòng)ADC。只有當(dāng)ADEN 置位時(shí)參考電壓及輸 入通道選擇才生效。ADEN 清零時(shí)ADC 并不耗電,因此建議在進(jìn)入節(jié)能睡眠模式之前關(guān) 閉ADC。 ADC轉(zhuǎn)換結(jié)果為10位,存放于ADC數(shù)據(jù)寄存器ADCH及ADCL中。默認(rèn)情況下轉(zhuǎn)換結(jié)果為 右對(duì)齊,但可通過設(shè)置ADMUX 寄存器的ADLAR 變?yōu)樽髮?duì)齊。 如果要求轉(zhuǎn)換結(jié)果左對(duì)齊,且最高只需8 位的轉(zhuǎn)換精度,那么只要讀取ADCH 就足夠了。 否則要先讀ADCL,再讀ADCH,以保證數(shù)據(jù)寄存器中的內(nèi)容是同一次轉(zhuǎn)換的結(jié)果。一旦 讀出ADCL, ADC 對(duì)數(shù)據(jù)寄存器的尋址就被阻止了。也就是說,讀取ADCL 之后,即使 在讀ADCH 之前又有一次ADC 轉(zhuǎn)換結(jié)束,數(shù)據(jù)寄存器的數(shù)據(jù)也不會(huì)更新,從而保證了轉(zhuǎn) 換結(jié)果不丟失。ADCH 被讀出后, ADC 即可再次訪問ADCH 及ADCL 寄存器。 ADC轉(zhuǎn)換結(jié)束可以觸發(fā)中斷。即使由于轉(zhuǎn)換發(fā)生在讀取ADCH與ADCL之間而造成ADC無 法訪問數(shù)據(jù)寄存器,并因此丟失了轉(zhuǎn)換數(shù)據(jù),中斷仍將觸發(fā)。 3、啟動(dòng)一次轉(zhuǎn)換 向 ADC 啟動(dòng)轉(zhuǎn)換位ADSC 位寫"1” 可以啟動(dòng)單次轉(zhuǎn)換。在轉(zhuǎn)換過程中此位保持為高,直 到轉(zhuǎn)換結(jié)束,然后被硬件清零。如果在轉(zhuǎn)換過程中選擇了另一個(gè)通道,那么ADC 會(huì)在改 變通道前完成這一次轉(zhuǎn)換。 ADC轉(zhuǎn)換有不同的觸發(fā)源。設(shè)置ADCSRA寄存器的ADC自動(dòng)觸發(fā)允許位ADATE可以使能 自動(dòng)觸發(fā)。設(shè)置ADCSRB 寄存器的ADC 觸發(fā)選擇位ADTS 可以選擇觸發(fā)源( 見觸發(fā)源 列表中對(duì)ADTS 的描述)。當(dāng)所選的觸發(fā)信號(hào)產(chǎn)生上跳沿時(shí), ADC 預(yù)分頻器復(fù)位并開始 轉(zhuǎn)換。這提供了一個(gè)在固定時(shí)間間隔下啟動(dòng)轉(zhuǎn)換的方法。轉(zhuǎn)換結(jié)束后即使觸發(fā)信號(hào)仍然存 在,也不會(huì)啟動(dòng)一次新的轉(zhuǎn)換。如果在轉(zhuǎn)換過程中觸發(fā)信號(hào)中又產(chǎn)生了一個(gè)上跳沿,這個(gè) 上跳沿將被忽略。即使特定的中斷被禁止或全局中斷使能位為0,中斷標(biāo)志仍將置位。這 樣可以在不產(chǎn)生中斷的情況下觸發(fā)一次轉(zhuǎn)換。但是為了在下次中斷事件發(fā)生時(shí)觸發(fā)新的 轉(zhuǎn)換,必須將中斷標(biāo)志清零。 ![AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01 AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01](http://image59.360doc.com/DownloadImg/2013/04/0821/31505865_2)
使用ADC 中斷標(biāo)志作為觸發(fā)源,可以在正在進(jìn)行的轉(zhuǎn)換結(jié)束后即開始下一次ADC 轉(zhuǎn)換。 之后ADC 便工作在連續(xù)轉(zhuǎn)換模式,持續(xù)地進(jìn)行采樣并對(duì)ADC 數(shù)據(jù)寄存器進(jìn)行更新。第 一次轉(zhuǎn)換通過向ADCSRA 寄存器的ADSC 寫1 來啟動(dòng)。在此模式下,后續(xù)的ADC 轉(zhuǎn)換 不依賴于ADC 中斷標(biāo)志ADIF 是否置位。 如果使能了自動(dòng)觸發(fā),置位ADCSRA 寄存器的ADSC 將啟動(dòng)單次轉(zhuǎn)換。ADSC 標(biāo)志還 可用來檢測轉(zhuǎn)換是否在進(jìn)行之中。不論轉(zhuǎn)換是如何啟動(dòng)的,在轉(zhuǎn)換進(jìn)行過程中ADSC 一 直為1。
4、預(yù)分頻及ADC 轉(zhuǎn)換時(shí)序 ![AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01 AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01](http://image59.360doc.com/DownloadImg/2013/04/0821/31505865_3)
在默認(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。
![AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01 AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01](http://image59.360doc.com/DownloadImg/2013/04/0821/31505865_4)
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)換無效。在每次轉(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)容,那么用戶就無法判別下一次轉(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í) 鐘周期就可以選擇新的模擬輸入通道了。但是最簡單的辦法是等待轉(zhuǎn)換結(jié)束后再改變通 道。 在連續(xù)轉(zhuǎn)換模式下,總是在第一次轉(zhuǎn)換開始之前選定通道。在ADSC 置位后的一個(gè)ADC 時(shí)鐘周期就可以選擇新的模擬輸入通道了。但是最簡單的辦法是等待轉(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è)無源開關(guān)與ADC相連。片內(nèi)的2.56V參考電壓由能隙基準(zhǔn)源(VBG)通過內(nèi)部 放大器產(chǎn)生。無論是哪種情況,AREF 都直接與ADC 相連,通過在AREF 與地之間外加 電容可以提高參考電壓的抗噪性。VREF 可通過高輸入內(nèi)阻的伏特表在AREF 引腳測得。 由于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 ![AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01 AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01](http://image59.360doc.com/DownloadImg/2013/04/0821/31505865_5)
Bit 7:6 – REFS1:0: 參考電壓選擇 如Table 83 所示,通過這幾位可以選擇參考電壓。如果在轉(zhuǎn)換過程中改變了它們的設(shè)置, 只有等到當(dāng)前轉(zhuǎn)換結(jié)束(ADCSRA 寄存器的ADIF 置位) 之后改變才會(huì)起作用。如果在 AREF 引腳上施加了外部參考電壓,內(nèi)部參考電壓就不能被選用了。
![AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01 AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01](http://image59.360doc.com/DownloadImg/2013/04/0821/31505865_6)
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è)置才有效。 ![AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01 AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01](http://image59.360doc.com/DownloadImg/2013/04/0821/31505865_7)
![AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01 AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01](http://image59.360doc.com/DownloadImg/2013/04/0821/31505865_8)
![AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01 AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01](http://image59.360doc.com/DownloadImg/2013/04/0821/31505865_9)
2)ADC控制和狀態(tài)寄存器—ADCSRA
![AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01 AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01](http://image59.360doc.com/DownloadImg/2013/04/0821/31505865_10) Bit 7 – ADEN: ADC 使能 ADEN置位即啟動(dòng)ADC,否則ADC功能關(guān)閉。在轉(zhuǎn)換過程中關(guān)閉ADC將立即中止正在進(jìn)行 的轉(zhuǎn)換。 Bit 6 – ADSC: ADC 開始轉(zhuǎn)換 在單次轉(zhuǎn)換模式下,ADSC 置位將啟動(dòng)一次ADC 轉(zhuǎn)換。在連續(xù)轉(zhuǎn)換模式下,ADSC 置位 將啟動(dòng)首次轉(zhuǎn)換。第一次轉(zhuǎn)換( 在ADC 啟動(dòng)之后置位ADSC,或者在使能ADC 的同時(shí)置 位ADSC) 需要25 個(gè)ADC 時(shí)鐘周期,而不是正常情況下的13 個(gè)。第一次轉(zhuǎn)換執(zhí)行ADC 初始化的工作。 在轉(zhuǎn)換進(jìn)行過程中讀取ADSC 的返回值為"1”,直到轉(zhuǎn)換結(jié)束。ADSC 清零不產(chǎn)生任何動(dòng) 作。 Bit 5 – ADATE: ADC 自動(dòng)觸發(fā)使能 ADATE置位將啟動(dòng)ADC自動(dòng)觸發(fā)功能。觸發(fā)信號(hào)的上跳沿啟動(dòng)ADC轉(zhuǎn)換。觸發(fā)信號(hào)源通 過SFIOR 寄存器的ADC 觸發(fā)信號(hào)源選擇位ADTS 設(shè)置。 Bit 4 – ADIF: ADC 中斷標(biāo)志 在ADC 轉(zhuǎn)換結(jié)束,且數(shù)據(jù)寄存器被更新后, ADIF 置位。如果ADIE 及SREG 中的全局 中斷使能位I 也置位,ADC 轉(zhuǎn)換結(jié)束中斷服務(wù)程序即得以執(zhí)行,同時(shí)ADIF 硬件清零。此 外,還可以通過向此標(biāo)志寫1 來清ADIF。要注意的是,如果對(duì)ADCSRA 進(jìn)行讀-修改 -寫操作,那么待處理的中斷會(huì)被禁止。這也適用于SBI 及CBI 指令。 Bit 3 – ADIE: ADC 中斷使能 若ADIE 及SREG 的位I 置位, ADC 轉(zhuǎn)換結(jié)束中斷即被使能。 Bits 2:0 – ADPS2:0: ADC 預(yù)分頻器選擇位 由這幾位來確定XTAL 與ADC 輸入時(shí)鐘之間的分頻因子。
![AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01 AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01](http://pubimage.360doc.com/wz/default.gif)
3)ADC 數(shù)據(jù)寄存器- ADCL 及ADCH
![AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01 AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01](http://pubimage.360doc.com/wz/default.gif)
ADC 轉(zhuǎn)換結(jié)束后,轉(zhuǎn)換結(jié)果存于這兩個(gè)寄存器之中。如果采用差分通道,結(jié)果由2 的補(bǔ)碼 形式表示。 讀取ADCL 之后,ADC 數(shù)據(jù)寄存器一直要等到ADCH 也被讀出才可以進(jìn)行數(shù)據(jù)更新。因 此,如果轉(zhuǎn)換結(jié)果為左對(duì)齊,且要求的精度不高于8 比特,那么僅需讀取ADCH 就足夠 了。否則必須先讀出ADCL 再讀ADCH。 ADMUX 寄存器的 ADLAR 及MUXn 會(huì)影響轉(zhuǎn)換結(jié)果在數(shù)據(jù)寄存器中的表示方式。如果 ADLAR 為1,那么結(jié)果為左對(duì)齊;反之( 系統(tǒng)缺省設(shè)置),結(jié)果為右對(duì)齊。 ADC9:0: ADC 轉(zhuǎn)換結(jié)果 ADC 轉(zhuǎn)換的結(jié)果。
4)特殊功能IO 寄存器- SFIOR ![AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01 AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01](http://pubimage.360doc.com/wz/default.gif)
Bit 7:5 – ADTS2:0: ADC 自動(dòng)觸發(fā)源 若ADCSRA 寄存器的ADATE 置位,ADTS 的值將確定觸發(fā)ADC 轉(zhuǎn)換的觸發(fā)源;否則, ADTS的設(shè)置沒有意義。被選中的中斷標(biāo)志在其上升沿觸發(fā)ADC轉(zhuǎn)換。從一個(gè)中斷標(biāo)志清 零的觸發(fā)源切換到中斷標(biāo)志置位的觸發(fā)源會(huì)使觸發(fā)信號(hào)產(chǎn)生一個(gè)上升沿。如果此時(shí) ADCSRA 寄存器的ADEN 為1,ADC 轉(zhuǎn)換即被啟動(dòng)。切換到連續(xù)運(yùn)行模式(ADTS[2:0]=0) 時(shí),即使ADC 中斷標(biāo)志已經(jīng)置位也不會(huì)產(chǎn)生觸發(fā)事件。 ![AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01 AVR單片機(jī)(學(xué)習(xí)ing)鈥敚ň牛TMEGA16的模數(shù)轉(zhuǎn)換器鈥01](http://pubimage.360doc.com/wz/default.gif)
Bit 4 – Res: 保留位
|