PC-G850V UART I/Oポート
PC-G850V UART I/O Port

戻る

1.はじめに

PC-G850VのUARTのI/OポートはPC-G850やPC-G850Sとは異なっています. この資料はPC-G850VのUARTについて記述したものです. 独自に解析したもののため正確ではないかもしれません.

2.アドレスと機能

アドレス 入出力 説明 補足
60H 出力 11Pin I/Fの動作
PC-G850と同じ.
-
63H 入力/出力 UARTのフロー制御レジスタ
PC-G850と同じ.
-
6CH - 無効? PC-G850ではUARTモードレジスタ.
6DH - 無効? PC-G850ではUARTコマンドレジスタ.
6EH - 無効? PC-G850ではUARTステータスレジスタ.
6FH - 無効? PC-G850ではUART送受信レジスタ.
70H 出力

UARTモードレジスタ

b7:0 b6:0 b5:0 b4~b3:割り込み b2~b0:ボーレート

ボーレート
0 0 0: 300baud
0 0 1: 600baud
0 1 0: 1200baud
0 1 1: 2400baud
1 0 0: 4800baud
1 0 1: 9600baud
1 1 0: N/A
1 1 1: N/A

割り込み
0 0: 割り込み不可
0 1: 受信割り込み許可
1 0: 送信割り込み許可
1 1: N/A

PC-G850の6CHに相当する.
71H 出力

UARTモードレジスタ

b7:0 b6:1 b5~b4:パリティ b3~b2:データビット長 b1:1 b0:0

データビット長
0 0: 小文字に変換?
0 1: 大文字に変換?
1 0: 7bit
1 1: 8bit

パリティ
0 0: パリティなし
0 1: 偶数パリティ
1 0: 奇数パリティ
1 1: N/A

PC-G850の6CHに相当する.
71H 出力

UARTコマンドレジスタ

b7:0 b6:ソフトウェアリセット b5:0 b4:エラーフラグクリア b3:0 b2:受信イネーブル b1:0 b0:送信イネーブル

送信イネーブル
0:送信停止
1:送信可能

受信イネーブル
0:受信停止
1:受信可能

エラーフラグクリア
0:エラーを保持
1:エラーをクリア

ソフトウェアリセット
0:通常時
1:SIOをリセット

PC-G850の6DHに相当する.
71H 入力

UARTステータスレジスタ

b7:0 b6:0 b5:フレーミングエラー b4:受信オーバーライトエラー b3:パリティエラー b2:送信データエンプティ? b1:受信データレディ b0:送信データエンプティ?

送信データエンプティ?
0:送信中?
1:送信待ち?

受信データレディ
0:受信待ちデータなし
1:受信待ちデータあり

パリティエラー
0:エラーなし
1:エラーあり

受信オーバーライトエラー
0:エラーなし
1:エラーあり

フレーミングエラー
0:エラーなし
1:エラーあり

PC-G850の6EHに相当する.
72H 入力/出力

UART送受信レジスタ

b7~b0:送受信データ

PC-G850の6FHに相当する.
73H 出力

UARTハードウェアリセット

b7~b1:0 b0:ハードウェアリセット

ハードウェアリセット
0:リセットしない
1:リセットする

1のままだと送受信できない.
0→1→0と出力すること.
74H 出力

UARTクロックイネーブル

b7~b1:0 b0:クロックイネーブル

UARTクロックイネーブル
0:無効
1:有効

詳細は不明だが1にしないと送受信できない.

3.サンプルプログラム

9600baud, 8bit, パリティなしで通信するサンプルです. ターミナルソフトと通信してみてください. (データ受信の間隔が短いと受信できません. 実用的なものを作るには機械語で書く必要があります.)

100 'PC-G850V UART TEST
110 OUT &H60,2 'UARTモード
120 OUT &H74,1 'クロックイネーブル
130 OUT &H73,0 '|
140 OUT &H73,1 '+ハードウェアリセット
150 OUT &H73,0 '|
160 OUT &H70,&HD '9600baud,受信割込可
170 OUT &H71,&H4E 'SIOリセット,パリティなし,8bit
180 OUT &H71,&H10 'エラークリア
190 OUT &H63,0 'フロークリア
200 OUT &H71,&H5 '送受信イネーブル
210 OUT &H63,&H14 'DR,RS ON
220 *LOOP
230 X= INP (&H71) 'ステータス獲得
240 IF (X AND &H02)<>0 GOTO *RECEIVE '受信あり?
250 IF (X AND &H04)<>0 GOTO *SEND '送信可?
260 GOTO *LOOP
270 *RECEIVE
280 X$= CHR$ ( INP (&H72)) 'データ受信
290 PRINT X$;
300 GOTO *LOOP
310 *SEND
320 X$= INKEY$
330 IF X$="" THEN GOTO *LOOP
340 OUT &H72, ASC (X$) 'データ送信
350 GOTO *LOOP
PC-G850V UART通信サンプル(コメントなし)

比較用PC-G850 UART通信サンプル
100 'PC-G850 UART TEST
110 OUT &H60,2 'UARTモード
120 OUT &H6D,&H80 'SIOリセット
130 OUT &H6D,&H40 'エラークリア
140 OUT &H63,0 'フロークリア
150 OUT &H6C,&H0D '9600baud,受信割込可,パリティなし
160 OUT &H6D,&H30 '送受信イネーブル
170 OUT &H63,&H14 'DR,RS ON
180 *LOOP
190 X= INP (&H6E)
200 IF (X AND &H10)<>0 THEN GOTO *RECEIVE '受信あり?
210 IF (X AND &H04)<>0 THEN GOTO *SEND '送信可?
220 GOTO *LOOP
230 *RECEIVE
240 X$= CHR$ ( INP (&H6F)) 'データ受信
250 PRINT X$;
260 GOTO *LOOP
270 *SEND
280 X$= INKEY$
290 IF X$="" THEN GOTO *LOOP
300 OUT &H6F, ASC (X$) 'データ送信
310 GOTO *LOOP
PC-G850 UART通信サンプル(コメントなし)

4.参考

次のページを参考にしました.
戻る [転載可・改変可]