ATmega328Pを使って、Z8001のバスをリセット後に奪えるのか確認してみます。
懲りずにブレッドボード上に回路を組んでみました。
CLOCK, *RESET, *BUSREQは328Pにつなぎ、割り込み、トラップなどはプルアップ、AD0-15はプルダウンして、常に0x0000を読み込むようにしてあります。
CLOCKは328PのPWMを使って作っています。データシートによると、Z8001の最低動作クロック周波数は500kHzのようですが、動作を確認しやすいようにもっと下げて20kHzにしてあります。
まずは、クロックを供給しながら、*RESETを L->H だけしてみました。これで、CPUにリセットがかかり、ADDB RH0, #0 がひたすら実行しているはずです。行儀のいい暴走といったところでしょうか。
オシロで、*AS と *DS を見てみます。
懲りずにブレッドボード上に回路を組んでみました。
CLOCK, *RESET, *BUSREQは328Pにつなぎ、割り込み、トラップなどはプルアップ、AD0-15はプルダウンして、常に0x0000を読み込むようにしてあります。
CLOCKは328PのPWMを使って作っています。データシートによると、Z8001の最低動作クロック周波数は500kHzのようですが、動作を確認しやすいようにもっと下げて20kHzにしてあります。
まずは、クロックを供給しながら、*RESETを L->H だけしてみました。これで、CPUにリセットがかかり、ADDB RH0, #0 がひたすら実行しているはずです。行儀のいい暴走といったところでしょうか。
オシロで、*AS と *DS を見てみます。
CH1(黄色)が*AS、CH2(青色)が*DSです。短めの*ASに続いて*DSが長めにLowになる動作を繰り返しているので、正常に動作しているようです。
次は、*BUSREQを確認してみます。
0 件のコメント:
コメントを投稿