CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

PPIテスト(3)

CR時定数でダラダラ下がるリセット信号をそのまま8031と8255に同時に与えちゃったのが失敗でした
 
8031(正しくはN80C31BH)も8255(P8255A-5)もデータシート上は入出力TTLコンパチとはなっていますが、CMOSとNMOSでプロセスも違うのだから入力ピンの閾値も微妙に違うといえます。
8031がリセット解除されて先頭で8255の初期化処理を始めた時、8255はそのリセット電圧ではリセット状態から復旧できずに初期化処理が全く効いていなかった、ということだと思います.。
 
正しくはCRの後にシュミットトリガかリセットICを置いてロジックレベルに整形してから各ICに分配すべきでしたがこれはもうどうしようもありません。
 
リセット信号が充分低下して8255のリセット状態が解除しているであろう時間まで8255の初期化はしないようにコードの先頭で無駄ループを挿入しました。
 
イメージ 3
 
百msオーダのソフトタイマは結構大変。NOPを256×256回実行させてようやく200ms程度の待ち時間を作ることができました。
そこから8255への書き込みを始めています(8255/WR ch2)

 

イメージ 1

 

今度は成功しました。
出力設定後にインクリメントデータをPAに出力することでPA0ピンがトグルしています
 
イメージ 2