LoginSignup
3
1

More than 3 years have passed since last update.

Tang nanoのJTAGを調査

Last updated at Posted at 2019-12-01

Tang nanoを入手したぞ

Tang nanoを手に入れたので、JTAGを調査します。
image.png

JTAGの端子

基板の裏側にTCK、TDI、TMS、TDOと書かれた端子があるので、ここにピンヘッダをはんだ付けし、フライリードケーブルを接続します。

JTAGの電源は何Vかわかりませんが、5Vではないと思われるので、Vbank0/3と書かれたところから電源を取ります。
image.png

SVFプレイヤーによる推測

MITOUJTAGで普通に自動認識させてみても見つからないので、SVFプレイヤーを使ってTDOから何か出てくるかを調査しました。

TRST OFF;
ENDIR IDLE;
ENDDR IDLE;
STATE RESET IDLE;
TIR 0 ;
HIR 0 ;
TDR 0 ;
HDR 0 ;
SIR 32 TDI (55555555) TDO (F5FFFFFF) ;

結果

2019/12/01 22:28:18  Error:Line 9 Operation error.TDO(expected) ='F5FFFFFF' TDO(mask)='FFFFFFFF' TDO(captured)='FFFFFFFF'

つまり、TDIから入った信号がTDOから出てこない。

基板の改造

おそらくオンボードのUSB-JTAGとぶつかっているのだろうと思い、回路図を見ながらRY1を外す。
image.png

image.png

これで再びSVFプレイヤーを実行してみると、

2019/12/01 22:30:36  Error:Line 9 Operation error.TDO(expected) ='F5FFFFFF' TDO(mask)='FFFFFFFF' TDO(captured)='55555519'

TDOから何か出てきた。

SVFでIRに送るコードを適当に変えて

SIR 32 TDI (ffff0fff) TDO (F5FFFFFF) ;

にしてみると、結果は

2019/12/01 22:47:53  Error:Line 9 Operation error.TDO(expected) ='F5FFFFFF' TDO(mask)='FFFFFFFF' TDO(captured)='FF0FFF19'

19という値はStatus Registerの規格に合致している。IRの長さは8bitと推測される。

MITOUJTAGでの自動認識 再び

再びMITOUJTAGに戻って、GUIから自動認識させてみると、genericデバイスとして認識された。IDCODEは0900281Bであるようだ。
image.png

BSDLファイルがあれば、バウンダリスキャンできるでしょう。

わかったこと

  • 基板上のTCK、TDI、TMS、TDOの端子はJTAGの端子として使える
  • オンボードのUSB-JTAGと信号がぶつかるので、外部JTAGを使う場合はYR1を外す
  • IR長は8。IDCODEは0900281BのJTAGデバイスとして正しく認識される
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1