2017.6.27
前へ
次へ
ホームページトップへ戻る

マイコン独立大作戦
ROM/RAM/RTCボードの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
WindowsパソコンにUSB接続して使う現行方式はそれなりに便利ではありますが、ときとしてWindows
のしがらみから開放されて、小さいながらも独立した一個のパソコンとして機能したいと思うこともあります。
独立大作戦の作戦その1はCRTインターフェースボードの製作です。
作戦その2はキーボードインターフェースです。
作戦その3は、SDカードインターフェースです。
作戦その4は、ROM/RAM/RTCボードです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第3回]


●回路図

ROM/RAM/RTCボードの回路図です。
最初の設計に従ってとりあえずの試作版を作ったのですが、その後いろいろまずいところがでてきて修正、変更を繰り返した結果、やっと落ち着いた回路なので、ICの使い方がよくありません。
みっともない回路ですけれど、現物の試作基板の通りの回路図を残しておかないと、後で再修正などが必要になったときに困ってしまいます。
そういうレベルの回路図ですから、説明の参考程度とお考えください。
最終的に製品版として仕上げる場合には、もっとしっかりした回路としてまとめるつもりです。

ROM/RAMアドレスのセレクト部分の回路とRTC(DS1307)の回路です。

ROM/RAM/RTCボードは最終的にはROMは27C256/27C1001/27C4001を、RAMは62256/628128/628512を実装できるように考えています。
しかし今のところはとりあえずの試作版ですから、上の回路では27C1001と628128しか考えていません。

ND80Z3.5(ND80ZV)、ND8080、MYCPU80ではZB3DOS(CP/M互換DOS)のためにもともとのシステムROMエリアのアドレス0000〜7FFFにシステムROMに重ねる形で32KBのRAM(62256)を増設しています。
システムROMと増設RAMは同じアドレスに配置してありますから同時にはアクセスできません。
その切換えには5X5キーマトリクスにアクセスするためのI/Oアドレス9C〜9Fの、たまたま空いていたビット3を利用しています。
9C〜9Fのビット3に0を出力するとシステムROMがアクティブになり、ビット3に1を出力すると増設RAMが選択されます。
ビット0〜2はキーアクセスに使いますから、他の用途には使えません。

現行のハード、ソフトを大きく変えないで、さらにROMまたはRAMを増設するには、今と同じ0000〜7FFFのアドレスに配置するしかありません。
しかしどうやって?

そこのところがなかなかに悩ましい問題でした。
前述のようにアドレス9C〜9Fの出力データのビット3を0にするとROMが選択され、1にすると増設RAMが選択されます。
その両方とも選択できないようにしておいて、同じアドレスに第3のメモリを置くこともできますが、そのためには現行のハードとソフトを変更する必要があります。
できればハードの変更はしないで、ソフトの変更も最小限にして、なんとかそこにROM、RAMを増設する方法はないものだろうか?

頭は生きているうちに使うものであります。
一所懸命考えておりますと、突然に道は開けてまいります。
思いついてしまえばなんてことはありません。
コロンブスの玉子です。

アドレス9C〜9Fに出力するデータのビット3はROMとRAMの切換えに使います。
ビット0〜2はキーアクセスに使います。
しかしビット4〜7は未使用です。
ND80Z3.5(ND80ZV)、ND8080、MYCPU80のI/Oアドレス9C〜9F出力回路は下位4ビットのみを実装していてビット4〜7の上位4ビットは実装していません。
そこでその未使用の上位4ビットにROMとRAMのアドレスA15〜A18を割り当てることを思いつきました。

上の回路では、27C1001と628128のためのA15とA16のみを実装しています。
最終的に最大で27C4001と628512を実装した場合、9C〜9Fに00〜F0を出力することでROMバンク(32KBX16バンク)を選択できます(下位4ビットは0000〜0111のいずれでもよい)。
また0F〜FFを出力することでRAMバンク(32KBX16バンク)を選択できます(下位4ビットは1000〜1111のいずれでもよい)。
現在システムROMの5X5キーアクセスルーチンではキーアクセスのために9CにF6、F5、F3を出力しています。
そこのところをそれぞれ06、05、03を出力しても5X5キー入力には影響ありません。
そしてそのようにすることで、増設ROMの0バンクが選択されます。
それを有効にするには、CPU本体ボード上のROMは外す必要があります。
同様にRAMについては現在9CにFFを出力することで増設RAMを選択していますが、そこはそのままROM/RAM/RTCボード上のRAMの最終バンクが選択されることになります。
この場合もCPUボード上の増設RAMは外す必要があります。

下はROM(27C1001)とRAM(628128)部分の回路です。

A15はCPUバス出力ではなくて、さきほどの回路の74HC175のラッチ出力です。
A16も74HC175のラッチ出力です。
A0〜A14はCPUバス出力信号がそのまま接続されます。

今回は説明が長くなってしまいましたので、RTC回路については次回に説明いたします。

ROM/RAM/RTCボードの製作[第3回]
2017.6.27upload

前へ
次へ
ホームページトップへ戻る