エントリー

カテゴリー「make:」の検索結果は以下のとおりです。

テスタの修理

  • 2008/10/23 12:02
  • カテゴリー:make:

 ところで,先日の土日は,ふとしたことから随分時間のかかる修理をやる羽目になりました。

 それは,バーグラフ式のデジタルテスタです。1985年頃だと思いますが,今はなきソアーというメーカーから,バーグラフ式のデジタルテスタが出ていました。

 なんでもかんでも「デジタル」が優れていると盲目的に言われた80年代,テスタも例外なく,アナログ式のテスタは古くさいものとして扱われていました。

 ただ,電子工作の世界は,ベテランのおじさんたちが「アナログテスタには変化を見たりフルスケールに対する割合をぱぱっと確認出来るという良さがある」などと吹聴して回ったこともあり,アナログとデジタルが拮抗すると信じられていた特異な世界でもありました。

 ならばデジタルテスタでアナログのような表示をさせればいいんじゃないか,と本気で考えた面白い人たちがいて,それが先程のバーグラフ式デジタルテスタとして世に出るわけです。

 まあ,ちょっと考えればわかるんですが,せっかくデジタルになっている情報を,わざわざLCDのセグメントに1つ1つ割り当ててバーグラフにしてしまっても,何の意味もありませんわね。

 アナログは連続量だから針で示されるわけですし,デジタルは離散量だから数字で表示出来るのであって,本質的なデータの扱い方と表示方法を切り離し,入れ替えただけでは,それぞれの弱点を組み合わせただけの,最弱のテスタが出来上がるだけです。

 面白い,とそれなりに評判になったと記憶していますが,主流になることもなく,また後継機種が出ることもなく,さらに加えると絶賛する声もないまま,メーカーであるソアーと共に消え去りました。

 余談ですが,三和,日置などと列んで,テスタのメーカーとして知られたソアーですが,どうもこの少し後で倒産し,マザーツールとカスタムの2社に分かれたようです。どちらのテスタも店頭で見ることが出来ますが,正直どちらもぱっとしないという印象が私にはあります。

 デジタルテスタのサンプリングレートが上がり,連続変化をある程度捉えることが出来るようになり,これを視覚的に表現するために,数字での表示と一緒にバーグラフを出すテスタは普通に売られていますね。1つにサンプリングレートの向上と,1つはバーグラフを補完的に使うという役割の整理により,このアイデアは後世に残ることとなったわけです。

 というわけで,その時代が生んだ迷えるバーグラフ式テスタですが,私が手に入れたのはひょんなことからです。

 高校の1年と2年の夏休みに,大阪日本橋のジャンク屋「デジット」でアルバイトをした私は,そこで大変お世話になった店長さんと時々立ち話をするのが大好きでした。確か大学の入学が決まった冬だったと思うのですが,デジットから少し離れたビルに,デジットの2号店を出すという話を耳にし,開店直前に様子を見に行ったのです。

 店長の姿が見え,いつものように話を始めたところ,デジットの2号店としてここの店長も兼務するということ,店の名前は「客をデバッグしてやる」という挑発的な意味で「デバッグ」にした,ということを聞きました。

 デジットよりはもう少し綺麗なものを扱うことにしたらしく,いわゆるジャンクというよりも,今で言うアウトレットショップのような雰囲気を目指していたように思います。

 結局デバッグは紆余曲折を経てCCPというケーブルやコネクタの専門店になり,今はもう跡形もなくなっています。

 で,そのデバッグの開店時の目玉商品の1つが,先のバーグラフ式テスタでした。といってもソアーのものではなく,おそらくソアーのOEMと思われる,別のブランドのものでした。DT3100というのですが,ググってもかすりもしません。

 本体は水色で,いかにも80年代の色をしていますが,およそ測定器っぽくありません。付属品はテスタリードだけで,ケースもカバーもありません。説明書は英語のみで,外箱は簡素なボール紙です。これが確か3000円か4000円か,そんな値段だったと思います。いや,この価格はデジタルテスタとしても安いんですよ。

 手にとって「面白そうですね,買っていきますよ」と私が言うと,上機嫌な店長は「1000円でええわ」と気前よくサービスをしてくれました。お得意さんだろうが身内だろうが商売は商売と言い放つ店長が,どういうわけだかこの日は大盤振る舞いだったので,私は気味が悪くなったほどです。「入学祝いやとおもっとき」と,ニコニコして下さったことを,私は今でも覚えています。

 私にとっては3台目のテスターで,これで測定にも幅が出るなと喜んでいたのですが,使ってみるとあまり便利なものでもなく,次第に出番が減っていきました。

 その後,電池を何回か入れ替えて使えるようにはしてあったのですが,先日思い出したようにスイッチを入れてみると,動作しません。電池をしばらく替えていないなあと思いつつふたを開けると,見るも無惨に液漏れしていました。

 ソニーの電池は,百発百中で液漏れしますね。本当に時限爆弾です。

 アルカリ電池の液漏れは本当に始末が悪く,基板を溶かしてしまうことは昨年にも書きました。電池金具はボロボロですが,幸いなことに基板には浸透していない様子です。

 そこで,修理計画です。出番がないのでもう捨ててもいいかと思いましたが,やはり思い出の品ですし,測定器には違いありませんから,とりあえずやってみましょう。

 電池金具は,リン青銅板で作り直してみましょう。ちょっとバネが弱いですが,なんとかなるでしょう。同じサイズに切り取り,曲げて加工すれば出来そうです。

 そして土曜日,修理を始めます。金具を交換するのに全部ばらすことになったのですが,それはそんなに難しくありません。20年経っているとは思えないほど,中は綺麗です。

 金具を交換し,電池を入れてみると,あれ,動きません。表示が出ないのです。ちょっといじっていると表示が出たので,電池金具の接触だろうと,組み立て直します。

 しかし,組み立てると表示が出ません。

 これは困った。

 もう一度ばらしてみますが,やはり表示が出ません。LCDは外し,その下のシールド板を外して確認をしますが,目視ではなにもおかしいところはありません。

 見ると,シリンダ型の水晶発振子があります。これがクロックを作っているのでしょうが,動かない場合はクロックを疑うのがセオリーです。オシロスコープで確認すると,やはり発振していません。

 少なくとも,電源を入れて水晶発振子が発振していないというのは正しい動作ではありませんね。そこで,指で触ったり何度か電源を入れてみると,ノロノロと発振が始まるのがわかりました。発振開始に数秒もかかるのですが,こんなに発振しにくいのでは不安定すぎます。

 でも,もともとこれでちゃんと動いていたのですから,もう一度組み立ててみます。しかし,やはりだめです。

 今度は順番に確認していきます。基板単体で発振するのを確認し,シールド板を取り付けます。まだ発振してます。LCDを取り付けると発振停止。うーん,これは面倒です。

 水晶発振子が劣化することは,しばしばあることなので手持ちの32.768kHzと交換しますが,最初から発振しないか,発振しても同じような様子です。発振子が悪い訳ではなさそうです。

 ならばと外付けのコンデンサの値を調整しますが,10pF未満にしてもあまり変わらず。32kHz位の水晶なら,発振を安定させるためにコンデンサを小さなものにすると良いので,直列にして5pF位にします。

 そうするとかなりすっと発振が始まるようになりました。それまで正弦波だった波形も,矩形波に近くなってきました。力強くなってきたので気をよくして組み立てます。

 LCDを付けたところではまだ大丈夫です。しかしケースに入れると発振しません。何度か電源を入れると数秒後に画面が出てきます。しかし,それで2時間ほどもするとまた発振しなくなるのです。

 うーん,これでは使い物にならんなぁ,と,シールドのために切り刻んだ銅箔テープを手にくっつけながら,白んだ窓の外をながめて布団に入りました。

 翌日,改めて基板を見てみると,どうも水晶発振子とLSIのパターンが長すぎて,浮遊容量が大きそうに見えます。私のような素人でも,こんなパターンは危なくてひきません。

 考えたのは,LSIの足を浮かせて発振子を直接ハンダ付けし,最短距離で配線すること,それがダメなら発振器を別に作り,外部入力でクロックを入れてやろうという,2つのプランです。

 まず,最短距離での配線をやってみます。すると,強力な発振が始まります。これならいける,そんな風に思って組み立てますが,やはり大丈夫そうです。

 最終的に組み立てて何度か電源を入れてみましたが,問題なし。制度も確認してみましたが大きな誤差もないので,このまま使えそうです。

 というわけで,あまり便利ではないキワモノテスタですが,一応直って何よりと言ったところです。どうして壊れてしまったのか,なにが悪かったのか分からずじまいですが,結果良ければすべて良し。少なくとも発振しやすい方向で改善をしたのですから,今回やったことは無駄にはならないはずです。

 改めて思ったのですが,うちにあるテスタはどれももう10年以上のものです。中には20年以上昔のものもあります。メインで使っているのは秋月の安物ですし,予想通りそれぞれみんな値が違います。なにが正しいのか,もう分かりません。

 ちゃんとしたテスタを買い直す時が来たのかも,知れません。

PC-E500の電池電圧検出回路Final

  • 2008/10/20 18:42
  • カテゴリー:make:

 まず最初に,先日の電池電圧検出回路についてです。この土日に波形の確認を実機で行ったところ,考えたとおりの動作をしていました。電圧検出器にかかる電圧も,GPIOがLowからHighになったときに少しだけ上昇するようになっており,1つの電圧検出器で2つの電圧を判定できることも確認できました。

 さて,改めて改造後の実機で動作を見てみたのですが,2度目の割り込みがかからず,BATTマークが点灯しただけで終わってしまいます。電流を調べて見るとショットキーダイオードからの漏れ電流が小さくなっており,従って2度目の割り込みがかからないようです。

 数uAの電池への流入ということで,放っておいても構わないような気がしたのですが,BATTマーク点灯の後の電圧降下で電源が切れないことが問題ですし,日によって動作が異なるというのは許し難い状況です。それに,わずかな電流でも電池は劣化すると言いますから,やっぱり避けた方がいいです。

 要するにGPIOによって検出電圧を切り替えればよいわけで,トランジスタを使って抵抗をON/OFFするような回路などを考えてみたのですが,どうもうまくいきません。たぶん無理だと割り切って,ディスクリートで作るのはあきらめました。

 電圧検出器を電池に直結し,分圧抵抗を外すという作戦も考えましたが,これは試してみるとBATTマークの検出の直後にもう1回連続して割り込みがかかり,結果として電源が切れてしまいます。これでもいいのですが,やっぱりBATTマークで警告を先に出して欲しいです。

 そこで,幼稚な手を使いました。できればこういう芸のないことはしたくなかったところですが・・・

 やってることは単純で,GPIOと39kΩの抵抗との間に,CMOSインバータを2段直列に入れるだけです。インバータの電源は言うまでもなく電池電圧,つまり3.9kΩと同じ電圧です。

 こうすると,GPIOのHighレベルはCPUの電源電圧である5Vから,CMOSインバータの電源電圧である電池の電圧に変換されます。よって,39kΩはLowになったり電池電圧になったりして,元々のような2電圧検出が可能になるわけです。しかも,もう電位差はありませんから,逆流防止用のダイオードは必要なくなります。

 しかし,ここで私はずるいことをしました。CPUからの入力は5V,一方CMOSインバータの電源電圧は5V以下です。場合によっては4V付近になります。電圧の差が1Vもあるので,下手をすれば1段目のインバータは壊れてしまうかも知れません。

 1段目はトランジスタで受け,ここで反転させたものを2段目のインバータに入れれば良いように思ったのですが,それだとGPIOがHigh(電源OFF時)にコレクタ電流が流れたままになり,もったいないないです。CMOSインバータならほとんど電流は流れません。

 インバータ2つと電圧検出器のトータルが消費する電流は,全部で6uAほど。ちょっと大きいなあと思いつつ,SRAMのバックアップにDC-DCの消費電流を加味して200uAも全体で消費するので,まあいいかと考えました。素人丸出しの設計で,仕事だとこんな事をしたら怒られてしまいます。

 この回路の動作を確認してみると,4.2V付近でBATTマーク点灯,電源OFFは3.9V付近でした。うん,これならちょうどよいでしょう。

 ということで,この件はもうオシマイです。あんまりいじりすぎると壊してしまいますから,もうこのくらいにしておきましょう。

 そして,大容量512kByteのメモリを内蔵した改造PC-E500の本領は,日本語化によって発揮されます。15年前のデータやプログラムがちゃんと残っているのがPC-E500のマニアっぷりを象徴しています。

 10年ぶりの作業なのでもうほとんど覚えていませんでしたが,思い出しながらの作業でとりあえず日本語化完了。しかしクロックを高速側に切り替えた瞬間暴走してリセットをかける羽目に・・・わずか15分の命でした。

 クロックを上げて暴走するのは,電池が減っているときと言われています。私の場合,5Vに安定化したので大丈夫かとおもったのですが,PC-E500にとって5Vは低い電圧のようです。5.5Vまでかさ上げすればたぶんクロックアップに耐えられるのでしょうが,なんというか,そこまでする気ももうないので,このまま作業をやり直します。

 終わってみると,これで結局なにもすることがないという状況に寂しさが募るわけですが,これが確かに15年前,あるいは10年前なら,大したものだと感激したことでしょう。これでPDAのようなアドレス帳やスケジュール帳があるとさらに面白いのですが,その手の実用ソフトが皆目揃っていないというのが,当時のPC-E500の立ち位置を微妙に表しています。

 考えてみると,PC-E500のCPUは後にZaurusに搭載されるCPUです。それなりにパワフルで当然です。しかし,いつの時代でもマシンの陳腐化は「メモリ不足」であることを今回もつくづく感じますね。メモリさえあればどうにかなるものです。

やっぱり目の付け所がシャープ

  • 2008/10/17 19:58
  • カテゴリー:make:

 昨日,PC-E500というシャープのポケコンの電池電圧検出回路を「謎だ」と書いたのですが,気になってずっと動作を考えていました。

 電圧検出器は4.0Vのものが1つ,3.9kΩと39kΩの2本の抵抗で電池電圧(PC-E500の場合電池電圧と回路電圧はダイオードの電圧降下分だけの差で変化は同じです)とGNDを分圧し,その中点が電圧検出器に入力されています。

ファイル 226-1.jpg

 この回路で2つの電圧を検出し,1段階目ではBATTマークの点灯,2段階目では強制的な電源OFFと,2つの動作を行うようになっています。どちらも割り込みで処理をしていますから,CPUの割り込み入力端子に繋がっています。

 検出電圧は4.0Vのみ,割り込みも1本のみ,この状態でどうやって2つの電圧を判定しているのか・・・頭をひねって考えていました。そして,ようやく答えが出ました。

 え,こんなん簡単やんけ,ですって?こんなん当たり前やがな,ですって?

 いやー,私は頭が固いので,こういうパズルは苦手でして。


・フェイズ1~電源OFFの状態

ファイル 226-2.jpg

 39kΩの抵抗をずっとGNDに落としたままにしてしまうと,電源を切っていようがいまいが常に140uA程度の電流が抵抗に流れ続けてしまい,電池が消費されてしまいます。電源OFFのときなど,何の役にも立たない電流ですから,これをカットするためにCPUのGPIOをHighにしてあります。

 これはまあ,いいですね。


・フェイズ2~電源が入った

ファイル 226-3.jpg

 電源がONになると,GPIOをLowにし,図のように39kΩをGNDに落とします。すると電圧検出器の入力電圧は,抵抗によって分圧された電圧になります。仮に電池電圧が5Vだとすれば,4.55Vになります。

 電圧検出器は4.0VでCPUに割り込みを発生させますから,この電圧ならまだ割り込みは発生しません。


・フェイズ3~電圧が下がった

 このまま使い続けると,電圧が下がっていきます。電圧検出器の入力電圧が4.0Vになる電池電圧を計算すると,4.4Vと求まります。4.4Vになって割り込みが入ったら,CPUは画面にBATTマークを点灯させて,ユーザーに電池が減ったことを通知します。この段階ではまだ電源を強制的には切りません。1つ目の電圧検出が終わりました。

 そして,これがミソなのですが,GPIOをHighに切り替え,39kΩを電池電圧と同じにします。


・フェイズ4~さらに電圧が下がると

ファイル 226-2.jpg

 39kΩが電池電圧と同じなったために,電圧検出器の入力電圧はまた4.4Vに上昇します。CPUへの入力も復帰しますが,割り込みはかかりません。

 そして電圧がさらに下がり,電池電圧が4.0Vになった瞬間,同じ割り込み端子に2度目の割り込みが入ります。CPUはこの2度目の割り込みによって,電源を強制的にOFFするわけです。

 実際には,電池からダイオードを通っていますので,電池の電圧はすべて0.6Vほど高い電圧です。ということは,BATTマーク点灯は5.0V,強制電源OFFは4.6Vとなります。

 3.9kΩを大きくすればBATTマークの点灯する電圧が高くなり,同時に電源が切れるまでの差が広がります。逆に小さくすればBATTマークの点灯する電圧が下がり,電源が切れるまでの差は縮まります。

 どうですか・・・GPIOによって電源OFF時の無駄な電流をカットすることと,検出電圧を2つ用意するという2つの機能を実現出来ているんですね。いやー,私などは目からウロコがボロボロ落ちましたよ。見事ですね。

 PC-E500,PC-E550,PC-1480Uなど,同じ回路構成の派生機種や,製造時期の違いによって分圧抵抗の値もちょっとずつ違っていたりします。BATTマークを点灯させる電圧を何度か修正してあるということでしょう。どっちにしても,電源をOFFにする電圧は4.0Vということがはっきりしました。

 実は,PC-E500のエミュレータで,LowBattery割り込みを与えてみると,1度目の割り込みではBATTマーク点灯,2度目の割り込みでは電源OFFという動作をします。割り込みによってどういう動きをするかはファームウェアによるわけですが,そのファームウェアは実機のROMから吸い出したものを使っていますから,今回の答えで間違いないのではないかと思います。

 さて,この回路は電池の電圧とGPIOのHighの電圧が同じ,という条件で動いています。しかし,昇圧回路を組み込んで回路電圧を安定化したモダンな回路構成では,もうひとひねりが必要です。

 まず,電池電圧の検出は,電池端からショットキーダイオードを通して3.9kΩに与えます。これは,電池の電圧がGPIOのHighよりもいつも低くなることで発生する逆流を防止するためです。また,回路電圧は5.0Vで安定化してありますので,GPIOのHighは5.0Vとなります。

 同じような手順で考えてみると,


・フェイズ1
 GPIOはHighで,ダイオードがOFFなので電圧検出器の入力電圧は5.0V。よって割り込みは発生しないし,電流の消費もない。

・フェイズ2
 電源ONでGPIOはGNDに落とされる。これは先程と同じ。

・フェイズ3
 1回目の割り込みがかかるのは,先程と同じ4.4Vにショットキーダイオードの電圧降下分を加えた4.6V。4.6Vに達して割り込みが発生するとBATTマークを点灯し,GPIOをHighにする。

・フェイズ4
 GPIOがHighになったので電圧検出器の入力電圧は5.0Vになる。ここから電池の電圧が下がっても,ダイオードがONしないため電流が流れず,よって5.0Vのまま。


 ということになります。あれ,2度目の割り込みはかからないですね。

 実際の動きと違うので,LTSpiceという回路シミュレータを使って動作を見てみました。ショットキーダイオードを使うと実際と同じような動きをしますが,シリコンダイオードを使うと上に書いた状態になります。何が違うのか?

 そうですね,ショットキーダイオードは逆方向電流が多く流れるのです。シリコンダイオードは逆方向電流がほとんど流れないために,シミュレータの結果が上に書いた状態と一致します。

 しかし,ショットキーダイオードは品種によるのですが,今回のシミュレーションでは30uA程も流れてしまいます。試しに,ショットキーダイオードを1N5817にしてみると,以下のような感じの挙動を示します。


・フェイズ1
 GPIOはHighで,電池電圧が4.8Vとすると,電圧検出器の入力電圧は4.82Vと少し高め。割り込みは発生しない。

・フェイズ2
 電源ONでGPIOはGNDに落とされる。これは先程と同じ。電池電圧が4.8Vなら電圧検出器には4.3Vがかかる。まだ割り込みはかからない。

・フェイズ3
 1回目の割り込みがかかるのは,4.45V。この電圧で電圧検出器の電圧が4.0Vを割る。そしてGPIOをHighにする。

・フェイズ4
 GPIOがHighになることで電圧検出器には4.51Vがかかる。ここからさらに電池電圧が下がり,2度目の割り込みがかかるのは3.8V。


 ということで,なんとまあ1度目の割り込みは4.45V,2度目の割り込みは3.8Vという結果が出ました。実機によく似た状況が再現されています。ちなみにフェイズ4における逆方向電流は26.4uA。恐ろしいことに,この微弱な電流が電池に流れ込んでいるというわけです。液漏れしそう・・・

 さらに怖いのは,この電流は温度が上がるともっと増えます。当然検出電圧も変化するだろうし,電池も危険になります。ここにはショットキーダイオードは使えそうにないということが分かってきました。

 実に奥が深い。

 さらにもうひとひねりしないと,実用にならない感じがしてきました。

 それにしても,シャープはなかなか工夫上手ですね。回路電圧と電池電圧が同じであるという前提が制約としてあるとしても,1つの電圧検出器で2つの電圧を判定できるというのは,なかなかパズルっぽくて,いい勉強をさせてもらいました。

古いハンドヘルドマシンをエネループで動かす

  • 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年前の状況を考えると,実は内部抵抗以前の問題として,きちんと電池を使い切っていない機器が案外多かったのではないかと思います。

 それは,本来ならエネルギー供給という役割だけのはずの電池に,電圧の安定化という機能も持たせ,しかもすぐに失われる安定化能力を確保するために,まだまだエネルギーを保っている電池を使い捨てるという事実です。今ならこんな製品は許されないことでしょう。

 そして,つくづくのんびりした時代だったのだなあと,昭和生まれの私は遠い目で高い秋の空を見上げるのです。

昇圧型スイッチングレギュレータを我らに

  • 2008/10/15 17:12
  • カテゴリー:make:

ファイル 224-1.jpg

 電子工作をやってきて,先日とうとう手に入れた技術が,電圧を上げることです。スイッチングレギュレータを使って昇圧,というやつですね。

 何だ今さらと思われるでしょうし,私自身もそういう気持ちなわけですが,手軽な方法がなかったのだから仕方がないと,居直ってみます。

 78xxシリーズという俗にいう三端子レギュレータが簡単に手に入るようになるまで,電子工作のアマチュア達は電源を安定化せず,電池で動かすか,あるいは変圧-整流-平滑という三段階で商用電源から作った非安定化電源を使っていました。

 もちろん,それなりの規模の安定化電源回路をディスクリートで作って搭載するマニアもいたのですが,動かしたい回路よりも安定化電源回路の方が規模がでかくなったりすると本末転倒です。

 そもそも電池はなかなか都合のいい電源で,安価で持ち運びもでき,そこそこ安定化されているし,電圧も手頃です。それにノイズもリプルも含みません。

 しかし,TTLのように電圧が一定でなければならないデバイスが使われるようになったり,電池では消費電流が大きいため不経済で商用電源やACアダプタを用いる場合には,やはり安定化電源回路が必要です。

 そこへ登場したのが三端子レギュレータです。80年代後半には100円程度の価格になっていましたが,変圧-整流-平滑の後にくっつけるだけで安定化電源が完成,しつこいリプルもあっさり除去と,一気に安定化された電源が身近な存在になりました。

 とはいえ,あくまで高い電圧から低い電圧を得るのに,その差分を熱にして捨ててしまうことで安定化するもったいない方式によるものに過ぎません。エネルギーを「変換」するという方法で安定化するスイッチングレギュレータは,アマチュアにはなかなか難易度が高いままでした。だから,高い電圧を低くすることは簡単でも,逆は夢のままだったのです。

 「初歩のラジオ」などの電子工作の雑誌で見たことがある昇圧系の記事として,LM3909を使ったチャージポンプ,フォワードコンバータを応用した電子蛍光灯,電子びっくり箱,そしてTL497を使ったDC-DCコンバータくらいがあったように記憶しています。

 TL497を使ったDC-DCコンバータは,確か電池1本か2本を9Vまで昇圧して006Pの代わりにするような便利グッズだったように思うのですが,大きなコイルやコンデンサが必要で,大げさになってしまったように思います。


 さて先日,動作確認のために昨年秋に修理したキヤノンのX-07とNECのPC-2001の2つの機種の電源を入れてみました。X-07は「BatteryLow」の表示が出てしまいましたし,PC-2001は表示が薄く,使い物になりません。

 こういう「動態保存機」を維持するのに,乾電池は不経済で,よって自己放電の少ないエネループが最適なのですが,残念なのは起電力が1.2Vと乾電池に比べて0.3Vも低いことです。

 この頃の電池で動くパソコンは,電池を4本使って6V作り,これをダイオードでドロップさせて5V付近を供給していますから,ニッケル水素電池を4本使って4.8Vを作っても,実は動作電圧範囲ギリギリなわけです。先のX-07もPC-2001も,電池を取り出して測ってみると,1.2V/本とまだまだ十分な電圧です。

 それでも動いているうちは良いのですが,少し電圧が下がるともう「電池切れ」というサインが出てきます。

 例えばですね,単三のアルカリ電池は1500mAの電流を1時間供給できると,一般的に言われています。しかし,これは新品の電池を0.9Vまで使い切った場合に1500mA引き出せるという意味で,これが1.3Vや1.2Vくらいで使えなくなってしまうと,まだまだ残っているのに電池を交換しないといけなくなるわけです。

 ニッケル水素電池の場合,終始電圧は1セルあたり1.0Vと言われています。ですが,X-07が電池切れのサインを出すのは1.15V程度です。ここで交換してしまうと,全然使い切れません。

 PC-2001に至っては,4.8V位ですでに電池切れマークが点灯し,液晶表示も薄くなっています。どう考えてもアルカリ電池でしか使えまないようです。でもエネループで使いたいしなあ。

 X-07は4.6VというギリギリICが動作する電圧をディスクリートで作った安定化電源回路で生成しているので真面目だなと思うのですが,PC-2001やPC-E500などでは,単三電池4本の6Vからダイオードを1つ入れて5.4Vに落とし,これをそのままCPUやRAMに突っ込んでいます。いやー,実に牧歌的な時代だったんだなあと,そんな風に思います。


 そんなある日,三端子の昇圧型DC-DCコンバータICがアマチュア達の間で流行っていると耳にしました。秋葉原や日本橋で買えないようなものはすでに珍しいものではなくなっており,気が付かないうちに我々の持っているポータブル機器に内蔵されているものなのですが,アマチュアが1個2個から気軽に購入できるこの手のICは,まだまだ遠い存在です。

 調べて見ると,それはHT7750AというICでした。台湾のHOLTEKというメーカーのもので,TO-92という2SC1815なんかと同じようなパッケージに入っています。見た目はそれこそ三端子レギュレータと同じで,実にアマチュア向けです。

 これにチョークコイル,ショットキーダイオード,そしてコンデンサを2つほどくっつけると,1Vあたりから5Vを作ることが出来るのです。いやー,夢のようです。

 しかもお値段は1つ60円程度。マルツ電波で買うと30個以上で単価50円になります。安い。アマチュア向けの定番になりそうな気がします。

 簡単にHT7750Aのスペックを紹介しておきましょう。

・PFM方式(周波数200kHz)
・最低動作電圧0.7Vtyp.
・効率85%typ.
・出力電圧誤差±2.5%typ.
・出力電圧は2.7,3.0,3.3,5.0の4種類
・出力電流は最大200mA
・消費電流5uAtyp.
・スイッチングFET内蔵
・CMOS

 うーん,なかなか良くできたICです。PFMというのはスイッチングレギュレータの回路方式の1つで,一般的にはPWMが使われていますが,PWMがスイッチング周波数を一定にし,デューティを可変して電圧を安定化するのに対し,PFMは周波数を可変して制御します。

 PWMは負荷が軽いときでも同じ周波数で発振しているのでIC自身の消費電流が多めになりがちで,これが軽負荷時の効率を悪化させます。しかしPFMは電圧が下がったらスイッチON,上がったらOFFで制御しますので,負荷が軽いときには周波数が下がり,自分自身の消費電流も大幅に低下します。PFMが軽負荷のスイッチングレギュレータで効率を稼げるのはこれが理由です。

 詳しい話は書きませんが,PFMはPWMに比べて動作が安定していて,発振しにくいことも利点です。ぱっと作ってそこそこの性能が誰でも出せる,というのは,半導体にとってはとても大事な性能の1つです。

 PFMは周波数が可変するのでノイズ対策が面倒になることもあり,実際の設計ではPFMとPWMを使い分ける,もしくは両方の機能を持つICを使うのですが,今回の私の用途ではPFMでちょうどよかったと言えます。

 効率85%というのは「低い」と思う人もいると思いますが,同期整流でもない昇圧型のDC-DCコンバータで85%を無調整でたたき出すというのは,私は大したものだと思います。昇圧型では頑張って作っても90%くらいが関の山ですし,素人がぱっと作って本当に85%取れるなら優秀でしょう。

 消費電流が5uAというのもばっちりですね。負荷が重いときはIC自身が消費する電流など大した影響はありませんが,軽負荷時には無視できなくなります。特に,今回のようにSRAMのバックアップを行う回路では数十uAの消費電流が長く続くことになりますから,とてもありがたいです。

 出力電圧は固定で,4つのうちから選びます。好きな電圧が得られないことは不自由ですが,ぱっと作って±2.5%以内の希望の電圧が出てくるというのは確実ですし,楽ちんです。少しなら電圧を調整出来ます(後述します)し,最大200mAまで取り出せるという手頃さも(放熱設計などを考えなくてよいという点も含めて)アマチュア向きにはちょうどよいと思います。

 で,これを使うと,4.8Vのニッケル水素電池から,アルカリ電池の6V並の電圧を生成できるようになり,PC-2001やX-07を救うことが出来るんではないか,と思い立ちました。古いハンドヘルドマシンに近代的な電源回路を内蔵するという試みですね。

 早速注文し,届くまでに仕様書を詳しく見てみます。100uHのチョークコイルと手持ちの300mAクラスのショットキーダイオード,そしてタンタルコンデンサを集めて,準備完了。

 この手の電源の設計はコイルの選定がキモです。少し乱暴な言い方ですが,取り出す電流が多いときにはインダクタンスを大きくしないといけません。しかし,インダクタンスを確保するには,簡単に言うとたくさんコイルを巻かないといけませんから,そうすると直流抵抗成分が増えて,効率が悪くなります。

 HT7750Aをマルツ電波で買った関係で一緒にコイルも調達しますが,ここは面実装品の背の低いコイルが買えるのがよいですね。東光のA921CYのうち,100uHのものを選びました。価格は90円。

 これらが届いてから早速組み立て開始です。

 HT7750Aは出力電圧が5V固定です。5Vではちょっと心許ないですから,あと少しだけ電圧を上げる工夫をしてみます。

 1つは出力電圧をコンパレータの入力に戻す端子に抵抗を入れることです。こうすると内部の分圧比が変わり,高い電圧が出てきます。適当にやってみると10V位まで電圧が出てきましたが,これってHT7750Aの耐圧を越えているので即却下です。なんか電圧もふらふらとして危なっかしいので,この方法は危険と判断しました。

 もう1つは,GNDを浮かせることです。ここに普通のダイオードを入れると,GNDが0.6Vほど(実際は流れる電流が小さいので0.7から0.8Vくらい)浮きます。これで簡単に5.6Vまで電圧をかさ上げ出来ました。このダイオードを流れる電流はICが消費するわずかな電流だけですので,小型のスイッチングダイオードでも構いません。

 三端子レギュレータではよく使われたテクニックでしたが,これで本当に正しいのかどうか,私にはわかりません。たぶん大丈夫だと思いますが・・・

 あと,ちょっと出力にノイズが多く,発振しやすくなっている可能性も心配だったので,0.1uFのパスコンをGNDと出力の間に入れてみました。目視でもノイズが減ったと分かるほどの変化があり,これは正解です。

 というわけで,4.8Vから6V付近をあっさり生成出来たことに気をよくし,モジュール化して4つほど作ってみました。

ファイル 224-2.jpg

 では評価してみましょう。

 無負荷時の消費電流は入力電圧が低いほど増えますが,3Vで30uAほど,4.5Vで15uAほどで,一応合格の範囲です。

 安定した電圧(実測で5.9V)を出力できる入力電圧の最低ラインは負荷40mA時で2.2V。ちなみにGNDをダイオードで浮かせているから2.2Vなのであって,単体の特性では1.5Vくらいからになると思われます。動作そのものは1Vくらいからするようですが,電圧も上がらず,電流も引けず,実際には使えません。

 効率ですが,下のような感じになりました。まずはダイオードでGNDを浮かせてあるものの結果です。

・入力:4.48V,57.6mA 出力:5.96V,35.4mA 効率:81.8%
・入力:3.02V,99.1mA 出力:5.90V,35.0mA 効率:69.0%

 入力3V時の効率が予想外に悪いです。効率がGNDを浮かせたことによるのであれば,この方法で電圧のかさ上げをするのは失敗ということになります。そこで,単体の特性を評価してみます。

・入力:4.49V,41.4mA 出力:5.16V,30.7mA 効率:85.7%
・入力:3.59V,51.4mA 出力:5.16V,30.6mA 効率:85.5%
・入力:3.02V,61.6mA 出力:5.16V,30.5mA 効率:84.7%

 ほぼスペック通りの結果になりました。こちらはなかなか良い感じです。

 この結果から考えると,やはりダイオードによるかさ上げは効率の悪化を招くようです。入力も出力もダイオード1つ分の0.7Vだけかさ上げされていますので,HT7750Aは0.7V低い電圧で動作し,しかもより重い負荷が繋がっていると見る事ができますが,それを加味して入力の電圧が4Vくらいあれば,80%以上の効率を確保することは出来そうです。

 今回のゴールはエネループ4本で6Vを得る,であり,ニッケル水素電池の終止電圧が1セルあたり1.0V,4本では4.0Vですから,これでもとりあえず実用にはなります。ギリギリセーフとしましょう・・・(プロの世界では通用しないです)

 さて,もう少し電流を引っ張ってみます。

・入力4.50V,130.2mA 出力5.26V,96.1mA 効率86.7%

 効率のピークは50mAくらいのはずなのですが,100mA引っ張って87%近くまで上がっています。うむー,スイッチングレギュレータは奥が深いですね。

 結論ですが,データシートの回路をそのまま組み立てるだけで85%の効率は簡単に確保出来ます。電流も100mAくらいなら楽々引っ張れそうですし,リプルも少なく,ノイズも小さいので,手軽で良くできたICだと思います。

 で,ダイオードによる電圧のかさ上げ作戦は,かさ上げされた分の電圧を差し引いて比較すると,4%から5%程度の効率の悪化があります。ただし動作そのものに支障はなく,4V以上で使うなら効率も80%は確保出来そうです。また,IC自身の消費電流は増えません。使い方次第では便利でしょう。


 というわけで,早速PC-2001とX-07に組み込んでみました。電池からの配線をぶった切り,間にこのモジュールを挟み込むだけです。

 結果は上々。PC-2001は見やすく,生き生きと動き出し,X-07も「LowBattery」の表示を出す事はなくなりました。

 これだけお手軽に昇圧回路が作れるようになると,いろんなものに応用が利きそうです。コストも全部で200円か300円かそんなもんですので,値段もお手軽です。これでようやく,昇圧回路を我が手にしたという実感がわきました。

 これでエネループを骨までしゃぶれる・・・そんな風に思って布団に入ったのですが,寝る前に少し考えてみると,まずいことが・・・

 以下次号。

ページ移動

ユーティリティ

2020年05月

- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 - - - - - -

検索

エントリー検索フォーム
キーワード

ユーザー

新着画像

新着エントリー

過去ログ

Feed