第 5 章

無償ツールと市販部品でARMプログラミングを満喫！

ARMプロセッサで使える汎用JTAGデバッガを自作する
山崎尊永
本稿では，無償ツールと市販部品を使って汎用の A R M 用「ARM OCD（On Chip Debugger）myJTAG」を紹介しま

JTAG デバッガを自作する．GNU ベースなので，生成コードす．また，統合開発環境 Eclipse によるデバッグ環境の立の制約を気にしないで本誌 2008 年 5 月号付属 ARM 基板のプち上げについて解説します．パソコン上のツールはすべてログラムが開発できるほか，さまざまな ARM プロセッサにも無償で手に入るものを使います．製作に使用した電子部品利用できる．RS-232-C や UART インターフェースも同時にはすべて東京・秋葉原などの部品販売店で手に入ります．

作成し，開発のさまざまな局面で役立てられる．

（編集部）

1．USB 接続型 JTAG デバッガの製作
本誌 2008 年 5 月号に STMicroelectronics 社のマイコン
STM32F103 を搭載した基板が付属しました．このマイコ

まずは，USB 接続型 JTAG デバッガ「ARM OCD myンは，128K バイトのフラッシュ・メモリと 20K バイトのJTAG」を製作しましょう．USB から JTAG に変換するデSRAM を内蔵し，コアとして72MHz 動作のARM Cortex-バイスとしてデファクトなのが英国 Future Technology

M3 を採用したものです．従来の ARM マイコンに比べ，Devices International（FTDI）社の FT2232 です．これをThumb-2 という命令体系によりコード効率が改善され，割使ってUSB-JTAG 変換機能を実現します．フリーのデバッり込み応答性能も良くなっています．せっかく高性能なマガ・ソフトウェアとしてはスタンダードな「Open On-chipイコン基板を入手したので，何かしっかり開発してみたくDebugger」がすでに対応しており，簡単にコア内蔵のオンなるのが人情というものです．

チップ・デバッガ機能を使えます．

ところが，5 月号に付属した開発ツールはいずれも評価

なお，FT2232 は2 チャネルを備えています．USB ⇔RS-版で，生成できるコードが 16K バイトや 32K バイトまでに232-C 変換機能もおまけで作り込み，TTL レベルのUART制限されています．せっかくの 128K バイトの内蔵フラッ信号の接続もできるようにしました．開発の際，なにかとシュ・メモリを生かせません．また，DFU（Device Firm

重宝すると思います．試作機の仕様を表 1 に示します．

ware Update）機能により手軽にフラッシュ・メモリへプ

本機は今回の Cortex-M3 だけでなく，ARM 系コアを持ログラムをダウンロードできますが，開発環境側からフつマイコンのほとんどをデバッグできる汎用性の高いもの

ラッシュ・メモリ上のプログラムをデバッグできません．

です．1 台作っておくと，今後役立つと思います．本機と同コード・サイズ制限は，GNU の GCC を使えば突破でき等な RS-232-C ポートも含む市販の JTAG デバッガは 1 万円ますが，フラッシュ・メモリ上のプログラムをデバッグすくらいしますが，自作すると半分以下の値段で完成します．

るには JTAG デバッガが欲しくなります．本稿では，筆者が製作した図 1 に示すような JTAG デバッガ，名付けてKeyword

76

JTAG デバッガ，USB，FT2232，ARM，Cortex-M3，STM32，RS-232-C，SP3243，GNU，GCC，GDB，
Open On-chip Debugger，Eclipse

Design Wave Magazine 2008 June

ARM基板を使ったシステム開発の基礎

0USBコネクタ

20ピンJTAGコネクタ

1

UARTインターフェース

2RS-232-C（a）試作した USB ⇔ JTAG インターフェース「ARM OCD myJTAG」

3（b）統合開発環境 Eclipse

図 1 「ARM OCD myJTAG」と統合開発環境 Eclipse（a）は手前左側に USB コネクタがありパソコンと接続する．USB-JTAG インターフェース機能により，ARM 系マイコン標準の 20 ピン JTAG コネクタに接続できる．USB ⇔ RS-232-C 変換機能も備えており，9 ピンの D サブ・コネクタが見える．上面中央の四角い穴は，TTL レベル UART インターフェースである．RS-232C/UART は，JTAG と同時使用できる．
（b）はオープン・ソースの統合開発環境である．GNU gcc と Open On-Chip Debugger をベースにして開発する．この環境の上で，ソース・コードの編集，ビルド，フラッシュ・メモリへのダウンロード，フラッシュ・メモリ上のプログラムのソース・レベル・デバッグを行うことができる．

表 1 「ARM OCD myJTAG」の仕様● 部品を集めて製作しよう
本機の回路図を図 2 に示します．また部品表を表 2 に示FT2232 は現在，FT2232D が最新バージョンですが，筆者

項目

1

使用デバイス

2

ARM 標準 JTAG コネクタ
（20ピン）
直結可能
TRST/SRST フル・サポート
USB ⇔ JTAG
ターゲット電源検知
インターフェース
ターゲット状態表示 LED × 2 個（Amontec 社 JTAGkey 準拠）

3

USB ⇔ RS-232-Cインターフェース

D サブ 9 ピン・コネクタ
フル・モデム信号サポート
送受信状態 LED × 2 個
TTL レベル UART 信号入出力可能
JTAG と同時利用可能

4USB

USB 2.0 フル・スピード（12Mbps）
バス・パワー動作（50mA 以下）

5デバッガ

GDB + Open On-chip Debuggerが入手できた FT2232L でも全く問題なく使えます．
多くのオープン・ソースの開発ツールは，スイス
Amontec 社のJTAG デバッガ「JTAGkey」をサポートしています．そこで本機も，FT2232 の GPIO 経由のリセット関連信号などの論理的な接続方式は JTAGkey と互換性を持たせてあります．

内容
FTDI 社 FT2232

使用するコネクタのピン配置を写真 1 と写真 2 に示します．また本機の外観を写真 3 と写真 4 に示します．

があるので，間違えないように配線してください．

U2（シリアル EEPROM）を除く LSI はすべて表面実装タ

外部の TTL レベルの UART 機器との接続は，SW1 のピイプなので，ピッチ変換基板を使っています．1.27mm ピッン・ヘッダ経由となりますが，外部からの信号がU6 SP3243

チ，0.65mm ピッチ，0.5mm ピッチと 3 種類あります（p.78（RS-232-C レベル変換 IC）と衝突しないようにジャンパをのコラム「表面実装 LSI のはんだ付け」を参照）．

使っています．TTL レベル UART を使う場合は，ジャンUSB コネクタCN1 とU1 FT2232 との間のUSB 信号DM/DP の配線は極力短くなるようにします．
JTAG 信号は，74VHC タイプの標準ロジック IC を経由させます．74VHC タイプはその電源電圧よりも高い入力電パ・ピンを取り外します．なお，U6（SP3243）は，/SHUT
DOWN を L レベルにすると出力信号がハイ・インピーダンスになります．これを使って信号衝突を防ぐ方法もある
ので，工夫してみてください．

圧を印加でき，レベル変換ができます．U4 とU5 はターゲッ

本機はパソコンやターゲット基板に接続するものなので，ト基板の電源TVCC を印加しますが，ターゲット基板の電源相手機器を壊さないため，配線は念入りにチェックしてく

TVCC は3V 系でも5V 系でもOK です．本機内にはこのTVCC

ださい．特に電源配線は間違いのないようにしてください．と USB ケーブルから供給される VCC（+5V）の 2 系統の電源

念のため，USB から供給される VCC ラインには，100mA

Design Wave Magazine 2008 June

56No.

します．部品はすべて東京・秋葉原で入手できました．

477