コンピュータはなぜ動くのかのZ80マイコン回路の作成

こんにちわ!M1号と申します。

「コンピュータはなぜ動くのか」に載っているZ80マイコン回路を作ってみたいです。

https://xtech.nikkei.com/it/article/Watcher/20070515/271113/

こちらのマイコン回路です部品が高いので、秋月にあるものに変更してなるべく安く動かしたいです趣味の楽しみで作る物です。

クリスタルオシレーターですが、TCO-711A8MHzのもの(いいものだと思います)が100円で売っているのでこれを1/2分周して4MHzでZ80を動かしたいです。

初心者でよくわからないのですが、本来は4MHzのクリスタルオシレーターを使うのが楽だと思いますが、若松通商だと#30020010 KHC5500ATW KDK 長方形 748円もします。

今、昔購入した「だれにでもわかるディジタル回路」の発振回路の所を見ていますがクリスタルオシレーターの中身はこういう事をしているのかと思っていて1/2分周したものを使ってもいいのではないかと思います。こういうことをしても動くものができるでしょうか?

それから、バス周りで74367を4つと7404を2つつかいますが、地元のショップで74LSでも多分動くと言われて74LSにするとこちらも大分安くなります。本をよく読んでみようと思いますがゆっくり取り組んでいるとチップの値段があがってしまいそうです。若松では、ちょっと前まではZ80は200円でした今は倍になってしまいました。74LSは無印の改良型だと思うのですがこちらにしても動くのではないかと思いますがどうなのでしょうか?

一人で勉強しているので、教えていただけるとありがたいですよろしくお願いします。


  • M1号さん、こんにちは。NoMaYと申します。

    かふぇルネのスレッドで、ルネサス製品との関連が何も無い投稿は、さすがにちょっと答え難いよねぇ、と思って、あれこれGoogle検索していたら、ルネサスさんの元となった、NEC、日立、三菱、(あいうえお順)のNECさんからuPD70008というZ80互換CPUが出てますね。若松さんでもUPD70008AC-6というのが売られてますね。また、日立さんからだとHD64180というZ80上位互換CPUが出ていますね。こちらも若松さんにてHD64180ZP6というのが売られていますね。

    なお、74LSでも、まず大丈夫だと思います。ところで、記事の回路図を見て気になったのですが、ハンドアセンブルぐらいは、やり方が分かりますよね。ネットで探せば、フリーのZ80アセンブラは見付かるとも思いますけれども。

    あと、Google検索していたら以下のソフトウェアがGitHubにありましたね。がじぇるねボードでも動くみたいです。

    github.com/kobolt/kaytil

    Z80 CP/M 2.2 emulator focused on running Kaypro II compatible games in a Linux terminal. (Now also available on a GR-SAKURA, Raspberry Pi Pico, DOS or Windows.)


    [追記]

    HTML5によるZ80シミュレータだそうです。

    HTML5を使ってみた
    2012年10月5日
    www.recfor.net/jeans/?itemid=867

    TK-80のHTML5によるエミュレーター
    2012年11月4日
    www.recfor.net/jeans/?itemid=868
     

  • こんにちは、NoMYさん。返信ありがとうございます。

    こちらのフォーラムは、たまにのぞかせていただいていたので質問をさせていただきました。

    記事の通りのパーツを見付けるのは大変そうです昔の本がまだ残っているのでハンドアセンブルはできそうです。

    若松に、UPD70008AC-6があったのは驚きました。調べてみましたが6MHzでCMOSの様です。記事のZ80は無印だと思うので、CMOSになると扱いが難しいのかなと思います。

    検索していて見付けたのですが、昔のInterfaceの記事でZ80 40周年記念 Z80丸見えコンピュータ学習という記事が面白そうで読んでみたかったのですが地元の大学の図書館に3回分のうちの1回分しか残っていなくて残念でした。pdf版は、まだ売っているのですがこの記事のためだけには購入できないです。プログラムだけはダウンロードしてArduino UNOで動かしてみましたがよくできていました。さすがにプログラムだけみて学習ボードを作るのは、ちょっと難しいかなという感じです8085 丸見えコンピュータという資料が参考になりそうです。

    もし、できたら教えていただけるとありがたいのですがクロックオシレーターが高いので4MHzのZ80を3.579545MHzで動かしたり、8MHzのオシレーターを74HCのフリップフロップで1/2分周して4MHzにしても動くものでしょうか?

  • M1号さん、こんにちは。NoMaYです。

    > 4MHzのZ80を3.579545MHzで動かしたり、8MHzのオシレーターを74HCのフリップフロップで1/2分周して4MHzにしても動くものでしょうか?

    大丈夫ですよ。Z80の回路は(というかZ80以外でも殆ど)組んだことがありませんけれども、記事の回路図を見る限り、単相クロックを入れるだけで良いようですので、構わないと思います。

  • こんにちは、NoMYさん。返信ありがとうございます。

    少し元気がでたので、Z80マイコンの作成がんばって見ようかと思います。

  • M1号さん、こんにちは。NoMaYです。

    あと、作ってみたけれど動かなかった場合のデバッグ手段として、16chぐらいのロジアナを調達するぐらいは想定しておいた方が良さそうに思います。既に持っていれば良いのですが、持っていなければ、持っている友人にゴマをすっておくぐらいの段取りは念の為にしておいても良いように思います。

    ひょっとすると、テスターでの導通状態確認/接続先確認だけのデバッグでは、ちょっとしんどいかもなぁ、と思ったのでした、、、

  • こんにちは、NoMYさん。返信ありがとうございます。

    少し前に、トランジスタ技術2005年4月号のR8Cの付録マイコン基板を動かしたのですがはじめてテスターで導通チェックと電圧の確認をしました。なんとか動くようにしましたがなかなか一発で動かすのは難しいです。こちらのフォーラムにブログのリンクを貼り付けておいたのでよかったら見て下さい。https://community-ja.renesas.com/cafe_rene/forums-groups/mcu-mpu/other_products/r8ctiny/f/forum14/9837/2005-4

    ADALM2000一応これを持っています、まだうまく使えないのですがテスターだけよりは少しいいかもしれません。コンピュータは一人で楽しんでいるのですが、知人を見付けておくことも大切なのかなと思いました。

    それと、Z80の周辺回路を作るのはあきらめてZ80丸見えコンピュータ学習のようにArduinoやEMUZ80のようにPICなどでエミュレートしてしまうのもいいのかと思います。

  • チョコです。

    Z80やUPD70008ACはよく使っていましたね。

    クロックはデューティをできるだけ50%にするためにか必ず2分周して使用していました。

    Z80は、2.5MHzのものをよく使っていて、クロックは4.9152MHzを2分周して2.4576MHzで使っていました。4.9152MHzは分周すると9600bpsや4800bpsと言った伝送周波数が得られるので、よく使いましたね。UPD70008AC-6は19.6608MHzを4分周して4.915MHzで使っていました。19.6608MHzは8080用のクロックゼネレータである8224で9分周して2MHz(厳密には2.1845MHz)の2相クロックを8080に供給するために使われていたので、比較的簡単に入手できました。

    なお、Z80はM1(マシンサイクル1)でDRAMのリフレッシュ・サイクルが入るために、M1でのタイミングが厳しいのであまり周波数を上げないで使っていました。

    以上

  • チョコです。

    MPUは命令のフェッチがきちんとできるようにするまでが大変でした。最初は、データバスを抵抗でプルアップしておいて、FFHをフェッチさせ、38H番地へのコール命令を連続して実行しているかを確認していました。(抵抗でプルダウンするとNOP命令なので、命令フェッチだけ(+DRAMのリフレッシュ)が繰り返されるパターンも使ったことはあります。)

    ここらはR8CのようなMCUとは大きな違いです。

    以上

  • こんにちわ!チョコさん 返信ありがとうございます。

    チョコさんのRL教室を読んで、CQ出版の絵解きマイコンCプログラム教室マイコン付きを買いました。秋月で4.9152MHzのクリスタルオシレーターを見付けましたこれを2分周して2.4576MHzを作れそうです。

    マシンサイクル1のタイミングチャートを見ましたがこれを見てると時間がたくさん要りそうです。さっとでもいいのでメモリとI/Oのサイクルも本で読んでみようと思います。

  • こんにちわ!チョコさん 返信ありがとうございます。

    Z80は、アドレスバスとデータバスが外にでているのでR8Cで勉強した事をさらに勉強するのにいいのではないかと思ったのですがどんどん昔の技術を遡っています。R8Cのマイコン基板は28ピンでしたがZ80は40ピンになって68000に比べて8bitなので手配線できると思いましたがバスの配線が大変そうです。

    フェッチができるようになるまで本当に大変そうです。実機は、面白いですがその前にZ80だけ使ってエミュレータで動きを追った方がいいのではないかという気がしてきました。