carcon999のブログ

12年間Y!ブログの記載を移行しました。電子工作関連の記事が多いです。

SH-2AのUARTの通信速度設定について

Interface付録基板のSH-2Aには、FIFO内蔵シリアルコミュニケーションインタフェースがあり、上手く設定さえすれば、UARTでシリアル通信が行えます。PCへのデータ転送などが手軽に行えます。マイコンでシリアル通信を行う場合に、面倒なのが通信速度の設定をマニュアルを読みながら計算して与えなければなりません。まあ、当たり前といえば当たり前ですが、結構めんどうです。

今回、Interface6月号の付録基板に実装されているクロックをそのまま利用することを前提に、通信速度の設定を計算してみました。多分詳しいシリアルの使用方法は、来月号にでも掲載されるのであろうから、細かい方法は省きます。

一般的?に使われる(私が良く利用する)シリアルの通信速度19200, 38400, 57600, 115200, 230400bpsで、誤差が少ない設定値をどうすれば良いか?Excelで計算してみました。

イメージ 1

結論として、『ボーレートジェネレータ倍速モード(SCEMRのBGDM=1)』として、『ビットレートの8倍の基本クロックで動作』(上記で色付き)の設定(具体的には、SCEMRに0x0081を書き込む)し、ビットレートレジスタには、目的とする速度の値(上記で、155~12の値)を設定すれば少ない誤差(上記の場合0.16%誤差)で通信できます。計算してみたら分かりました。つなみに、TeraTermでPCと通信させたらそれぞれの速度で通信できました。もし、通信速度のレジスタ設定で悩んだら参考にしてください。

また、私がUARTの設定でよくやる失敗は、UARTのコントロール設定は上手く行えていても、TxとRxの出力、入力のI/O設定を忘れて通信できないパターンです。(今回もやりました。)