重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

マイコン初心者で、今、基礎を勉強しています。
Z80CPUについてですが、プログラムエリアを増やすため、バンク切り替えして使いたいのですが、具体的には、どういった回路にすればいいのでしょうか?
教えて下さい。よろしくお願いします。

A 回答 (4件)

ハードウェアでオリジナルのZ80CPUにこだわっていないのであれば、Z80と


互換性のある川崎マイクロエレクトロニクスの出しているCPUもあります。
http://www.k-micro.com/seihin/micon.html

メモリ空間は1M程度あるようです、更に16ビットまで拡張したCPUは16M
まで扱えるようです。

ハードウェアに興味があるのでしたらオリジナルのZ80CPUに、自分でいろ
いろ作りこんでメモリ空間を広げたりするのも良いと思います。

しかし

大きなメモリ空間が欲しいだけと言う事なら、またZ80CPUにも、こだわって
いないなら日立のH8なんかも検討されたらどうでしょう。
http://www.hitachisemiconductor.com/sic/jsp/japa …

勉強が優先で、かつ、本や資料がたくさんあって、同好者や助けになるHPも
あるという メモリは少ないけど PICマイコンも良いと思います。
http://www.picfun.com/

質問の回答には、なっていませんが、初心者の方には他の選択が良いのでは
と思いましたので、おせっかいです、済みません。

参考URL:http://www.k-micro.com/seihin/micon.html, http://www.picfun.com/, http://www.hitachisemiconductor.com/sic/jsp/japa …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。とても参考になります。

お礼日時:2003/02/27 21:45

#1です。



64180のMMUについてですが、
http://www.st.rim.or.jp/~nkomatsu/hitachi/HD6418 …

ZILOGのホームページにあるのZ180のデータシートをみていただければ、おおよその見当がつくと思います。
http://www.zilog.com/products/parts.asp?Business …

参考にしてください。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。参考にしてみます。

お礼日時:2003/02/26 23:08

Z80のメモリ空間の64kに対して、Z80のI/O空間を流用することになると思います。

例えば、I/Oアドレスの1ビットを流用すれば128kとなります。
ただし、メモリの種類によってはリフレッシュサイクルとの絡みもあり、バンク切替がプログラム開発の上で不便なものになることもあります。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

お礼日時:2003/02/26 23:06

プログラムエリアを増やすということはROM空間を増やすという認識でよいのでしょうか?


ハードウェアの構成にもよりますが、現在実行中のROMを切り替えてしまうと当然の事ながら暴走してしまいます。

切り替えはROMにしてもRAMにしても、IOポートを用いて行います。
I/Oポートの適当なアドレスにラッチ回路かフリップフロップを付加し、アドレスバスとアンドをとってメモリチップをセレクトするようにすればよいと思います。
ラッチにデータを記憶させるのは、IORQとアドレスバスでラッチのセレクト信号を作り、WR信号で書き込めばできると思います。

これは一例ですが、
 0番地から数KB分システム用ROMとして割り当て、リセット時の処理やバンク切り替えの処理部を書いておき、その上位に通常のプログラムを搭載します。
 下位ROMや上位ROMのセレクトは、アドレスデコーダを工夫して実現してください。
 上位のROMはI/Oポートでセレクトしたものが現れればバンク切り替えにてプログラムエリアは増やすことができます。


注意点として
・リセットがかかったときは、必ずバンク0をセレクトするようにすること。
・バンク切り替えを行うプログラムが切り替えられるROMに載っていると暴走するので、一時的に切り替えを行わないRAMに切り替え用のプログラムを転送するかまたは、システム用のROMを下位アドレス(バンクを切り替えない所)に準備しておけばよいと思います。
・切り替えられるRAMにスタックがある場合も暴走する可能性があります。注意してください。

追伸、64180(日立)というZ80系のCPUはMMUを搭載しており、64KB以上のメモリを扱うことができます。

以上 参考になれば幸いです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。バンク切り替えの方法、何となくわかりましたので、やってみることにします。
ところで、64180のMMUというのはどんなものなのでしょうか?参考までにお教えいただければ幸いです。

お礼日時:2003/02/25 23:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!