« Cosmo-Z Type Cの出荷開始 | トップページ | Cosmo-KのDDR3メモリの配線を改良した »

2017.01.21

GR-PEACHのJTAGを使ってみた

あるお客様からRZ/A1HのR7S721000VCBGというCPUでJTAGバウンダリスキャンができないか、というお問い合わせをいただいたので、試してみることにしました。

RZというのはARMのコアが乗ったルネサスのCPUで、R7S721000の評価ボードというと、GR-PEACHというのが出てきました。GR・・!?

秋月で売っているようなので、買ってみました。

Grp_1

そして、回路図を見ながらJTAGの配線を引き出します。

JTAGの信号は、下のようにCN2に出ているのですが、この回路図上のCN2のピン配置は基板を裏から見た順序になっているので注意が必要です。

Jtag_circuit_2

基板の表面から見たピン配置は下の図のようになります。

TRST ● GND
TDI  ○● GND
TDO 
● GND
TCK 
● GND
TMS 
 VCC(3.3V)

さて、ルネサスのR*系のCPUのJTAG機能はバウンダリスキャンとICE(エミュレータ)が共用されています。BSCANPという端子があって、BSCANPがLのときにはICEになって、BSCANPがHの場合にバウンダリスキャンになります。

GR-PEACHの回路図を見ると、BSCANPは22kΩの抵抗でGNDに接続されています。

Bscanp

プルダウン抵抗があってよかった。

このプルダウン抵抗がなくてBSCANPがGNDに直結されてしまっていたりすると、何もできないので、本当にこの抵抗があってよかったです。

ただ、R108がどこにあるかを探すのが大変です。この基板にはシルクがないだけでなく、仕様書に記載されている部品番号は文字が潰れて読めないからです。

R108とBSCANPの信号は、ここにありました。

R108

このBSCANPも含めて配線を引き出しました。

Grpeach_jtag

そして、MITOUJTAG(今回はLight)を起動して、自動認識させます。

おおっ! ARMのCortex-A9か何かが認識されました。このRZも例外ではなく、BSCANPがLの場合にはARMのCortex-A9として認識されてしまいます。

Detect_arm

次に、BSCANPをHにして、リセットをかけてから再度認識させてみます。

すると、何か不明なデバイスが認識されました。IDCODEを見てみると、08178447となっています。

Detect_unknown

これがRZなのですが、MITOUJTAGのデフォルトのデータベースには登録されていないようです。

そこで、ルネサスのWebサイトからRZのBSDLファイルをダウンロードします。

ダウンロードしたBSDLファイルをドラッグアンドドロップでMITOUJTAGの画面に落とします。

Dnd

すると、このBSDLファイルが登録されて、端子の形が表示されます。

Detected1

BSDLファイルの登録は最初の1回だけ行えばよく、二回目からは自動認識できるようになります。

Detect_rz

そうしたら、端子の可視化も自由自在です。

Sample_2

Detected

デフォルトで動いているLEDチカチカ(7色のグラデーション)をさせているときの、LEDの端子の様子を波形で見てみました。

途中、何度かリセットスイッチを押していますが、リセット中にはLEDの端子が入力状態に切り替わっているのも見えます。

Grpeach_logana_2

sun

端子を見るだけではつまらないので、EXTESTをしてみましょう。

Extest_3
メニューバーの「端子操作」ボタンを押します。

すると、CPUの動作が停止するので、

例えば、H2を押して、ポップアップが出たら「自動トグル出力」を選びます。


Toggle

すると、H2端子から自動的にHLHLHL・・・のパルスが出るので、LEDがチカチカ光ります。

これはプログラムを書きこんで操作しているのではなく、端子の状態だけをJTAGバウンダリスキャンで操作しています。なので、JTAG-ICEとは根本的に動作原理が異なります。

sun

GR-PEACHを使っていて気になったのは、JTAGのTRST信号がデフォルトではコネクタに出ていないことです。TRSTはR29の抵抗を介して端子に出ているのですが、回路図を見るとシステムのリセット(nRZRST)にもつながっています。TRSTはJTAGのリセットなので、本来ならばシステムのリセットと一緒にすべきではありません。TRSTとRESは分けるのが正解です。

Trst


このR29はどこにあるか探したら、はここにありました。

R29

私はこれをジャンパしましたが、TRSTとシステムのリセットがつながってしまうので、つなぐべきかどうかは一概には言えません。これだとリセット時の動作の振る舞いのデバッグができなくなります。

|

« Cosmo-Z Type Cの出荷開始 | トップページ | Cosmo-KのDDR3メモリの配線を改良した »

コメント

TRSTとCPUリセットの件は勉強になりました。
#確かにGR-SAKURAは別にされてますね。
いろいろ参考になりました。
これから、少しずつですがJTAGについて勉強していこうと思います。

投稿: naka0818 | 2017.01.29 22:59

コメントを書く



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




« Cosmo-Z Type Cの出荷開始 | トップページ | Cosmo-KのDDR3メモリの配線を改良した »