3) Z80マイコンと、8251Aでの、RS232C通信回路・簡単なソフトの紹介

 最近、自作の8251A搭載のシリアルI/Oボードの動作検証を行いました。当初は手持ちの部品の寄せ集めで制作していたこともあって、接触不良の不具合が多発しました。また、オシロスコープも無かったのでしんどい思いをしていました。後に、安価なLCDタイプの小さなオシロスコープ(DSO138mini)を買ったのですが、波形が安定しません。二重三重に表示されます。また、グランドが浮いているようにも見え、しっくりきませんでした。(ここまで原因判らず)仕方なくプロ仕様のオシロスコープ(ど新品)を買うことに。届いてしばらくして一つ目の原因が判明。使用していたピンソケットの接触不良でした。一先ず、PCからの送信信号(キャラクタコード)が当たり前に8251Aに入っていることが確認できました。次に8251Aのボーレートを決めるにあたり、CPUボードのクロック4MHzをバイナリーカウンタで2MHzとしたのですがここで不可解なことが。波形が歪になるのです。グランドが浮いているようにも見えました。色々考えて、先ず、今使っているオシロスコープの電源はどうなっているのかと思って(当然ですが、私の自宅で使用しているので部屋のコンセントは2極タイプ)調べました。オシロスコープには3極プラグコードが付いていましたが、私が変換プラグで2極にしていました。「取りあえずは、アースをしっかり取ろう」と考え、洗濯機用の3極コンセントから電源ケーブルを敷設してその先にオシロスコープ用の3極コンセントを付けました。既設のアース線もしっかり留めてあることを確認して、再度オシロスコープの電源を入れて、波形を観測します。が、変化無し。「この建物(借家)のアース工事、間違いないのかな???」疑問が湧きます。それからしばらくは原因つかめず。そんなある日、部屋で使っている電気を一つずつ切ってみようと思って、これを実行しました。電気ポット、Wifi、と確認しながら切ります。電気ポットを切った時に、僅かに良くなりました。最後に、天井の照明。奇麗になりました。原因は天井の照明に使われているインバータでした。この日以来、検証中は天井の照明を消して行うようにしました。それからは、順調に検証が進み。最終的にPCから送信したキャラクタコードをエコーバックで受信することができるようになりました。(^^;

 最近は8251Aの資料をWEBで見つけるのも大変です。Youtubeでは外国の方が動画を配信しておられますが、日本の方は見ません。私の場合、若い頃よりマイコンに興味があって、それなりの本や資料があったことから、何とか通信にこぎつけました。それでも資料の中には間違いもあったりで、一筋縄とはなりませんでした。私が今回行った通信はRS232Cの非同期通信になります。最近はUSB接続のRS232C非同期通信やI2C通信等あるようです。取りあえずUSBのRS232C非同期通信まで頑張ろうと思ってます。

以下、実際に制作した通信回路になります。ボーレートの設定を、インバータとC・Rで作っていますが、ご愛敬です。自分が理解できればOKです。本来は、チップで分周するのが基本です。

 次に、実際に作ったソフトを紹介します。(見づらいかも)(^^;

一文字送信 一文字受信
エコーバックテスト

 色々ありましたが、何とか送受信可能なところまで出来ました。やれやれ!!(^^;

 もし、ソフトが見づらいようでしたら、今度、EXSELか何かで記述して、入れ替えます。(^^;

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA