IchigoJamのUARTシリアル制御に関する情報 IchigoJamで使用する改行コード  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ LF 0x0A(10) 但し、UART 3にてCR+LFに設定可能 BPS(ビットレート設定)命令  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ BPS 0 デフォルト。115.2kbpsに設定する。 BPS 300 ビットレートを300bpsに設定する。 BPS 9600 ビットレートを9600bpsに設定する。 BPS -1 ビットレートを57.6kbpsに設定する。(※Ver 1.1以降) BPS -2 ビットレートを38.4kbpsに設定する。(※Ver 1.1以降) 注意:「BPS 115200」を設定しても115.2kbpsにはならない。 注意:この設定はリセットで解除される。 動作確認済みビットレート設定 300 600 1200 4800 9600 14400 19200 特殊なビットレート(動作確認済み) 11520 23040 動作しないことが判明しているビットレート設定 110 34560 38400※ 57600※ ※BPS -1と-2は、それぞれ57600bpsと38400bpsに対応(Ver 1.1以降) UARTモード設定(1)シリアル出力制御  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ UART命令はシリアル通信の送信方法の切換えを行う命令です。 IchigoJam Ver 1.1では新たにカーソル操作などの画面制御コードが シリアルに出力されるようになりました。UART 1を実行することで、 従来のIchigoJam Ver 1.0と同様のシリアル出力に戻すことができます。 UART 0 IchigoJamからのすべてのUART送信OFF UART 1 PRINT命令(?命令)のみUART送信(画面制御出力なし) UART 2 UART画面制御コードを出力(画面制御コード出力) UART 3 PRINT命令(?命令)のみUART送信・改行コードCR+LF・バッファ有 LC 0,-1 テレビ画面への出力を行わずにUART送信する。 注意:この設定はリセットで解除される。 UART命令はIchigoJam BASIC Ver 1.1以降で使用可能。 便利な使い方 以下の命令で UART 1 を設定するとVer 1.0との互換性が保てる ifVer()>11006uart1 :'Ver 1.1 UART 1仕様 (11007~) 但し、β版の11001~11005では、UART 1が現UART 2に相当する UARTモード設定(2)シリアル入力制御・ESC無効モード  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ESC無効モードを設定すると、UARTからESCコードを受信した時にプロ グラムの停止を抑制することができる(停止できなくなる)。 UART 0,0 IchigoJamからのUART送信と受信の両方をOFF UART 1,1 UARTの送受信を有効に。ESCも有効。(通常) UART 1,2 UARTの送受信を有効に。ESCは無効。   UART 0,4 UARTからのCR入力をLRへ変換する(Ver 1.3候補機能) UARTの第二パラメータを0にするとシリアル入力(受信)がOFFになる UARTの第二パラメータを2にするとESC無効モードとなる。 セキュリティを高める効果: ネットワークに接続した場合に外部からBASICのダイレクトモードにて コマンドを実行される懸念があるが、ESC無効モードに設定することで BASICプログラム実行中に外部からプログラムを停止することが出来な くなる。但し、エラーを発生させて停止させたり、END命令や行番号末 にダイレクトモードなるので、プログラム側に考慮が必要。 注意:この設定はリセットで解除される。 UART命令はIchigoJam BASIC Ver 1.1以降で使用可能。 UART画面制御コード  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ CLS 19, 12 (0x13, 0x0C) SCROLL 左 21, 28 (0x15, 0x1C) SCROLL 右 21, 29 (0x15, 0x1D) SCROLL 上 21, 30 (0x15, 0x1E) SCROLL 下 21, 31 (0x15, 0x1F) LOCATE 21, 32+X,32+Y UART出力方法  ̄ ̄ ̄ ̄ ̄ ̄ PRINT命令(または?命令)で出力します。 起動メッセージ  ̄ ̄ ̄ ̄ ̄ ̄ ̄ IchigoJamの電源を投入した時やリセットした時に起動メッセージが 出力される。 但し、BTNピンをLにした状態で起動した場合は起動メッセージが 表示されない。(ファイル番号0のプログラムが自動起動する) UART入力方法  ̄ ̄ ̄ ̄ ̄ ̄ ・キーボードから入力された文字と同じように処理される。 ・プログラムではINKEY()関数で入力する。受信なし時は0。 K=INKEY() ・ESCコード(27 0x1B)を受けるとプログラムを停止する。 ・DLEコード(16 0x10)を受けると同じ行の文字を消す。 UARTからのBASICコマンド実行方法  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 以下のように送信するとIchigoJamの動作状態・画面の状態に 関わらずにBASICコマンドを実行することができる。 [ESC(27)]+[DLE(16)]+[BASIC命令] (例) 別のIchigoJamからプログラムを取得する ?CHR$(27,16);"LIST" (例) アナログポート2の値を取得する ?CHR$(27,16);"?ANA(2)" (例) プログラムを送信する ?CHR$(27,16);"NEW";CHR$(10);:WAIT30:?CHR$(16);:LIST ---------------------------------------------------------------- ライセンス・著作権表示 本資料を複製・改変・再配布する場合は著作権表示が必要です。 CC BY (C) 2015-2017 国野亘 (Wataru KUNINO) https://bokunimo.net/ichigojam/ ---------------------------------------------------------------- 参考文献 作成にあたり以下の情報を参照しました。 - http://ichigojam.net/IchigoJam.html CC BY http://ichigojam.net/ - Facebook IchigoJam-FANグループ https://www.facebook.com/groups/ichigojam/ - fu-sen/IchigoJam-BASIC https://github.com/fu-sen/IchigoJam-BASIC/blob/master/UART.txt