2015-02-01 5V な小型パソコン向け高効率 UPS の製作
5V 小型パソコン向け高効率 UPS の製作
この前の Raspberry PI + Arch Linux + Unbound 自分メモ で書いたように、我が家ではラズパイを「フィルターサーバー」として使ってます。
クライアントとしてはスペックが非力ですが、最大でも 10W くらいの電力しか消費しないこともあって、常時通電させてサーバーぽく使っておられる方も多いことでしょう。
Linux は敷居が高い・・・って人には、ECS というメーカーから LIVA という小型パソコンが出てます。
無線LAN まで入って「2万円でお釣り」という超破格値な Windows パソコンです。(Windows は別売り)
Windows 8.1 のほか、Windows Server 2012 R2 や Linux の Ubuntu などを別に用意してインストールして使うことが出来ます。
LIVA のほうもラズパイに負けず劣らず省電力で、公称最大消費電力は僅か 15W。
LED じゃない常夜灯(黄色いやつ)が 5W なので、あれ3球分の消費電力。
あの PC-8001 が消費電力 20W だった 時代に比べたら、ほんと凄まじい省電力技術ですね。
こうした 5V で動く小型パソコンですが、いくら画期的に省電力とは言っても、停電はおろか瞬停にすら無力なので、停電に伴うパソコン停止を防止したい場合は、普通のパソコン同様に UPS を繋ぐ必要があります。
4000円台で買える APC BE325-JP あたりが最安候補の一つになると思いますが、停電が起きてないときの待機電力が 8W くらいと、負荷となるパソコンと同じくらいの電気食い。
8W ならば UPS としては少ない部類に入るのでしょうけど、今回の小型パソコンたちは 5V で動くパソコンなので、停電時にわざわざ AC100V を生成してもらう必要もありませんし、BE325JP とは言えオーバースペック。
またしても前置きが長くなってしまいました。
それならば、「必要最小限な UPS を作ってしまえ」、というのが今回の工作になります。
いちお「目標1000円ちょっと」のつもりでしたが、「バッテリー別で1000円ちょっと」という風でご容赦ください。
非停電時の効率を最大化させるべく、リレーの消費電力も惜しんで MOSFET スイッチにしました。
いわゆる待機電力(バッテリー満充電時)は 5V×数十mA 程度、本回路を挿入させることによる電圧降下は非停電時の2A消費時で 0.06V くらい(損失は0.12W)、3A消費時で 0.09V・0.26W (ともに机上計算値ですが)という優秀さです。
部品表(固定抵抗とコンデンサは秋月へのリンクを省略)
MC34063(NJM2360AD) | 2個で150円 | 100均のUSB充電器から摘出しても可 |
インダクタ 220μH | 60円 | |
アイテンドー 極小降圧モジュール | 395円+税 | |
Nch MOSFET IRLML6344 | 10個で150円 | 極端にVgsが小さくなければ何でも可 |
Pch MOSFET IRLML6402 | 10個で200円 | 極端にVgsが小さくなければ何でも可 |
PNP トランジスタ 2SA1015 | 20個で100円 | |
NPN トランジスタ 2SC1815 | 20個で100円 | |
ショットキーダイオード SK54 | 10個で200円 | SB340LS などVfが小さいの何でも可 |
ダイオード 1N4148 | 50本で100円 | |
多回転可変抵抗 50kΩ 縦型 | 60円 | 横型 でも可 |
多回転可変抵抗 10kΩ 縦型 | 50円 | 横型 でも可 |
鉛蓄電池 12V 0.7AH | 850円 | |
固定抵抗 1Ω×5、180Ω×1、3.9kΩ×1、10kΩ×5 | 各100本で100円 | |
電解コンデンサ 6.3V1000μF×1、16V1000μF×1 | 各数十円 | |
セラミックコンデンサ 1000pF×2 | 数円 | |
DCジャック、DCプラグ、コネクタ等々 | 必要に応じて適宜 | |
ACアダプタ 5V3A くらい | 時価 | ハードオフで300円+税 くらいか |
※ クリックすると等倍で見れます。
※ ハイサイド動作なので、GND は入力・バッテリー・出力 すべて共通で大丈夫です。
※ MOSFET 至近に小さなダイオードが描かれてますが、MOSFET 内に組み込まれた寄生ダイオードを表してます。
充電部分(回路図左上)、5V生成部分(右下)、自動切替部分(左下)と順に追って説明していきます。
昇圧式の充電回路
100均USB充電器のDCDCでお馴染みの MC34063 を昇圧充電器として採用しました。
日照時間内でバッテリー充電を完了させないといけない独立型太陽光発電ほどには充電を急ぐ必要がないので、最大 1.5A スイッチな MC34063 でも十分です。
普通は、どっかにバッテリーからの逆流を防止するため逆流防止措置が必要で、過去に作った降圧充電器 は効率を稼ぐため出力側でなく入力側で逆流防止やったものの、どっかで逆流防止やらないといけません。
ですが、今回のようなチョッパ式の昇圧回路では、出力側に必ずショットキーダイオードが備えられており、こいつが逆流防止をも兼ねてくれます。
ショットキーダイオードの代わりに MOSFET を使う効率の良い同期式のチョッパ昇圧だったら逆流防止措置が必要になりますけど、安物の非同期式が故に逆流防止を省略できるという画期的なことに気がついてしまったのです!
充電は非同期チョッパ昇圧に限るぜ!
あわせて、入力側とはいえど抵抗値を選択するだけで簡単に電流制限をかけることができるので、小さなバッテリーを用いたときでも過充電を防止することが非常に容易です。
Rscと書かれた部分が電流制限抵抗で、
Rsc>0.3V÷(12V×バッテリー容量(Ah)×0.3÷80%÷5V)
ただし Rsc≧0.2Ω
入力側で制限やっている関係でシビアには追い込めませんので、バッテリーはレギュレーションの緩い鉛蓄電池限定です。
Raspberry PI や Liva といった小型パソコンにはバッテリーも小型なのが似合うと思うので、容量あたりの単価が少々割高ながらも 0.7AH品 をチョイスしてみましたが、上記の式に当てはめると 0.3V÷(12V×0.7Ah×0.3÷80%÷5V)=0.476Ω と求まりますので、1Ωを2並列で 0.5Ω くらいが適値になります。
Rsc を最低値 0.2Ω にした最大充電電流は 0.5A ちょっとなので、容量の大きなバッテリーを使うと、満充電まで途方もなく時間がかかります。
(時間がかかるだけで実害はないですけど)
私はピンソケットを立ち上げて5本の抵抗が挿せるようにして、充電電流を容易に変更できるようにしてみました。
充電電圧は 50kΩ の可変抵抗で弄って設定します。
セルあたり 2.23V の電圧が最も鉛蓄電池を長持ちさせるらしいので、バッテリーを繋がない開放状態で、13.4〜13.5V になるよう調整しときます。
(オムロンの正弦波 UPS は、ジャスト 13.5V だった)
過放電防止のついた降圧DCDC回路
停電発生時には商用側から供給されていた 5V が途絶えますので、バッテリーに蓄えられた電気を使って負荷(パソコン)向けに電力を供給しますが、電圧が違う(負荷が要求する電圧のほうが低い)ので、降圧 DCDC となります。
ECS LIVA でも使えるようにしたいので、3A以上の供給余力を持つ DCDC 回路が必要です。
昇圧部と同じく部品から組み立ててもいいのですが、降圧DCDC はモジュール品も割と安価なので迷えるところ。
秋月には 降圧DCDC が何点もあり、今回の用途だと HRD05003(300円) とか SI-8050S(250円) あたりをベースにしていくのがセオリーかと思いますが、これらは単純に DCDC するだけで、それ以外の付加価値は一切ありません。
停電が長引くとバッテリーの電圧がドンドン下がっていきますが、これら DCDC はバッテリーの端子電圧が 6V 台まで下がっても、なお DCDC 続けようと努力してくれちゃいます。
端子電圧 6V は流石にバッテリー即死状態なので、過放電を防止したいところ。
拙作の 過放電防止 を付加するしかないのか・・・と思っていた矢先、アイテンドーでも商品を物色していたら、500円玉サイズでコンデンサも乗った完全完成版の税別395円な超小型降圧 DCDC を発見。
どれどれと データシート を読むと
Enable Control
The MP1584 has a dedicated enable control pin(EN). With high enough input voltage, the chip can be enabled and disabled by EN which has positive logic. Its falling threshold is a precision 1.2V, and its rising threshold is 1.5V (300mV higher).
スレッショルド幅は固定ながらも
ヒステリシスの付いた過放電防止に使えそうなピンが出てるじゃないですか!
中学生だった頃からお世話になってる秋月さんをこれからも応援したいので、秋月さん扱いの商品を本ブログでは出来るだけプッシュしている次第ですが、こんな経緯より、この部分は「ごめんなさい秋月さん!」させて頂きました。
モジュール上の EN ピンは 入力−100kΩ−EN−100kΩ−GND になってて、こいつが 1.2V を下回ると遮断作動することより、GND側の 100kΩ に 15kΩ をパラれば、1/(1/100k+15kΩ)≒13kΩ となり、1.2V×(100kΩ÷13kΩ+1)≒10.43V と、だいたい 10.4V で過放電防止が作動する計算になるはずなのですが、この定数で作ると、なぜだか 9.3〜9.4V くらいが遮断電圧になってしまいました。
抵抗値を小さくすると遮断電圧が上がるので、10kΩ〜15kΩ の幅で調整できるよう 10kΩ+5kΩ可変 という組み合わせになってます。
可変抵抗 4kΩ(合計14kΩ)付近で遮断電圧 10.3V くらいになったので、可変抵抗が惜しい方は 12kΩ+2kΩ で合計14kΩの固定抵抗にしたらいいと思います。
※毎日のように作動させる独立型太陽光発電のそれと違って、UPS の場合は過放電になるほどの長期の停電の頻度が少ないと思うので、遮断電圧は低めでいいと思う
付け根についてる 1N4148 ですが、商用側 5V を引き込んでます。
非停電時には無理矢理に EN ピンを 5V−Vf に釣り上げて、ついさっき過放電防止が作動したことを忘れさせます。
これを省略すると、長期停電から復旧してもバッテリー電圧が一定値(EN>1.5V)に回復するまで再停電を許容しなくなってしまいます。
※1N4148 の左側の 10kΩ は後述の「切替制御」に関係します。
最後に出力電圧、これはアイテンドーの降圧モジュール基板上の可変抵抗で調整しますが、こいつが多回転式じゃないので、かなーり難しいです。。
なんとか頑張って頂くとして、電圧は 5.0V じゃなくて 5.4V くらいにして下さい。
理由は「切替制御」で説明します。
停電判定・復電判定および切替制御
普段は商用電力から来る 5V を負荷へ給電し、その電力が途絶えたとき、瞬時にバッテリー側からの供給に切り替えるという UPS で最もコアな部分です。
最も手軽にやろうとすれば、双方からショットキーダイオード経由で負荷へ給電する方法。
Vf の優秀なショットキーでも 0.4〜0.5V くらい電圧降下してしまうので、5V 基準で 10% ものロスです。
初代ラズパイはレギュレータで3.3Vに下げて使ってるらしく、レギュレータの熱損失の一部をショットキーが受け持つ形になりトータルの効率悪化は起きないですが、レギュレータが必要とする電位差が減るので安定性で疑問が生じます。
ただ、最も簡単に「完全な無瞬停」が実現できるので、効率よりも無瞬停が重要ならばショットキーダイオードを使う方法もアリかなと思います。
Vf の分だけ高め電圧を供給しつつ、普段は商用側を優先利用するよう僅かに高め設定にしておけばいいので、Vf:0.4V 品を使ったとして、商用側を 5V じゃなくて 5.5〜5.6V くらい、バッテリー側を 5.2〜5.3V くらいにしておけば、いい感じになるかと。。
ショットキーを使わないという選択の場合、なにがしかで「切り替え」する必要が出てきます。
切り替える以上は、切り替えを制御(コントロール)する回路が必要です。
この部分に要求される仕様は
- 停電を検知して切り替えること
- 復電を検知して切り替えること
コンパレータ(オペアンプ)が大活躍しそうな要素ばかりですが、充電部も降圧部も、かなり簡素に仕上げたつもりなので、切り替えも同様に簡素にしたいところ・・・ということで色々と頭を悩ませ、試験中に何度もバッテリーを過放電させて、ようやく辿り着いた最終形が今回の回路図となります。
ラズパイ(初代)は停電判定がラフだったので良かったのですが、ECS LIVA のほうは 4.5V くらいで作動するリセットIC が組み込まれているぽく、そいつを作動させないようにするのが大変でしたが、最終的に、トランジスタ2石、MOSFET 2石、抵抗数本、という極めて僅かな部品だけで実現することができました!
すでに回路図が遙か上になっちゃってると思うので、回路図を印刷していただくか、もう1枚ブラウザを立ち上げて並べて文章をご覧ください。
まず停電判定のほうですが、2SA1015 がやってます。
バッテリーからアイテンドー降圧DCDCを経て来ている電圧を基準電源に見立て、2SA1015のエミッタに接続、ベース抵抗を経て商用側の DC5V に繋げました。
エミッタ電圧(降圧DCDCの電圧)−VBE>ベース電圧(商用側5Vの電圧) になったらコレクタが ON になります。
2SA1015 のコレクタが ON になると、2SC1815 のベースが ON になり、こいつはエミッタ接地なのでコレクタが GND に落とされます。
2つの MOSFET のゲートはバッテリー電圧(13.4〜13.5V)に 10kΩ でプルアップされており、2SC1815 が OFF の間(非停電時)は各ゲートにバッテリー電圧が、2SC1815 が ON の間(停電時)は、ゲートが GND になります。
「おいおい、MOSFET の向きが反対じゃね?」と指摘される前に回路図内で注記しましたが、あれで間違いありません。
- Nch な MOSFET をハイサイドに配置
- Pch な MOSFET をドレイン→ソースに電流を流す
ここが今回の回路のミソです。
探せば同じ使い方をしてる人に出会えるかもしれませんが、どこかからのコピペでなく熟考した末の完全オリジナルです。
5V の切り替えに 13.4V を使えば、Nch でハイサイドスイッチできるんじゃん!
ってことで、ゲートをバッテリー電圧まで釣り上げる今回の作戦に出ました。
非停電時は常時この MOSFET が通電状態になるので、Rds の小さな MOSFET が入手しやすい Nch こそが正義です。
(Rds が 1mΩ 以下という MOSFET もあるので、極限まで効率追求したい人は、それに置き換えてください)
寄生ダイオードの向きも非常に都合よく、停電中に商用側の ACアダプタ にバッテリー由来の電気が逆流する事態も追加パーツなしに阻止することに成功し、これぞまさに一石二鳥という展開です。
次はバッテリー側ですが、そっちも同様に Nch でハイサイドスイッチすれば Rds がお得だから有利じゃん、って話になるのですが、商用側とバッテリー側とはスイッチの挙動が反対なので、もし Nch を使うとなると商用側 MOSFET のゲートを反転させてバッテリー側 MOSFET のゲートに投入しないといけなくなります。
反転回路はトランジスタを追加投入したら済むのですが、「滅多に停電はない前提だから、停電時の効率を極限まで追い求める必要ないじゃん」「降圧DCDC のロス考えたら、Rds なんてゴミみたいなもん」という天使のささやきが聞こえて来ましたので、バッテリー側はデフォで Nch の反転動作な Pch を使うことで簡素に解決。
普段は商用側 5.0V に対してバッテリー側 5.4V で、商用側からバッテリー側へ逆流する事態は起きないはずですが、DCDC が何かトラブって 5.4V を出さなくなったら寄生ダイオード経由で逆流しかねないので、安全を期して寄生ダイオードが逆流を阻止するような向きに Pch を取り付けることにしました。
そうすると今度は、非停電時(Pchが非導通時)にも寄生ダイオードを経由してバッテリー側から電気が漏れ出しそうに見えますが、寄生ダイオードの Vf はショットキーのそれより遙かに大きく、1.0〜1.2V くらいあるので、商用側に比べて +0.4V くらいなら漏れ出しません。
最後に、人為的に停電を起こしてみて、出力側の切り替わる瞬間を秋月オシロで測定してみました。
負荷は LIVA と USBキーボード で、起動させた直後の BIOS 画面で止めておいた状態です。
停電を起こした直後(1ms/div) | 切り替えの瞬間(0.05ms/div) |
5.4V−0.7V=4.7V まで電圧降下して初めて停電判定が下されるはずで、コンデンサの放電が進行して順調に電圧降下してるなか、4.7〜4.6V 付近で停電判定がなされ、バッテリー側に切り替わり電源が急速に回復しています。
停電を起こしてから切り替え完了まで、全部で 2ms ってところでしょうか。
0.05ms/div のスケールで最も底辺部分を狙って測定したものが右側ですが、辛うじて 4.5V は割り込んでいない模様。
2SC1815 のベース抵抗 10kΩ にパラった 1000pF のスピードアップコンデンサが効いてるかは定かじゃありません。。
停電時 5.4V 給電が気になる方へ
バッテリー側の降圧DCDCを、停電判定の基準電源としても兼用してる関係で、電圧を 5.0V じゃなく 5.4V 付近に設定しています。
そして、実際に停電が発生すると、負荷に 5.4V が供給されることになります。
大丈夫?と心配な方もおられるかもしれません。
そもそも 5V 給電型のパソコンは、大部分で 5V±10% くらいの許容幅があります。
パソコンに電源回路が内蔵されておらず、必然的にACアダプタになるうえに、数アンペアの給電には荷が重い細い線が多用されているため、4線式でセンシングでもしない限り電圧条件をシビアにすることはできませんので、電源条件をかなり緩く設計せざるを得ません。
きちんと基板を精査したわけではないですけど、初段のコンデンサの耐圧は 6.3V だと思うので、5.4〜5.5V くらいは完全に許容範囲かと思われます。
また、初代ラズパイのようなレギュレータで 3.3V を生成してるものは珍しく、ほとんどが DCDC やってると思われます。
初代ラズパイならば電圧アップは損失(発熱)でしかないないのでロスとなりますが、DCDC の場合は電圧が上がった分だけ消費電流は減るので、直接的には損失は発生しません。
よって 5.4V のままで問題ないはずと確信してはおりますが、どうしても心配で仕方ない、という方は、2SA1015 のエミッタと IRLM6402 のドレインの間に、左向きにショットキーダイオードを挿入してやってください。
Vf:0.4V 品のとき、ちょうど 5.0V の出力になります。
停電判定は追加ショットキーのアノード側(5.4V)なので影響ありません。
またショットキーが逆流防止してくれるようになるため、Pch を普通ぽい向きにしてもらっても構いません。
ショットキーの追加で増える損失は停電時のみ 消費電流×Vf となります。
(たぶん)セリアで買った木製ケースでちょうどいい感じ♪
バッテリー横に映ってる USB-A ジャックは、廃品PC から摘出したものです。
スマホやタブのときみたいな D+/D- の細工は要らないみたいでラクチンです。
秋月のユニバーサル基板Dタイプ で作り始めてしまって、途中で敷地が足りなくなり2層構造にしましたが、Cタイプなら平面で大丈夫です。
どれくらい長時間の停電まで大丈夫か、ちゃんと測定したいところ。
12V0.7AH を使い、LIVA を BIOS 画面で止めた状態の手応えとしては30分は余裕で、1時間超を狙えそうな感じ。
いつ落ちるか、ずっと見張ってるのも面倒なので、電圧ロガーみたいなもの準備してます。
準備できたら、時間を追って電圧が降下していく様をグラフ化して続報として載せたいと思います。