Interface誌付録RX62Nマイコン基板

平成24年2月7日

ルネサスエレクトロニクスから、RX600シリーズという新しいCPUのファミリがラインナップされました。

RX600シリーズの中でも、RX62Nというファミリの144ピンと176ピンがバウンダリスキャンに対応しています。バウンダリスキャンというのはJTAGを使ってI/Oピンの状態を見るための技術です。つまり、I/Oが入力か出力か、HレベルかLレベルか、というのをJTAGを使って調べることができます。

 

ここでは、RX62Nの評価ボードとして、Interface誌の付録基板で実験することにします。

RX62Nの144ピンはバウンダリスキャンに対応している

Interface誌の付録基板FRK-RX62Nは144ピンデバイスなので、バウンダリスキャンが可能です。

バウンダリスキャンを行うためには、FRK-RX62Nのボードにいくつかの修正が必要です。

① JTAGコネクタの接続

CN4に14ピンのピンヘッダを立て、JTAG信号をつなぎます。つなぎ方は以下のとおりです。

1-TCK   2-GND

3-TRST  4-EMLE

5-TDO   6-NC

7-NC    8-VREF

9-TMS   10-NC

11-TDI    12-NC

13-nRES  14-NC

(EMLEとnRESはつなぐ必要はありません。TRSTはHレベルになるようにVCCへプルアップしてください。)

 

② ジャンパのカット

基板裏面のJP7をカットします。JP7はBSCANPという信号(バウンダリスキャンを有効にする)をプルダウンするジャンパで、これをカットするとBSCANPがHレベルになってバウンダリスキャンができるようになります。

ついでにJP5もカットします。これによってEMLE(エミュレータイネーブル)という信号が有効になって、JTAG デバッグが可能になります。[EMLEの解説はこちら]

 

RX62Nの144ピンデバイスはどのように見えるのか?

Interface誌88ページに書かれているLEDチカチカをダウンロードして実行させたときの、MITOUJTAGの画面のイメージをみてみましょう。アニメーションGIFでその様子を表現しました。

 

 

図の左下のほうにあるピンに注目してください! 1秒周期でゆっくりと変化しています。

 

上の図で言うと、塗りつぶされている端子が出力、網掛けで表示されている端子が入力、ピンク色の端子がHレベル、水色の端子がLレベルです。

この基板ではLEDにはCPUの42番ピンがつながっていて(上の図で下の段、左のほう)、それが1秒周期でトグルしているのが見えます。

 

このように、RX62Nの端子の動作状況が一目でわかります。デフォルトのLEDチカチカを実行させたときの42番ピンのLED端子のH/Lが変化するたびに、画面上の表示もチカチカと変わるのが確認できました。

もう少し激しく動く信号がみたい

デフォルトのサンプルコードではLEDがゆっくり点滅するだけなので、面白くありません。そこで、サンプルプログラムのmain関数を以下のように変えてみました。

void main(void)
{
unsigned long i=0;
PORT1.DDR.BIT.B5 = 1; // P15 is Output
MSTP( CMT0 ) = 0; // Wakeup CMT0,CMT1
CMT0.CMCOR = 48000000/512/2 - 1;// CMCOR is 500ms Count
CMT0.CMCR.WORD = 0x0043; // CMIE is Enable,CKS is PCLK/512
IEN( CMT0, CMI0 ) = 1; // CMI0 Enable
IPR( CMT0, CMI0 ) = 1; // CMI0 Interrupt Level is 1
set_psw( 0x00010000 ); // Set I=1, IPL=0 of PSW
CMT.CMSTR0.BIT.STR0 = 1; // Start CMT0

PORTA.DDR.BYTE = 0xff; // IOポートA、B、D、Eを出力
PORTB.DDR.BYTE = 0xff;
PORTD.DDR.BYTE = 0xff;
PORTE.DDR.BYTE = 0xff;
while( 1 ) {
PORTA.DR.BYTE = i & 0xff; // データ出力
PORTB.DR.BYTE = (i >> 8) & 0xff;
PORTD.DR.BYTE = (i >> 16) & 0xff;
PORTE.DR.BYTE = (i >> 24) & 0xff;
i++;
} // Wait Instruction
}

 

こうすると、いろいろな端子が激しく動いているのが見えます。

 

 

波形として見る

MITOUJTAGでは、バウンダリスキャンの結果を時系列にキャプチャして「波形として」みることもできます。

マイコン上で走っているプログラムが作り出す波形が、リアルタイムにパソコンの画面上で見えるって、
すばらしいことではないでしょうか?

 

 

制御信号も見える

鋭い方なら気が付いたかもしれませんが、上の波形ではMD1とMD0という信号も見えています。I/Oポートだけではなく、モードピンや制御ピンも見えてしまうのが、バウンダリスキャンの面白いところです。

バウンダリスキャンに完全対応したマイコンが、付録基板についてきたのは、とても喜ばしいことです。

 

RX62Nの面白い特徴

最後に、RX62Nの面白い特徴として、EMLE信号について説明します。

EMLE信号はエミュレータイネーブルの意味で、この信号をHにすると、JTAG ICE(デバッガ)が使えるようになるというものです。実は、RX62NはEMLE信号がHのときとLのときで、JTAG IDCODEが変わります。

また、この信号がHだとバウンダリスキャンはできなくなります。つまり、デバッガとバウンダリスキャンは排他的なのです。

 

EMLEがLのときにMITOUJTAGで自動認識させると、IDCODE=080BB447のデバイスが検出されます。これはRX62Nのバウンダリスキャン用の正しいIDCODEです。

 

一方、EMLEがHのときにMITOUJTAGで自動認識させると、IDCODE=0D002447のデバイスとして検出されます。

 

EMLE=L、BSCANP=Hにすると、バウンダリスキャンができるモードになります。

なお、MITOUJTAGではこれらのIDCODEを自動的に識別しているため、ユーザは悩む必要はありません。