- 締切済み
Z80CPUのプログラムバンク切替え回路は?
マイコン初心者で、今、基礎を勉強しています。 Z80CPUについてですが、プログラムエリアを増やすため、バンク切り替えして使いたいのですが、具体的には、どういった回路にすればいいのでしょうか? 教えて下さい。よろしくお願いします。
- みんなの回答 (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/japan/jpn/PRODUCTS/MPUMCU/index.html 勉強が優先で、かつ、本や資料がたくさんあって、同好者や助けになるHPも あるという メモリは少ないけど PICマイコンも良いと思います。 http://www.picfun.com/ 質問の回答には、なっていませんが、初心者の方には他の選択が良いのでは と思いましたので、おせっかいです、済みません。
- paspas
- ベストアンサー率52% (47/90)
#1です。 64180のMMUについてですが、 http://www.st.rim.or.jp/~nkomatsu/hitachi/HD64180.html か ZILOGのホームページにあるのZ180のデータシートをみていただければ、おおよその見当がつくと思います。 http://www.zilog.com/products/parts.asp?BusinessLineID=274#219 参考にしてください。
お礼
ご回答ありがとうございました。参考にしてみます。
- teo98
- ベストアンサー率23% (70/303)
Z80のメモリ空間の64kに対して、Z80のI/O空間を流用することになると思います。例えば、I/Oアドレスの1ビットを流用すれば128kとなります。 ただし、メモリの種類によってはリフレッシュサイクルとの絡みもあり、バンク切替がプログラム開発の上で不便なものになることもあります。
お礼
ご回答ありがとうございました。
- paspas
- ベストアンサー率52% (47/90)
プログラムエリアを増やすということは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以上のメモリを扱うことができます。 以上 参考になれば幸いです。
お礼
ご回答ありがとうございました。バンク切り替えの方法、何となくわかりましたので、やってみることにします。 ところで、64180のMMUというのはどんなものなのでしょうか?参考までにお教えいただければ幸いです。
お礼
ご回答ありがとうございました。とても参考になります。