新聞中心

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

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

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

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

本文引用地址:http://2s4d.com/article/202407/461534.htm

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

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

基于的振蕩器

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

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

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

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

1.png

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

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

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

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

 2.png

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

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

 3.png

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

向前看,假設所有逆變器在

 4.png

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

 5.png

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

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

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

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

各種脈沖產(chǎn)生

延誤

時間安排

振蕩器應用

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

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

 6.png

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

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

 7.png

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

這種實現(xiàn)的優(yōu)點是它簡單,需要最少的硬件,也是低速振蕩器的穩(wěn)定可靠的解決方案。至于限制,這種設計不適用于需要小于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

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

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




評論


相關推薦

技術專區(qū)

關閉