<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AVR M16 ADC應(yīng)用設(shè)計(jì)要點(diǎn)

          AVR M16 ADC應(yīng)用設(shè)計(jì)要點(diǎn)

          作者: 時(shí)間:2016-11-26 來(lái)源:網(wǎng)絡(luò) 收藏
          1、預(yù)分頻與轉(zhuǎn)換時(shí)間

          在通常情況下,ADC的逐次比較轉(zhuǎn)換電路要達(dá)到最大精度時(shí),需要50kHz~200kHz之間的采樣時(shí)鐘。在要求轉(zhuǎn)換精度低于10位的情況下,ADC的采樣時(shí)鐘可以高于200kHz,以獲得更高的采樣率。

          本文引用地址:http://www.ex-cimer.com/article/201611/321756.htm

          ADC模塊中包含一個(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é)果寫入ADC數(shù)據(jù)寄存器,ADIF(ADC中斷標(biāo)志位)將被置位。在單次轉(zhuǎn)換模式下,ADSC也同時(shí)被清零。用戶程序可以再次置位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è)新的通道或參考電源寫入到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)該遵守以下方式,以保證能夠選擇到正確的通道:

          在單次轉(zhuǎn)換模式下,總是在開(kāi)始轉(zhuǎn)換前改變通道設(shè)置。盡管輸入通道改變發(fā)生在ADSC位被寫入“1”后的1個(gè)ADC時(shí)鐘周期內(nèi),然而,最簡(jiǎn)單的方法是等到轉(zhuǎn)換完成后,再改變通道選擇。

          在連續(xù)轉(zhuǎn)換模式下,總是在啟動(dòng)ADC開(kāi)始第一次轉(zhuǎn)換前改變通道設(shè)置。盡管輸入通道改變發(fā)生在ADSC位被寫入“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引腳上的參考電壓源。

          AVCC通過(guò)一個(gè)無(wú)源開(kāi)關(guān)連接到ADC。內(nèi)部2.56V參考源是由內(nèi)部能隙參考源(VBC)通過(guò)內(nèi)部的放大器產(chǎn)生的。注意,無(wú)論選用什么內(nèi)部參考電源,外部AREF引腳都是直接與ADC相連的,因此,可以通過(guò)外部在AREF引腳和地之間并接一個(gè)電容,使內(nèi)部參考電源更加穩(wěn)定和抗噪。可以通過(guò)使用高阻電壓表測(cè)量AREF引腳,來(lái)獲得參考電源VREF的電壓值。由于VREF是一個(gè)高阻源,因此,只有容性負(fù)載可以連接到該引腳。

          如果將一個(gè)外部固定的電壓源連接到AREF引腳,那就不能使用任何的內(nèi)部參考電源,否則就會(huì)使外部電壓源短路。外部參考電源的范圍應(yīng)在2.0V到AVCC-0.2V之間。參考電源改變后的第一次ADC轉(zhuǎn)換結(jié)果可能不太準(zhǔn)確,建議拋棄該次轉(zhuǎn)換結(jié)果。


          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: AVRM16AD

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();