当日の朝
2025.09.12
私はあえて外出しないつもりですが(人混みが苦手)、お昼前後には規制がかかったり、大勢の人が集まったりと大変なことになりそうです。
先ほど(規制前に急いで)用事で来られた方の話では「あちこちに機動隊」「道路の掃除」「私服警官らしき人がウロウロ」「道路が混雑」ということでした。
そうでしょう。
こういう時にサングラスをかけて、泥棒のような風呂敷を背負って、キョロキョロしながら歩き回ったりすると、おまわりさんたちに大人気となるでしょう。
面白いやつだなあ、
何やってんの、
どこからきたの、
ちょっと、こっちでゆっくり話を聞かせてよ、ってなもんで、パンダみたいな塗装の特別車にのせてくれるかもしれません。
先ほど(規制前に急いで)用事で来られた方の話では「あちこちに機動隊」「道路の掃除」「私服警官らしき人がウロウロ」「道路が混雑」ということでした。
そうでしょう。
こういう時にサングラスをかけて、泥棒のような風呂敷を背負って、キョロキョロしながら歩き回ったりすると、おまわりさんたちに大人気となるでしょう。
面白いやつだなあ、
何やってんの、
どこからきたの、
ちょっと、こっちでゆっくり話を聞かせてよ、ってなもんで、パンダみたいな塗装の特別車にのせてくれるかもしれません。
シンプルZ80マイコン(6)
2025.09.12
ここは、あとで使うかもしれないから(拡張とか)、直接+5Vにつなぐんじゃなくてプルアップ抵抗を入れておこう。そうすれば後からスイッチをつないだりするのに便利よな。
・・・そんな感じで進めていくと、どんどん部品が増えてきます。シンプルから遠ざかります。
いまから作ろうとしている物のイメージというか目標を決めて、これはこの用途にしか使わないから余計なものは付けないという割り切り、決心が必要です。
フリーランニングから始めて、そこから最低限必要なものを足していくのもよいでしょう。
Z80だけを動かしてみます。ブレッドボードに差し込む。
+5V、GNDをつなぐ。
CLKをつなぐ。
INT, NMI, WAIT, BUSREQ, は使わないので+5Vにつなぐ。
出力ピンとなるアドレス(A0-15)と、HALT,MREQ,IORQ,RD,WR,BUSACK,M1,RFSHは開放でOK。
データバス(D0-7)は出力になる事もあるから、壊さないようにとりあえず1KΩの抵抗を通してGNDにつなぐ。これはNOP(00h)を入力することになります。
あとはRESETで、とりあえず簡易的なリセット回路で良いので、よくみかけるあれをつないでおきます。(抵抗、コンデンサ、ダイオード)
アドレスピンのどれかにLEDをつなぎます。A14か15あたりなら点滅が見やすいかもしれません。
さあ、あとは電源をつなぐだけ。
アドレスの変化を目で見ることができるでしょう。
基本的には、このままの回路でいいやとなります。
割り込み使わないからINTとNMIは+5V直結
WAITも使わない、DMAはリセットだけにするからBUSREQも使わない。+5V直結
・・・そんな感じで進めていくと、どんどん部品が増えてきます。シンプルから遠ざかります。
いまから作ろうとしている物のイメージというか目標を決めて、これはこの用途にしか使わないから余計なものは付けないという割り切り、決心が必要です。
フリーランニングから始めて、そこから最低限必要なものを足していくのもよいでしょう。
Z80だけを動かしてみます。ブレッドボードに差し込む。
+5V、GNDをつなぐ。
CLKをつなぐ。
INT, NMI, WAIT, BUSREQ, は使わないので+5Vにつなぐ。
出力ピンとなるアドレス(A0-15)と、HALT,MREQ,IORQ,RD,WR,BUSACK,M1,RFSHは開放でOK。
データバス(D0-7)は出力になる事もあるから、壊さないようにとりあえず1KΩの抵抗を通してGNDにつなぐ。これはNOP(00h)を入力することになります。
あとはRESETで、とりあえず簡易的なリセット回路で良いので、よくみかけるあれをつないでおきます。(抵抗、コンデンサ、ダイオード)
アドレスピンのどれかにLEDをつなぎます。A14か15あたりなら点滅が見やすいかもしれません。
さあ、あとは電源をつなぐだけ。
アドレスの変化を目で見ることができるでしょう。
基本的には、このままの回路でいいやとなります。
割り込み使わないからINTとNMIは+5V直結
WAITも使わない、DMAはリセットだけにするからBUSREQも使わない。+5V直結
シンプルZ80マイコン(5)
2025.09.12
DMAについて
この場合のDMAは、我々がトグルスイッチ等から(アドレス、データ指定して)RAMに書き込んだり、逆にアドレスを指定してRAMから読み出してLED表示するといった、手動の操作をさします。
RESETをL固定にした場合と、BUSRQをLにした場合では信号の変化に違いがあります。
(RESET)
アドレスバス: ハイインピーダンス
データバス: ハイインピーダンス
MREQ: H
IORQ: H
RD: H
WR: H
(BUSRQ)
アドレスバス: ハイインピーダンス
データバス: ハイインピーダンス
MREQ: ハイインピーダンス
IORQ: ハイインピーダンス
RD: ハイインピーダンス
WR: ハイインピーダンス
ハイインピーダンスというのはLでもHでもない開放状態になるので、もし何かのICが接続されていて入力が不定になると困る場合、プルアップかプルダウン抵抗を追加しなければなりません。
BUSRQの場合、Z80が自分以外にバスを明け渡しています。RD,WRも自由に操作してくれという感じですね。
一方、RESET中のMREQ等はHレベルで、完全に明け渡したのではありません。
RESETの場合、MREQ等についてはプルアップ抵抗不要で済むわけです。
RESET=LでZ80のアドレス、データバスがハイインピーダンスになっても、すぐにDMA回路がドライブするから、これらは不定になりません。
この場合のDMAは、我々がトグルスイッチ等から(アドレス、データ指定して)RAMに書き込んだり、逆にアドレスを指定してRAMから読み出してLED表示するといった、手動の操作をさします。
RESETをL固定にした場合と、BUSRQをLにした場合では信号の変化に違いがあります。
(RESET)
アドレスバス: ハイインピーダンス
データバス: ハイインピーダンス
MREQ: H
IORQ: H
RD: H
WR: H
(BUSRQ)
アドレスバス: ハイインピーダンス
データバス: ハイインピーダンス
MREQ: ハイインピーダンス
IORQ: ハイインピーダンス
RD: ハイインピーダンス
WR: ハイインピーダンス
ハイインピーダンスというのはLでもHでもない開放状態になるので、もし何かのICが接続されていて入力が不定になると困る場合、プルアップかプルダウン抵抗を追加しなければなりません。
BUSRQの場合、Z80が自分以外にバスを明け渡しています。RD,WRも自由に操作してくれという感じですね。
一方、RESET中のMREQ等はHレベルで、完全に明け渡したのではありません。
RESETの場合、MREQ等についてはプルアップ抵抗不要で済むわけです。
RESET=LでZ80のアドレス、データバスがハイインピーダンスになっても、すぐにDMA回路がドライブするから、これらは不定になりません。
2025.09.12 10:00
|
