ショップページへ

概要 anchor.png

ARMコア内蔵マイコンに装備されたJTAG I/Fに接続し、PCからソフトウェアやハードウェアのデバッグを行うためのハードウェアです。制御チップにFTDI社のFT2232を採用し、PCのUSBポートに接続することでJTAG I/FとRS232Cポートが増設されます。
なお、TINY JTAG-ICE2を制御するにはフリーソフトウェアであるOpenOCDが別途必要となります。

Page Top

仕様 anchor.png

Page Top

梱包内容 anchor.png

型式数量備考
TINY JTAG-ICE21E043B
USBケーブル1150cm
20pinフラットケーブル115cm
コネクタキット1RS232Cコネクタ用
Page Top

基本仕様 anchor.png

特徴USB 2.0 (最大12Mbit/sec);&br最大バウンダリスキャンレート 6Mbit/sec
1.5~5V TTLレベル対応(ESD保護 JESD 22レベル(JTAG端子のみ))
モニタLED装備(緑:VREF確定, 黄:SRST発行)
RS232C I/F装備(TD,RD,GNDのみ)
USBチップFTDI FT2232D
適用可能CPUOpenOCDで対応するターゲット(内蔵フラッシュ書き込み対応)
・Atmel AT91SAM7シリーズ
・NXP LPC1700,LPC2000シリーズ
・STMicroelectronics str71x/73x/75xシリーズ
コネクタ形状USB:mini Bコネクタ
JTAG-ICE:2.54mmピッチ2x10ピンヘッダ用コネクタオス(ARM社MultiICE互換)
RS232C:2.54mmピッチ3ピンヘッダオス
環境対応Pb Free・RoHS対応
Page Top

端子レイアウト anchor.png

pin_layout.png
Page Top

内部ブロック anchor.png

TINY JTAG-ICE2に装備されたFT2232の入出力端子がそのままJTAG I/Fとして割り振られていますが、低電圧回路に対応させるためのバッファICが装備されています。またFT2232はデュアルUART/FIFO ICであり、JTAG I/FとしてChannelA、RS232CとしてChannelBを使用しています。
参考までにJTAG I/Fの内部接続図を掲載します。

internal_block.png
Page Top

インストールとファイルの入手 anchor.png

Page Top

デバイスドライバのインストール anchor.png

openocdのGPL準拠の都合から、面倒ではありますが2種類のデバイスドライバのインストールを行う必要があります。勿論自身でビルドされるのであれば、ftdiのドライバベースでも構いません。
2種類という理由は、FT2232は見かけ上2つのデバイスとして認識され、一方をFTDI社のドライバベースのシリアルI/F、もう一方をWinUSBベースのJTAG I/Fとして構成するためです。

  1. 本製品にはFTDI社のUSBシリアル変換ICが使用されています。詳細はこちらを参照下さい。
    まずはこの手順に従ってデバイスドライバのインストールを進め、使用可能な状態にします。(以下のデバイスマネージャーの表示は接続別で紹介)
    dev1.png
    なお、COMポートの番号はPCの環境によって異なります。
  2. Zadigのサイトよりドライバのインストールツールをダウンロードします。 http://zadig.akeo.ie/
  3. ダウンロードしたZadigのツールを起動します。
    Zadig_1.png
  4. メニューの「Options」→「List All Devices」をクリックした後、リストに「TINY JTAG-ICE (Interface 0)」が含まれていることを確認し選択します。
    Zadig_2.png
    Zadig_3.png
  5. 最後に入れ替えるドライバのリストから「WinUSB」を選択し、「Replace Driver」ボタンを押せばインストールは完了です。
Page Top

OpenOCDの入手 anchor.png

こちらにてコンパイル済みバイナリを提供中です。アーカイブファイルをフォルダの階層構造ごと展開の後、パスの通った場所にコピーします。

Page Top

ターゲットとの接続 anchor.png

デバイスのJTAG I/FとTINY JTAG-ICE2を接続し、電源を供給した後にOpenOCDを実行します。デフォルト状態でOpenOCDがサポートする設定ファイルは限られていますので、見つからない場合は自作する以外にありません。ひとまず弊社のAT91SAM7S256マイコンボードを例に起動する方法を紹介します。

openocd.exe -s ./tcl -f daemon.cfg -f interface/tiny_jtagice.cfg -f target/sam7.cfg

最初に -s で設定ファイルの検索対象となるルートフォルダを指定し、以後に指定するオプションで設定ファイルを検索する必要がある場合に備えます。 後は必要なだけ -f で設定ファイルを指定していきます。

daemon.cfg はOpenOCDのデーモン機能に関する設定。

#============================================
# Daemon configuration
#============================================
telnet_port 4444
gdb_port 3333
tcl_port 6666

interface/tiny_jtagice.cfg はTINY JTAG-ICE2をPCのJTAG I/Fとして使用する事を宣言。

#============================================
# JTAG interface configuration
#============================================
interface ftdi
ftdi_layout_init 0x0c08 0x0f1b
ftdi_layout_signal nTRST -data 0x0100 -noe 0x0400
ftdi_layout_signal nSRST -data 0x0200 -noe 0x0800
ftdi_device_desc "TINY JTAG-ICE"
ftdi_vid_pid 0x0403 0x6010

target/sam7.cfg はAT91SAM7Sを対象とした諸設定。

#============================================
# JTAG interface configuration
#============================================
reset_config srst_only srst_pulls_trst

if { [info exists CHIPNAME] } {
   set  _CHIPNAME $CHIPNAME
} else {	 
   set  _CHIPNAME sam7
}

if { [info exists ENDIAN] } {
   set  _ENDIAN $ENDIAN
} else {
   set  _ENDIAN little
}

if { [info exists CPUTAPID ] } {
   set _CPUTAPID $CPUTAPID
} else {
   set _CPUTAPID 0x3f0f0f0f
}

jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID

#============================================
# Target configuration
#============================================
set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME arm7tdmi -endian $_ENDIAN -chain-position $_TARGETNAME

$_TARGETNAME configure -event reset-init {
	soft_reset_halt
	# RSTC_CR : Reset peripherals
	mww 0xfffffd00 0xa5000004
	# disable watchdog
	mww 0xfffffd44 0x00008000
	# enable user reset
	mww 0xfffffd08 0xa5000001
	# CKGR_MOR : enable the main oscillator
	mww 0xfffffc20 0x00000601
	sleep 10
	# CKGR_PLLR: 96.1097 MHz
	mww 0xfffffc2c 0x00481c0e
	sleep 10
	# PMC_MCKR : MCK = PLL / 2 ~= 48 MHz
	mww 0xfffffc30 0x00000007
	sleep 10
	# MC_FMR: flash mode (FWS=1,FMCN=73)
	mww 0xffffff60 0x00490100
	sleep 100
}

#============================================
# Flash configuration
#============================================
$_TARGETNAME configure -work-area-phys 0x00200000 -work-area-size 0x2000 -work-area-backup 0

set _FLASHNAME $_CHIPNAME.flash
flash bank $_FLASHNAME.0 at91sam7 0 0 0 0 $_TARGETNAME 0 0 0 0 0 0 0 18432

いずれも個別のファイルになっている必要は有りませんが、OpenOCDが対応するI/Fやデバイスが多い事から、最近では共有できる内容であれば分割して記述する方向になっているようです。

なお、ファイル名に日本語や全角は使えないのと、フォルダの区切り記号は\(エンもしくはバックスラッシュ)ではなく/(スラッシュ)を使用すると問題が少なくなります。


Front page   Diff ReloadPrint View   Page list Search Recent changes   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom)
Last-modified: 2017-01-10 (Tue) 15:52:45 (JST) (2892d)