|
メモリ・クロックの甦り(よみがえり) HOMEへ |
|
☆はじめに |
|
|
|
☆仕様・製作 |
|
メモリ・クロックの回路です。 |
||||||||||||||||||||||||
|
甦り前のCPU基板回路
|
||||||||||||||||||||||||
|
CPU基板のCPUは、RCA社のCOSMAC(CDP1802CD)です。C-MOSで消費電流が少なく、電源電圧範囲も4〜6VDCで、電池での使用が出来るCPUです。アドレスラインが8 ビットの為、ローアドレス8 ビットとハイアドレス8 ビットが時分割で出力されますが、メモリ容量が256バイトならダイレクト接続出来るので、RAMは、μPD5101(256×4ビット)を2個使用して、メモリ容量は256バイトだけです。このCPUは、Z80等のCPUに比べて価格が数倍高くて、4,000円位で高いなと思って購入した記憶があります。
メモリ容量が小さいので、プログラムでは余り対応出来ないので、メモリ・クロック部分は、ハードでの制御部分が多くなります。
表示時刻の変更方法は、時及び分のデジスイッチで時刻を設定して、RUN-PROGスイッチをPROG側にして、REALスイッチをONにして表示時刻を変更します。リレー出力をON、OFFする時間設定方法は、下記の表のCH番号のリレー出力ON又はOFFに対応した数字をCHのデジスイッチに設定して、RUN-PROGスイッチをPROG側にして、PRESETスイッチをONにしてメモリに書込み設定します。
|
||||||||||||||||||||||||
|
メモリ・クロックのクロック用LED表示器TLR4020は無いので、カソードコモンの2桁7セグメントLEDを2個と時と分の間の「:」は外径の小さいLEDを2個使用しました。LED表示器は、7セグメント用ラッチ付きデコーダ/ドライバC-MOS 4511を使用したスタティック点灯です。BCD-10デコーダC-MOS 4028を使用して、LED表示器の時、分及びCH及び時間設定用デジタルスイッチ及びリレー出力の選択をします。
時間の基準は、交流電源の60Hz(50Hz)の交流を波形整形してタイミングパルスを作って、CPUでこのパルスをカウントして時刻を発生するようにしています。
上記の回路で製作して、載っていたソフトをプログラム・ローダで打ち込んで、RUNモードにしても時刻表示しません。テスト用の10秒タイマのソフトを入れると正常に動作します。メモリ・クロックのソフトの場合は動作せず、最初は原因が判らなかったのですが、リレーのノイズによって暴走している事が判りました。RUNモードにした時にリレーが動作して、そのリレーのノイズで暴走してしまったのです。リレーのコイル側にノイズ対策したら暴走しなくなり正常に動作しました。冷蔵庫等のノイズを拾って暴走する時がたまに有ったので、AC100Vラインへラインフィルタを入れたり、リレー出力のAC100V側に制御機器のノイズが受けにくいように、スパークキラーを入れたりしてノイズ対策をしたら、ノイズによるトラブルはなくなりました。出力側がフォトカプラ等で絶縁されていないのでノイズに弱く、ノイズではかなりてこずりました。 |
||||||||||||||||||||||||
|
|
||||||||||||||||||||||||
|
左側 甦り前のCPU基板 右側 PICのCPU基板 |
|
|
|
|
メモリクロック(60Hz用) メモリクロック(50Hz用) プログラム一式 mikroBasic V6.0 (lzhで圧縮) 当初、PIC16F648Aのソフトで作成していたので、PIC16F88に変更しても、タイマ関係を変更するのは面倒なので、そのまま4MHzの内部発振を使用しました。 RB0〜RB7ポートを、LED表示器用のデータ出力用、時刻とCH、リレー出力設定用のデジスイッチのデータ入力用に切替えて使用します。RUN-PROGスイッチをPROG側にして、REALスイッチ又はPRESETスイッチをONした時だけ入力側になります。その他の時は、出力側となります。 時間の基準は、交流電源の60Hz(50Hz)の交流を波形整形してタイミングパルスを作って、このパルスをCPUでカウントして時刻を表示します。このパルスのカウント方法は、TMR0タイマで約3ms毎に割り込みを掛けて、この時にパルスがHiになっているかを確認して、カウントする事にしました。ノイズの影響等を考慮して、パルス入力ポートのRA4ポートが連続2回Hiとなった時だけカウントします。 カウント値が1分経った時に、分、時の変更をして、リレー出力の設定値を確認して制御します。時と分の各々変更の有った時だけ、表示を変更します。7セグメント用ラッチ付きデコーダ/ドライバC-MOS 4511を使用してスタティック点灯しているので、表示変更してラッチすれば、後はRB0〜RB7ポートが変化しても問題は有りません。 時刻設定値は、0時0分〜23時59分までは有効ですが、デジスイッチがそれ以上の設定値の時は変更されません。リレー出力設定時間の方は、デジスイッチの設定値は全て変更されます。時刻は24時間表示で、24時以上の設定では有り得ない設定となり、リレー出力は変更とならなく、設定した時刻以前の状態のままとなり、変更したくない場合には24時以上の設定値にします。 電源がONとなった時は、初期値は00時00分より表示します。リレー出力設定時間は、PRESETスイッチをONするとEEPROMの00番地〜15番地に書き込みます。電源をOFFしても保持され、電源がONになった時は、EEPROMよりリレー出力設定時間を読み込みEEPROMの設定値で出力します。 リレー出力設定時間を表示する事が出来なかったので、今までは、どの時間にリレー出力設定時間が設定されているかを確認する事が出来ませんでした。今回、リレー出力設定時間が表示確認出来るようにリレー出力設定時間表示機能を追加しました。 RUN-PROGスイッチがRUN側の状態で、PRESETスイッチをONすると、時の位置にCH番号を1秒間表示して、その後設定時間を1秒間表示して、PRESETスイッチをOFFするまでCH0〜CH7まで順に1秒間隔でCH番号と設定時間を交互に表示切替えてPRESETスイッチをOFFするまでループして表示出来るようにしました。
以上の仕様で、PICのソフトをmikroBasic Version: 6.0.0.0で作成しました。 |
|
|
||||
|
☆まとめ |
||||
|
|
|||
|
デジスイッチで時間設定をしても不安定で正しい数値にならないトラブルが有りましたが、原因はデータ入出力用のRB0〜RB7ポートにプルダウン抵抗を付けるのを忘れていた為、入力時には不安定となっていました。CPU基板のデータバスにプルダウン抵抗が付いていたのを見落としていました。 交流電源の60Hz(50Hz)の周波数の精度は、制御されているので長期的には正確で、時計の基準値として使用しても大きな狂いは無く、製作した当時もかなり正確で、今回甦りをしてから1年近くとなりますが、分単位の表示の為時間の狂いはほとんど見られませんでした。 18ピンのPICを使用した為、18ピン全てが必要で空きピンが無く、60、50Hzの切替え等の入出力を追加する様な機能追加が出来ませんでした。 LED表示器で、CH-01等の表示をさせたかったのですが、7セグメント用ラッチ付きデコーダ/ドライバC-MOS 4511を使用しているので、数字(0〜9)しか表示出来なくて、数字以外の表示が出来ませんでした。 甦り前はリレー出力設定時間が表示出来ず、何が設定されているか確認出来ないので、設定値が不明の時は再度書き込み直していましたが、リレー出力設定時間を確認表示出来る機能を追加しましたので、同じ設定値なら書き込む必要が無くなりました。 電源がOFFとなってもプログラム及びリレー出力設定時間が消える事が無くなり、電源をONした時に、現在時刻を設定するだけで使用出来る様になったので、メンテナンスの必要もなくなり、誰でも扱い易く使用出来る様になり、甦らせる事が出来ました。 出力用のAC電源ソケットが製作当時購入店には3個しか在庫が無く3個だけ購入して、後日1個購入しましたが、後で購入した1個は少し外形が大きくてパネルに入らずパネルを削るのも面倒で、4出力も使用しないのでそのままとなっていました。今回も同じ大きさの電源ソケットを捜して購入するのも面倒なのでまだそのままとなっていて穴があいたままとなっています。 |
|
|