「40年前のマイコンを作って動かす」 第七話 : 動作確認2
簡単なプログラムを i8085側へ転送して走らせるテストが動き、
32bit マイコン⇒ i8085へDMA転送ができることが確認できた
ので、続いて i8251通信エミュレートです。
実は、メモリ転送の検討をしている段階で、実際の i8251内で
の処理をそっくりそのまま 32bit マイコンでエミュレートさせる
のは大変だということが判明! そこで、できるだけ簡単な
やり方で i8085⇔ 32bit マイコン間で 1 byteデータを受け渡し
させ、ターミナルソフトとの間のシリアル通信 (実際はUSB仮想
シリアル) は32bit マイコンに元々備わっている機能をそのまま
使うことにしました。
i8085のデータバスと 32bit マイコンの8本の I/OピンをWired-
ORで直結しただけで 1 byteデータを双方向に転送できれば
話は簡単なのですが、残念ながらそうはなっていません。
送信・受信を別々にすると I/Oピンが16本も必要になっちゃう。
そこで、i8085が受信する側は、プログラム転送のためのDMA
転送機能を使って 1 byteだけ送ることに。 i8085が送信する側
ですが、32bit マイコンの I/Oピンには受信時のラッチ機能が
ないので、i8085のデータバスとの間に8bitラッチを追加。
第三話の記事にあったこの写真で2段重ねになっている74LS
373がこれです。 2段重ねにしたのは、ひとえに8本のデータ
バスと接続するのにハンダ付けが劇的に減らせるからです。
受信・送信とも、確実な転送のためにハンドシェークします。
( i8085特有のRIM・SIM命令を活用しました)
配線作業も終わり、いよいよシリアル通信のテストプログラム
を作ってテストです。 テストプログラムの冒頭ではプログラム
が起動したしるしに、i8085 ⇒ 32bit マイコン ⇒ ターミナルソ
フト へ文字列を送出。 そしてその後、キー入力待ち ⇒ 入力
があったらエコーバック というのを3回繰り返す、という内容
です。
ところがいきなり異常発生! キーボードから1文字入力した
だけで、大量の文字数がエコーバックされます。 テストプログ
ラムの内容をちょこちょこ変えて調べてみたのですが、どうも
プログラムの走り方が怪しい。 少し暴走気味の感じ。 SRAM
へ転送したプログラムが何かのタイミングで書き換わる/壊れ
るのか?
そこで、SRAMへのライト信号をワッチすることにしました。
使ったのはコチラ。 お手製の "ロジックアナライザ"。
市販のものと比べるにはみすぼらしいくらいの性能ですが、
2chの信号を 250ns = 4MHz の分解能で監視できます。 監視
のスタートは、2chとは別の信号でトリガすることができます。
(この"ロジックアナライザ"の詳細は機会を改めてご紹介した
いと思います)
さて、その結果は?
勿体付けて申し訳ないのですが、ここからは さらに次回です。
(はたして次回でTiny BASICは走るのか?)
« 今日 Get した掘り出し物は ...黒XX | トップページ | 柴犬を連れて群馬県甘楽町へ行ってきました »
「工作」カテゴリの記事
「コンピュータ」カテゴリの記事
- "Turbo HAMLOG"のデータを i Phone で活用する!(2017.08.16)
- 「40年前のマイコンを作って動かす」 第八話 : 動作確認3(2016.03.04)
- 祝 30万アクセス! - お気に入りの写真セレクト(2016.02.26)
- 「40年前のマイコンを作って動かす」 第七話 : 動作確認2(2016.03.02)
コメント