Gibt es eine Open-Source-USB-zu-JTAG-Schaltung, die ich in mein PCB-Design integrieren kann?

Ich versuche herauszufinden, ob es möglich wäre, eine USB-zu-JTAG-Schaltung auf meiner von mir entworfenen Experimentierplatine zu bauen / einzuschließen. Mein Ziel ist es nicht, das Rad neu zu erfinden, sondern etwas zu verwenden, das es bereits gibt und das einfach/klein genug ist, um es meinem PCB-Design hinzuzufügen.

Ich möchte meinen Atmel SAM3S-Chip mit JTAG über USB programmieren und debuggen können.

Ich habe Geräte wie den USB-zu-JTAG-Programmierer von Modular Circuits gesehen, und es sieht so aus, als ob dieser ziemlich einfach in mein Design integriert werden kann, aber ich bin mir nicht sicher, ob ihre Lizenz dies zulässt.

Ich habe versucht, ein bisschen nach alternativen Open-Source-Designs zu suchen, konnte aber nicht wirklich etwas finden. Kann mich jemand auf ein Open Source-Projekt für USB> JTAG-Schaltungen verweisen, die online verfügbar sind?

Für das „Produktions“-Board ist es üblich, nur einen JTAG-Header zu haben und einen externen Programmierer zu verwenden, anstatt das USB-JTAG auf dem Board zu integrieren.

Antworten (3)

Beachten Sie, dass ich dieses System nicht selbst verwendet habe, aber das folgende Projekt namens opendous-jtag ist mit OpenOCD kompatibel und könnte einen Blick wert sein. Die Softwarelizenz ist die ziemlich liberale MIT-Lizenz und basiert auf Open-Source-Hardware, die Sie replizieren können sollten:

http://code.google.com/p/opendous-jtag/

Im Internet gibt es viele Beispiele für die Verwendung eines FTDI FT232R-Chips in seinem "synchronen Bit-Bang-Modus", um eine JTAG-Schnittstelle zur Konfiguration eines Mikrocontrollers oder CPLD/FPGA zu betreiben, einschließlich der erforderlichen Host-Software. Ein Vorteil dieses Ansatzes besteht darin, dass Sie den Chip anschließend in seinen regulären UART-Modus schalten und ihn zur Kommunikation mit der Zielanwendung verwenden können.

Ich würde den FT2232 gegenüber dem FT232 empfehlen, da er eine bessere Unterstützung für den JTAG-Modus bietet und Sie auch den Zugriff auf die serielle Schnittstelle behalten können, um eine Verbindung zum UART der MCU herzustellen, wodurch Sie noch mehr Verkabelung sparen.
Wenn Sie ein FT232 verwenden möchten, habe ich vak.ru/doku.php/proj/bitbang/bitbang-jtag gefunden , das so einfach wie möglich aussieht. Sie müssen OpenOCD jedoch patchen, obwohl ich nicht weiß, warum dies kein akzeptabler Patch für alle zukünftigen Versionen wäre.
Würde dieser Ansatz sowohl das Programmieren als auch das Debuggen ermöglichen? Die nützlichsten Kommentare, danke!
Das würde es, aber das würde vollständig von der Softwareunterstützung für diese Funktionen auf der Hostseite abhängen. Debugger sind im Allgemeinen sehr spezifisch für die Softwareentwicklungs-Toolkette eines bestimmten Herstellers, und diese sind im Allgemeinen so geschrieben, dass sie mit der Programmier-/Debugging-Hardware dieses Herstellers funktionieren. Generische JTAG-Debugger sind sehr selten.
Sieht so aus, als müsste ich ein SAM-ICE kaufen, wenn ich will, dass das richtig funktioniert. Ich muss entscheiden, welchen Arm und welches Bein ich abhacke. :)

Es gibt einen Bus Blaster von Dangerous Prototypes – er basiert auf FT2232H – dieser Chip hat zwei serielle Schnittstellen – eine wird für JTAG und eine andere verwendet – um Onboard-CPLD neu zu programmieren, um verschiedene JTAG-Debugger zu emulieren.