|
|
JTAGJoint 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.
[Bearbeiten] Hardware[Bearbeiten] AVR JTAG
[Bearbeiten] Pinout AVR-JTAGAVR benutzt einen 10poligen IDC-Stecker mit 2,54 mm Pinabstand und folgendem Pinout:
Bemerkungen:
AVR-JTAG lässt sich mit anderen JTAG-Implementierungen (oder weiteren AVRs) zu einer daisy chain verketten; dabei schiebt jeder AVR 4 Bits. [Bearbeiten] ARM JTAG[Bearbeiten] USB Anschluss auf Basis des FTDI FT2232Diese Adapter funktionieren mit Opensource-Tools wie OpenOCD (ARM-Debugger), xc3sprog (Xilinx Programmer), urjtag (generisches JTAG-Tool), gojtag, etc. Manchmal sind leichte Anpassungen des Source nötig. Bei einigen Adaptern ist auch die serielle Schnittstelle (3.3V-Level) herausgeführt.
[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.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
[Bearbeiten] AnschlussbelegungAuf 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.
Neuerdings propagiert ARM eine sehr kompakte Variante mit 2·5 Pins in einem 1,27 mm Raster:
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] Der 10-polige JTAG Stecker von mmvisualmmvisual hat mit dieser Steckerbelegung die Standard JTAG Schnittstelle erweitert: Ich habe einen 10-poligen Debug-Stecker entworfen, der alle Varianten sowie einen UART-Anschluss enthält und die Pins optimal angeordnet sind. Mit diesem Stecker können ARM7/9 und Cortex CPUs programmiert werden. An allen JTAG-Steckervarianten fehlen leider Funktionen, bzw. die Pins waren nicht optimal angeordnet. Daher habe ich den "perfekten" Stecker designt der viele Funktionen beinhaltet. [Bearbeiten] Die Funktionen
In all meinen Projekten verwende ich nur noch diese Anordnung, denn sie ist einfach praktisch. Alles drauf und die Pins sind perfekt angeordnet für jede Art der Anwendung. In diesem Beispiel ist der UART 1 (STM32) benutzt mit den Pins PA9/PA10. Wenn die Boot-Pins auf einen separaten Jumper-Block gelegt werden, so könnte auch mit der ST Software ein Flash Update durchgeführt werden. Hier die Erklärung warum es die BOOT-Pins nicht auf dem JTAG-Stecker benötigt. Ich habe mir einen eigenen Bootloader geschrieben, der kommt ohne das Interne Boot-ROM (und ohne die BOOT-Pins) aus. Ich habe den in die ersten 8KB Flash programmiert.
Diskussion zum 10-Poligen JTAG Stecker [Bearbeiten] Die AdapterplatineMit der Adapterplatine kann von dem 10-poligen Stecker auf einen 20-poligen Standard JTAG Stecker verbunden werden. Zusätzlich ist hier ein TTL/V24 Wandler integriert um die UART Signale auf V24 um zu setzen. Hier kann der Schaltplan/Layout geladen werden: Datei:10-Pol-JTAG.zip Die Platine ist 33×19mm klein. [Bearbeiten] JTAG-AdapterEin JTAG Adapter mit 10-poligem JTAG Stecker ist in Arbeit. Als Vorlage wurder OOCDLink verwendet. Leider klappt das mit dem OpenOCD noch nicht richtig. Ich wäre Dankbar für Unterstützung. Zum Forum: http://www.mikrocontroller.net/topic/174413 [Bearbeiten] 10-pin JTAG im 20'tel-Zoll Raster
[Bearbeiten] MSP430 JTAGAnschluß an Parallelport:
Anschluß an USB/Seriell:
[Bearbeiten] FPGA JTAG
[Bearbeiten] Universal JTAG Hardware[Bearbeiten] VersaloonVersaloon is a full-opensource multi-functional platform based on generic USB_TO_XXX protocol, which can now support more than 10 kinds of interfaces including ISP, JTAG, SWD, SPI, IIC and so on. Programming is supported for:
[Bearbeiten] Software[Bearbeiten] AVR JTAG
[Bearbeiten] ARM JTAG
[Bearbeiten] FPGA JTAG
[Bearbeiten] Allgemeine Tools
[Bearbeiten] Weblinks
|