2025年10月18日土曜日

FM-7/77用RS-232CカードにRTCモジュールを追加して一枚のカードに

 FM-7/77用RS-232CカードにRTCモジュールを追加して一枚にしました

以前、FM-7/77用のRS-232Cカードを製作しました。
「FM-7/77用のRS232Cカードを作りました 2019年8月16日」
(https://flexonsbd.blogspot.com/2019/08/fm-777rs232c.html)

より使いやすくなるように、何回か修正を加えて最終的に下記のような形で使用してきました。
「FM-7/77用の自作基板(RS232Cカード、FT245通信カード、1024KB拡張RAMカード)のプチ改良 2024年3月25日」
(https://flexonsbd.blogspot.com/2024/03/fm-777rs232cft2451024kbram.html)

しかし、FM-7/77の32Pスロットは数少ないので、自作した32Pスロット拡張基板を用いても窮屈になってきました。

ということで、とりあえずRS-232CカードにRTC_SDカード中のRTC機能を追加して一枚にまとめてみることにしました。(F-Basicではともかく、Flex9やOS-9ではRTC機能は必須です)


製作の方針

COM部の入出力ですがシリアルコネクタは使いにくいので、今はTTL_USB変換ケーブルを使用することにしています。

また、RTC機能はZS-042というモジュールを使用し、そのコントロールにはPIA(68B21)のポートAを使用しています。スペース的には40ピンICを使用するのは非常に不利なのですが、PIAのポートAの特別な機能(出力に設定したままで入力も可能)がアセンブラでI2C機能を使用するのに最適ですので、そのまま使用することにしました。(回路を変更するとI2Cのプログラムを書き換えるのがかなりの手間になりそうなので、、、)

そのために全ICがそのままでは収まらなくなり、やむを得ず6個のゲートICをGAL20V8Bに置き換えることで何とか10x8cmのサイズに収めることができました。

(40ピンのICのわずか2ビットしか使わないのはいかにも勿体ないので、必要ならポートBが他の用途に使用できるようにピンヘッダを付けましたが、、、)


製作したカード

以上より、下記のようなRTC_COM8251Aカードが出来上りました。


製作したRTC_COM8251Aカード

本体に装着しました

本体スロットに装着した様子



回路図を示します(GALのプログラムは省略しました)

RTC_COM8251A

機能の確認

通信テストに使用したプログラム(F-BASIC文法書掲載のもの)


サンプルプログラム

通信の様子(FM-7側)

実行の様子(FM-7側)

通信の様子(Windows  TeraTerm側)

実行の様子(TeraTerm側)

RTCモジュール機能を下記に示します。


RTC機能の確認

起動直後のF-Basicでは日付・時刻が不定です。

RTC_WR2で時刻を設定します。RTCモジュールに設定されると同時にF-Basicのタイマー関係のバッファにもセットされます。

PRINT文で確認できています。

また、RTCモジュールの設定値をRTC_RD2で読み出し、RTC_SET2でF-Basicのバッファに転送できます。


最後に

製作直後は8251Aによる通信機能が全く反応せず、焦りましたが、TeraTermの改行コードの設定をデフォルト値のCRからAUTOやCR+LFに変更することで正常に通信ができました。(最初にRS232Cカードを製作した時に必要だった設定を忘れてしまっていました。。。)

通信速度ですが、純正のRS232Cカードでは19200baudまでとなっていますが、インテルやOKIの8251Aでは38400baudまで可能です。

また、RTCモジュールのコントロールソフト(RTC_WR2, RTC_RD2, RTC_SET2)ですが、FM-11用のものがそのまま使用できます。




0 件のコメント:

コメントを投稿