另一種振盪器
前三篇打造的是崇拜單一頻率的振盪器:文氏電橋與相移正弦波產生器、LC 諧振槽、石英晶體。每一個都小心安排巴克豪森迴路,讓恰好一個音調的迴路增益等於一、相位也對,其餘的都死掉。555 計時器卻刻意拋開這份優雅。它不做正弦波,它做方波——俐落地開、再關、再開——而且它完全不在乎相位的純淨。
它屬於一個叫做弛張振盪器的家族。它的構想非常有畫面感:讓一個電容朝著天花板充電,一碰到天花板就啪地切換開關、讓它傾倒回地板;一碰到地板就再啪一下、重新開始充電。電容的電壓就在兩個準位之間鋸齒狀地上上下下,這沒完沒了的注滿與排空就是振盪。沒有共振、沒有調諧槽——只有一個 RC 時間常數,加上一個帶死區、且記得自己正往哪走的電路。如果這最後一句讓你想起史密特觸發器,請記住這個念頭:555 本質上就是一個藏在整齊封裝裡的史密特觸發振盪器。
八腳盒子的內部
掀開蓋子,魔術就溶解成四個你早已懂得的樸素零件。第一,三顆相等的電阻(各 5 k,「555」這名字就是這麼來的)跨在電源上堆成一個分壓器。它們分接出兩個參考電壓:Vcc 的 2/3 與 Vcc 的 1/3——也就是天花板與地板。第二,兩個比較器:上面那個盯著電容是否已升到 2/3 Vcc,下面那個盯著它是否已降到 1/3 Vcc。
第三,一個 SR 正反器——一塊一位元的記憶。上比較器的「碰到天花板了」把它重置;下比較器的「碰到地板了」把它設定。這塊記憶正是史密特觸發器那份遲滯的具體化身:兩個比較器配上兩個不同的閾值給出死區,而正反器記住你正在哪一側,於是電路不會抖動。第四,一顆放電電晶體(接腳 7 上一個通往地的開關)與一個輸出級(接腳 3),兩者都跟隨正反器的狀態。
無穩態:靜不下來的晶片
把它接成無穩態,555 就會永遠自由運行,不需任何輸入。你外加兩顆電阻 Ra 與 Rb、以及一顆電容 C。電容透過 Ra 與 Rb 兩者一起充電(緩慢注滿),並只透過 Rb 經放電接腳放電(傾倒)。把閾值與觸發接腳綁在一起、接到 C 的頂端,晶片就盯著自己的電容看。於是電容在 1/3 與 2/3 Vcc 之間鋸齒擺盪,輸出(接腳 3)在充電時翻成高、放電時翻成低,你就有了一個用兩顆電阻加一顆電容做成的方波產生器。
555 ASTABLE (free-running square wave)
+Vcc
|
[Ra]
|
+-------------------(7) DISCHARGE
|
[Rb]
|
+---(6) THRESHOLD --+-- (2) TRIGGER (pins 6 & 2 tied)
|
=== C
|
GND (3) OUT --> _|''|__|''|__|''|_
charge : Vcc -> Ra -> Rb -> C => OUT high, t_high
discharge: C -> Rb -> pin7 -> GND => OUT low, t_low
C ramps forever between 1/3 Vcc and 2/3 Vcc
t_high = 0.693 x (Ra + Rb) x C
t_low = 0.693 x Rb x C
f = 1.44 / ((Ra + 2 x Rb) x C)
duty = (Ra + Rb) / (Ra + 2 x Rb) (always > 50%)這些數字哪來的?那個 0.693 就是 ln(2):從 1/3 朝 Vcc 充電、停在 2/3,恰好跨過缺口的「兩倍」那一段,而 RC 斜坡走完這段要 0.693 個時間常數。試試真實數值:Ra = 1 k、Rb = 10 k、C = 100 nF。那麼 f = 1.44 / ((1000 + 20000) times 100 times 10^-9) = 1.44 / (21000 times 10^-7) = 1.44 / 2.1 times 10^-3,大約 686 Hz。工作週期是 (1 + 10) / (1 + 20) = 11/21,約 52 趴——稍微偏向開啟,而且你光靠挑更漂亮的電阻是修不好的。
單穩態:一聲令下,一個乾淨脈衝
把同一顆晶片稍微改接,你就得到一個單穩態,也叫單擊(one-shot)。它有一個穩定的休止狀態——輸出為低——就乖乖待著。把觸發接腳短暫拉到 1/3 Vcc 以下,下比較器就設定正反器:輸出啪地翻高,放電開關打開,外接電容(此時由單一電阻 R 從 Vcc 充電)開始往上爬。電容一碰到 2/3 Vcc,上比較器就重置正反器,輸出落回低,電容被傾倒到地,準備好迎接下一次觸發。推一下進去,吐一個固定寬度的脈衝出來。
脈衝寬度是 t = 1.1 times R times C。那個 1.1 是 ln(3):電容從零起步,必須爬到 2/3 Vcc,而 RC 斜坡爬到目標的三分之二處要 ln(3) ≈ 1.0986 個時間常數。取 R = 100 k、C = 10 uF,你得到 t = 1.1 times 100000 times 10 times 10^-6 = 1.1 秒——用一顆電阻加一顆電容做出的、整齊又可重複的延遲。想要 1 ms 的脈衝?把 R 維持 100 k,把 C 降到 10 nF。
工作週期、脈寬調變,與千百種工作
工作週期就是輸出在每個週期中處於高位的時間比例:duty = t_high / (t_high + t_low)。由於基本無穩態經由 Ra+Rb 充電、卻只經由 Rb 放電,t_high 永遠比 t_low 長,所以工作週期永遠在 50 趴以上。要突破這點,設計者會在 Rb 上並一顆二極體:此時充電電流改道、只經過二極體與 Ra,放電仍走 Rb,於是兩半變得獨立,你就能調到 50 趴、甚至更低。這是繞過這個拓撲一個真實限制的、小而誠實的偏方。
用一個控制電壓、而非固定電阻來操控工作週期,你就得到脈寬調變——這個主力把戲(第 5 篇會深入)可用來調暗 LED、控制馬達,或做一個便宜的 D 類放大器。555 的控制接腳(接腳 5)直接伸進分壓器、把 2/3 Vcc 的閾值往上或往下推,於是時序跟著滑動——這是一道把計時器變成粗略壓控振盪器的後門。555 不會因 PWM 的精度得獎,但拿來做業餘馬達轉速或閃爍燈號,它正好夠用。
- 選模式:自由運行的方波(無穩態),或每次觸發吐一個脈衝(單穩態)。
- 先選 C——挑一個你抽屜裡有的值,最好是穩定的薄膜或陶瓷電容,能避免就別用鬆垮的電解電容。
- 解出電阻:無穩態 f = 1.44 / ((Ra + 2 x Rb) x C);單穩態 t = 1.1 x R x C。把 R 保持在約 1 k 以上,免得放電電晶體過勞,並在數百萬歐姆以下,免得漏電流喧賓奪主。
- 加上去耦電容、並在接腳 5 接一顆 10 nF,然後用示波器驗證——實際頻率會比算式飄個幾趴,這是預料中的事。
555 會咬人的地方:誠實的限制
經典的 555 在每個切換邊緣都有個惡劣的習慣。它的輸出級會短暫地讓兩顆電晶體同時導通,在幾百奈秒內從電源直接抽走數十到數百毫安的電流尖峰。那個尖峰會把電源軌壓垮,還可能反過來觸發晶片自己的比較器——這就是惡名昭彰的「我的 555 隨機重置」臭蟲。修法是必須、不是可選:在晶片電源接腳旁緊接一顆約 0.1 uF 的去耦電容,再從控制接腳接一顆 10 nF 到地以穩住參考電壓。
對精度也要誠實。555 的準確度幾乎完全由你的外接 R 與 C 決定,而非晶片本身——而便宜的電解電容可能偏離標稱值 20 趴,還會隨溫度漂移。所以 5 到 10 趴的時序公差是常態,且邊緣帶有抖動,因為比較器並非無限快、也並非無雜訊。如果你需要碼錶等級的間隔、或給數位邏輯用的穩定時脈,555 就是錯的工具;該伸手去拿石英晶體振盪器,它的石英公差是百萬分之幾。555 是方便、不是精準——而懂得這個差別,正是重點所在。
再兩個實務提醒。有一個 CMOS 表親,7555,它驅動電源溫和得多(幾乎沒有貫穿尖峰)、可低至 2 V 運作、抽取的是微安而非毫安——但它在輸出端能灌入與汲取的電流較少,所以當你要直接驅動繼電器或小喇叭時,雙極性的原版仍勝出。並記住 555 根本上是一顆音頻與更慢頻段的零件:在大約數百千赫以上,內部延遲會把邊緣抹糊、算式也跟著瓦解。要做任何又快、又乾淨、或真正穩定的東西,這是工具箱裡錯的一端——但拿來做閃燈、嗶嗶聲、延遲,以及在生活步調慢而寬容處的 PWM,幾乎沒有東西贏得了它。