フォト
2023年3月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
無料ブログはココログ

本 : My Favorite!

  • 磯田道史: 武士の家計簿

« 今日 Get した掘り出し物は ...黒XX | トップページ | 柴犬を連れて群馬県甘楽町へ行ってきました »

2016年3月 2日 (水)

「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命令を活用しました)

Img_0977s

配線作業も終わり、いよいよシリアル通信のテストプログラム
を作ってテストです。 テストプログラムの冒頭ではプログラム
が起動したしるしに、i8085 ⇒ 32bit マイコン ⇒ ターミナルソ
フト へ文字列を送出。 そしてその後、キー入力待ち ⇒ 入力
があったらエコーバック というのを3回繰り返す、という内容
です。

ところがいきなり異常発生! キーボードから1文字入力した
だけで、大量の文字数がエコーバックされます。 テストプログ
ラムの内容をちょこちょこ変えて調べてみたのですが、どうも
プログラムの走り方が怪しい。 少し暴走気味の感じ。 SRAM
へ転送したプログラムが何かのタイミングで書き換わる/壊れ
るのか?

そこで、SRAMへのライト信号をワッチすることにしました。

使ったのはコチラ。 お手製の "ロジックアナライザ"。

Img_0999s2

市販のものと比べるにはみすぼらしいくらいの性能ですが、
2chの信号を 250ns = 4MHz の分解能で監視できます。 監視
のスタートは、2chとは別の信号でトリガすることができます。
(この"ロジックアナライザ"の詳細は機会を改めてご紹介した
いと思います)

さて、その結果は?

勿体付けて申し訳ないのですが、ここからは さらに次回です。
(はたして次回でTiny BASICは走るのか?)

にほんブログ村 その他趣味ブログ アマチュア無線へ
にほんブログ村

« 今日 Get した掘り出し物は ...黒XX | トップページ | 柴犬を連れて群馬県甘楽町へ行ってきました »

工作」カテゴリの記事

コンピュータ」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: 「40年前のマイコンを作って動かす」 第七話 : 動作確認2:

« 今日 Get した掘り出し物は ...黒XX | トップページ | 柴犬を連れて群馬県甘楽町へ行ってきました »