1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

組み込み実践編 ③:JTAG・デバッガ編

1
Last updated at Posted at 2026-07-16

組み込み実践編 ③:JTAG・デバッガ編

はじめに

シリアルコンソール(A-2)はあくまで「機器側が能動的に喋ってくれる情報」しか見えません。
ブートローダより前の段階で止まっている、あるいは実行中のCPUのレジスタやメモリを直接覗きたい、という場面では、JTAG/SWD経由のデバッガが必要になります。
本記事では手持ちの各種デバッガを比較しながら、JTAG/SWDの基本的な使い方と、接続確認の切り分け手順を扱います。

JTAG/SWDでできること・できないこと

最初に前提を1つだけ整理します。JTAGとSWDは別プロトコルです。

  • JTAG:TCK/TMS/TDI/TDOを使う多ピン構成(FPGAや一部MCUで利用)

  • SWD:SWCLK/SWDIOを使う2線構成(主にARM Cortex-Mで利用)

  • できること:CPUの停止・ステップ実行、レジスタ/メモリの直接読み書き、フラッシュへの書き込み、ブートローダより前の段階でのデバッグ

  • できないこと(苦手なこと):長時間のログ収集(基本は「今の瞬間」を覗く道具)や、通信プロトコル内容の広域観測(基本はA-4のロジアナやA-2のシリアルの領分)。トレース機能で補助できる場合もあるが、一部デバッガ・チップの組み合わせでは専用のトレースピンやコネクタが別途必要になる点に注意

手持ちデバッガの比較

今回は実際に手元にある機材で比較します(棚卸し済み)。

まずは本記事の中心であるJTAG/SWD系の機材です。

デバッガ 対応プロトコル 対応 特徴
ST-LINK V2/V3(純正) SWD/JTAG STM32系 純正だけあって安定。STM32CubeProgrammerとの相性が良い
ST-LINKクローン(×3) SWD/JTAG(JTAGモードは製品・ファームウェアによって個体差あり) STM32系 安価。基本動作は問題ないことが多いが、まれに認識や書き込み速度で純正と差が出る
J-Link OB(×2) SWD/JTAG Cortex-M/A系 広く対応 対応チップの幅が広く、RTOS Awareness等の機能が強力。評価ボード内蔵版(On-Board)として見かけることが多く、外部ターゲットへの接続可否や使える機能は製品によって異なる
DAPLink(×4) SWD Cortex-M系 CMSIS-DAP準拠。オープンでファームウェア更新もしやすい
Xilinx Platform Cable USB II JTAG Xilinx FPGA系 FPGAのコンフィグレーション・デバッグ用。MCU向けデバッガとは毛色が違うが、考え方(JTAG経由でチップの中に直接アクセスする)は同じ

JTAG/SWD以外にも、ベンダー独自I/Fや派生I/Fを使う機材があります。ここは「同じ配線・同じ手順で使える」と誤解しないため、分けて見た方が安全です。

ツール 主なプロトコル/I/F 対応 特徴
E2 Lite JTAG/SWD/FINE/UART など(対象MCU依存) ルネサス系 ルネサスマイコン向け純正デバッガ。対象デバイスによって使うI/Fが変わる
PICkit3 ICSP PIC系 Microchip PIC向け。JTAG/SWDではなくPIC系の書き込み・デバッグ用I/Fを使う

A-3_XilinxプラットフォームケーブルUSBII.png
FPGA開発をやっているとこのXilinx純正のJTAGケーブルにもお世話になります。MCU用デバッガとは対象チップの種類が違いますが、「JTAG経由でチップの内部に直接アクセスする」という基本思想は共通です。

コラム:純正デバッガ vs クローンデバッガ

現場でもよく話題になる「クローンで十分か問題」について、実機を比較して感じたことをまとめます。

  • 速度:純正の方がフラッシュ書き込みが速い傾向(特に大容量フラッシュで体感差が出やすい)
  • 安定性:クローンでも大半のケースは問題なく動くが、ごく稀にUSB切断・認識ロストが発生することがある
  • 公式ツールとの連携:ベンダー公式の統合開発環境(STM32CubeIDE等)は純正デバッガでの動作を前提にしていることが多く、クローンだと一部機能(トレース系など)が制限される場合がある
  • 判断の目安:量産治具や長時間の自動テストに使うなら純正、机上でのちょっとした書き込み・デバッグならクローンで十分、というのが実感

接続確認の切り分け手順

A-3_EBAZ4205基板実機.png
今回の切り分け手順は、上のようなZynq搭載ボード(EBAZ4205)を対象にした実体験がベースになっています。

JTAG/SWDが「繋がらない」と言われたときのチェックリストです。

  1. 電源は入っているか:デバッガ側から見て、ターゲット基板の電源電圧が来ているか
  2. 基準電圧は見えているか:VTref/VREFが正しく接続され、デバッガ側がターゲットI/O電圧を認識できているか
  3. 配線は正しいか
    • SWDの場合:SWCLK/SWDIO/GND(+必要ならnRESET)
    • JTAGの場合:TCK/TMS/TDI/TDO/GND(+必要ならnTRST/nRESET/VTref)
    • あわせて、nRESET/nTRSTがどこにもプルアップされずフローティングになっていないかも確認(フローティングのままだと不定動作でリセットがかかり続け、接続が不安定になることがある)
  4. デバッガ自体は認識されているか:PC側のデバイスマネージャ等でデバッガが認識されているか(ここがダメならUSBケーブル・ドライバの問題)
  5. ターゲット設定でデバッグが無効化されていないか:デバッグロック(RDP/セキュリティ設定)や低消費電力設定、デバイスによってはブートピン設定の影響も確認する
  6. クロック速度設定は適切か:デバッガ側のデバッグクロック(SWDクロックやJTAGのTCK)が速すぎて認識できないケースがあるので、まず低速設定で試す
  7. 他のツールから専有されていないか:別のIDEやデバッグサーバ(OpenOCD/J-Link GDB Server等)がデバッガを掴んだままになっていないか

まとめ

  • JTAG/SWDは「今この瞬間のCPUの中身」を直接覗ける、シリアルにはできない役割を持つ道具
  • 純正 vs クローンは「量産・自動化なら純正、机上デバッグならクローンで十分」が実感ベースの目安
  • 繋がらない時は、電源→VTref/VREF→配線(JTAG/SWDを区別)→デバイス認識→デバッグ無効化設定→クロック速度→占有状況、の順に切り分けると早い

次回(A-4)は、信号そのものを波形として見るオシロスコープ・ロジックアナライザを扱います。


シリーズ内リンク

1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?