www.mikrocontroller.net

JTAG

Joint Test Action Group, entwickelte den Standard IEEE 1149.1. Das JTAG-Protokoll ermöglicht das Programmieren, Debuggen und Testen von ICs, Prozessoren und FPGAs direkt in der Schaltung. Näheres insbesondere zu den möglichen Steckerbelegungen siehe in der JTAG FAQ.

Inhaltsverzeichnis

[Bearbeiten] Hardware

[Bearbeiten] AVR JTAG

Programmer und Debugger für USB (MKI)

[Bearbeiten] ARM JTAG

[Bearbeiten] USB Anschluss auf Basis des FTDI FT2232

  • USB to JTAG Interface von Hubert Högl, Schaltplan
  • USB JTAG Interface für usbprog und OpenOCD von Benedikt Sauter (Zurzeit gibt es Bausätze für 22 EUR. Der Adapter ist ein Universaladapter der mit verschiedenen Firmwares zu verschiedenen Geräte werden kann. Pläne, Quelltexte usw... Open Source!!!)
  • Amontec JTAGkey, JTAGkey-Tiny
  • EKK-LM3S811 von LMI. Auf dem Testboard ist ein "on-board" JTAG-Adapter, der zu Ansteuerung des LM3S811 auf dem Board genutzt wird, aber auch an externe Controller angeschlossen werden kann. (Alle LMI Testboards verfügen über den JTAG Ein- und Ausgang.)
  • ARM-USB-OCD von Olimex
  • Xverve Signalyzer Tool

[Bearbeiten] Parallelport-Anschluss (Wiggler und Wiggler-"kompatibel")

Man findet einige Schaltpläne für Wiggler-Nachbauten im Netz. Nicht alle sind identisch. Der original Schaltplan von Macraigor ist meines (M. Thomas) Wissens nicht verfügbar.

"Vollständige" Belegung des Wiggler-Clones von Olimex (Quelle: sparkfun-Forum)

  • DB25.2 -> INVERSE -> JTAG.15 (NTRST) (mthomas: hier ist wohl nSRST gemeint)
  • DB25.3 -> JTAG.7 (TMS)
  • DB25.4 -> JTAG.9 (TCK)
  • DB25.5 -> JTAG.5 (TDI)
  • DB25.6 -> JTAG.3 (TRST)
  • DB25.9 -> VCC for the Level shifter i.e. JTAG enable/disable
  • DB25.11 <- JTAG.13 (TDO)
  • DB25.13 <- Target VCC sense (only when JTAG is enabled i.e. DB26.9 = 1)

DB25.18, DB25.19, DB25.20, DB25.21, DB25.22, DB25.23, DB25.24, DB25.25 werden mit GND verbunden.

Soll das Wiggler-Interface auch mit der Software ocdremote von Macraigor genutzt werden, ist eine Brücke zwischen zwischen DB25.8 und DB25.15 einzubauen. ocdremote ab (ca.) Version 2.06 erkennt daran das original Wiggler und auch einen mit der Brücke ausgestattenen Nachbau. Nutzt man zur Ansteuerung andere Software (z. B. OpenOCD oder H-JTAG) wird diese Verbindung nicht benötigt.

Man beachte die Beschaltung von SRST und TRST:

Üblicherweise wird Pin DB25.2 des Druckeranschlusses über eine Inverterschaltung (NPN Transistor) mit dem Reset-Pin des ARM-Controllers verbunden (nSRST).

Pin DB25.6 des Druckeranschlusses wird über Levelshifter direkt mit dem TRST-Pin des Controllers verbunden. In manchen Schaltplänen findet man auch für TRST einen Inverter, aber dies scheint eher unüblich.

Bei den sonstigen Pinbelegungen herrscht weitestgehend Einigkeit. Man muss lediglich Levelshifter (Pegelwandler) zwischenschalten, um zwischen den 5V des Druckeranschlusses und der Spannung des Controllers (üblicherweise 3,3V) zu "übersetzen".

Allein ein 74HC244 als Levelshifter, wie in vielen Schaltungen verwendet, ist nicht ideal. Der Baustein wird dabei mit 3,3V aus der Zielschaltung betrieben und die Anpassung an die nominell 5V vom Druckerport an die 3,3V des HC244 erfolgt entweder durch Spannungsteiler oder durch Strombegrenzungswiderstände und die internen Überspannungsschutzdioden. Das Ausgangssignal TDO zurück zum Druckeranschluss ist maximal 3,3V. Beides nicht optimal aber es funktioniert zumindest meistens. Aufwändigere Schaltungen, wie z. B. der Olimex Wiggler-Nachbau ("ARM-JTAG"), nutzen eine Kombination aus einem 74AC244 und einem 74LCX244.

[Bearbeiten] sonstige

  • Abatron BDI2000
  • Amontec JTAG Accelerator, Chameleon POD
  • AZ-Electronics
  • JtagConnection
  • Lauterbach Trace
  • Macraigor Systems LLS
  • Peedi
  • Rowley Associates CrossConnect

[Bearbeiten] Anschlussbelegung

Auf Evaluation-Boards verschiedener Hersteller (z. B. Atmel, IAR, Keil, Olimex) ist die JTAG-Schnittstelle über einen 20-poligen Wannenstecker (2*10, Raster 2,54mm) herausgeführt.

1 Vcc 2 NC
3 nTRST 4 GND
5 TDI 6 GND
7 TMS 8 GND
9 TCK 10 GND
11 GND 12 GND
13 TDO 14 GND
15 NRESET/nSRST 16 GND
17 NC 18 GND
19 NC 20 GND

Daneben existiert noch eine weniger gebräuchliche aber dokumentierte Variante mit 14 Polen (2*7). Bei fertigen Geräten, für die keine Schaltpläne vorliegen, muss man sich die herstellerspezifische Anschlussbelegung anhand des Datenblatts des verwendeten Controllers und mittels Messgerät selbst ermitteln.

[Bearbeiten] MSP430 JTAG

Anschluß an Parallelport:

Anschluß an USB/Seriell:

  • GoodFET von Travis Goodspeed. The GoodFET is an open source tool for programming microcontrollers and memories by SPI, I2C, JTAG (MSP430, ARM), and a slew of vendor-proprietary protocols. (Stub für 26C3 Vortrag)

[Bearbeiten] FPGA JTAG

[Bearbeiten] Software

[Bearbeiten] AVR JTAG

[Bearbeiten] ARM JTAG

  • GDB bzw. Insight und auf die ARM JTAG Hardware abgestimmte GDB-Server (OCDRemote, OpenOCD, BDI2000, Peedi)
  • H-JTAG und RDI-kompatible Debugger (SDT2.51, ADS1.2, RealView and IAR)
  • Herstellerspezifische Software z. B. von Lauterbach

[Bearbeiten] FPGA JTAG

  • Altera: Quartus Programmer (quartus_pgm)
  • Lattice: ToDo...
  • Xilinx: Impact, xc3sprog, ...

[Bearbeiten] Allgemeine Tools

  • TopJTAG: boundary-scan software for circuit debugging and flash programming.
  • Universal Scan: TOP! (nur 895$)
  • Pesonal JTAG: halbfertiges Hobbyprojekt, ist bissel buggy, aber kleine Sachen gehen damit.
  • UrJTAG: Kommandozeilentool für Boundary Scan, FPGA und CPLD und Speicher lesen und schreiben u.v.a.m., Nachfolger von openwince JTAG Tools.
webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net