TITLE:TINY JTAG-ICE2マニュアル #norelated #contents [[ショップページへ>http://www.besttechnology.co.jp/modules/onlineshop/index.php?fct=photo&p=19]] **概要 [#i2820f24] ARMコア内蔵マイコンに装備されたJTAG I/Fに接続し、PCからソフトウェアやハードウェアのデバッグを行うためのハードウェアです。制御チップにFTDI社のFT2232を採用し、PCのUSBポートに接続することでJTAG I/FとRS232Cポートが増設されます。~ なお、TINY JTAG-ICE2を制御するにはフリーソフトウェアである[[OpenOCD]]が別途必要となります。 **仕様 [#h2d78b65] ***梱包内容 [#z20f20a9] |型式|数量|備考| |TINY JTAG-ICE2|1|E043B| |USBケーブル|1|150cm| |20pinフラットケーブル|1|15cm| |コネクタキット|1|RS232Cコネクタ用| ***基本仕様 [#rd84b781] |特徴|USB 2.0 (最大12Mbit/sec);&br最大バウンダリスキャンレート 6Mbit/sec&br;1.5~5V TTLレベル対応(ESD保護 JESD 22レベル(JTAG端子のみ))&br;モニタLED装備(緑:VREF確定, 黄:SRST発行)&br;RS232C I/F装備(TD,RD,GNDのみ)| |USBチップ|FTDI FT2232D| |適用可能CPU|[[OpenOCD]]で対応するターゲット(内蔵フラッシュ書き込み対応)&br;・Atmel AT91SAM7シリーズ&br;・NXP LPC1700,LPC2000シリーズ&br;・STMicroelectronics str71x/73x/75xシリーズ| |コネクタ形状|USB:mini Bコネクタ&br;JTAG-ICE:2.54mmピッチ2x10ピンヘッダ用コネクタオス(ARM社MultiICE互換)&br;RS232C:2.54mmピッチ3ピンヘッダオス| |環境対応|Pb Free・RoHS対応| ***端子レイアウト [#s8a04836] #ref(pin_layout.png,100%) ***内部ブロック [#jb6d04ff] TINY JTAG-ICE2に装備されたFT2232の入出力端子がそのままJTAG I/Fとして割り振られていますが、低電圧回路に対応させるためのバッファICが装備されています。またFT2232はデュアルUART/FIFO ICであり、JTAG I/FとしてChannelA、RS232CとしてChannelBを使用しています。~ 参考までにJTAG I/Fの内部接続図を掲載します。 #ref(internal_block.png,100%) **適用可能な弊社製品 [#l862c664] [[BTC091 AT91SAM7S256マイコンボード]]~ [[BTC092 AT91SAM7S32マイコンボード]]~ [[BTC095 AT91SAM7X512マイコンボード]]~ **インストールとファイルの入手 [#g9cdfba1] ***デバイスドライバのインストール [#ocfdb851] openocdのGPL準拠の都合から、面倒ではありますが2種類のデバイスドライバのインストールを行う必要があります。勿論自身でビルドされるのであれば、ftdiのドライバベースでも構いません。~ 2種類という理由は、FT2232は見かけ上2つのデバイスとして認識され、一方をFTDI社のドライバベースのシリアルI/F、もう一方をlibusbベースのJTAG I/Fとして構成するためです。 +本製品には[[FTDI社>http://www.ftdichip.com/]]のUSBシリアル変換ICが使用されています。詳細は[[こちら>How to install FTDI's device driver]]を参照下さい。~ まずは[[この>How to install FTDI's device driver]]手順に従ってデバイスドライバのインストールを進め、使用可能な状態にします。(以下のデバイスマネージャーの表示は接続別で紹介) #ref(dev1.png)~ なお、COMポートの番号はPCの環境によって異なります。 +以下のlibusb-win32ベースのドライバが含まれたファイルをダウンロードし、適当な場所に解凍しておきます。 #ref(TINY_JTAG-ICE2_driver.zip)~ +デバイスマネージャーから「USB Serial Converter A」を見つけ、「ドライバーソフトウェアの更新」を選択します。 #ref(dev2.png)~ 「ドライバーソフトウェアの最新版を自動検索」ではなく、「コンピューターを参照してドライバーソフトウェアを検索」を選び、2.で解凍しておいたドライバファイルの場所を指定して「TINY JTAG-ICE (Interface 0)」に置き換えます。 #ref(dev3.png)~ +最終的に以下の構成になればデバイスドライバのインストールは完了です。 #ref(dev4.png) ***OpenOCDの入手 [#b0cf4aab] [[こちら>OpenOCD]]にてコンパイル済みバイナリを提供中です。アーカイブファイルをフォルダの階層構造ごと展開の後、パスの通った場所にコピーします。 **ターゲットとの接続 [#h9414193] デバイスの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やデバイスが多い事から、最近では共有できる内容であれば分割して記述する方向になっているようです。 なお、ファイル名に日本語や全角は使えないのと、フォルダの区切り記号は\(エンもしくはバックスラッシュ)ではなく/(スラッシュ)を使用すると問題が少なくなります。
(This host) = http://www.besttechnology.co.jp