AVR M16 ADC應(yīng)用設(shè)計(jì)要點(diǎn)
在通常情況下,ADC的逐次比較轉(zhuǎn)換電路要達(dá)到最大精度時(shí),需要50kHz~200kHz之間的采樣時(shí)鐘。在要求轉(zhuǎn)換精度低于10位的情況下,ADC的采樣時(shí)鐘可以高于200kHz,以獲得更高的采樣率。
本文引用地址:http://www.biyoush.com/article/201611/321756.htmADC模塊中包含一個(gè)預(yù)分頻器的ADC時(shí)鐘源,它可以對(duì)大于100KHz的系統(tǒng)時(shí)鐘進(jìn)行分頻,以獲得合適的ADC時(shí)鐘提供ADC使用。預(yù)分頻器的分頻系數(shù)由ADCSRA寄存器中的ADPS位設(shè)置的。一旦寄存器ADCSRA中的ADEN位置“1”(ADC開(kāi)始工作),預(yù)分頻器就啟動(dòng)開(kāi)始計(jì)數(shù)。ADEN位為“1”時(shí),預(yù)分頻器將一直工作;ADEN位為“0”時(shí),預(yù)分頻器一直處在復(fù)位狀態(tài)。
AVR的ADC完成一次轉(zhuǎn)換的時(shí)間見(jiàn)表6.2.5。從表中可以看出,完成一次ADC轉(zhuǎn)換通常需要13-14個(gè)ADC時(shí)鐘。而啟動(dòng)ADC開(kāi)始第一次轉(zhuǎn)換到完成的時(shí)間需要25個(gè)ADC時(shí)鐘,這是因?yàn)橐獙?duì)ADC單元的模擬電路部分進(jìn)行初始化。
當(dāng)ADCSRA寄存器中的ADSC位置位,啟動(dòng)ADC轉(zhuǎn)換時(shí),A/D轉(zhuǎn)換將在隨后ADC時(shí)鐘的上升沿開(kāi)始。一次正常的A/D轉(zhuǎn)換開(kāi)始時(shí),需要1.5個(gè)ADC時(shí)鐘周期的采樣保持時(shí)間(ADC首次啟動(dòng)后需要13.5個(gè)ADC時(shí)鐘周期的采樣保持時(shí)間)。當(dāng)一次A/D轉(zhuǎn)換完成后,轉(zhuǎn)換結(jié)果寫(xiě)入ADC數(shù)據(jù)寄存器,ADIF(ADC中斷標(biāo)志位)將被置位。在單次轉(zhuǎn)換模式下,ADSC也同時(shí)被清零。用戶(hù)程序可以再次置位ADSC位,新的一次轉(zhuǎn)換將在下一個(gè)ADC時(shí)鐘的上升沿開(kāi)始。
當(dāng)ADC設(shè)置為自動(dòng)觸發(fā)方式時(shí),觸發(fā)信號(hào)的上升沿將啟動(dòng)一次ADC轉(zhuǎn)換。轉(zhuǎn)換完成的結(jié)果將一直保持到下一次觸發(fā)信號(hào)的上升沿出現(xiàn),然后開(kāi)始新的一次ADC轉(zhuǎn)換。這就保證了使ADC每隔一定的時(shí)間間隔進(jìn)行一次轉(zhuǎn)換。在這種方式下,ADC需要2個(gè)ADC時(shí)鐘周期的采樣保持時(shí)間。
在自由連續(xù)轉(zhuǎn)換模式下,一次轉(zhuǎn)換完畢后馬上開(kāi)始一次新的轉(zhuǎn)換,此時(shí),ADSC位一直保持為“1”。
2、ADC輸入通道和參考電源的選擇
寄存器ADMUX中的MUXn和REFS1、REFS0位實(shí)際上是一個(gè)緩沖器,該緩沖器與一個(gè)MCU可以隨機(jī)讀取的臨時(shí)寄存器相連通。采用這種結(jié)構(gòu),保證了ADC輸入通道和參考電源只能在ADC轉(zhuǎn)換過(guò)程中的安全點(diǎn)被改變。在ADC轉(zhuǎn)換開(kāi)始前,通道和參考電源可以不斷被更新,一旦轉(zhuǎn)換開(kāi)始,通道和參考電源將被鎖定,并保持足夠時(shí)間,以確保ADC轉(zhuǎn)換的正常進(jìn)行。在轉(zhuǎn)換完成前的最后一個(gè)ADC時(shí)鐘周期(ADCSRA的ADIF位置“1”時(shí)),通道和參考電源又開(kāi)始重新更新。
注意:由于A/D轉(zhuǎn)換開(kāi)始于置位ADSC后的第一個(gè)ADC時(shí)鐘的上升沿,因此,在置位ADSC后的一個(gè)ADC時(shí)鐘周期內(nèi)不要將一個(gè)新的通道或參考電源寫(xiě)入到ADMUX寄存器中。
改變差分輸入通道時(shí)需特別當(dāng)心。一旦確定了差分輸入通道,增益放大器需要125µs的穩(wěn)定時(shí)間。所以在選擇了新的差分輸入通道后的125µs內(nèi)不要啟動(dòng)A/D轉(zhuǎn)換,或?qū)⑦@段時(shí)間內(nèi)轉(zhuǎn)換結(jié)果丟棄。通過(guò)改變ADMUX中的REFS1、REFS0來(lái)更改參考電源后,第一次差分轉(zhuǎn)換同樣要遵循以上的時(shí)間處理過(guò)程。
1)當(dāng)要改變ADC輸入通道時(shí),應(yīng)該遵守以下方式,以保證能夠選擇到正確的通道:
在連續(xù)轉(zhuǎn)換模式下,總是在啟動(dòng)ADC開(kāi)始第一次轉(zhuǎn)換前改變通道設(shè)置。盡管輸入通道改變發(fā)生在ADSC位被寫(xiě)入“1”后的1個(gè)ADC時(shí)鐘周期內(nèi),然而,最簡(jiǎn)單的方法是等到第一次轉(zhuǎn)換完成后再改變通道的設(shè)置。然而由于此時(shí)新一次的轉(zhuǎn)換已經(jīng)自動(dòng)開(kāi)始,所以,當(dāng)前這次的轉(zhuǎn)換結(jié)果仍反映前一通道的轉(zhuǎn)換值,而下一次的轉(zhuǎn)換結(jié)果將為新設(shè)置通道的值。
2)ADC電壓參考源
ADC的參考電壓(VREF)決定了A/D轉(zhuǎn)換的范圍。如果單端通道的輸入電壓超過(guò)VREF,將導(dǎo)致轉(zhuǎn)換結(jié)果接近于0x3FF(1023)。ADC的參考電壓VREF可以選擇為AVCC或芯片內(nèi)部的2.56V參考源,或者為外接在AREF引腳上的參考電壓源。
如果將一個(gè)外部固定的電壓源連接到AREF引腳,那就不能使用任何的內(nèi)部參考電源,否則就會(huì)使外部電壓源短路。外部參考電源的范圍應(yīng)在2.0V到AVCC-0.2V之間。參考電源改變后的第一次ADC轉(zhuǎn)換結(jié)果可能不太準(zhǔn)確,建議拋棄該次轉(zhuǎn)換結(jié)果。
評(píng)論