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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 低成本函數(shù)發(fā)生器

          低成本函數(shù)發(fā)生器

          作者: 時間:2006-05-07 來源:網(wǎng)絡(luò) 收藏

          用一個EPROM、一個標準D/A變換器和一個計數(shù)器可構(gòu)成一個簡單靈活的函數(shù)發(fā)生器。其原理是基于直接數(shù)字合成(DDS)基礎(chǔ)上的,它把所需函數(shù)的數(shù)字取樣存儲在存儲器(如EPROM)中并以周期性方式讀出。

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

          數(shù)字取樣由存儲器時鐘頻率周期T時分。D/A變換器把數(shù)字化信號變換為模擬信號,而低通濾波器選擇基帶信號(第1Nyquist視窗,從O到Fs/2,其中Fs=T/2)。

          大多數(shù)市場出售的DDS芯片具有正弦波輸出,其輸出頻率由用戶時鐘設(shè)置。用EPROM可以建造所希望的信號周期長度。為避免失真,第一取樣和最后取樣應(yīng)該相同,如同時序重復,在輸出沒有不連續(xù)性。

          圖1所示電路將產(chǎn)生所需要的時序,其頻率限制在16kHz和500kHz之間。4位計數(shù)器U5和U6構(gòu)成8位計數(shù)字,為存儲器EPROM(U3)產(chǎn)生地址(U3與用于模擬變換的8位D/A變換器連在一起)。

          一個反相器為計數(shù)器產(chǎn)生4MHz時鐘。8位寬EPROM的地址范圍是每個存儲波形的256個取樣。信號取樣頻率是CNTO信號的頻率,為2MHz(計數(shù)器LSB)。

          5個跨接線選擇EPROM中256個聯(lián)樣的32個不同時序。當所有5個跨接線都連接(從CNT8到CNT12每個地址引腳都用10K電阻器上拉)時,便選擇bank()。

          D/A變換器是標準的DAC0800,基準電阻器設(shè)計基準電流為2.55mA。因此,變換器滿量程輸出電流是(255/256)×Iref。電阻器R1設(shè)置滿量程電壓為840mV,R1可調(diào)節(jié)增益為1~6。

          元件R2和C3設(shè)置低通濾波器截止頻率為2MHz。U1輸出阻抗是50Ω,適于激勵同軸線。電壓Vs是12V,Vcc是+5V。EPROM內(nèi)容由簡單的C程序產(chǎn)生,見程序清單,此程序產(chǎn)生32個時序。

          可進一步擴展,增加2個EPROM和地址計數(shù)器以提供16位分辨率??捎肦AM替代EPROM,通過PC并行或串行端口輸入??捎幂^高的時鐘頻率,實現(xiàn)可編程函數(shù)發(fā)生器。

          用較大的計數(shù)器和尋址更多的EPROM地址線,可產(chǎn)生更長的時序。

          用較大的計數(shù)器和尋址更多的EPROM地址線,可產(chǎn)生更長的時序。針對這些擴展,EPROM中時序取樣變換的C代碼需要做相應(yīng)改變。



          評論


          相關(guān)推薦

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