令人著迷的 Nixie Clock 製作 (二)
在上一篇裡, 我們搞定了點亮 nixie tube 所需要的高壓電源, 接下來我們要設法控制管子, 讓它們可以按照設定顯示數字.
I/O 需求評估
要顯示時, 分, 秒, 總共需要 6 根管子. 每根管子有 0-9 隻陰極共 10 隻腳要控制, 6 隻管子就有 60 隻腳要控制.
我們先考慮最簡單的方法: 直接驅動每一根管子的陰極, 這樣就需要 60 隻 I/O 跟 60 組高壓驅動電路. 不行, 太複雜了.
再來第二種方法就是: 考慮 nixie tube 的 0-9 符號在任何時間應該都只會顯示其中一個, 因此只需要 4-bit 的 binary code 就可以代表 0-9, 如此一來我們可以用 BCD decoder 把驅動陰級的 I/O 需求降低到 4 隻. 但如果是這樣直接驅動的話, 我們還是需要 4 * 6 = 24 隻 I/O, 並且需要 6 組 BCD decoder 邏輯. 標準邏輯的 BCD decoder 有 74XX42, 但這零件不好買, 如果真要用, 也許用小顆的 programmable logic 來取代會容易一點.
第三種方法, 也是在做這種多位數顯示裝置時, 最常用的控制方式: 多工掃瞄. 我們把所有管子的陰極統統接在一起, 然後用陽極去控制每一隻管子的開關, 用很快的速度輪流打開每一隻管子並送出它要顯示的資料. 只要管子的反應速度夠快, 加上切換的速度也夠, 看起來就會像是每隻管子各自顯示它自已的數字一樣. 這種驅動方式在多位數或點陣式的 LED 顯示器上非常常見. 用這種方式設計的話, 只需要控制 10 隻陰極加上 6 隻陽極, 是最省 I/O 的驅動方法. 至於高壓的驅動電路, 也只需要 16 組. 如果還想再省, 可以再加入 BCD decoder, 就可以把 I/O 需求降到4 + 6 = 10 隻, 但高壓的驅動電路仍然需要 16 組.
最後, 還可以用移位暫存器: 每次更新顯示時, 就將每隻管子要顯示的資料移入移位暫存器並鎖住, 然後更新輸出 buffer. 這種方法用到的 I/O 最少, 大概只要 3-4 根: data, clock, output enable 跟通常只用一次的 reset. 但高壓驅動電路就省不了, 每一個移位暫存器的 output buffer 都需要配一組高壓驅動電路, 以這個設計來說, 就是 60 組.
因為 nixie tube 的電壓高達 180V 左右, 不容易找到適合的驅動 IC, 常用的 ULN2xxx 系列 driver 只耐到 50V, 而電漿顯示器用的驅動 IC 又不是那麼容易取得且 channel 數可能太多, 所以我決定用離散元件來設計高壓驅動電路. 如此一來, 高壓驅動電路的數量就變成選擇控制方式最重要的因素. 最後我決定用第三種方法: 多工掃瞄方式來驅動.
驅動電路的設計
多工掃瞄電路的接法是這樣的:
為了避免圖看起來太複雜, 這裡我只畫出其中兩隻管子來說明.
一般設計 LED 多工驅動電路時, 共陰極和共陽極的都有, 端看被驅動的 LED 怎麼接. 但 nixie tube 因為先天的特性使然, 只有共陽極一種結構. 因此在多工掃瞄時, 我們要用陽極來選擇哪一隻管子亮, 用陰極來選擇亮什麼符號.
我們先來看看比較簡單的陰極驅動電路:
要點亮特定的符號時, 我們要讓對應的陰極下地, 形成電流迴路, 因此驅動電路設計成一顆電晶體的 low-side driver. 這裡要特別住意的是, 當陽級打開但陰極沒開時, 陰極會因 nixie tube 的電容偶合效應感應出一個高壓, 所以驅動電晶體在關閉狀態時, C-E 間需要承受這個一百多伏的高壓. 而當電晶體導通時, 我們會盡可能讓它飽和, 使得 C-E 之間只有很小的飽和電壓, 至於電源高壓的壓差則大部份作用在 nixie tube 上.
我選了一顆高耐壓 NPN 電晶體: MMBTA42, 它其實就是 SOT-23 包裝的 MPSA42. 這顆電晶體的 C-E 跟 C-B 耐壓都高達 300V, 是很常用的高壓電晶體. 小時候家裡有一大堆 MPSA42, 我不知道老爸拿它們在做什麼, 但我對這個編號一直很熟悉.
以前曾經設計過一些像 X.10 這種用 AC 電源線傳送簡單控制訊號的系統, 也用過這顆電晶體. 它的 PNP 配對電晶體是 MPSA92, 等一下在陽極驅動電路中也會用到.
MPSA42/A92 的 DC 電流增益在數十到一百多上下, 而 nixie tube 的管電流頂多 3mA, 因此我們只需要 0.03mA 左右的基極電流就可以讓電晶體飽和, 這對 CMOS output 的 MCU 來說輕而易舉. 假設 MCU 的 I/O 輸出 high 時可以驅動到 3.3V, 扣掉電晶體的 B-E 壓差最多 0.9V, 還有 2.4V. 用 10K 的基極限流電阻, MCU 會吐出 2.4V / 10K ohm = 0.24mA 的電流, 一定可以讓驅動電路飽和.
再來看看陽極的驅動電路:
陽極的驅動電路比較複雜. 因為這邊是 high-side driver, 負載在電晶體的電流輸出端, 所以得用 PNP 電晶體當開關, 於是 MPSA92 就上場了.
PNP 電晶體的控制電流是從基極流出來, 而基極電壓就是射極電壓減去 B-E 電壓 0.9V 左右. 換句話說, MPSA92 的基級電壓幾乎就是高壓電源的電壓, 大概 180V 左右. 雖然我們只需要從基極抽出大概 0.03mA 左右的電流就可以讓電晶體飽合, 但這麼高的電壓不可能用 CMOS logic 直接驅動, 所以我又加了一級 NPN 電晶體來控制 PNP 電晶體, 形成圖中這樣的電路.
MPSA42 的 C-E 飽和電壓大概是 0.5V 左右, 對 nixie tube 的高壓電源來說幾乎可以忽略, 所以 PNP 電晶體的基極控制電流可以這樣算出來: 180V / 470K = 0.38mA, 根據前面電流增益的估算, 絕對可以讓陽極電晶體飽和.
這邊還有件事要注意一下: 470K 的限流電阻上會有 180V 左右的壓降, 因此這顆電阻上的功耗並非小到可以直接忽略, 而要稍微算一下: 0.38mA * 0.38mA * 470K ohm = 68mW. EIA 0603 的電阻如果焊接恰當的話, 可以承受大概 100mW 左右的功耗, 所以 60mW 這個數字沒有問題, 但電阻的溫度可能會比室溫稍高. 等板子全部裝好我們可以再用熱像儀看一下這邊電路的熱分佈.
至於 NPN 電晶體驅動級這邊, 由於只需要驅動 0.38mA 左右的電流, 所以連算都不用算, 放 10K 的限流電阻一定可以. 如果想幫 MCU 的 I/O 省一點電, 這個電阻可以再換大一點都沒問題.
至於那個 1M 的基極拉起電阻是用來確保 NPN 電晶體沒有導通時, PNP 電晶體是確實關閉的. 當NPN 電晶體沒有導通時, 拉起電阻上沒有電流, 也就沒有壓差, 所以 PNP 電晶體的基極會被拉到跟射極一樣的電壓.
實作
上次我們把板子上的高壓電源裝好了, 現在就繼續裝驅動電路部份吧.
陽極驅動電路總共有 6 組, 陰極驅動電路則有 11 組. 陰極比原來估計多了一組的原因是 SZ-8 這隻管子除了 0-9 外還有個小數點, 所以我也幫小數點留了驅動路徑.
我們先各裝兩組陽極和陰極驅動電路, 上管子驗證過後再把其它裝完, 免得被動元件的數值還需要修改的話要全部拆掉重焊.
這是第一隻管子和第二隻管子的陽極驅動電路, 一組有兩顆電晶體和四顆電阻.
這是筆劃 “1” 和筆劃 “2” 的陰極驅動電路, 一組就是一顆電晶體和一個電阻.
再來就要裝管子了. 管子的部份也和驅動電路一樣, 先裝兩隻上去試試, 確定沒有問題再把其它都裝上, 以免有什麼意外要拆東西.
根據規格書, SZ-8 的壽命只有 500 小時, 也就是說如果一天 24 小時都一直點著的話, 差不多 20 天它就掛了. 不過我沒真的這樣點過, 所以也不知道它所謂的壽命終了會發生什麼事, 是亮度漸漸變低呢, 還是就不亮了呢 ?
考慮有可能真的要換管子, 設計的時候我還是決定用管座來裝管子. 跟上海的賣家買這批管子時, 他有送我一些管座, 剛好直接拿來用. SZ-8 總共有 13 隻腳, 是標準的 “大13” 真空管腳位, 所以它的管座並不難找. 賣家給我的管座長這樣:
這個管座是陶瓷的, 因為大部份的真空管都是熱陰極, 需要加熱的燈絲, 所以管子本身在工作時其實溫度很高, 管座就必需耐熱. 好一點的管座多半是陶瓷的, 便宜一點的就用電木製作. 上一篇提過, nixie tube 是冷陰極, 管子在工作時沒什麼溫度, 所以耐熱管座對它來說其實多餘的.
管座送來的時候是包在蠟紙裡面的, 猜想可能是為了防震. 管座本身看起來很新, 但這種包裝方式透露出它其實也有點年紀了.
我手上沒有管座的機構圖, 好在 13 腳標準管座的圖網路上很容易找, 我先找到了這張圖:
然後用游標卡尺大概量了一下管座的一些關鍵尺寸, 確定跟圖面相去不遠, 就照著這張圖畫電路板了.
這個管座原來是搭棚用的管座, 但我現在要直接把它固定在電路板上, 所以要打一堆孔讓這些腳可以穿過電路板直接焊在板子上. 因為是搭棚用的管座, 每隻腳都是大概 2mm 寬的帶孔扁腳, 正規的方法是在電路板上打長形孔來容納這種扁腳, 但因為這長形孔要每個孔位變換角度, 我畫電路板時偷懶不想一個孔一個孔算角度, 直接就打了 13 個直徑 2mm 的圓孔.
在把管座焊上去之前, 還有一件事要先做: 把管座底下的 LED 裝上去.
現在很流行在 nixie tube 的底下用 LED 打燈, 讓 LED 的光沿著 nixie tube 的玻璃照上來, 看起來非常漂亮. 設計 Nixie2 時我也在每隻管子的底下留了一顆 3535 的 RGB LED, 讓管子在點亮時能有一點不一樣的顏色. 這個 LED 裝在管座的中心, 管子的正下方, 因此要先把 LED 焊上去才能裝管座, 管座裝好後就完全碰不到 LED 了.
這就是 LED 的位置, 剛好在管子的正中心. 因為 layout 走線的關係, 我把 LED 的三顆限流電阻也塞在管座下面. 管座的中心有一圈金屬環, 如果直接壓在電阻上可能會造成短路, 所以電阻焊好後還要用 Kepton 膠帶貼在上面絕緣.
管座插上來後, 腳在背面凸出蠻多的. 我的做法是: 先焊住其中兩隻腳, 把管座大致固定後, 用斜口鉗把所有的腳都剪齊, 盡量貼平電路板, 然後再焊. 焊的時候要用焊錫把貫孔給填滿. 因為我偷懶打了這麼大的洞, 所以焊的時候要用掉不少錫.
焊好的焊點是這個樣子.
管座裝好後, 從正面看起來就是這個樣子, 可以看到躲在裡面的 RGB LED. 在把管座焊上去之前, 一定要再三確認 LED 跟限流電阻都有焊好, 最好是可以上 3.3V 的電源跳幾條線看一下 LED 會不會亮, 有沒有跟相臨的其它顏色短路. 從照片中也看得出來, 要是管座裝好後才發現裡面的 LED 有問題, 神仙也難修啊.
上電測試
全部都裝好, 確認沒有錯誤後, 就可以上電測試了.
這是第一隻管子的 “2” 亮起來的樣子, 同樣可以看到有一些 cathode poisoning. 第二隻管子的 “2” 也有一點點亮起來, 代表它的陽極有一點點漏電. 回頭檢查了一下, 果然是二號管的陽極驅動電路那顆 1M 的電阻有一邊沒焊好.
接著我們再把底下的 LED 點起來看看:
有沒有看到, 管子的週圍泛出一圈藍色的光線 ? 看起來質感還不錯. 不過我發現這兩顆 LED 有點色差, 這個 LED 是廠商提供的 sample, 可能不是來自同一個 bin.
再換個顏色看一下:
綠色的感覺也不錯.
到目前為止, 驅動電路的工作情況還算令人滿意, 沒有什麼意外. 接下來就要開始用 MCU 控制掃瞄電路, 讓每隻管子可以顯示不同的數字了.
下一篇見.
看完您的文章讓我也想動手來做一個,但有好多問題想請教您
1.升壓電路的電感值是多少? 電路圖、文章內沒看到
2.輸出端加入pi filter會比較好嗎?
3.陽極改用光耦合器驅動可行嗎?
4.陰極改用光耦合器或MOSFET驅動應該也可以?
5. 3、4有何優缺點?
6.想做出漸亮、暗的效果,PWM信號該從陽級還是陰極輸入? 優缺點?
7.考慮到要輸入PWM信號,那麼陽、陰極驅動零件用哪種比較好呢?
BJT、MOSFET、光偶 或其他?
1. Ct 用 680pF 的話, 電感大概用 120uH 左右. 電感的數值跟 boost 工作的頻率有關, 需要依實際電路工作狀況調整.
2. 不用, 因為高壓端並不在意 ripple 大不大.
3. 光耦合多半用在需要隔離的電路, 但在 nixie tube 驅動的電路中, 隔離並無必要.
4. MOSFET 驅動也可以, 但要注意 MOSFET 的耐壓, 此種零件 (高耐壓/小電流的 MOSFET) 並不好找, 而且高壓的 MOSFET 閘極電容量大, 不好驅動.
5. 光耦合並無幫助, 而用 MOSFET 似乎也沒有比 BJT 好.
6. PWM 從陽極控制會比較簡單, 一隻腳可以控制整根管子.
7. 光耦合的速度都不快, 應該沒辦法做 PWM. MOSFET 如果驅動困難的話, 速度也無法快. 建議還是用 BJT.
版主好,
目前我也正在製作一個六管的Nixie clock,
使用的管子是IN-12B,
我在點燈測試時陽極也有漏電的現象.
但我檢查過1M電阻確定焊接沒問題,
NPN也確定BE沒有偏壓驅動,
目前有點摸不著頭緒解bug,
當我將六根管子同時插上,
只開其中一管的陽極,
漏電的現象有機會亂跑,
時有時無,
不知版主是否有解?
謝謝!
IN-12B 的管電流只有 2.5mA,其實很小的漏電電流就能讓它亮起來。就像我們用手去摸裏面有氖燈的驗電筆一樣,看似沒有電流回路,但已經可以讓氖燈亮起來了。
建議你檢查一下電晶體的耐壓,並測量一下 C-E 之間的電壓差。
請問插入的1M電阻換更大可以嗎?我測試發現直接接地燈會有局部發光(微光),不接地會閃爍,直接用電表量C-E壓差會讓他導通…
這個問題已經解決了,主要關鍵是寄生電容,還有一個問題是依據板主的倍壓圖,無法用5V打上180V,而電路部分請教多位老師,一致認為倍壓電路的部分不是倍壓,而是穩壓,但由於穩壓解釋不通用這麼多零件的用意,倍壓的基本結構又與板主的結構無法搭上,所以希望能請教您詳細的分析方式(困擾了很久…)
倍壓電路測試完成,4倍可用5v順利打上,差在電流量不足,可能加個晶體讓他通大電流,最後了解這組電路是看到外國一個做陰極射線輝光管的才了解到他的結構(他的畫法緊密了一點)。