了解使用環(huán)形振蕩器、基于 555 定時器的振蕩器和 Arduino 生成的方波振蕩器的數(shù)字方波發(fā)生器。
之前,我們介紹了 設(shè)計方波振蕩器即 運算放大器(運算放大器) 和基于晶體管的模擬實現(xiàn) 非穩(wěn)態(tài)多諧振蕩器。在本文中,我們將研究實現(xiàn) 方波
振蕩器,同時討論其優(yōu)點和局限性。
在深入研究之前,讓我們注意,我們將分析三個示例:
環(huán)形振蕩器
基于 555 定時器的振蕩器
用于產(chǎn)生方波振蕩器的 Arduino
使用環(huán)形振蕩器的方波發(fā)生器
環(huán)形振蕩器具有相當簡單的架構(gòu),它利用一串 逆 變 器 最終輸出饋入第一個輸入,形成一個環(huán),如圖1所示。
圖1. 通用環(huán)形振蕩器架構(gòu)
不僅架構(gòu)簡單,而且該電路的操作也很簡單。啟動時,讓我們假設(shè) INV1 從邏輯 0 轉(zhuǎn)到邏輯 1。隨著該逆變器的輸出開始上升,一旦INV的跳變點2
命中,該輸出將開始減少到邏輯
0。這種連鎖反應(yīng)一直持續(xù)到最終逆變器INVN,然后該輸出反饋到起點以維持反應(yīng)??傮w而言,該反應(yīng)會產(chǎn)生恒定的振蕩,并且假設(shè)所有逆變器具有相同的上升/下降時間,將產(chǎn)生方波輸出。
為了使電路按所述工作,環(huán)中的逆變器數(shù)量(在圖1中用N表示)必須是奇數(shù)。這個要求是必要的,因為正如我們在圖1中看到的,任何逆變器的輸出,INVX,其中
X 是偶數(shù),將具有補充 INV 輸出的輸出1.如果此值反饋給
INV1,不會有任何變化,因此也不會振蕩。雖然在這個簡單的例子中,我們只使用逆變器,但您可以使用任何 邏輯門
在整個電路中。但是,在這個環(huán)形示例中,必須有奇數(shù)個反相級才能振蕩。
現(xiàn)在,您可能會問的一個問題是:電路的哪些方面決定了工作頻率?基本上,每個逆變器的固有延遲(td),階段數(shù) (N) 根據(jù)等式確定:
f=12tdNf=12tdN
由于 td 通常很小,并且希望最小化N,頻率通常很高,大約為數(shù)百
MHz甚至GHz。對于低速應(yīng)用或精確的頻率控制,用戶通常必須為每個逆變器的輸出增加一個負載,最簡單地通過 遙控電路,如圖2所示。
圖2. 帶RC負載的環(huán)形振蕩器
展望未來,假設(shè)所有逆變器都以 VDD2VDD2 跳閘,其中 VDD 是供應(yīng) 電壓,振蕩頻率變?yōu)椋?/p>
f=12(td+0.69RC)Nf=12(td+0.69RC)N
接下來,假設(shè) RC 》d,我們可以說振蕩頻率完全取決于RC時間常數(shù)和級數(shù)。
至于優(yōu)點,這種設(shè)計的簡單性使其對高速振蕩器設(shè)計具有吸引力;但是,對于較低的頻率,很難控制這些頻率。另一個缺點是,由于開關(guān)速率高,這種架構(gòu)通常很耗電。
使用 555 定時器作為方波發(fā)生器
接下來,我們將討論使用 555定時器。該通用IC用于:
各種脈沖產(chǎn)生
延遲
定時
振蕩器應(yīng)用
幾家公司創(chuàng)建的 555 計時器種類繁多,但我們將專注于 LM555 來自德州儀器。 數(shù)據(jù)表 第 7.4.2 節(jié)
說明了計時器的不穩(wěn)定操作,正如我們從上一篇文章中知道的那樣,這是我們感興趣的。實現(xiàn)原理圖如圖3所示。
圖3. LM555 定時器設(shè)置,用于不穩(wěn)定操作模式。圖片由 德州儀器
在這里, 電容器,C,由 電阻, R一個 和 RB.一旦它到達上跳變點(在計時器的情況下,V 的 2/3抄送),C 然后放電至 V 的 1/3抄送
通過 RB.此時,電容器再次開始充電,并且這種行為無限期地持續(xù)下去。由此,我們可以通過以下等式獲得充電和放電時間以及振蕩周期:
trise=0.69(RA+RB)Ctrise=0.69(RA+RB)C
tfall=0.69RBCtfall=0.69RBC
T=trise+tfallT=trise+tfall
f=1T=1.44(RA+2RB)Cf=1T=1.44(RA+2RB)C
在這里,我們可以看到,我們不僅可以控制振蕩頻率,還可以控制 輸出占空比。但是,這些不能短于 t秋天,這意味著占空比必須大于 50%,但如果 RB
》·一個。
這種實現(xiàn)的優(yōu)點是簡單,需要最少的硬件,也是低速振蕩器的穩(wěn)定可靠的解決方案。至于限制,此設(shè)計不適用于需要小于50%的占空比或需要高速的情況。
基于 Arduino 的方波發(fā)生器,使用 Arduino UNO R3
最后,我們將討論通過 Arduino 實現(xiàn)振蕩器。對于我們的示例,我們將查看 Arduino UNO R3.該板的引腳排列如圖4所示。
圖4. Arduino UNO R3 引腳排列。圖片由 阿杜伊諾 [點擊圖片放大]
對于我們的生成器,我們將使用 Arduino UNO 的數(shù)字 I/O
引腳,具體來說,D7。實現(xiàn)此解決方案不需要外部硬件,因為這都可以通過如下所示的Arduino程序定義:
整數(shù)頻率 = 100; 以 Hz 為單位設(shè)置用戶定義的頻率值
int per_ms = 1e3*(1/頻率);將一種狀態(tài)(高或低)的時間設(shè)置為 T/2(以毫秒為單位)
int dutyCyc = 0.5;設(shè)置輸出波形的占空比
void setup() {
引腳模式(7,輸出);將 D7 設(shè)置為數(shù)字輸出
}
振蕩環(huán)
void loop() {
數(shù)字寫入(7,高);將 D7 設(shè)置為邏輯 1
延遲(Cyc*per_ms);在邏輯 1 處保留 T/2
數(shù)字寫入(7,低);將 D7 設(shè)置為邏輯 0
延遲((1-Cyc)*per_ms);在邏輯 0 處保留 T/2
}
在上面的代碼片段中,我們聲明了三個全局變量,允許用戶設(shè)置頻率和占空比。在本例中,我們可以創(chuàng)建一個占空比為 50% 的 100 Hz
輸出,從而產(chǎn)生方波。從那里,我們可以使用“pinMode”功能在空隙設(shè)置塊中初始化我們的數(shù)字輸出引腳。接下來,我們可以進入一個連續(xù)循環(huán),將D7設(shè)置為HIGH,并將輸出保持在該值,時間等于占空比乘以周期。最后,我們可以將輸出調(diào)至邏輯低電平,并在剩余的周期內(nèi)將信號留在那里。因此,一旦Arduino打開,此循環(huán)將無限期地繼續(xù)。
如您所見,該軟件實現(xiàn)允許高度靈活性,無需外部硬件。雖然這相當簡單,但我們僅限于 Arduino
的帶寬,除非我們在需要高速振蕩器時使用外部振蕩器來推動更高的頻率。
-
振蕩器
+關(guān)注
關(guān)注
28文章
3949瀏覽量
140220 -
發(fā)生器
+關(guān)注
關(guān)注
4文章
1389瀏覽量
62376 -
定時器
+關(guān)注
關(guān)注
23文章
3272瀏覽量
116754
發(fā)布評論請先 登錄
相關(guān)推薦
分享四款555定時器產(chǎn)生方波的電路
環(huán)形振蕩器,環(huán)形振蕩器工作原理是什么?
基于CPLD的片內(nèi)環(huán)形振蕩器的設(shè)計方案

環(huán)形振蕩器介紹_反相器構(gòu)成環(huán)形振蕩器

555定時器產(chǎn)生方波原理(四款555定時器產(chǎn)生方波的電路詳解)

環(huán)形振蕩器原理及應(yīng)用_環(huán)形振蕩器的實用電路
使用555定時器設(shè)計的函數(shù)信號發(fā)生器
555定時器多諧振蕩器的振蕩周期為多少?
基于多級反饋環(huán)形振蕩器的真隨機數(shù)發(fā)生器設(shè)計

評論