[Mindstorms]nxtserial 19200bps

nxtSerialの通信速度を9600bps→19200bpsに上げるための改造方法です。

ソフトウェアでの修正だけでは処理が間に合わず、データ化けが頻発してしまいますので、CPUの動作速度を上げることで対策してみます。

赤色で表した部分が改造する部分です。

(改造点)

・CPUクロックを内部発振8MHz→外部発振12MHzに変更します。処理速度が間に合うようにします。

・SCL/SDAの接続ポートをPB4/PB5→PA4/PA5に変更します。

・ファームウェアを改造します。ソフトウェア制御でI2C通信を行っていますので、DEFINEを書き換えるだけでポートの割り振りを変更できます。

・ヒューズビットを外部発振に変更します。

▲モジュラージャックの端子とR1とR2につながっている基板上のパターン2か所を切断します。

ドリルを使って削りました。

発振子を付けるためコネクタのプラスチック部分も削っています。

▲端子PB4とPB5に12MHzの発振子を取り付けます。

端子PA4とPA5を100kΩの抵抗でプルアップします。

▲写真のようにジャンパ線を接続します。

発振子に22pFのセラミックコンデンサを取り付けます。ここでは、基板の裏側に取り付けました。

最後にファームウェアを書き換えたら完成です。

▲動作中の様子です。

パソコンと接続しています。

▲インテリジェントブロックNXTでエコーバック(sio_echoback.nxc)を実行中の様子です。

受信した内容が液晶画面に表示されます。

▲パソコン側の様子です。「Tera Term」を実行しています。

ボーレートを19200bpsに設定します。

キーボードを押すと、押したキーがエコーバックされます。

改造ファームウェア

AVR Studio 4 + WinAVR用