PC-8201の改造終了
- 2011/02/10 12:57
- カテゴリー:マニアックなおはなし
PC-8201の修理(動いていたものを修理するとは言わないのですが,いろいろ不具合を修正したので修理と書きます)は,毎日少しずつ進んでいましたが,昨夜ようやく終わりました。
(1)メモリ
10年前の改造では,uPD43256を2つ使って2バンク・64kByteを実装してありました。
PC-8201の標準装備のSRAMはTC5516タイプで,CEが2つあります。どちらかをチップセレクトに繋ぎ,もう1つは電源が入るとLowになるPOWER信号に繋がっています。これにより電源が切れるとスタンバイモードになり,少ない電流でSRAMのバックアップが出来る仕組みです。
uPD43256などの標準的なSRAMでは,CSとOEの2つになっているので,単純に置き換えただけではPOWER信号がOEに繋がるため,ここがいくらHighになってもスタンバイモードには入ってくれません。(CSがHighにならないとスタンバイにならないのです)
そこで,10年前は,電圧監視ICを別途用意して電源電圧の変化から電源スイッチの状態をつかまえ,この出力とチップセレクト信号とANDを取り,SRAMのCSに繋げていました。
今回はもう少し綺麗なやり方をします。
MB84256といういつものSRAM(CSとOEをもちます)を2つ用意し,これを俗にカメカメと言われる,2段重ねにしてハンダ付けを行います。
HC-20の時と同じく,このSRAMのOEはGNDに繋げ常にLowとしますが,その代わりCSにはチップセレクト信号とPOWER信号のANDをとって入れるようにします。
配線の数が多いのはいつものことですが,ついうっかりSRAMの電源をROMと同じ所からとったため,電源スイッチONでしか電源が供給されなくなりました。本来ならこれでもバックアップがされないだけで,動作はするはずなのですが,どういうわけだか起動しなくなり,随分焦りました。
なにが起きているのか実はよくわからないのですが,例えば仮説で,VBで動いているアドレスデコーダがVDDで動いているSRAMのCSを変に動かして,起動時にSRAMがROMと同時にEnableになったりすると,バスの衝突が起こります。
真面目に検討しても面白いテーマだとは思いますが,時間がないので今回はパスです。
SRAMの電源をVBにつなぎ直し,ちゃんと動作することを確認しました。
そうそう,カートリッジに増設するBANK3も32kByte実装して,トータル96kByteにする作戦も考えたのですが,BANK3へのアクセス時はバスバッファが切れて,内蔵のメモリが切り離されます。
BANK3のSRAMは内蔵メモリのいる場所に取り付けますから,BANK3でもバスバッファが動くように改造せねばなりません。これがなかなか面倒臭い話ですし,ここまでやってしまうともうオリジナルとは言えなくなると,BANK2までとしました。
(2)電源ブロックとコンデンサ
HC-20では,電解コンデンサが液漏れし,電解液が基板を壊すという最悪の事態を引き起こしていましたが,PC-8201はもともと電解コンデンサが少なく,目視では液漏れしているものはなさそうでした。
しかし,液漏れしてからでは遅いので,全部交換です。
RS-232Cのラインになぜか入っている3つの47uFの電解コンデンサは無極性タイプですので,22uFのセラミックコンデンサを並列にして交換します。
電源基板の電解コンデンサも,小容量のものはセラミックコンデンサに,大きなものは新品の電解コンデンサに交換しました。
ここで,3.3uFの小型の電解コンデンサが派手に液漏れし,パターンを腐食しているのを発見しました。小さい図体なのに壊れるときはビッグなやつです。
幸いパターンが切れるに至ったわけではないので,電解液を良く拭き取って補修します。これで大丈夫でしょう。
それにしても,30年を経た電解コンデンサはこわいですね。致命的な永久故障に至るわけですから,電解コンデンサは出来るだけセラミックコンデンサに,駄目な場合でもタンタルコンデンサなどの固体コンデンサに置き換えることをしておかなければ,大事になります。
(3)バックアップ電源
PC-8201には,3.6Vの小型NiCd電池がメモリバックアップ用に搭載されています。ACアダプタもしくは本体駆動用電池から逆流防止用のダイオードと,1.8kΩの抵抗を介して電池のプラス側に繋がっており,さらにここからメモリやRTCの電源(VB)に繋がります。
電源がONになったときには,DC-DCコンバータで作られた5VがVBに与えられますが,電源はOFFになるとこの電池のプラス側がVBに供給されるように,ダイオードORになっています。
もしNiCd電池が切れていたら,ACアダプタか本体駆動用電池で緩やかな充電が行われ,同時にVBがダイオードと抵抗を通って供給されますし,ACアダプタが刺さっておらず,本体駆動用が切れた場合にはNiCd電池からVBが供給される仕組みです。
しかし,NiCd電池などとっくの昔に死んでいて,10年前にはバックアップ用に作られたリチウム一次電池を代わりに取り付けていました。充電が出来ないだけで同じ事だろうと思っていたわけです。
当然,この電池も切れています。そこで,電気二重層コンデンサを使う事にしましょう。当初,NiCd電池の代わりにこれをそのまま取り付けておしまいにしようと思ったのですが,どうも様子がおかしいのです。
ACアダプタで動作させると,電気二重層コンデンサの両端の電圧が,5Vを軽く越えてしまうのです。コンデンサの耐圧は5.5Vですので,これはまずいです。
1.8kΩを介してNiCd電池と繋がっていることは前述しましたが,これは電流が流れた場合はよいとしても,電流が流れない,つまり電池が外れた,壊れたという場合には電流は流れず,ACアダプタの電圧がそのまま出てくる事になります。
ACアダプタは純正のものも非安定のトランスタイプで,出力は8.5Vらしいです。私の使っている9Vのアダプタでも,無負荷時は12V近くでてきます。これではVBに12V近い電圧が出てくるため,ICを壊してしまいます。
これはいかんと,まず電気二重層コンデンサをVBに並列に繋ぎました。これで5Vを越える事はないでしょう。
しかし甘かったです。VBにはACアダプタの電圧がそのまま出てくるので,特にバックアップ時には12V近くがVBに出てきます。これは本当にまずいです。
電源ONの時でも,DC-DCは基本的に昇圧で動いていますので,高い電圧はそのまま出て行きます。ゆえに,9V近い電圧がCPUやROMなどにも加わっていました。PC-8201で使われているICはCMOSが多く,グルーロジックについてはTC40Hシリーズなので,電圧がちょっとくらい高くなっても(最大動作電圧で8V,絶対定格で10Vらしい)壊れることはないでしょうが,80C85やSRAM,ROMについては5Vで動くものですので,さすがに壊れても不思議ではありません。SRAMに至ってはバックアップ時12V近くになっていたこともあるわけで,背筋の寒くなる思いがします。
そこで,根本的に電源部を見直しです。
まず,ACアダプタのジャックから,6Vのレギュレータ(78M06)に入れて,ACアダプタの電圧を安定化します。後でダイオードORすることを見越し,ダイオードをGNDに挟み込んで,0.6Vほどかさ上げしておきます。こうしないと,電池電圧の方が高い場合が多くて,せっかくのACアダプタから給電されないからです。
本体駆動用電池は,ACアダプタが挿されると物理的に回路から切断されるようになっていますが,これをとりやめ逆流防止用のショットキーダイオードを介して6Vのレギュレータの出力と合成します。
そして,NiCd電池充電用の1.8kΩの抵抗はショートし,約6Vになったこれらの電圧をそのままVBに与えます。
また。電気二重層コンデンサに急激な充電電流が流れてしまい,DC-DCコンバータの出力電圧が下がってしまうことを避けるため,560Ωの抵抗を直列につないで,VBにぶら下げます。
しかし,これでも時々起動不良を起こしているので,1kΩにします。これで充電電流は最大で5mAとなり,電源回路の給電能力から考えて妥当なところでしょう。そのかわり電気二重層コンデンサへの充電は分単位でかかることになります。
バックアップ時は,仮に200uAとして0.2V(と言うことは40uW)のロスですが,このくらいなら微々たるものでしょう。
これでACアダプタと本体駆動用電池のうち,電圧の高い方が使われるようになります。バッテリバックアップも問題なく動作しているようです。
もう1つ,実はPC-8201のACアダプタのマイナス側は,GNDから浮いています。ACアダプタのマイナス側とGNDの間にはショットキーダイオードが入っていて,0.4V程度浮いているのです。
これ,どうしてこんなことしてあるんだろうと考えたのですが,おそらくACアダプタの極性が逆の場合に,回路が壊れることを防ぐ逆流防止用のダイオードだと思います。
今回はレギュレータを使っていますので,ACアダプタの極性が変わってしまっても,本体を壊さないはずですから,こういうややこしいダイオードはショートしておきます。
ここまで行って,とりあえず狙った通りの動作になっていることを確認しましたが,eneloppではなくアルカリ乾電池を使えば最大7.2Vとなるので,ACアダプタの電圧を6Vで安定化すると乾電池の方が電圧が高くて,ACアダプタから供給されません。まあこのあたりは妥協するところですかね。
(4)RTC
本来ならここまでで完成となるはずでしたが,電源を切っている間,時計が進んでいないことに気が付きました。おかしいです。
調べてみると,RTCであるuPD1990に電源が供給されていないようです。電源ON時には端子からの回り込みで4.4Vほどの電圧が電源端子にでていますので動作しているのでしょうが,電源をOFFにすると電圧がほぼゼロにになります。これでは,フリップフロップの内容がなんとなく維持されることはあっても,32kHzの発振が起きませんので,当然時計は進まないわけです。
では,なぜuPD1990に電源が供給されなくなってしまったのか,です。
本来,このICはバックアップ対象ですので,VBに繋がっていなければなりません。
よくよく調べてみると,ICのVDDピンとVBが繋がっているパターンが,カットされています。素人が切ったものなので,おそらく10年前の私が切ったのでしょう。
しかし,理由を思い出そうにも全然思い出せないのです。記録は残しておくべきだなとつくづく思いましたが,推測をしようにもさっぱりわからないです。きっとなにかの勘違いをしたんだろうと思いますが,当時は動いたからそれでいい,などと呑気なことをやっていたんでしょう。
切ったパターンを接続し直してやれば,RTCの動作も問題なし。これで回路的におかしい部分はなくなったでしょう。
なお,uPD1990は設計の古いRTCで,動作時の電流が結構大きいです。その関係で,全体のスタンバイ電流が大きくなりがちです。
(5)圧電スピーカー
検討中に,ふと音が出ていないことに気が付きました。起動の時にプチっという音がしないのです。beep命令を使いましたが静かなまま。sound命令も同様です。耳を近づけてもかすかな音もしないし,異音もしません。
おかしいなあと思って出力波形をオシロで見るとちゃんと規定の出力が出ています。ということは圧電スピーカーが壊れているのだろうとよく見てみると,片側の配線が圧電スピーカーの素子から外れて,ケースから出てしまっています。
思い当たるのは,分解したPC-8201を,掃除の時にそのまま椅子の上に置いたのですが,不注意でその上にドスッと座った時のことです。ベキ,と嫌な音がしたのですが,重ねて置いた上ケースに傷が付いたことくらいで,内部の回路の破損はなかったので気にしていなかったのです。
ところが月曜日の夜,圧電スピーカのケースが割れていることに気が付いて,接着剤で貼り付けたばかりでした。踏んづけた時に外れてしまったのか,引っ張ったときに外れたのかは分かりませんが,どちらにしても構造の単純な部品ですので,配線を元の通りにくっつければおそらく直るでしょう。
ということで,ケースをばらして中の素子にハンダ付けをします。さすがに経年変化が進み,ケースはもろくなっていて,ぽろぽろと砕ける感じで割れてしまいます。
接着剤で貼り付けて修復した結果,無事に大きな音が出るようになりました。大した部品でもないので交換してしまってもよかったのですが,実はこの圧電スピーカーは京セラ製で,しかも旧ロゴが付いているのです。
PC-8201と京セラはよく知られたとおり浅からぬ縁がありますし,京セラが今のロゴに変えたのは1982年とPC-8201の登場時期を考えるとかなり微妙なところです。そんなことを考えていると,簡単にこれを交換してはいけないような気がしたというわけです。
さて,まさに一難去ってまた一難,こういうのはばらしたまま放置しておくとどんどん壊れた部分が増えていくものです。手早く修理,手早く仕上げることこそ,長く綺麗に維持するコツだと思いますが,HC-20にしてもPC-8201にしても,随分時間がかかってしまったと思います。
PC-8201は,オプションのROMのバイナリが海外で配布されています。あまり使い物にならないものも多いのですが,面白そうなので落ち着いたら入れておきましょう。
ということで,最終的な消費電流です。
このマシンは動作時とスタンバイ時で消費電流が大きく違いますので,電流計を入れると,電源器の電圧は同じでも本体側の電圧は大きく変わります。また,電気二重層コンデンサを回路に入れておくと,ここへの充電電流が見えてしまうので,一時的にカットして電流を測定します。
本体側の電圧が5.16Vのとき消費電流は95.5mAです。改造前に測定した時の動作時の消費電流もこのくらいでしたから,これはこんなもんでしょう。
この状態から電源スイッチを切り,スタンバイにします。この時の本体側の電圧は6.08Vに上がり,消費電流は187.5uAでした。改造前に測定した電流をあまり変わりません。結構がっかりです。
本体側の電圧を,動作時と同じ5.16Vまで下げたときのスタンバイ電流は140uAになりました。やや少なくなりましたが,それでも目標の100uAを切るところまで全然及びません。
実は,SRAMの交換が済んだときに簡単に電流を測定してみたのですが,この時のスタンバイ電流は100uAを少し切るくらいだったのです。今にして思えば,これはRTCへの電源が切られた状態だったわけで,uPD1990の消費電流が20uA程度だったことを考えると,まあ100uAを越える事は仕方がないかなというところです。
こうしてみると,改造の前後で消費電流は動作時もスタンバイ時もそれほど大きく変わりませんでした。では無駄だったかというとそうでもなく,電解コンデンサの液漏れに気が付いたこともありますし,ACアダプタの電圧が高い場合に本体を壊す可能性に気が付いたことも大きく,どちらかと言えばこのあたりをきちんと改善できたことが成果だったように思います。
その後,少し怪しい挙動をすることもあったのですが,今は元通り組み立て,長期テストにかけているような感じです。このままうまくいってくれるとうれしいのですが・・・
今回は,そんなに悩んだわけでもなく,成果としても派手なものではないため,今ひとつ達成感にも乏しいです。終わってしまえば気がかりなことが1つ減ったので気楽なものですが,どうせまたなにか故障して,修理に時間がかかったりするんだろうなと思います。