|
1: 2009-12-08 (火) 23:44:56 takaboo |
| + | TITLE:BTE067B TINY JTAG-ICE2マニュアル |
| + | #norelated |
| + | #contents |
| + | **概要 [#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|50cm| |
| + | |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] |
| + | 本製品には[[FTDI社>http://www.ftdichip.com/]]のUSBシリアル変換ICが使用されています。詳細は[[こちら>How to install FTDI's device driver]]を参照下さい。 |
| + | ***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 ft2232 |
| + | ft2232_device_desc "TINY JTAG-ICE" |
| + | ft2232_layout jtagkey |
| + | |
| + | 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 -variant arm7tdmi |
| + | $_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 at91sam7 0 0 0 0 0 0 0 0 0 0 0 0 18432 |
| + | いずれも個別のファイルになっている必要は有りませんが、OpenOCDが対応するI/Fやデバイスが多い事から、最近では共有できる内容であれば分割して記述する方向になっているようです。 |
| + | |
| + | なお、ファイル名に日本語や全角は使えないのと、フォルダの区切り記号は\(エンもしくはバックスラッシュ)ではなく/(スラッシュ)を使用すると問題が少なくなります。 |
| + | |
| + | **簡単な使用例 [#t9d4c7ef] |
| + | 詳細はOpenOCDの[[マニュアル>OpenOCD#z925cbc3]]を参照するとして、実行中のマイコンを停止・リブートといった操作をtelnetクライアント経由で行ってみましょう。 |