« インタフェース付録RX62N基板でJTAGバウンダリスキャンに成功! | トップページ | Spartan-6 PCI Expressボードの新リビジョン »

2011.03.27

Interface誌RX62Nのバウンダリスキャン

Interface誌付録のRX62N基板で、今日もバウンダリスキャンに励んでいます。
バウンダリスキャンとは何かということについては、昨日のブログで解説したとおりですので、今日は特殊電子回路㈱から発売されているMITOUJTAGというツールを使って、RXのピンの状態を調べる手順を解説します。

まず、この付録基板でバウンダリスキャンを行うには、以下の手順で設定を行います。

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

② 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へプルアップしてください。)

Pkjcq620n

これでMITOUJTAGを立ち上げて、自動認識させるのですが、ここでちょっと問題があります。
RX62NにはEMLEという信号があります。RX62Nの面白い特徴として、EMLE信号のH/LによってJTAG IDCODEが変わるようです。EMLEはJTAG ICE(デバッガ)を有効にするための信号で、この信号がHだとバウンダリスキャンはできなくなります。つまり、デバッガとバウンダリスキャンは排他使用なのです。

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

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

とにかく、EMLE=L、BSCANP=Hにすると、バウンダリスキャンができるようになります。正しくデバイスが認識されたら、サンプリングボタンを押せば、パソコンの画面上に端子の状態が可視化されます。

さて、次にInterface誌88ページに書かれているLEDチカチカをダウンロードして実行させたときの、MITOUJTAGの画面のイメージをみてみましょう。

アニメーションGIFでその様子を表現しました。
Rx62nsample

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

これだけでは面白くないので、サンプルプログラムの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
}

つまり、IOポートのA、B、D、Eに32bitの値を出力させるわけです。すると、
Rx62n_addr

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

時系列にキャプチャして波形にしてみることもできます。
Rx62nwaveform

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

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

なお、端子を見るだけであればMITOUJTAGでなくても「みえたジェイ」というより廉価なツール(\5000)を使っても可能です。

Interface誌の記事のサンプルプログラムがダウンロードできるようになったら、もっといろいろなプログラムでバウンダリスキャンをやってみたいと思います。

次回は、このRX62N付録基板で、拙作のJTAG ICEを動かしてみたいと思います。

|

« インタフェース付録RX62N基板でJTAGバウンダリスキャンに成功! | トップページ | Spartan-6 PCI Expressボードの新リビジョン »

コメント

コメントを書く



(ウェブ上には掲載しません)




« インタフェース付録RX62N基板でJTAGバウンダリスキャンに成功! | トップページ | Spartan-6 PCI Expressボードの新リビジョン »