Arduino 等を使用しているとシリアルのボーレートがズレているという事はありませんが、INS8060の様にポートを使用したシリアルの場合や、使用する水晶が無く他の水晶を使用する場合ボーレート設定が規定の値ではなく異なった値に変更する場合があります。
例としてはINS8060ボードは1200bps設定ですが実ボードで文字化けが起こります。そんな場合はTeraTERMのボーレート設定を1210bps、1190bps等に変更して文字化けが発生しないボーレート探して安定したボーレートに設定します。
SBCZ8 Rev03の時は、7.3MHz水晶指定の所、手持ちに無かったので12MHzを水晶を使用して9600bpsところを15.7kpbsに変更して動作確認を実施しました。
今回は、Windows10の環境でDsub9ピンのRS-232Cインタフェースで接続する必要がありこんなケーブルを使用しました。使用しているチップは PL2303 です。
UGREEN USB シリアル変換ケーブル RS232 USB 9ピン
今回は、9600bpsの8倍に設定したかったのでTeraTERMのボーレート設定を76.8Kbpsに設定して通信をしました。簡易的な通信確認ですのでキーボード入力したキーのアスキーコードを送受信します。
例)キーボードから1を入力
31 が期待値です
実際は
00FE が帰ってきました
なんで???
結論はPL2303は76.8Kbpsと設定した場合には、56.8Kbpsに設定されていました。その上は115.2Kbpsという事で選択画面に無い値には設定できなかった様です。
という事で ”USBシリアル ボーレート” で検索した所 秋山製作所 さんの”各種USB-シリアル変換ケーブルで動作する通信速度…”にUSBシリアルチップでの動作実験結果をまとめたドキュメントがありました。参考になりますので一度見ていただくと良いと思います。
この結果ではPL2303を使用したのがダメでいつものようにFT232やCH340を使用すれば今回の問題は発生しませんでした。
逆に考えれば、PL2303を使用したおかげでUSBシリアルのボーレート設定に対する知識が少し増えました。
秋山製作所 さんは シュアウェア で RS-232C Monitor and Analyzer を作られています。今回参考にさせて頂いたドキュメントなどよりまた使用させていただきたいと思いました。
【参考リンク】
下記のwebサイトを参考にさせて頂きました。