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

          新聞中心

          EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 脈沖信號(hào)源的CPLD實(shí)現(xiàn)方法

          脈沖信號(hào)源的CPLD實(shí)現(xiàn)方法

          作者: 時(shí)間:2009-03-16 來(lái)源:網(wǎng)絡(luò) 收藏

          頻率及占空比數(shù)據(jù)按如下方式計(jì)算:
          設(shè)要輸出的頻率為f,占空比為D,則鎖存器1、2要設(shè)定的值分別為


          其中fOSC為系統(tǒng)時(shí)鐘,C1、C2采用2進(jìn)制補(bǔ)碼。由式(1),式(2)式可得到頻率及占空比計(jì)算式

          由上式可以看出信號(hào)源最高輸出頻率取決于系統(tǒng)時(shí)鐘頻率,最高頻率為系統(tǒng)時(shí)鐘頻率的一半(C1、C2均為1),要提高信號(hào)源輸出頻率必須提高系統(tǒng)時(shí)鐘頻率,既采用高頻晶振或倍頻電路。占空比取決于C1與C1+C2的比值,輸出頻率為最高頻率時(shí),占空比為50%;同樣最小步進(jìn)也取決于系統(tǒng)時(shí)鐘頻率,提高系統(tǒng)時(shí)鐘頻率,就可使步進(jìn)縮小。
          如果要信號(hào)源輸出頻率為500 kHz,占空比為0.5的脈沖波,則按式(1)、式(2)可以算出,C1=C2=HB0(16進(jìn)制數(shù))。將C1、C2通過(guò)工控機(jī)置入中。如果C1、C2為小數(shù),則需取整,取整后需按式(3)、式(4)重新計(jì)算頻率和占空比,算出的值為實(shí)際的頻率與占空比。

          2 硬件編程
          開(kāi)發(fā)軟件采用Max PlusⅡ10.2,編程采用VHlDL硬件描述語(yǔ)言。
          編程采用層次結(jié)構(gòu),整個(gè)程序采用頂層模塊和底層模塊。頂層模塊,如圖4所示。底層模塊包括系統(tǒng)包含的各組件。


          整個(gè)程序編寫(xiě)完成后進(jìn)行編譯、仿真,仿真結(jié)果,如圖5所示。編譯、仿真通過(guò)后都正確,即可通過(guò)JTAG接口將程序下載到目標(biāo)板中,目標(biāo)板即可使用。

          3 系統(tǒng)控制軟件
          系統(tǒng)控制軟件采用LabWindows/CVI編寫(xiě),為了給鎖存器置數(shù),可采用如下程序?qū)崿F(xiàn):


          4 技術(shù)指標(biāo)

          輸出脈沖頻率:20~700 kHz,占空比:1%~40%,時(shí)鐘采用80 MHz有源晶振。在700 kHz時(shí)頻率步進(jìn)為6 kHz,20 kHz時(shí)頻率步進(jìn)為5 Hz。

          5 結(jié)束語(yǔ)
          由于采用了EPM7128SLC84―10作為的核心。電路結(jié)構(gòu)簡(jiǎn)單,頻率、占空比可任意設(shè)置,準(zhǔn)確度高。同時(shí)操作簡(jiǎn)單方便,功能更易擴(kuò)展。


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

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();