古いハンドヘルドマシンをエネループで動かす
- 2008/10/16 18:48
- カテゴリー:make:
さて,X-07とPC-2001に昇圧回路を組み込んで,エネループを完全に使い切ることが出来るようになったのですが,1つ大事なことを忘れていました。
それは,ニッケル水素電池は,1.0V以下にしてはいけないということです。いわゆる過放電という状態になってしまうと,ニッケル水素電池は簡単に劣化します。
今回のスイッチングレギュレータは,下限電圧が2.0Vでも出力に6V付近を出してきます。2.0Vということは1セル当たり0.5V。これはもう液漏れしても文句は言えないレベルです。やばい。
本来なら1セル当たり1.0Vになったところで電源をカットする回路を入れるべきなのですが,最低でもバッテリーアラームが出るようにしないといけません。
少し考えてみたのですが,X-07もPC-2001も,電池の電圧を測定する機能を持っています。問題は測定するポイントを電池端子にすることと,検出電圧が高いことです。
X-07は内部で4.6Vに安定化している関係上,4.8V付近でアラームが出ます。PC-2001は電池の電圧をそのまま供給しているので,やはり4.8V付近でアラームが出ます。
そこで,これらの回路を改造し,電池端子の電圧が4.0Vになったらアラームが出るようにしてみます。
(1)X-07の場合
X-07は,コンパレータで4.6Vの回路電圧を測定しています。1MΩと1.3MΩで分圧しているのですが,電源側の1MΩに2.2MΩを並列に繋ぐと,大体4Vでコンパレータが動作します。
これを電池端子にくっつけてやれば理屈の上ではOkなのですが,果たして動作確認をすると,ちゃんと4.0Vで「LowBattery」の表示が出てきます。うまくいきました。
ただ,どういうわけだか「CardLowBattery」というアラームも同時にでます。おかしいなあと思ってさらに調べてみました。
X-07は,メモリカードに内蔵されたリチウム電池の電圧も本体側で監視できるようになっています。カードに搭載された電池の電圧が3.0Vを割ると,画面に「CardLowBattery」と出るようになります。ところが鈍くさいことに,カードを入れてない場合にも「CardLowBattery」が出るのです。
これはうっとうしい。そこで昨年,カードの電圧低下をCPUに知らせる信号線をカット,本体電源低下の信号線を突っ込んで,本体の電圧が下がったら両方のメッセージが出るように,修理のついでに改造をしてあったことをすっかり忘れていました。(ただし,今までCardLowBattery表示が出たのを見たことがないのです・・・おかしいですね)
そこで今回は改造箇所を元に戻し,カードの電圧検出点を電池端子に接続してみました。こうすると,4.0Vに下がると「LowBattery」が,さらに3.0Vまで下がると「CardLowBattery」が出てくる仕組みです。実際3.0Vまで下がってしまうとかなり危険なわけですが,遊ばせておくよりましでしょう。
これでX-07もエネループ完全対応となりました。
(2)PC-2001の場合
PC-2001の場合,電池端からシリコンダイオードを通して0.6V下がった電圧をそのまま回路に供給しています。コンパレータを使って回路電圧が4.8Vになったら「BAT」アイコンが消えるようになっています。
4.8Vということですので実際は5.4V付近で「電池切れ」となってしまいますが,これではさっぱりダメですね。アルカリ電池でも1セル当たり0.9V位まで使い切るのが当たり前なのですが・・・
まずはこのダイオードをショットキーダイオードにします。X-07は最初からショットキーダイオードになっていて(お金かかってます),しかも電圧の分圧回路は合計で2MΩ以上と無駄な電流消費を押さえ,しかも誤差1%の金属被膜抵抗が使われていました。
PC-2001では5%のカーボン抵抗で分圧をしているようです。大丈夫なんか?と思って調べて見ると,温度補償にはサーミスタが,電圧の調整には可変抵抗が使われていました。X-07とは随分考え方が違うものです。
可変抵抗を回してみると検出電圧を4.0Vに調整可能だったので,検出点を電池端子に付け替えて改造は終わりです。4.0Vになったら「BAT」アイコンが消えることを確認し,作業完了。
これでPC-2001もエネループ完全対応になりました。
(3)PC-E500の場合
PC-E500も電池からダイオードを通して5.4Vになったものをそのまま回路に供給しています。PC-2001と同じような構造ですが,当然それぞれのLSIがきちんと動作出来る電圧の範囲をはみ出す場合もあるわけで,結構綱渡りで動いている上に,電池を使い切れていません。
電圧検出の仕組みはさすがに後の時代のものだけあり,専用のICが使われています。松下のMN1280QというICで,4.0VになったらLowになるICです。
回路電圧を3.9kΩと39kΩで分圧し,MN1280Qの出力は割り込みに入っています。面白いのはこの分圧抵抗のGNDへの落とし方で,GNDではなくGPIOに繋がっています。
電源をOFFにしているときにはここがHighになり,抵抗を通して無駄な電流は流れません。起動と同時にこのポートがLowになり,電圧検出ICに電源電圧がかかります。
ただ,よく分からないことが1つあります。PC-E500は,電池の電圧が下がるとBATTマークが点灯します。この段階では電源は切れず,OFFにした後でも再度ONに出来ます。
しかし,ここから0.2V程電圧を下げると,なんと電源が切れるのです。電源キーを押しても一瞬起動しますが,すぐにOFFになります。
回路電圧が下がって動作しなくなっているんだろうと思うかも知れませんが,回路の電圧は安定化して供給しておき,電圧検出点の電圧だけを下げて試してみた結果です。
腑に落ちないのは,電圧検出ICは単純に4.0Vを割ったかどうかを見るだけで,2段階の検出を行う能力はないことです。なのに,BATTマークを点灯させたあと,電源を落とすという機能が実現できています。
GPIOでなにかやってるのだろうと考えてみましたが,電圧検出ICの出力はCPUの割り込みにただ1本だけ入っているので,動作が分岐することは考えられません。また,この検出点をオープンにすると,BATTマークは点灯しますが,電源は切れません。謎です。もう少し考えてみます。
それで,今回もこの検出点を電池端に接続してやればよいのですが,注意しないといけないのは,GPIOでGNDに引っ張る構成ですから,GPIOがHighになった場合には電池端の方が電圧が低く,電池側に電流が逆流してしまいます。
そこで,ショットキーダイオードを入れて逆流防止をします。
試してみると,4.2VでBATTマーク点灯,4.0Vで電源OFFという結果になりました。一応問題のない動作をしているのですが,欲を言えばBATTマークは4.0Vで,電源OFFは3.8Vくらいで切れて欲しいところです。
そこで分圧抵抗を調整しようと思ったのですが,なにせ電源側がGND側に比べて1/10の抵抗しかありませんから,分圧抵抗を使わず直接電圧検出ICに入れてやるしかありません。試してみると,BATTマークの点灯と同時に電源が切れてしまいます。またもや謎です。電圧検出ICが2レベルで,2本の割り込みがCPUに入っているなら分かるのですが,どうして分圧抵抗の有無でこんなに挙動が変わるのか,考えてみたのですがわかりません・・・
とりあえず元の値にもどし,4.2Vで警告,4.0Vで動作停止という仕様のままに,組み立てることにしました。最終テストでも問題はなく,動作もきちんとしていますので,一応これでエネループ完全対応,ということにしておきましょう。なかなかすっきりしないことは不満ではありますが・・・
ということで,結局アルカリ電池の特性に依存した形で電源供給を行うような思想の昔のマシンを,ニッケル水素電池に対応させるのは思った以上に面倒なことです。単純に電圧を上げてあげるだけではだめで,バッテリーアラームもそれなりに対応してあげないと電池を痛めてしまいます。本来なら電源カットの回路も必要です。
今の電池で動作する機器は,ほとんどすべてがこうした電源回路や電圧監視回路が組み込まれているので心配はありませんし,きちんと電池を使い切ることも出来るのですが,20年ほど前まで,こうした贅沢な仕組みを持つ機器はまだまだ少数派であったことを,改めて感じました。
そういえば,使い切った電池でもリモコンには使えるのですぐに捨てないで,と暮らしの手帳系の豆知識を耳にしたことはありませんか。
これは,大きな電流を引っ張る機器では,内部抵抗による電圧降下が大きくて使えなくなっても,消費電流の小さなリモコンでは電圧降下が小さくて済むからだ,という理由が説明されています。
それは確かに正解なのですが,今から20年前の状況を考えると,実は内部抵抗以前の問題として,きちんと電池を使い切っていない機器が案外多かったのではないかと思います。
それは,本来ならエネルギー供給という役割だけのはずの電池に,電圧の安定化という機能も持たせ,しかもすぐに失われる安定化能力を確保するために,まだまだエネルギーを保っている電池を使い捨てるという事実です。今ならこんな製品は許されないことでしょう。
そして,つくづくのんびりした時代だったのだなあと,昭和生まれの私は遠い目で高い秋の空を見上げるのです。