E1 Emulator

書き込みを繰り返していたためGR-KAEDEのDIP SWがへたって来ました。
Jpeg
そこで、ちょうどほしいと思っていたE1エミュレーターを思い切って購入しました。
Jpeg
http://akizukidenshi.com/catalog/g/gM-06155/
書き込みだけでなくRX64Mのデバックができて大変快適な環境になりました。
Jpeg

・・・・。E2エミュレーターLliteが出ました。
RXとRL78で3.3V使用で、e2studio  しか使用していないのでショックです。
http://akizukidenshi.com/catalog/g/gM-10459/

GR-KAEDE RORTARY ENCODER

ロータリーエンコーダはGR-KURUMIで使用したものを使用しました。
2色LED付スイッチ付ロータリーエンコーダ(赤・緑)ツマミ付セット
http://akizukidenshi.com/catalog/g/gP-05771/
Jpeg
RX64Mのタイマには、位相計数モードがあり、ハードでエンコーダのカウントができます。GR-KURUMIは、ソフトでカウントしましたが、GR-KAEDEでは、16 ビットタイマパルスユニット(TPUa)の位相計数モードを使ってハードでカウントします。

90度位相ずれの2パルスで計数するのは、位相計数モード1と位相計数モード4があります。
入力パルスに対して、位相計数モード1は、4逓倍、位相計数モード4は、2逓倍にカウントされます。1クリック1カウントにするため、位相計数モード4を使用し、カウンタ値を半分にした値を取りました。

GR-KAEDE    ENCORDER
PC2     -  A相
PC3     -  B相

レジスタ設定
PC2とPC3を周辺回路として使用
PORTC.PMR.BIT.B2 = 1;   // Peripheral use
PORTC.PMR.BIT.B3 = 1;   // Peripheral use

PC2とPC3をエンコーダのパルス入力に設定
MPC.PC2PFS.BYTE = 0x03; // PC2=TCLKA
MPC.PC3PFS.BYTE = 0x03; // PC3=TCLKB

位相計数モードを4に設定。
TPU1.TMDR.BYTE = 0x07; // 位相計数モード4
Jpeg
val = TPU1.TCNT;
val /= 2;
カウンタ読むだけなのでとっても楽です。ソフト負荷を減らしたいときに使用したいと思います。

GR-KAEDE 16×2 LCD

表示器をつけてみようと思います。定番の16×2キャラクターディスプレイです。HD44780コンパチブル品なので既存のソフトから移植できます。
LCDは以下の物を使用しました。
超小型LCDキャラクタディスプレイモジュール(16×2行バックライト緑)
http://akizukidenshi.com/catalog/g/gP-01675/
5V電圧品ですが、3.3Vのマイコン出力で制御できます。マイコン側は、入力を使用する場合、5Vトレラント入力を使用する必要があります。今回は、書き込みのみしか使用しないので、読み書き信号のR/W信号は、書き込み側のLowに固定しました。IOピンを節約するために4ビットアクセスとしました。
GR-KAEDEのCN10をLCDの接続に使用しました。
CN10   LCD
P12 -  RS
P13 -  E1
P14 -  D4
P15 -  D5
P16 -  D6
P17 -  D7
Jpeg
なるべく早く書き込みがしたかったので、E1のパルス幅を調整しました。500μsec以下にすると表示できなくなりました。1msecで1文字程度表示できそうです。 Jpeg

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

GR-KAEDE LED BLINK

Jpeg
新しいガジェットルネサスのリファレンスボードGR-KAEDEを購入しました。 http://akizukidenshi.com/catalog/g/gM-09520/
Jpeg Jpeg
搭載マイコンはRX64M(R5F564MLCDFB 144pin QFP)です。RXv2コアを採用しています。 http://gadget.renesas.com/ja/product/kaede.html
Jpeg
ROM 4MB、RAM 512KB、データフラッシュ 64KBと大容量です。開発環境は、GR-SAKURA、GR-KURUMIと同様にe2StudioのIEDにKPIT GNU GCCのコンパイラを使用する予定です。 とりあえず、PC0、PC1、P02、P03と4個のLEDがあるのでこれを点滅させてみました。
Jpeg