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

          新聞中心

          PIC的A/D轉(zhuǎn)換器

          作者: 時(shí)間:2016-11-13 來源:網(wǎng)絡(luò) 收藏
          PIC16C7X (除710/71/711以外)當(dāng)ADCON1配置為將所有模擬引腳設(shè)置為數(shù)字I/O時(shí),VREF內(nèi)部接地。這將導(dǎo)致每次執(zhí)行模擬轉(zhuǎn)換時(shí),ADRES寄存器均讀出0xFF值,這是由于每個(gè)輸入電壓均高于VREF的緣故。

          PIC16C7X系列器件之一,發(fā)現(xiàn)模擬數(shù)字轉(zhuǎn)換結(jié)果并不總是準(zhǔn)確的。如何才能改善精確度呢?

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

          1.確信所有定時(shí)規(guī)范均得到滿足。如果您將ADC關(guān)閉后打開,應(yīng)至少等待一個(gè)最小延時(shí)時(shí)間后才可采樣;如果您改變輸入通道,也應(yīng)等待一個(gè)最小延時(shí);最后是Tad,即為每個(gè)位轉(zhuǎn)換所選擇的時(shí)間。這一時(shí)間在ADCON0內(nèi)做出選擇,應(yīng)在2到6us之間。如果Tad太短,轉(zhuǎn)換結(jié)束時(shí),結(jié)果尚未被完全轉(zhuǎn)換,而如果Tad太長(zhǎng),轉(zhuǎn)換結(jié)束前采樣電容上的電壓可能已經(jīng)下降。這些定時(shí)規(guī)范以表格或公式的形式提供在數(shù)據(jù)手冊(cè)中,應(yīng)根據(jù)具體器件和具體情況進(jìn)行查看。

          2.通常模擬信號(hào)的源阻抗都較高(大于1K歐姆),因此源阻抗輸出電流對(duì)采樣電容進(jìn)行充電會(huì)影響精度。如果輸入信號(hào)變化不太快,嘗試在模擬輸入上連接一個(gè)0.1uF的電容。這一電容將充電到所采樣的模擬電壓,并為52pf的內(nèi)部采樣電容提供充電所需的瞬時(shí)電流。

          3.在PIC16C71上,一個(gè)模擬輸入引腳緊挨著一個(gè)振蕩器引腳。一般當(dāng)它們的走線彼此相鄰,振蕩器上的噪聲會(huì)耦合到模擬電路上。如果時(shí)鐘源為外部振蕩器盒時(shí)更是如此,因?yàn)榕c晶振電路所提供的上升較緩慢的正弦波不同,該外部振蕩器產(chǎn)生的是邊沿陡峭而帶有高頻成分的方波。當(dāng)然,將模擬引腳去耦將有助于改善噪聲耦合,而如果您能將該引腳空出,將它變成輸出并驅(qū)動(dòng)為低電平,即能真正消除對(duì)模擬電路的交叉耦合。

          4.最后,引用數(shù)據(jù)手冊(cè)上的話:“在器件頻率較低的系統(tǒng)中,使用來自器件振蕩器的A/D時(shí)鐘較好...這將在很大程度上減小數(shù)字開關(guān)噪聲的影響。”還有,“在器件開始A/D轉(zhuǎn)換后就進(jìn)入休眠的系統(tǒng)中,要求選擇RC時(shí)鐘源...它將提供最高精度。”



          關(guān)鍵詞: PICAD轉(zhuǎn)換

          評(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); })();