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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 微控制器用作正弦波發(fā)生器

          微控制器用作正弦波發(fā)生器

          作者: 時間:2002-01-08 來源: 收藏

          通過在微控制器存儲器中存儲預設值的方法,可以來將微控制器作為波形發(fā)生器使用。微控制器可以實現(xiàn)包括正弦波、三角波和鋸齒波在內(nèi)的所有類型的波形。

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

          本文探討了如何通過在微控制器存儲器中預先加載一組固定數(shù)值,從而生成正弦波的方法。同時還探討了如何利用DAC將這些預設的數(shù)值轉(zhuǎn)換為模擬輸出。最后探討了用來改變正弦波頻率的機制。

          用來實現(xiàn)這一設計的器件是Cypress的子公司MicrosystemsTM PSoCTM(可編程系統(tǒng)芯片)器件。PSoC采用的是一個8位哈佛結構的微處理器,器件內(nèi)部有16KB的可編程存儲器(閃存),用以存儲波形數(shù)據(jù)點。

          可以采用任何具有顯示/圖形功能的軟件包來采集通過串行口傳輸?shù)牟ㄐ螖?shù)據(jù)。設計,采用的是NI公司的LabView編程軟件,以采集、格式化和顯示進入和流出PSoC器件的數(shù)據(jù)。

          任何可利用三角法計算的數(shù)學軟件或計算器都可以用來生成一組正弦波形數(shù)據(jù)。一旦確定了所需要的波形分辨率,就可以計算出產(chǎn)生所需波形的波形數(shù)據(jù)點數(shù)。

          在器件中加載這些波形點的數(shù)據(jù)值之前,還需要確定幾個參數(shù)。其中一個參數(shù)是器件的輸出范圍,這可協(xié)助確定偏置數(shù)值。在PSoC器件中,有幾個輸出范圍可供選擇,包括(Vcc/2)±(Vcc/2)(Vcc/2)±頻帶間隙。

          我們選擇該器件最大可能的輸出范圍(Vcc/2)±(Vcc/2)。本參考設計的輸出采用了PSoC器件的全輸出擺幅(05V)。為使用最大的輸出范圍,輸出信號的偏置必須置于+2.5V,最大的振幅也必須設為+2.5V。這些數(shù)值保證了DAC的波形輸出具有最大電壓擺幅,同時又不會有削波現(xiàn)象。

          正確設定這些參數(shù)以后,即可將正弦波數(shù)據(jù)加載到存儲器中。在向PSoC器件閃速存儲器中寫入預先生成的數(shù)據(jù)時,可以在源代碼中將這些數(shù)據(jù)列在一個變量名下。這可保證在器件每次被編程時,存儲器加載過程都會自動執(zhí)行。圖1示出了如何利用C語言來實現(xiàn)這一點。之后存儲在變量中的數(shù)據(jù)被發(fā)送到DAC,每次一個字節(jié)循環(huán)進行,DAC時鐘用來決定DAC轉(zhuǎn)換和輸出數(shù)據(jù)的速度,從而決定了輸出波形的周期。

          用來編程和調(diào)試PSoC設計的PSoC DesignerTM軟件包示于圖2。該圖顯示的是DAC和生成DAC時鐘的計數(shù)器布局。圖中還顯示出了用來生成中斷信號的第二個計數(shù)器。中斷程序用來將數(shù)據(jù)傳送到DAC,然后DAC將轉(zhuǎn)換后的信號輸出至I/O引腳。DAC的最大刷新速率為125KHz,驅(qū)動DAC的時鐘必須設置為所需輸出頻率的4倍。

          DAC需要進行的設置包括時鐘相位參數(shù)。該參數(shù)將DAC輸出與另一個PSoC模塊的輸入同步。另一參數(shù)——模擬總線設置則用來將數(shù)據(jù)輸出至特定的I/O引腳。DAC需要的最后一個配置參數(shù)是二進制偏置設置,該參數(shù)決定了DAC用來傳輸數(shù)據(jù)的格式。

          其中一個計數(shù)器(counter_1)用來生成驅(qū)動DAC的時鐘信號。進行適當?shù)挠嫈?shù)器參數(shù)設置,使計數(shù)器輸出信號是DAC轉(zhuǎn)換頻率的4倍。

          第二個計數(shù)器(counter_2)用來生成周期性中斷信號。在中斷服務執(zhí)行過程中,閃速存儲器中的數(shù)據(jù)地址一增加,存儲在該地址單元中的數(shù)據(jù)則被發(fā)送到DAC。這一過程不斷重復直至達到最后一個數(shù)據(jù)點,然后計數(shù)器復位,這一過程重新開始。在本例中,數(shù)據(jù)點的發(fā)送用以確定時間間隔緊密相連,從而生成周期性波形。

          為調(diào)整輸出波形的周期,需要調(diào)整coanter1(它生成DAC時鐘)的周期。這一調(diào)整過程可動態(tài)完成,因為控制PSoC模塊的參數(shù)是基于寄存器的??山⒁环N協(xié)議架構來將這些參數(shù)傳送至相應的寄存器。一旦確定了相應的協(xié)議架構,參數(shù)即可被傳送至正確的寄存器,而模塊輸出則根據(jù)新的參數(shù)進行調(diào)整。

          設計檢查相對比較簡單。因為本設計中DAC的輸出通過I/O端口輸出,因此進行設計的最方便的方法是檢查該引腳輸出的信號。通過檢查輸出信號的頻率、幅度、偏置和信號質(zhì)量,可以保證他們滿足設計的要求。為驗證設計正常工作,開發(fā)了LabView接口。

          微控制器是非常靈活的,他們可完成的功能也幾乎是沒有限制的。本文給出的僅是如何實現(xiàn)這些眾多可能功能的一個例子?!?/font>



          關鍵詞:

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();