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

          新聞中心

          EEPW首頁 > 元件/連接器 > 設(shè)計應(yīng)用 > 基于環(huán)形振蕩器、555定時器和Arduino的數(shù)字方波發(fā)生器設(shè)計

          基于環(huán)形振蕩器、555定時器和Arduino的數(shù)字方波發(fā)生器設(shè)計

          作者: 時間:2024-07-31 來源:EEPW編譯 收藏

          了解使用、基于的振蕩器和生成的方波振蕩器的。

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

          之前,我們介紹了設(shè)計方波振蕩器的概念,即運(yùn)算放大器(op-amp)和基于晶體管的非穩(wěn)態(tài)多諧振蕩器的模擬實現(xiàn)。在本文中,我們將研究實現(xiàn)方波振蕩器的數(shù)字方法,同時討論其優(yōu)點和局限性。

          在深入探討之前,讓我們注意一下我們將分析三個例子:

          基于的振蕩器

          產(chǎn)生方波振蕩器

          使用的方波發(fā)生器

          環(huán)形振蕩器具有相當(dāng)簡單的架構(gòu),它利用一串反相器,最終輸出饋入第一個輸入,形成一個環(huán),如圖1所示。

          通用環(huán)形振蕩器架構(gòu)

          1.png

          圖1。通用環(huán)形振蕩器架構(gòu)

          不僅架構(gòu)簡單,電路的操作也很簡單。啟動時,假設(shè)INV1從邏輯0變?yōu)檫壿?。隨著該逆變器的輸出開始上升,一旦達(dá)到INV2的觸發(fā)點,該輸出將開始降至邏輯0。這種連鎖反應(yīng)持續(xù)到最終的逆變器INVN,然后輸出反饋到開始以維持反應(yīng)??偟膩碚f,這種反應(yīng)會產(chǎn)生持續(xù)的振蕩,假設(shè)所有逆變器的上升/下降時間相同,將產(chǎn)生方波輸出。

          為了使電路按所述運(yùn)行,環(huán)中的逆變器數(shù)量(圖1中用N表示)必須是奇數(shù)。這一要求是必要的,因為如圖1所示,任何反相器INVX的輸出(其中X是偶數(shù))都將具有與INV1的輸出互補(bǔ)的輸出。如果將該值反饋到INV1,則不會有變化,因此也不會有振蕩。雖然在這個簡單的例子中,我們只使用反相器,但您可以在整個電路中使用任何邏輯門。然而,在這個環(huán)形例子中,必須有奇數(shù)個反相級才能振蕩。

          現(xiàn)在,你可能會問:電路的哪些方面決定了工作頻率?基本上,每個逆變器的固有延遲(td)和級數(shù)(N)根據(jù)以下方程式?jīng)Q定:

           2.png

          由于td通常很小,并且希望將N最小化,因此頻率通常很高,大約為數(shù)百MHz甚至GHz。對于低速應(yīng)用或精確的頻率控制,用戶通常必須向每個逆變器的輸出端添加負(fù)載,最簡單的是通過RC電路,如圖2所示。

          帶RC負(fù)載的環(huán)形振蕩器

           3.png

          圖2:帶RC負(fù)載的環(huán)形振蕩器

          向前看,假設(shè)所有逆變器在

           4.png

          其中VDD是電源電壓,振蕩頻率變?yōu)椋?/p>

           5.png

          接下來,假設(shè)RC>td,我們可以說振蕩頻率完全取決于RC時間常數(shù)和級數(shù)。

          至于優(yōu)點,這種設(shè)計的簡單性使其對高速振蕩器設(shè)計具有吸引力;然而,對于較低的頻率,很難控制這些。另一個缺點是,由于高切換速率,這種架構(gòu)通常功耗很大。

          使用作為方波發(fā)生器

          接下來,我們將討論使用555定時器創(chuàng)建方波振蕩器。這種通用IC用于:

          各種脈沖產(chǎn)生

          延誤

          時間安排

          振蕩器應(yīng)用

          555定時器有很多種,由幾家公司開發(fā),但我們將重點介紹德州儀器的LM555。數(shù)據(jù)表第7.4.2節(jié)說明了定時器的不穩(wěn)定操作,正如我們從上一篇文章中所知,這是我們感興趣的。實現(xiàn)的示意圖如圖3所示。

          LM555定時器設(shè)置,用于非穩(wěn)定操作模式

           6.png

          圖3。LM555定時器設(shè)置為不穩(wěn)定操作模式。圖片由德州儀器提供

          這里,電容器C由電阻器RA和RB充電。一旦達(dá)到上觸發(fā)點(在定時器的情況下,VCC的?),C就會通過RB放電至VCC的85%。此時,電容器再次開始充電,這種行為會無限期地持續(xù)下去。由此,我們可以通過以下方程獲得充電和放電時間以及振蕩周期:

           7.png

          在這里,我們可以看到,我們不僅可以控制振蕩頻率,還可以控制輸出占空比。然而,這些不能短于tfall,這意味著占空比必須大于50%,但如果RB>RA,則可以接近方波占空比。

          這種實現(xiàn)的優(yōu)點是它簡單,需要最少的硬件,也是低速振蕩器的穩(wěn)定可靠的解決方案。至于限制,這種設(shè)計不適用于需要小于50%的占空比或需要高速的情況。

          基于 UNO R3的方波發(fā)生器

          最后,我們將討論通過Arduino實現(xiàn)振蕩器。在我們的例子中,我們將看看Arduino UNO R3。該板的引腳如圖4所示。

          Arduino UNO R3引腳。

           8.png

          圖4。Arduino UNO R3引腳。圖片由Arduino提供[點擊圖片放大]

          對于我們的生成器,我們將使用Arduino UNO的數(shù)字I/O引腳之一,特別是D7。實現(xiàn)此解決方案不需要外部硬件,因為這都可以通過下面顯示的Arduino程序定義:

           9.png

          在上面的代碼片段中,我們聲明了三個全局變量,允許用戶設(shè)置頻率和占空比。在這個例子中,我們可以創(chuàng)建一個占空比為50%的100 Hz輸出,從而產(chǎn)生方波。然后,我們可以使用“pinMode”函數(shù)在void設(shè)置塊中初始化數(shù)字輸出引腳。接下來,我們可以進(jìn)入一個連續(xù)循環(huán),將D7設(shè)置為高,并將輸出保持在該值一段時間,該時間等于占空比乘以周期。最后,我們可以將輸出設(shè)置為邏輯低電平,并在剩余的時間段內(nèi)保持信號不變。因此,一旦Arduino打開,這個循環(huán)將無限期地繼續(xù)下去。

          正如您所看到的,軟件實現(xiàn)允許在零外部硬件的情況下具有高度的靈活性。雖然這相當(dāng)簡單,但我們僅限于Arduino的帶寬,除非我們使用外部振蕩器來推動更高的頻率,如果需要高速振蕩器的話。




          評論


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