GR-KAEDE XBEE

GR-KAEDEにXBEE通信を付加しました。カメラは付ける予定が無いので、純正のアドオンボードでなく、よりシンプルな、SparkFunのXBEE Shieldを採用しました。
https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4LKE https://www.sparkfun.com/products/12847
JpegJpeg
シールドのスイッチはSCI7を使うので標準のUART側となります。DLINE側は、D2、D3につながるので使えません。 ボーレートは、いつもの115200bpsを使用しました。PC側もいつものXStick ZBです。
https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4JYA
http://www.digi.com/products/xbee-rf-solutions/modems/xstick

RSKのサンプルのボーレートは、19200bpsです。変更が必要です。RSKのサンプルは、SEMRのABCS=1、BGDM=0です。ABCS=0、BGDM=0の時とは、BRRの設定値の計算が異なるので注意が必要です。
Jpeg

19200bpsでは、BRRは0xC2Uでした。115200bpsでは、BRRを0x1FUに設定しました。 PL2303HX内蔵USBシリアル変換ケーブルと同じようにXBeeで通信が出来ました。これでデバッグがしやすくなります。

GR-KAEDE UART7

まず、GR-KAEDEでシリアル通信が出きるようにします。 SCI7がJ14に出ているのでこれを利用します。 通信確認には以下のケーブルを利用しました。 PL2303HX内蔵USBシリアル変換ケーブル http://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4HJ7 シリアル通信は、RX64M RSKのサンプルソフトを利用しました。RSKのサンプルは、RXC用なので、KPIT GNU GCCでは、そのまま利用できません。GCCのプロジェクトにソースのみ流用させてもらいました。
Jpeg

また、GR-KAEDEとRSKには外部クロックに違いがあります。RSKは、24MHzですが、GR-KAEDEは、12MHzです。GR-KAEDEのサポートするシステムクロックは、96MHzですが、RX64M自体は、120MHzです。RSKのタイマナなどのカウント数の調整が面倒なので120MHzのシステムクロックで運用します。入力12MzをPLLで20逓倍して240MHzにします。PLLの出力の1/2の120MHzをシステムクロックに、周辺回路のクロックであるPCLKBは、1/4して60MHzに設定しました。これでRSKとクロックが同じになったので、ボーレートなどのクロック関係の設定がそのまま使用できます。 RSKのAsync SerialのサンプルもSCI7を使用していて同じピンを使用しているので、ソースは、そのまま利用できます。 割り込みハンドラ名の調整は必要です。レジスタの設定関係は、RX63Nとほぼ同じです。また、受信割り込みと送信レジスタが空いた割り込みは、RX63Nと同じですが、受信エラーと送信完了割り込みは、独立した割り込みベクターには、割り当てられて折らず、グループにまとめられています。ここにちょっと戸惑いました。

ターミナルソフトで通信が確認できました。
RX64UART7

ABCS 調歩同期基本クロックセレクトビット
(調歩同期式モードのみ有効)
1:基本クロック8サイクルの期間が1ビット期間の転送レートになります。

BGDM ボーレートジェネレータ倍速モードセレクトビット
(調歩同期式モードで、SCR.CKE[1]ビット=0のときのみ有効)
0:ボーレートジェネレータから通常の周波数のクロックを出力

19200bps    BRR  194   0xC2
38400bps    BRR    96   0x60
57600bps    BRR    48   0x30
115200bps  BRR    31   0x1F