<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.mikrocontroller.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=93.82.133.8</id>
	<title>Mikrocontroller.net - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://www.mikrocontroller.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=93.82.133.8"/>
	<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/articles/Spezial:Beitr%C3%A4ge/93.82.133.8"/>
	<updated>2026-04-10T23:20:41Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=STM32&amp;diff=60468</id>
		<title>STM32</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=STM32&amp;diff=60468"/>
		<updated>2011-09-17T13:14:25Z</updated>

		<summary type="html">&lt;p&gt;93.82.133.8: /* Evaluation Boards */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;STM32 ist ein Mikrocontroller-Familie von [http://www.st.com/mcu/inchtml-pages-stm32.html ST] mit einer 32-Bit [http://www.arm.com/products/processors/cortex-m/index.php ARM Cortex-M3] CPU. Diese Architektur ist speziell für den Einsatz in Microcontrollern neu entwickelt und löst damit die bisherigen ARM7-basierten Controller weitestgehend ab. Den STM32 gibt es von ST in unzähligen Varianten mit variabler Peripherie und verschiedenen Gehäusegrößen und -formen. Durch die geringe Chipfläche des Cores ist es ST möglich, eine 32 Bit-CPU für weniger als 1&amp;amp;nbsp;€ anzubieten.&lt;br /&gt;
&lt;br /&gt;
[[Bild:stm32F103xc.png|thumb|right|340px|Blockdiagramm STM32F103xC/D/E]]&lt;br /&gt;
&lt;br /&gt;
== STM32-Familien ==&lt;br /&gt;
&lt;br /&gt;
Bisher gibt es drei STM32-Familien, wobei sich die Größte (STM32F) in weitere Unterfamilien (Linien) aufteilt:&lt;br /&gt;
* [http://www.st.com/internet/mcu/subclass/1169.jsp STM32F1]&lt;br /&gt;
** Connectivity line&lt;br /&gt;
** Performance line&lt;br /&gt;
** USB Access line&lt;br /&gt;
** Access Line&lt;br /&gt;
** Value line (teilweise verfügbar)&lt;br /&gt;
* [http://www.st.com/internet/mcu/product/250173.jsp STM32F2]&lt;br /&gt;
** Wie die STM32F1 Serie, jedoch 120MHz, Camera-Interface, 32-Bit Timer, ...&lt;br /&gt;
* [http://www.st.com/mcu/inchtml-pages-stm32l.html STM32L] (LowPower) (auf ST-Webseite gelistet, noch in Entwicklung)&lt;br /&gt;
** mit LCD Treiber&lt;br /&gt;
* STM32T (Touch)  &lt;br /&gt;
* [http://www.st.com/mcu/inchtml-pages-stm32w.html STM32W] (RF-MCU) &lt;br /&gt;
&lt;br /&gt;
[http://www.st.com/internet/mcu/subclass/1169.jsp?WT.ac=micro_stm32f2_011210 Hier eine Liste zum auswählen eines STM32Fxxx]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features&#039;&#039;&#039;&lt;br /&gt;
* Cortex-M3 Kern&lt;br /&gt;
* 16KB ... 1MB [[Flash-ROM]] und bis zu 128KB [[Speicher#SRAM|SRAM]] und bis zu 4KB [[Speicher#EEPROM|EEPROM]] (STM32L)&lt;br /&gt;
* [[IC-Gehäuseformen | Gehäuse]] 36 ... 144 Pins als QFN, LQFP und BGA&lt;br /&gt;
* Derzeit sind über &#039;&#039;&#039;130&#039;&#039;&#039; STM32 Derivate/Varianten verfügbar&lt;br /&gt;
* Bis 72MHz CPU-Takt, bis 120MHz beim STM32F2xx, wobei eine spezielle prefetch-hardware bis 120MHz eine Geschwindigkeit erzielen soll, die 0 Wait-States entspricht. Der CPU-Takt wird über einen Multiplikator aus dem internen RC-Takt oder einem externen Quarz-Takt abgeleitet.&lt;br /&gt;
* Externes Businterface (nur bei Gehäusen ab 100 Pin und nur bei STM32F2 und STM32F1 Performance line)&lt;br /&gt;
* LCD Treiber für 8x40 Punkte (nicht beim STM32F2xx)&lt;br /&gt;
* Spannungsbereich 1,65 ... 3,6V, nur eine Betriebsspannung nötig&lt;br /&gt;
* Temperaturbereich bis 125 °C&lt;br /&gt;
* Bis zu 112 IOs, viele davon [[Pegelwandler|5V-tolerant]]&lt;br /&gt;
* Interner, kalibrierter RC-Oszillator mit 8MHz (16MHz bei STM32F2xx)&lt;br /&gt;
* Externer Quarz&lt;br /&gt;
* Real Time Clock mit eigenem Quarz und separater Stromversorgung&lt;br /&gt;
* Bis zu 14 [[Timer]], je Timer bis zu 4 IC/OC/PWM Ausgänge. Davon 2x Motion Control Timer (bei STM32F103xF/G)&lt;br /&gt;
* Systick Counter&lt;br /&gt;
* Bis zu 3 12-Bit [[AD-Wandler]] mit insgesamt 21 AD-Eingängen, integrierter [[Temperatursensor]]&lt;br /&gt;
* Bis zu 2 12-Bit [[DA-Wandler]]&lt;br /&gt;
* Bis zu 2 [[DMA]] Controller mit bis zu 12 Kanälen (16 beim STM32F2xx)&lt;br /&gt;
* Bis zu 2x [[I2C|I²C]]&lt;br /&gt;
* Bis zu 5x [[UART|USART]] mit LIN, IrDA und Modem Control&lt;br /&gt;
* Bis zu 3x [[SPI]]&lt;br /&gt;
* Bis zu 2x [[I2S|I²S]]&lt;br /&gt;
* Bis zu 2x [[CAN]]&lt;br /&gt;
* RNG - Random Number Genrator (STM32F2xx)&lt;br /&gt;
* Cryptographic Processor (CRYP) (STM32F2xx)&lt;br /&gt;
* Hash Processor (HASH) (STM32F2xx)&lt;br /&gt;
* Kamera-Interface (DCMI) (STM32F2xx)&lt;br /&gt;
* [[USB]] 2.0 Full Speed / OTG&lt;br /&gt;
* [[USB]] 2.0 Hi Speed OTG mit extra PHY-Chip (STM32F2xx)&lt;br /&gt;
* SDIO Interface (z.B. SD-Card Reader)&lt;br /&gt;
* Ethernet&lt;br /&gt;
* Watchdog mit Window-Mode&lt;br /&gt;
* Jedes Peripheriemodul ist separat einschaltbar, wodurch sich erheblich [[Ultra low power|Strom sparen]] lässt&lt;br /&gt;
* [[JTAG]] und SWD (Serial Wire Debug) Interface&lt;br /&gt;
* Bis zu 6 Hardware-Breakpoints für Debuggen&lt;br /&gt;
* und vieles mehr . . .&lt;br /&gt;
&lt;br /&gt;
== Struktur der Dokumentation: ==&lt;br /&gt;
&lt;br /&gt;
Als Beispiel der Dokumentation soll stellvertretend der [http://www.st.com/mcu/devicedocs-STM32F103RC-110.html STM32F103RC] genannt werden. Die Seite von ST beinhaltet alle nötigen Informationen passend zu diesem Prozessor.&lt;br /&gt;
&lt;br /&gt;
Diese Dokumente von ST beschreiben den Controller:&lt;br /&gt;
&lt;br /&gt;
* [http://www.st.com/stonline/products/literature/ds/14611.pdf Datasheet STM32F103xC/D/E]&lt;br /&gt;
* [http://www.st.com/stonline/products/literature/rm/13902.pdf Reference Manual]&lt;br /&gt;
* [http://www.st.com/stonline/products/literature/pm/15491.pdf Cortex-M3 Programming Manual]&lt;br /&gt;
* [http://www.st.com/stonline/products/literature/pm/13259.pdf Flash Programming Reference]&lt;br /&gt;
&lt;br /&gt;
Im Datasheet sind die speziellen Eigenschaften einer bestimmten Modellreihe beschrieben und die exakten Daten und Pinouts aufgeführt. Die Peripheriemodule werden nur aufgeführt, nicht detailliert beschrieben. In der Referenz ist der gesamte Controller mit Peripheriemodulen im Detail beschrieben, gültig für alle STM32 Controller. Details zum Prozessorkern selbst und den nicht STM32-spezifischen mit dem Cortex-M3 Core assoziierten Modulen wie dem Interrupt-Controller und dem Systick-Timer findet man jedoch nicht dort, sondern im Cortex-M3 Manual. Wer nicht die ST Firmware-Library verwendet, der benötigt zusätzlich die Flash Programming Reference für die Betriebsart des Flash-ROMs, d.h. die frequenzabhängige Konfiguration der Waitstates. Hinzu kommen optionale Dokumente von ARM, die den [http://infocenter.arm.com/help/topic/com.arm.doc.ddi0337-/ Cortex-M3 Kern] beschreiben. Hier gibt es den Opcode wenn man ihn in [http://infocenter.arm.com/help/topic/com.arm.doc.ddi0403-/ Assembler] programmieren möchte. Zusätzlich sollten auch die [http://www.st.com/stonline/products/literature/es/14732.pdf Errata Sheets] beachtet werden. Empfohlen sei auch die Appnote &amp;quot;[http://www.st.com/stonline/products/literature/an/13675.pdf STM32F10xxx hardware development: getting started]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== ‎STM32F10x Standard Peripherals Library ==&lt;br /&gt;
&lt;br /&gt;
ST bietet eine umfangreiche Firmwarebibliothek, eine einzige Bibliothek für alle STM32 Derivate. Das ist der große Vorteil von ST (gibt es beispielsweise auf den Cortex-M3 Controllern von TI auch, ist teilweise in einem separaten ROM untergebracht). Einmal programmieren und in allen STM32 verwendbar. Alle Funktionen sind gekapselt in einfache Strukturen und Funktionsaufrufe. Somit muss man sich nicht selbst um die Peripherieregister kümmern. Diese Library und ihre Dokumentation setzen das grundlegende Verständnis der Funktion des jeweiligen Peripheriemoduls voraus, wie es die o.A. Referenz und diverse Appnotes vermitteln.&lt;br /&gt;
&lt;br /&gt;
Details siehe: [[‎STM32F10x Standard Peripherals Library]].&lt;br /&gt;
&lt;br /&gt;
Mit [https://sourceforge.net/projects/libopenstm32/ libopenstm32] ist derzeit auch eine Open-Source Alternative (GPL, Version 3 oder höher) zur ST Library in Entwicklung.&lt;br /&gt;
&lt;br /&gt;
== CMSIS ==&lt;br /&gt;
&lt;br /&gt;
Parallel zur Firmware-Library gibt es für die &amp;quot;Selbermacher&amp;quot; die CMSIS, die einen Teil der HW und den Core Support abdeckt.&lt;br /&gt;
Im Rahmen des CMSIS-Standards ([http://www.onARM.com www.onARM.com]) wurden die Headerdateien standardisiert, der Zugriff auf die Register erfolgt per &#039;&#039;&#039;Peripheral-&amp;gt;Register&#039;&#039;&#039;. Weiterhin existieren eine Zahl von Helferfunktionen für den NVIC, den Sys-Tick-Counter, sowie eine SystemInit-Funktion, welche sich um die PLL kümmert.&lt;br /&gt;
&lt;br /&gt;
Die CMSIS ist im Download der FW-Lib enthalten.&lt;br /&gt;
&lt;br /&gt;
== Debug-Interface ==&lt;br /&gt;
&lt;br /&gt;
Als Debug Interface stehen zwei Varianten zur Auswahl:&lt;br /&gt;
* [[JTAG]]&lt;br /&gt;
* SWD (Serial Wire Debug)&lt;br /&gt;
&lt;br /&gt;
Für JTAG sind 6 Steuerleitungen nötig, für SWD 2 (zzgl GND/3,3V).&lt;br /&gt;
Die SWD Schnittstelle verfügt außerdem über eine weitere Leitung, SWO. Über diesen Kanal kann ein vereinfachtes Trace des Core ermöglicht werden, sowie &amp;quot;printf-ähnlich&amp;quot; Daten über den ITM Channel 0 geschickt und im Debugger ausgegeben werden.&lt;br /&gt;
&lt;br /&gt;
Die Coresight-Debug-Architektur ermöglicht ein nicht-invasives Debugging, d.h. es können während des Betriebes ohne Beeinflussung des Prozessors Daten vom Speicher gelesen und in selbigen geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
Standard-JTAG Steckerbelegungen: http://www.keil.com/support/man/docs/ulink2/ulink2_hw_connectors.htm&lt;br /&gt;
&lt;br /&gt;
=== Der 10polige JTAG-Stecker von mmvisual ===&lt;br /&gt;
mmvisual hat mit dieser Steckerbelegung die Standard JTAG Schnittstelle erweitert:&lt;br /&gt;
&lt;br /&gt;
Ich habe diesen Part in den Artikel [http://www.mikrocontroller.net/articles/JTAG#Der_10-Polige_JTAG_Stecker_von_mmvisual JTAG] verschoben.&lt;br /&gt;
Hinzu gekommen ist die Adapterplatine 10-Polig auf Standard JTAG 20 Polig mit TTL/V24 Wandler. [http://www.mikrocontroller.net/articles/JTAG#Die_Adapterplatine Siehe hier.]&lt;br /&gt;
&lt;br /&gt;
=== STM32 Programmiertool ===&lt;br /&gt;
&lt;br /&gt;
Details sind hier im Forum: [http://www.mikrocontroller.net/topic/141711 STM32 Programmiertool]&lt;br /&gt;
&lt;br /&gt;
== Vorteile ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorteile gegenüber ARM7:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Interrupt-Controller jetzt Teil des Prozessors (als Core Peripheral), die Vector Table ist jetzt eine echte Vektortabelle, keine Sprungliste wie bei ARM7). Durch Automatismen zwischen Core und NVIC (auto register save r0..r3, lr, sp, pc) bei Interrupt Entry wird eine deutlich schnellere Ausführungszeit bei Interrupts erreicht. Der Interrupt Code muss sich nicht mehr selbst um die Sicherung der o.g. Register kümmern und eine besondere Konfiguration der Handler im Compiler entfällt. Sind vor Beendigung einer ISR (d.h. Rücksprung zum User Code) weitere Interrupts pending, so werden diese ausgeführt, ohne dass eine komplette pop-push-sequenz der Register notwendig ist. Schön beschrieben ist es hier im [http://www.st.com/mcu/files/mcu/1221142709.pdf Insider&#039;s Guide] unter 2.4.5 / Seite 20.&lt;br /&gt;
* Thumb-2 Befehlssatz, deutlich schneller als Thumb-1 und ebenso kompakt&lt;br /&gt;
* Weniger Pins für Debugging benötigt durch SWD&lt;br /&gt;
* Mehr Hardware Breakpoints machen debuggen einfacher&lt;br /&gt;
* Software ist einfacher weil die Umschaltung zwischen ARM Mode und Thumb Mode wegfällt&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorteile gegenüber LPC1700 und LPC1300:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Flexiblere Gehäuseformen mit mehr Peripherie bei kleinen Gehäusen&lt;br /&gt;
* FW-Lib für alle STM32 gleich, alle AppNotes/Demos beziehen sich auf diese eine FW-Lib was die Entwicklung der eigenen Applikation sehr beschleunigt.&lt;br /&gt;
* Genauerer und flexiblerer ADC, insbesondere gegenüber LPC1300&lt;br /&gt;
* Flexiblere Varianten der Peripherie &amp;gt;&amp;gt; bei weniger einen deutlichen Preisvorteil&lt;br /&gt;
* ab 0,85 EUR (Stand 2010) Allerdings gibts den LPC1100 mit Cortex-M0 schon ab 0,65 $!&lt;br /&gt;
&#039;&#039;&#039;Nachteil gegenüber LPC1700:&#039;&#039;&#039;&lt;br /&gt;
* STM32F1xx: nur 72 MHz statt 100 MHz (LPC1759: 120 MHz) Taktfrequenz; STM32F2xx hat diesen Nachteil nicht (ebenfalls 120MHz) (Aber NXP hat schon 150MHz angekündigt)&lt;br /&gt;
* Der LPC1700 besitzt deutlich mehr Mechanismen, um die Auswirkung der Waitstates des Flash-ROMs auf Code- und Datenzugriffe zu reduzieren und das bedeutet mehr Performance bei gleicher Taktfrequenz. Beim STM32F2 entfällt dieser Nachteil wohl aufgrund des ART accelerators. &lt;br /&gt;
* Alle LPC1xxx haben 32 Bit Timer. Bei den STM32 haben das nur die STM32F2xx (2 Stück)&lt;br /&gt;
* I2S Einheit von ST hat keinen FIFO und im 24/32Bit Modus müssen 2x16Bit Halbwörter übertragen werden.&lt;br /&gt;
&#039;&#039;&#039;Vorteile gegenüber anderen &amp;quot;Kleinen&amp;quot; wie z.B. PIC, Atmel usw.&#039;&#039;&#039;&lt;br /&gt;
* nahezu gleicher Preis bei Hobby Anwendungen&lt;br /&gt;
* 32 Bit ohne Umwege in Assembler rechenbar&lt;br /&gt;
* bessere Peripherie&lt;br /&gt;
* ... und weitere 1000 Punkte ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nachteil für Hobby-Anwender&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Nicht direkt &amp;quot;Steckbrettauglich&amp;quot;, da kein DIL Gehäuse verfügbar. Der ebay-Shop dipmicro führt jedoch sehr günstige Lötadapter für Umsetzung von LQFP48 auf DIP48. QFP64 in 0.5mm Pinabstabd und nicht 0.8mm wie AVR&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Programmierung ==&lt;br /&gt;
&lt;br /&gt;
Als Programmieroberfläche kann eine kostenlose Struktur verwendet werden. Es ist für den Einsteiger schwierig herauszufinden welche Open-Source Programme man braucht damit es funktioniert, daher hier eine Zusammenstellung:&lt;br /&gt;
&lt;br /&gt;
* [http://www.eclipse.org Eclipse]&lt;br /&gt;
* [http://www.yagarto.de Yagarto Tools] oder [http://www.codesourcery.com/sgpp/lite_edition.html Codesourcery Light]&lt;br /&gt;
* Programmieradapter OpenOCD oder andere JTAG Programmieradapter &lt;br /&gt;
* Eclipse Plugin &amp;quot;GDB Hardware Debugging&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Zum Starten eine fertige Zusammenstellung: [http://www.mikrocontroller.net/topic/216554 Eclipse+codesourcery+st-link]&lt;br /&gt;
&lt;br /&gt;
* [http://www.coocox.org/ Coocox Eclipse IDE] kostenlose IDE für Cortex M0/M3. Hilfreiche Infos gibt es im [http://www.mikrocontroller.net/topic/214719?goto=new#2228482 hier] und [http://www.mikrocontroller.net/topic/214719?goto=new#2229943 hier] Forum&lt;br /&gt;
&lt;br /&gt;
Sehr nützlich für Linux-Anwender auch diese Seite: [http://fun-tech.se/stm32/index.php STM32/ARM Cortex-M3 HOWTO: Development under Ubuntu.]&lt;br /&gt;
&lt;br /&gt;
Folgende kommerzielle Umgebungen sind verfügbar:&lt;br /&gt;
&lt;br /&gt;
* [http://www.keil.com Keil µVision] (Demo max. 32KB Code)&lt;br /&gt;
: Die sehr komfortable µVison IDE ist neben dem ARM Compiler per Menue auch für&lt;br /&gt;
einen beliebigen GNU-Compiler konfigurierbar. Damit besteht das 32k-Limit&lt;br /&gt;
nur noch für den integrierten Debugger / Simulator. µVison selbst kann &lt;br /&gt;
kostenlos mit dem MDK-Evaluationkit heruntergeladen werden.&lt;br /&gt;
* [http://www.iar.com IAR] (Demo max. 32KB Code)&lt;br /&gt;
* [http://www.raisonance.com Raisonance Ride7] (GCC Compiler, kostenlose Version auf Debugging von max. 32KB Code limitiert, keine Limitierung beim Complilieren)&lt;br /&gt;
* [http://www.atollic.com Atollic] (Lite Version ohne Code-Limit, auf GCC basierend)&lt;br /&gt;
* [http://www.coocox.org CoIDE] (Kostenlose GCC, Eclipse basierende IDE mit einem Code-Generator Tool)&lt;br /&gt;
* [http://www.rowley.co.uk/arm/ Rowley Crossworks] (Demo 30 Tage unbeschränkt, 150$ für nichtkommerzielle Nutzung, auf GCC basierend)&lt;br /&gt;
&lt;br /&gt;
Programmieradapter&lt;br /&gt;
* [http://www.segger.com J-Link / J-Trace] Cortex-M3, als [http://www.segger.com/cms/j-link-edu.html NonComercial] J-Link für ca. 60,- zu haben, läuft in µVision, IAR, gdb&lt;br /&gt;
* [http://olimex.com/dev/index.html Olimex] ARM-USB-OCD (ca. 60.-)&lt;br /&gt;
* Keil [http://www.keil.com/arm/ulink2/ ULINK2], [http://www.keil.com/arm/ulinkpro/ ULINK pro]&lt;br /&gt;
* [http://www.st.com/internet/evalboard/product/219866.jsp ST-LINK], [http://www.st.com/internet/evalboard/product/251168.jsp ST-LINK/V2]&lt;br /&gt;
* [http://www.raisonance.com/~rlink-debugger-programmer__microcontrollers__tool~tool__T018:4cn9ziz4bnx6.html Raisonance RLink]&lt;br /&gt;
* [http://www.amontec.com Amontec]&lt;br /&gt;
* [http://www.hjtag.com H-JTAG] Personal Edition für ca. 60,- zu haben, läuft mit ADS, SDT, IAR, Vision und RVDS &lt;br /&gt;
&lt;br /&gt;
Programmieradapter Open-Source&lt;br /&gt;
* [http://www.oocdlink.com/ OOCDLink]&lt;br /&gt;
* [http://www.randomprojects.org/wiki/Floss-JTAG FLOSS-JTAG]&lt;br /&gt;
* [http://capitanio.org/mlink/ Linux Demo Code für die Discovery&#039;s ST-Link Programmierung]&lt;br /&gt;
&lt;br /&gt;
Der Controller hat auch einen fest eingebauten Boot-Lader. Damit läßt er sich auch über eine gewöhnliche serielle Schnittstelle programmieren, ohne daß man einen JTAG-Adapter benötigt.&lt;br /&gt;
&lt;br /&gt;
Tipps für Installation mit Eclipse können in [http://www.mikrocontroller.net/topic/214719 diesem Thread] gelesen werden.&lt;br /&gt;
&lt;br /&gt;
=== Installation für STM32 ===&lt;br /&gt;
&lt;br /&gt;
Hier ist der Anfang des Artikels [[STM32 Eclipse Installation]], hier ist neueres beschrieben als hier aufgeführt. Wenn der Artikel fertig ist, dann wird dieser Teil gelöscht.&lt;br /&gt;
&lt;br /&gt;
* Eclipse &amp;quot;Helios&amp;quot; installieren mit GNU ARM Eclipse Plug-in&lt;br /&gt;
Eclipse IDE for C/C++ Developers&amp;lt;ref&amp;gt;http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/heliosr&amp;lt;/ref&amp;gt; downloaden und installieren&lt;br /&gt;
&lt;br /&gt;
* GNU ARM Eclipse Plug-in&amp;lt;ref&amp;gt;http://sourceforge.net/projects/gnuarmeclipse/&amp;lt;/ref&amp;gt; runterladen und installieren. [http://sourceforge.net/apps/mediawiki/gnuarmeclipse/index.php?title=Main_Page Weitere Infos].&lt;br /&gt;
&lt;br /&gt;
Wird CodeSourcery G++ Lite verwendet, so muss die PATH Variable angepasst &lt;br /&gt;
werden damit, das Plugin die CodeSourcery exe-Files findet&amp;lt;ref&amp;gt;für Discovery notwendig&amp;lt;/ref&amp;gt;. Alternativ das eclipse von einem script aus starten und zuerst den PATH erweitern.&lt;br /&gt;
&lt;br /&gt;
Soll das ST-LINK verwendet werden, so kann der Atollic ST-LINK&lt;br /&gt;
GDBSERVER aus der Atollic free version genutzt werden. &lt;br /&gt;
Mit dem gdbserver im eclipse kann damit problemlos geflasht und &lt;br /&gt;
gedebuggt werden (JTAG und SWD).&lt;br /&gt;
Die Startup- und Linkerscripts der Atollic free version können für&lt;br /&gt;
ein Projekt in dieser Konstallation genutzt werden.&lt;br /&gt;
&lt;br /&gt;
* Eclipse &amp;quot;Galileo&amp;quot; installation&amp;lt;ref&amp;gt;[http://www.eclipse.org/] → Downloads → &amp;quot;Eclipse IDE for C/C++ Developers (79 MB)&amp;lt;/ref&amp;gt;. Und das Servicepack 1&amp;lt;ref&amp;gt;[http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/galileo/SR1/eclipse-cpp-galileo-SR1-win32.zip Eclipse SR1]&amp;lt;/ref&amp;gt;&lt;br /&gt;
Entpacken der Datei eclipse-cpp-galileo-SR1-win32.zip nach &amp;quot;C:\WinARM\&amp;quot; (Ordner neu erstellen)&lt;br /&gt;
&lt;br /&gt;
* Eclipse PlugIn&amp;lt;ref&amp;gt;http://download.eclipse.org/tools/cdt/releases/galileo&amp;lt;/ref&amp;gt; hinzufügen: Help → Install New Software... → &amp;quot;Eclipse C/C++ Development Tools&amp;quot; + &amp;quot;Eclipse C/C++ GDB Hardware Debugging&amp;quot; installieren&lt;br /&gt;
&lt;br /&gt;
* Yagarto Tools&amp;lt;ref&amp;gt;[http://www.yagarto.de/] &amp;quot;Download (for Windows)&amp;quot; → &amp;quot;YAGARTO Tools&amp;quot; http://www.yagarto.de/download/yagarto/yagarto-tools-20091223-setup.exe Installieren, Auswahl Verzeichnis &amp;quot;C:\WinARM\yagarto-tools&amp;quot;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* CodeSourcery: Achtung! Die Menustruktur ändert sich durchaus mal, dann suchen gehen. http://www.codesourcery.com/ → Products → Sourcery G++ → Editions&amp;gt;Lite Edition → ARM → Downloads. Direkter Download&amp;lt;ref&amp;gt;[http://www.codesourcery.com/sgpp/lite/arm/portal/package6496/public/arm-none-eabi/arm-2010q1-188-arm-none-eabi.exe]&amp;lt;/ref&amp;gt;. Installieren, Auswahl Verzeichnis &amp;quot;C:\WinARM\CodeSourcery&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* OpenOCD: Kompilierte Version für Windows&amp;lt;ref&amp;gt;[http://www.freddiechopin.info/] → Download → Software → OpenOCD&amp;lt;/ref&amp;gt; installieren nach &amp;quot;C:\WinARM\OpenOCD_0_4_0&amp;quot; ist auch auf der Seite&amp;lt;ref&amp;gt;[http://yagarto.de/#ocd Yagarto.de]&amp;lt;/ref&amp;gt; beschrieben. PS: Sollte der Olimex ARM-USB-OCD verwendet werden, dann darf nicht der Treiber von Olimex verwendet werden, sondern der vom OpenOCD Download&amp;lt;ref&amp;gt;[http://www.mikrocontroller.net/topic/173753#1668913]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* ST Firmware: http://www.st.com → Auswahl CPU STM32F103xxx → &amp;quot;Firmware&amp;quot; &amp;quot;STM32F10x_StdPeriph_Lib&amp;quot;&amp;lt;ref&amp;gt;http://www.st.com/mcu/devicedocs-STM32F103RC-110.html&amp;lt;/ref&amp;gt;. Das ZIP &amp;quot;stm32f10x_stdperiph_lib.zip&amp;quot; Entpacken nach &amp;quot;C:\WinARM\examples\stm32_FW3.4.0\&lt;br /&gt;
&lt;br /&gt;
=== Installation für STM32 auf einem zweiten Rechner===&lt;br /&gt;
&lt;br /&gt;
* Kopieren des Verzeichnisses C:\WinARM\ (Zuvor wurden aus diesem Grund alle Setup-Pakete nach C:\WinARM\... installiert)&lt;br /&gt;
* Die PATH-Variable in der Systemsteuerung mit den C:\WinARM\.... Verzeichnissen nachführen&lt;br /&gt;
* Fertig.&lt;br /&gt;
&lt;br /&gt;
=== Installation für STM32 mit AtollicTrueStudio (+Demo) ===&lt;br /&gt;
* Installation + Demo: [[STM32 LEDBlinken AtollicTrueStudio]]&lt;br /&gt;
&lt;br /&gt;
== Demo-Projekte ==&lt;br /&gt;
&lt;br /&gt;
* [[prog_bsp_timer_1_timer2|Programmbeispiel für die Verwendung von Timer2 zusammen mit dem Interrupt]]&lt;br /&gt;
* [[prog_bsp_timer_2_bldc_hall|Programmbeispiel für BLDC Motoransteuerung (Timer 1) mit HALLSensor (Timer 3)]]&lt;br /&gt;
* [[Cortex_M3_OCM3U]]&lt;br /&gt;
* Martin Thomas hat ein umfangreiches Projekt erstellt, in der die Eclipse Einstellungen enthalten sind:&lt;br /&gt;
** [http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/arm_memcards/index.html &amp;quot;ChaN&#039;s FAT-Module with STM32 SPI&amp;quot;]&lt;br /&gt;
* [[STM32 USB-FS-Device Lib]]&lt;br /&gt;
* Modellbau-Sender auf STM32-Basis mit vielen Treibern [http://www.rcos.eu www.rcos.eu]&lt;br /&gt;
&lt;br /&gt;
== Errata, Tipps und Tricks ==&lt;br /&gt;
&lt;br /&gt;
* AD-Wandler PA0: Im Errata steht, dass hier Fehler in der Wandlung entstehen könnten, also einen anderen Pin verwenden.&lt;br /&gt;
* CAN-Bus PD0/PD1: Remap geht erst ab der 100-Pin-Version. Steht im RM0008 unter 8.3.3. Alle Infos von RM0008 8.3.x sind interssant&lt;br /&gt;
* CAN und USB sind nur bei der &amp;quot;◦Connectivity-Line&amp;quot; gleichzeitig nutzbar. Siehe Datenblätter.&lt;br /&gt;
* Mit internem RC-Oszillator kann die CPU mit maximal 64MHz betrieben werden. Mit einem externen Quarz sind dann 72MHz möglich.&lt;br /&gt;
* Für USB Betrieb muss die CPU mit 48MHz oder 72MHz betrieben werden (bei STM32F1xx).&lt;br /&gt;
* Der Idle Interrupt vom Usart wird zwar ausgelöst, aber nicht vom entsprechenden Statusflag angezeigt&lt;br /&gt;
* Der DMA fängt beim aktivieren immer von vorn an zu zählen, auch wenn er nur kurz angehalten wurde&lt;br /&gt;
&lt;br /&gt;
=== Tipps für Umsteiger von Atmel/PIC/8051 ===&lt;br /&gt;
* Prozessortakt hat unterschiedliche Taktquellen und eine PLL.&lt;br /&gt;
* Alle Peripheriemodule haben einen extra Clock, den man aktivieren muss.&lt;br /&gt;
* Wenn man z.B. einen UART benutzen möchte, so muss man den Clock vom UART, Alternate Function IO (AFIO) und dem GPIO-Port aktivieren.&lt;br /&gt;
* Ansonsten hat man nahezu doppelt so viele Möglichkeiten in den Peripheriemodulen.&lt;br /&gt;
* Forum zu [http://www.mikrocontroller.net/topic/175888 Interrupts vs. Events]&lt;br /&gt;
&lt;br /&gt;
== Bezugsquellen ==&lt;br /&gt;
&lt;br /&gt;
=== Controller ===&lt;br /&gt;
&lt;br /&gt;
Versandhäuser für Privatpersonen&lt;br /&gt;
&lt;br /&gt;
* [http://darisusgmbh.de/shop/index.php?cat=c2692_ARM-Cortex.html Darisus]&lt;br /&gt;
* [http://www.hbe-shop.de HBE (Farnell Programm für Private)] &lt;br /&gt;
* [http://www.sander-electronic.de/be00069.html Sander]&lt;br /&gt;
* [http://www.tme.eu/de/katalog/index.phtml#cleanParameters%3D1%26search%3DSTM32F10%26bf_szukaj%3D+ TME] &lt;br /&gt;
* [https://www.distrelec.de/ishopWebFront/catalog/product.do/para/keywords/is/STM32_ARM-Microcontroller/and/language/is/de/and/shop/is/DE/and/series/is/1/and/id/is/01/and/node/is/34910.html Distrelec]&lt;br /&gt;
&lt;br /&gt;
Gewerblich liefern natürlich viele wie Farnell, Digikey usw..&lt;br /&gt;
&lt;br /&gt;
=== Evaluation Boards ===&lt;br /&gt;
&lt;br /&gt;
* [http://shop.embedded-projects.net/index.php?module=artikel&amp;amp;action=gruppe&amp;amp;id=14 Im Shop von Embedded Projects]&lt;br /&gt;
* [http://www.watterott.com/de/Boards-Kits/ARM/ARM-Cortex-M3 Cortex M3 bei Watterott]&lt;br /&gt;
* [http://www.raisonance.com/~primer-starter-kits__microcontrollers__tool~tool__T018:4enfvamuxbtp.html Primer und Primer2 von Raisonance]&lt;br /&gt;
* [http://www.sander-electronic.de/es0028.html Sander Electronic]&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/MP32F103-Stick:_Ein_Mini-Mikrocontroller-Board_mit_USB_und_bis_zu_4MB_Datenspeicher Artikel im Wiki, ARM mit USB und 4MB Speicher]&lt;br /&gt;
* [http://www.futurlec.com/STM32_Development_Board.shtml Futurlec Evalboard, ebenso Header-Board]&lt;br /&gt;
* [http://www.propox.com/products/t_174.html Propox, Header-Boards für 103R und 103V sowie Trägerplatine dafür]&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/Cortex_M3_OCM3U Cortex M3 Artikel im Wiki]&lt;br /&gt;
* [http://olimex.com/dev/index.html STM32 bei Olimex]&lt;br /&gt;
* [http://de.farnell.com/jsp/displayProduct.jsp?sku=1824325&amp;amp;action=view&amp;amp;CMP=GRHS-1000962 STM32Discovery bei Farnell] Mikrocontroller Board (STM32F100RBT6B) mit onboard USB-Programming Interface für ca. 12,50€&lt;br /&gt;
* [http://www.steitec.net/ARM-Boards/ Steitec, STM32F103 Cortex M3 Board 34,80€]&lt;br /&gt;
* [http://www.mcu-raisonance.com/~open4-development-platform__microcontrollers__tool~tool__T018:g65gu6ghg2n.html/ Open 4 oder auch genannt Evo-Primer]&lt;br /&gt;
* [http://www.wayengineer.com/index.php?main_page=index&amp;amp;cPath=50_66&amp;amp;page=1&amp;amp;sort=3a WayEngineer]&lt;br /&gt;
&lt;br /&gt;
== Weblinks, Foren, Communities ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/173753 Diskussion zum Artikel]&lt;br /&gt;
* [http://www.mikrocontroller.net/forum/mikrocontroller-elektronik?filter=ARM*+STM32*+Cortex* Suche im Forum]&lt;br /&gt;
* [https://my.st.com/public/STe2ecommunities/mcu/Lists/ARM%20CortexM3%20STM32/AllItems.aspx Forum auf der ST Homepage] &lt;br /&gt;
* [http://www.stm32circle.com/hom/index.php STM32 Community] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
[[Kategorie:ARM]]&lt;br /&gt;
[[Kategorie:STM32| ]]&lt;/div&gt;</summary>
		<author><name>93.82.133.8</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=JTAG&amp;diff=60467</id>
		<title>JTAG</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=JTAG&amp;diff=60467"/>
		<updated>2011-09-17T13:11:29Z</updated>

		<summary type="html">&lt;p&gt;93.82.133.8: /* USB Anschluss auf Basis des FTDI FT2232 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;J&#039;&#039;&#039;oint &#039;&#039;&#039;T&#039;&#039;&#039;est &#039;&#039;&#039;A&#039;&#039;&#039;ction &#039;&#039;&#039;G&#039;&#039;&#039;roup, entwickelte den Standard IEEE 1149.1. Das JTAG-Protokoll ermöglicht das Programmieren, Debuggen und Testen von ICs, [[Prozessor]]en und [[FPGA]]s direkt in der Schaltung. Näheres insbesondere zu den möglichen Steckerbelegungen siehe in der [http://hri.sourceforge.net/tools/jtag_faq_org.html JTAG FAQ].&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
&lt;br /&gt;
== AVR JTAG ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2737 AVR JTAGICE] (neuerdings gelegentlich auch &#039;&#039;JTAGICE mkI&#039;&#039; genannt) von Atmel.&lt;br /&gt;
* [http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3353 AVR JTAGICE mkII] von Atmel.&lt;br /&gt;
* [http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3891 AVR Dragon] von Atmel.&lt;br /&gt;
** [http://www.atmel.com/dyn/resources/prod_documents/doc8112.pdf AVR077: Opto Isolated Emulation for the DebugWIRE] (auch für AVR JTAGICE mkII nützlich)&lt;br /&gt;
* [http://gandalf.arubi.uni-kl.de/avr_projects/evertool/index.html Evertool und Evertool light] von Martin Thomas. Evertool unterstützt JTAG analog zu AVR JTAGICE und [[ISP]] nach [[STK500]] Protokoll. Evertool light nur JTAG. &lt;br /&gt;
* [http://aquaticus.info/jtag JTAG for AVR processors] bei Aquaticus ROV. (Englisch)&lt;br /&gt;
* [http://www.olimex.com/dev/avr-jtag.html AVR-JTAG] und [http://www.olimex.com/dev/avr-usb-jtag.html AVR-USB-JTAG] von [http://www.olimex.com/dev/index.html Olimex] (kommerziell). Alternativer Lieferant ist der [http://elmicro.com/de/avrjtag.html Elektronikladen].&lt;br /&gt;
* [http://www.gadgetpool.de/bestellen/catalog/product_info.php/cPath/22_27/products_id/35 AVR-JTAG] und [http://www.gadgetpool.de/bestellen/catalog/product_info.php/cPath/22_27/products_id/52 AVR-USB-JTAG] von [http://www.gadgetPool.de gadgetPool] (kommerziell)&lt;br /&gt;
* [http://www.floppyspongeonline.com/automation/isojtagisp/isojtagisp.php IsoJtagISP] und [http://www.floppyspongeonline.com/automation/isojtag/isojtag.php IsoJTAG] von Floppy Sponge Automation ([[USB]], optisch isoliert). Hier eine modifizierte Version von [http://www.madwizard.org/electronics/projects/avrjtag Madwizard].&lt;br /&gt;
* [http://www.ere.co.th/(gs5afz55q5idyyn0a1ibkl45)/default.aspx?RedirectPage=Products&amp;amp;RedirectPage1=ProductsDetail&amp;amp;ProductID=56 JTAGAVRU1] (AVR JTAGICE kompatibel, USB, 1.8-5.5V)&lt;br /&gt;
* [http://www.avrfreaks.net/index.php?module=Freaks%20Tools&amp;amp;func=viewItem&amp;amp;item_id=630 JTAGcable II] (AVR JTAGICE kompatibel, USB, 1.8-6 V)&lt;br /&gt;
* [http://www.miklobit.com/JTAG_TWICE.530+B6Jkw9Mw__.0.html MB-JTAG-TWICE] (AVR JTAGICE kompatibel, RS232, 2.7-5.5V, +ISP STK500v2) - Free update to version compatible with AVR JTAG MKII (coming soon)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Programmer und Debugger für USB (MKI) &lt;br /&gt;
* link tot 20100521 [http://www.paktek-shop.de/epages/61807596.sf/de_DE/?ObjectPath=/Shops/61807596/Categories/Produkte/AVR-Programmer]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ARM JTAG ==&lt;br /&gt;
&lt;br /&gt;
=== USB Anschluss auf Basis des FTDI FT2232 ===&lt;br /&gt;
* [http://elk.informatik.fh-augsburg.de/hhweb/doc/openocd/usbjtag/usbjtag.html USB to JTAG Interface] von Hubert Högl, Schaltplan&lt;br /&gt;
* [http://www.embedded-projects.net/index.php?page_id=175 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!!!)&lt;br /&gt;
* [http://www.amontec.com/ Amontec] JTAGkey, JTAGkey-Tiny&lt;br /&gt;
* [http://section5.ch/icebear/ section5 ICEbear] ICEbear (Plus|Light) JTAG adapter, eigentlich für Blackfin, aber funktioniert auch mit OpenOCD, goJTAG, urjtag, etc.&lt;br /&gt;
* [http://www.luminarymicro.com/products/ekk-lm3s811_evaluation_kit.html EKK-LM3S811] von LMI. Auf dem Testboard ist ein &amp;quot;on-board&amp;quot; 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.)&lt;br /&gt;
*[http://www.segger.com/cms/jlink.html SEGGER J-Link] sehr professioneller schneller JTAG Adapter. Für nichtkommerziellen Einsatz gibt es den J-Link Edu schon für 50€. Bei [http://www.wayengineer.com/index.php?main_page=product_info&amp;amp;cPath=50_51&amp;amp;products_id=105&amp;amp;zenid=p5vhfc7e8ttnkdcbca6plo3oo2 WayEngineer] gibt es ihn ganz günstig für 15$/10.72€ + Versandkosten.&lt;br /&gt;
* [http://www.olimex.com/dev/arm-usb-ocd.html ARM-USB-OCD] von Olimex&lt;br /&gt;
* [http://www.signalyzer.com/ Xverve Signalyzer Tool]&lt;br /&gt;
&lt;br /&gt;
=== Parallelport-Anschluss (Wiggler und Wiggler-&amp;quot;kompatibel&amp;quot;) ===&lt;br /&gt;
* [http://www.macraigor.com/hwproducts.htm Macraigor] Original Wiggler&lt;br /&gt;
* [http://www.olimex.com/dev/arm-jtag.html Olimex ARM-JTAG] Wiggler-Nachbau&lt;br /&gt;
* [http://www.k9spud.com/jtag/ k9spud Wiggler-Schaltplan]&lt;br /&gt;
* [http://web.archive.org/web/20060411074457/http://bbs.circuitcellar.com/phpBB2/viewtopic.php?p=10059&amp;amp; bigakis Wiggler-Schaltplan] (74HC244 Levelshifter, BC547 Transistor zum Invertieren)(&#039;&#039;&#039;Webarchiv-Link&#039;&#039;&#039;,Orginal gelöscht)&lt;br /&gt;
* [http://wiki.openwrt.org/doc/hardware/port.jtag.cables Wiggler Schaltplan] von OpenWRT (ebenfalls mit 74HC244). &lt;br /&gt;
* [http://www.st.com/stonline/products/literature/um/12322.pdf ST FlashLink JTAG Programming Cable] STM Application-Note&lt;br /&gt;
*[http://www.frozeneskimo.com/electronics/arm-tutorials/jtag-wiggler-clone/ JTAG Wiggler Clone] &lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Vollständige&amp;quot; Belegung des Wiggler-Clones von Olimex (Quelle: sparkfun-Forum)&lt;br /&gt;
* DB25.2 -&amp;gt; INVERSE -&amp;gt; JTAG.15 (NTRST) (mthomas: hier ist wohl nSRST gemeint)&lt;br /&gt;
* DB25.3 -&amp;gt; JTAG.7 (TMS)&lt;br /&gt;
* DB25.4 -&amp;gt; JTAG.9 (TCK)&lt;br /&gt;
* DB25.5 -&amp;gt; JTAG.5 (TDI)&lt;br /&gt;
* DB25.6 -&amp;gt; JTAG.3 (TRST)&lt;br /&gt;
* DB25.9 -&amp;gt; VCC for the Level shifter i.e. JTAG enable/disable&lt;br /&gt;
* DB25.11 &amp;lt;- JTAG.13 (TDO)&lt;br /&gt;
* DB25.13 &amp;lt;- Target VCC sense (only when JTAG is enabled i.e. DB26.9 = 1) &lt;br /&gt;
&lt;br /&gt;
DB25.18, DB25.19, DB25.20, DB25.21, DB25.22, DB25.23, DB25.24, DB25.25 werden mit GND verbunden.&lt;br /&gt;
&lt;br /&gt;
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.&amp;amp;nbsp;B. OpenOCD oder H-JTAG) wird diese Verbindung nicht benötigt.&lt;br /&gt;
&lt;br /&gt;
Man beachte die Beschaltung von SRST und TRST: &lt;br /&gt;
&lt;br /&gt;
Üblicherweise wird Pin DB25.2 des Druckeranschlusses über eine Inverterschaltung (NPN Transistor) mit dem Reset-Pin des ARM-Controllers verbunden (&#039;&#039;&#039;nSRST&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Pin DB25.6 des Druckeranschlusses wird über Levelshifter direkt mit dem &#039;&#039;&#039;TRST&#039;&#039;&#039;-Pin des Controllers verbunden. In manchen Schaltplänen findet man auch für TRST einen Inverter, aber dies scheint eher unüblich. &lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;übersetzen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
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.&amp;amp;nbsp;B. der Olimex Wiggler-Nachbau (&amp;quot;ARM-JTAG&amp;quot;), nutzen eine Kombination aus einem 74AC244 und einem 74LCX244.&lt;br /&gt;
&lt;br /&gt;
=== sonstige ===&lt;br /&gt;
&lt;br /&gt;
* Abatron BDI2000&lt;br /&gt;
* [http://www.amontec.com/index.shtml Amontec] JTAG Accelerator, Chameleon POD&lt;br /&gt;
* AZ-Electronics&lt;br /&gt;
* JtagConnection&lt;br /&gt;
* [http://www.lauterbach.de/mindex.html Lauterbach] Trace&lt;br /&gt;
* Macraigor Systems LLS&lt;br /&gt;
* Peedi&lt;br /&gt;
* Rowley Associates CrossConnect&lt;br /&gt;
&lt;br /&gt;
=== Anschlussbelegung ===&lt;br /&gt;
&lt;br /&gt;
Auf Evaluation-Boards verschiedener Hersteller (z.&amp;amp;nbsp;B. Atmel, IAR, Keil, Olimex) ist die JTAG-Schnittstelle über einen 20-poligen Wannenstecker (2*10, Raster 2,54mm) herausgeführt.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 | 1 Vcc  &lt;br /&gt;
 | 2 NC  &lt;br /&gt;
 |-&lt;br /&gt;
 | 3 nTRST&lt;br /&gt;
 | 4 GND &lt;br /&gt;
 |-&lt;br /&gt;
 | 5 TDI&lt;br /&gt;
 | 6 GND&lt;br /&gt;
 |-&lt;br /&gt;
 | 7 TMS&lt;br /&gt;
 | 8 GND&lt;br /&gt;
 |-&lt;br /&gt;
 | 9 TCK&lt;br /&gt;
 | 10 GND&lt;br /&gt;
 |-&lt;br /&gt;
 | 11 GND&lt;br /&gt;
 | 12 GND&lt;br /&gt;
 |-&lt;br /&gt;
 | 13 TDO&lt;br /&gt;
 | 14 GND&lt;br /&gt;
 |-&lt;br /&gt;
 | 15 nRESET/nSRST&lt;br /&gt;
 | 16 GND&lt;br /&gt;
 |-&lt;br /&gt;
 | 17 NC&lt;br /&gt;
 | 18 GND&lt;br /&gt;
 |-&lt;br /&gt;
 | 19 NC&lt;br /&gt;
 | 20 GND&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Neuerdings propagiert ARM eine sehr kompakte Variante mit 2*5 Pins in einem 1,27 mm Raster:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 | 1 Vcc  &lt;br /&gt;
 | 2 TMS  &lt;br /&gt;
 |-&lt;br /&gt;
 | 3 GND&lt;br /&gt;
 | 4 TCK&lt;br /&gt;
 |-&lt;br /&gt;
 | 5 GND&lt;br /&gt;
 | 6 TDO&lt;br /&gt;
 |-&lt;br /&gt;
 | 7 RTCK&lt;br /&gt;
 | 8 TDI&lt;br /&gt;
 |-&lt;br /&gt;
 | 9 GND&lt;br /&gt;
 | 10 nRESET/nSRST&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Daneben existiert noch eine weniger gebräuchliche aber dokumentierte Variante mit 14 Polen (2*7). &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Der 10-polige JTAG Stecker von mmvisual ===&lt;br /&gt;
mmvisual hat mit dieser Steckerbelegung die Standard JTAG Schnittstelle erweitert:&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;perfekten&amp;quot; Stecker designt der viele Funktionen beinhaltet.&lt;br /&gt;
&lt;br /&gt;
[[bild:jtag-debug-port10.png]]&lt;br /&gt;
&lt;br /&gt;
==== Die Funktionen ====&lt;br /&gt;
* JTAG&lt;br /&gt;
* SWD&lt;br /&gt;
* Debug-UART-Anschluss (verbunden mit einem freien UART vom STM32) (alternativ ein MAX232 Chip dazwischen schalten)&lt;br /&gt;
* Weniger Platzbedarf auf der Platine (Standard-JTAG 20 Polig)&lt;br /&gt;
* Über 4-Poligen Würfel kann der UART benutzt werden (Pin 7/8/9/10)&lt;br /&gt;
* Es kann ein Jumper gesteckt werden für eine Option (Pin 9/10) ohne dass es sich mit dem RS232 Chip beißt (sofern er eingebaut wurde)&lt;br /&gt;
* Über einen 5-Poligen einreihigen Stecker kann SWD verwendet werden (Pin 1/3/5/7/9)&lt;br /&gt;
* den ganzen Stecker braucht es nur, wenn man den herkömlichen JTAG nutzen möchte.&lt;br /&gt;
* Kurzschlussschutz, da GND und +3V3 nicht gegenüber liegen&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
Interne Boot-ROM (und ohne die BOOT-Pins) aus. Ich habe den in die ersten 8KB Flash programmiert.&lt;br /&gt;
* Das PC-Programm senden über den UART den Befehl &amp;quot;GoTo Bootloader&amp;quot;, damit wird mein Bootloader angesprungen.&lt;br /&gt;
* Dann sendet das PC Programm die Update-Daten.&lt;br /&gt;
* Wenn fertig, dann geht es zurück in die Applikation.&lt;br /&gt;
* Der Bootloader ist immer beim Einschalten des Boards aktiv. Sobald eine Tastenkombination gedrückt wird, bleibt er &amp;quot;hängen&amp;quot; und irgend welche LEDs blinken. Also wenn das Flash &amp;quot;Zerschossen&amp;quot; sein sollte kann man mit einem Restart/Tasten den Bootloader aktivieren und erneut den Update ausführen.&lt;br /&gt;
* Der ST eigene Bootloader hat mir nicht gefallen, weil da keine LED&#039;s Blinken und dem User sagen, &amp;quot;Hallo ich lebe und bin im Bootloader&amp;quot;.&lt;br /&gt;
* Wenn die Tasten beim Einschalten nicht gedrückt werden, dann springt der Bootloader in die Applikation&lt;br /&gt;
* Der Bootloader kann jeden belibigen UART nutzen.&lt;br /&gt;
&lt;br /&gt;
[http://www.mikrocontroller.net/topic/174413 Diskussion zum 10-Poligen JTAG Stecker]&lt;br /&gt;
&lt;br /&gt;
==== Die Adapterplatine ====&lt;br /&gt;
Mit 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]]&lt;br /&gt;
Die Platine ist 33x19mm klein.&lt;br /&gt;
&lt;br /&gt;
==== JTAG-Adapter ====&lt;br /&gt;
Ein JTAG Adapter mit 10-poligem JTAG Stecker ist in Arbeit. Als Vorlage wurder OOCDLink verwendet. Leider klappt das mit dem OpenOCD noch nicht richtig.&lt;br /&gt;
Ich wäre Dankbar für Unterstützung.&lt;br /&gt;
Zum Forum: http://www.mikrocontroller.net/topic/174413&lt;br /&gt;
&lt;br /&gt;
=== 10-pin JTAG im 20&#039;tel-Zoll Raster ===&lt;br /&gt;
&lt;br /&gt;
* Forumsbeitrag [http://www.mikrocontroller.net/topic/188659#1836129 &amp;quot;neuer JTAG-Stecker für ARM&amp;quot;]&lt;br /&gt;
* [http://www.keil.com/support/man/docs/ulink2/ulink2_hw_connectors.htm Keil ULINK2] (und Pinouts anderer JTAG-Stecker)&lt;br /&gt;
&lt;br /&gt;
== MSP430 JTAG ==&lt;br /&gt;
&lt;br /&gt;
Anschluß an Parallelport: &lt;br /&gt;
* [http://elmicro.com/files/olimex/msp430-jtag-d.pdf Olimex MSP430 JTAG (PDF)] bzw. ([http://www.olimex.com/dev/images/msp430-jtag-d-sch.gif (GIF)]). Siehe auch Diskussion im [http://www.mikrocontroller.net/topic/57208#442620 Forum].&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/90754#776070 Forumsbeitrag] mit Anhang eines chinesischen? Schaltplans (PDF)&lt;br /&gt;
&lt;br /&gt;
Anschluß an USB/Seriell:&lt;br /&gt;
* [http://goodfet.sourceforge.net/ 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 [http://events.ccc.de/congress/2009/Fahrplan/events/3490.en.html 26C3 Vortrag])&lt;br /&gt;
&lt;br /&gt;
== FPGA JTAG ==&lt;br /&gt;
&lt;br /&gt;
* Für Xilinx&lt;br /&gt;
** [http://www.freewebs.com/lykos1986/cpldprogrammer.htm Xilinx JTAG programmer] ([[CPLD]], [[FPGA]])&lt;br /&gt;
** [http://www.embedded-projects.net/index.php?page_id=157 Xilinx JTAG XSVF Player mit USBprog] ([[CPLD]], [[FPGA]])&lt;br /&gt;
** [http://www.mikrocontroller.net/articles/Xilinx_USB-JTAG-Adapter Xilinx Platform Cable I Nachbau] - Nachbau des Originalem Xilinx Platform Cable I (DLC9)&lt;br /&gt;
** [http://warmcat.com/milksop/cheaptag.html Cheaptag] - Xilinx Parallel Jtag programming cable&lt;br /&gt;
** [http://embdev.net/topic/139121#new XSVF Player FTDI Bitbang] - XSVF Player with FTDI Bitbang mode&lt;br /&gt;
&lt;br /&gt;
* Für Altera&lt;br /&gt;
** [http://translate.google.com/translate?js=n&amp;amp;prev=_t&amp;amp;hl=en&amp;amp;ie=UTF-8&amp;amp;layout=2&amp;amp;eotf=1&amp;amp;sl=auto&amp;amp;tl=en&amp;amp;u=http%3A%2F%2Fmarsohod.org%2Findex.php%2Fourblog%2F11-blog%2F163-marsblaster Marsblaster] für Altera FPGA, serieller Port&lt;br /&gt;
** [http://www.altera.com/literature/ug/ug_bbii.pdf ALTERA ByteBlaster]&lt;br /&gt;
** [http://www.entner-electronics.com/tl/index.php/eeblaster.html EEBlaster], sehr günstig, kompatibel zu ALTERA USB-Blaster&lt;br /&gt;
** [http://www.pyroelectro.com/tutorials/byteblaster/index.html Build A ByteBlaster] bei www.pyroelectro.com&lt;br /&gt;
** [http://www.ixo.de/info/usb_jtag/ USB-JTAG-Adapter], kompatibel zu ALTERA USB-Blaster&lt;br /&gt;
&lt;br /&gt;
* ColdFire BDM Pod&lt;br /&gt;
** [http://forums.freescale.com/t5/68K-ColdFire-reg-Microprocessors/TBLCF-open-source-debugging-cable/m-p/7543 TBLCF open source debugging cable]&lt;br /&gt;
** [http://www.rockbox.org/wiki/IriverBDM IriverBDM]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- VERALTETE LINKS - PRODUKTE WERDEN DORT NICHT GEFUNDEN&lt;br /&gt;
* FCPU-X Platform Cable USB JTAG cable&lt;br /&gt;
** Bezugsquelle (DE): [http://www.vht-impex-shop.de/product_info.php?info=p786_HW-USB-platform-cable--FCPU-X-platform-cable-similar-to-HW-USB-Kabel-for-Xilinx-evaluation-boards-etc-.html&amp;amp;XTCsid=e613a7119493deac52e83e9038ce131a http://www.vht-impex-shop.de]&lt;br /&gt;
** Bezugsquelle (US): [http://www.celeritous.com/estore/index.php?main_page=product_info&amp;amp;cPath=1&amp;amp;products_id=129 http://www.celeritous.com] &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Universal JTAG Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Versaloon ===&lt;br /&gt;
&lt;br /&gt;
[http://www.versaloon.com/ Versaloon] 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: &lt;br /&gt;
* STM8 support(SWIM)&lt;br /&gt;
* STM32 support(ISP/JTAG/SWD) siehe auch Forumbeitrag von Bingo [http://www.mikrocontroller.net/topic/202785]&lt;br /&gt;
* LPC1000 support(ISP/JTAG/SWD)&lt;br /&gt;
* LM3S support(JTAG/SWD)&lt;br /&gt;
* AT91SAM3 support(JTAG/SWD)&lt;br /&gt;
* AT89S5X support(ISP)&lt;br /&gt;
* PSOC1 support(ISSP)&lt;br /&gt;
* MSP430(without TEST) support(JTAG)&lt;br /&gt;
* C8051F support(C2/JTAG)&lt;br /&gt;
* AVR8 support(ISP/JTAG)&lt;br /&gt;
* LPC900 support(ICP)&lt;br /&gt;
* HCS08 support(BDM)&lt;br /&gt;
* HCS12(X) support(BDM)&lt;br /&gt;
* SVF support(JTAG)&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
&lt;br /&gt;
== AVR JTAG ==&lt;br /&gt;
&lt;br /&gt;
* [[AVR-Studio]] (Windows)&lt;br /&gt;
* [[GDB]] in Verbindung mit [http://avarice.sourceforge.net/ AVaRICE] und AVR JTAGICE kompatibler Hardware. (Linux)&lt;br /&gt;
&lt;br /&gt;
== ARM JTAG ==&lt;br /&gt;
&lt;br /&gt;
* [[GDB]] bzw. Insight und auf die ARM JTAG Hardware abgestimmte GDB-Server (OCDRemote, [http://openocd.berlios.de/ OpenOCD], BDI2000, Peedi)&lt;br /&gt;
* [http://www.hjtag.com/ H-JTAG] und RDI-kompatible Debugger (SDT2.51, ADS1.2, RealView and IAR)&lt;br /&gt;
* Herstellerspezifische Software z.&amp;amp;nbsp;B. von Lauterbach&lt;br /&gt;
&lt;br /&gt;
== FPGA JTAG ==&lt;br /&gt;
&lt;br /&gt;
* Altera: Quartus Programmer (quartus_pgm)&lt;br /&gt;
* Lattice: ToDo...&lt;br /&gt;
* Xilinx: Impact, xc3sprog, ...&lt;br /&gt;
&lt;br /&gt;
== Allgemeine Tools ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.topjtag.com TopJTAG]: boundary-scan software for circuit debugging and flash programming.&lt;br /&gt;
* [http://www.ricreations.com/index.html Universal Scan]&lt;br /&gt;
* [http://urjtag.org UrJTAG]: Kommandozeilentool für Boundary Scan, FPGA und CPLD und Speicher lesen und schreiben u.v.a.m., Nachfolger von openwince JTAG Tools.&lt;br /&gt;
* [http://www.gojtag.com/ goJTAG]: graphisches Boundary-Scan-Tool zum manuellen Durchtesten von Verbindungen, besonders für Nicht-JTAG-Experten geeignet. Plattformunabhängig, da in Java geschrieben. Funktioniert im Prinzip mit allen FT2232(H) basierten Adaptern.&lt;br /&gt;
* [http://wesche.we.ohost.de/ FT2232 BoundaryScan Tool]: free boundary-scan software for flash programming [S29GL128N, S29GL256N, S29GL512N, M25PX16, M25PX32, M25PX64, etc ].&lt;br /&gt;
&amp;lt;!-- link tot 20100521 * [http://www.rsn-tech.demon.co.uk/pjtag/pjtag.html Pesonal JTAG]: halbfertiges Hobbyprojekt, ist bissel buggy, aber kleine Sachen gehen damit. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Anwendungen ==&lt;br /&gt;
&lt;br /&gt;
*[http://www.eetimes.com/General/DisplayPrintViewContent?contentItemId=4207333 Debugging the Linux kernel with JTAG] von Alexander Sirotkin auf eetimes.com (LPC3250 mit FemtoLinux, OpenOCD)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR]]&lt;br /&gt;
[[Kategorie:ARM]]&lt;br /&gt;
[[Kategorie:FPGA und Co]]&lt;br /&gt;
[[Kategorie:Datenübertragung]]&lt;/div&gt;</summary>
		<author><name>93.82.133.8</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=JTAG&amp;diff=60466</id>
		<title>JTAG</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=JTAG&amp;diff=60466"/>
		<updated>2011-09-17T13:10:36Z</updated>

		<summary type="html">&lt;p&gt;93.82.133.8: /* USB Anschluss auf Basis des FTDI FT2232 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;J&#039;&#039;&#039;oint &#039;&#039;&#039;T&#039;&#039;&#039;est &#039;&#039;&#039;A&#039;&#039;&#039;ction &#039;&#039;&#039;G&#039;&#039;&#039;roup, entwickelte den Standard IEEE 1149.1. Das JTAG-Protokoll ermöglicht das Programmieren, Debuggen und Testen von ICs, [[Prozessor]]en und [[FPGA]]s direkt in der Schaltung. Näheres insbesondere zu den möglichen Steckerbelegungen siehe in der [http://hri.sourceforge.net/tools/jtag_faq_org.html JTAG FAQ].&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
&lt;br /&gt;
== AVR JTAG ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2737 AVR JTAGICE] (neuerdings gelegentlich auch &#039;&#039;JTAGICE mkI&#039;&#039; genannt) von Atmel.&lt;br /&gt;
* [http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3353 AVR JTAGICE mkII] von Atmel.&lt;br /&gt;
* [http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3891 AVR Dragon] von Atmel.&lt;br /&gt;
** [http://www.atmel.com/dyn/resources/prod_documents/doc8112.pdf AVR077: Opto Isolated Emulation for the DebugWIRE] (auch für AVR JTAGICE mkII nützlich)&lt;br /&gt;
* [http://gandalf.arubi.uni-kl.de/avr_projects/evertool/index.html Evertool und Evertool light] von Martin Thomas. Evertool unterstützt JTAG analog zu AVR JTAGICE und [[ISP]] nach [[STK500]] Protokoll. Evertool light nur JTAG. &lt;br /&gt;
* [http://aquaticus.info/jtag JTAG for AVR processors] bei Aquaticus ROV. (Englisch)&lt;br /&gt;
* [http://www.olimex.com/dev/avr-jtag.html AVR-JTAG] und [http://www.olimex.com/dev/avr-usb-jtag.html AVR-USB-JTAG] von [http://www.olimex.com/dev/index.html Olimex] (kommerziell). Alternativer Lieferant ist der [http://elmicro.com/de/avrjtag.html Elektronikladen].&lt;br /&gt;
* [http://www.gadgetpool.de/bestellen/catalog/product_info.php/cPath/22_27/products_id/35 AVR-JTAG] und [http://www.gadgetpool.de/bestellen/catalog/product_info.php/cPath/22_27/products_id/52 AVR-USB-JTAG] von [http://www.gadgetPool.de gadgetPool] (kommerziell)&lt;br /&gt;
* [http://www.floppyspongeonline.com/automation/isojtagisp/isojtagisp.php IsoJtagISP] und [http://www.floppyspongeonline.com/automation/isojtag/isojtag.php IsoJTAG] von Floppy Sponge Automation ([[USB]], optisch isoliert). Hier eine modifizierte Version von [http://www.madwizard.org/electronics/projects/avrjtag Madwizard].&lt;br /&gt;
* [http://www.ere.co.th/(gs5afz55q5idyyn0a1ibkl45)/default.aspx?RedirectPage=Products&amp;amp;RedirectPage1=ProductsDetail&amp;amp;ProductID=56 JTAGAVRU1] (AVR JTAGICE kompatibel, USB, 1.8-5.5V)&lt;br /&gt;
* [http://www.avrfreaks.net/index.php?module=Freaks%20Tools&amp;amp;func=viewItem&amp;amp;item_id=630 JTAGcable II] (AVR JTAGICE kompatibel, USB, 1.8-6 V)&lt;br /&gt;
* [http://www.miklobit.com/JTAG_TWICE.530+B6Jkw9Mw__.0.html MB-JTAG-TWICE] (AVR JTAGICE kompatibel, RS232, 2.7-5.5V, +ISP STK500v2) - Free update to version compatible with AVR JTAG MKII (coming soon)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Programmer und Debugger für USB (MKI) &lt;br /&gt;
* link tot 20100521 [http://www.paktek-shop.de/epages/61807596.sf/de_DE/?ObjectPath=/Shops/61807596/Categories/Produkte/AVR-Programmer]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ARM JTAG ==&lt;br /&gt;
&lt;br /&gt;
=== USB Anschluss auf Basis des FTDI FT2232 ===&lt;br /&gt;
* [http://elk.informatik.fh-augsburg.de/hhweb/doc/openocd/usbjtag/usbjtag.html USB to JTAG Interface] von Hubert Högl, Schaltplan&lt;br /&gt;
* [http://www.embedded-projects.net/index.php?page_id=175 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!!!)&lt;br /&gt;
* [http://www.amontec.com/ Amontec] JTAGkey, JTAGkey-Tiny&lt;br /&gt;
* [http://section5.ch/icebear/ section5 ICEbear] ICEbear (Plus|Light) JTAG adapter, eigentlich für Blackfin, aber funktioniert auch mit OpenOCD, goJTAG, urjtag, etc.&lt;br /&gt;
* [http://www.luminarymicro.com/products/ekk-lm3s811_evaluation_kit.html EKK-LM3S811] von LMI. Auf dem Testboard ist ein &amp;quot;on-board&amp;quot; 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.)&lt;br /&gt;
*[http://www.segger.com/cms/jlink.html SEGGER J-Link] sehr professioneller schneller JTAG Adapter. Für nichtkommerziellen Einsatz gibt es den J-Link Edu schon für 50€. Bei [http://www.wayengineer.com/index.php?main_page=product_info&amp;amp;cPath=50_51&amp;amp;products_id=105&amp;amp;zenid=p5vhfc7e8ttnkdcbca6plo3oo2 WayEngineer] gibt es ihn ganz günstig für 15$ + Versandkosten.&lt;br /&gt;
* [http://www.olimex.com/dev/arm-usb-ocd.html ARM-USB-OCD] von Olimex&lt;br /&gt;
* [http://www.signalyzer.com/ Xverve Signalyzer Tool]&lt;br /&gt;
&lt;br /&gt;
=== Parallelport-Anschluss (Wiggler und Wiggler-&amp;quot;kompatibel&amp;quot;) ===&lt;br /&gt;
* [http://www.macraigor.com/hwproducts.htm Macraigor] Original Wiggler&lt;br /&gt;
* [http://www.olimex.com/dev/arm-jtag.html Olimex ARM-JTAG] Wiggler-Nachbau&lt;br /&gt;
* [http://www.k9spud.com/jtag/ k9spud Wiggler-Schaltplan]&lt;br /&gt;
* [http://web.archive.org/web/20060411074457/http://bbs.circuitcellar.com/phpBB2/viewtopic.php?p=10059&amp;amp; bigakis Wiggler-Schaltplan] (74HC244 Levelshifter, BC547 Transistor zum Invertieren)(&#039;&#039;&#039;Webarchiv-Link&#039;&#039;&#039;,Orginal gelöscht)&lt;br /&gt;
* [http://wiki.openwrt.org/doc/hardware/port.jtag.cables Wiggler Schaltplan] von OpenWRT (ebenfalls mit 74HC244). &lt;br /&gt;
* [http://www.st.com/stonline/products/literature/um/12322.pdf ST FlashLink JTAG Programming Cable] STM Application-Note&lt;br /&gt;
*[http://www.frozeneskimo.com/electronics/arm-tutorials/jtag-wiggler-clone/ JTAG Wiggler Clone] &lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Vollständige&amp;quot; Belegung des Wiggler-Clones von Olimex (Quelle: sparkfun-Forum)&lt;br /&gt;
* DB25.2 -&amp;gt; INVERSE -&amp;gt; JTAG.15 (NTRST) (mthomas: hier ist wohl nSRST gemeint)&lt;br /&gt;
* DB25.3 -&amp;gt; JTAG.7 (TMS)&lt;br /&gt;
* DB25.4 -&amp;gt; JTAG.9 (TCK)&lt;br /&gt;
* DB25.5 -&amp;gt; JTAG.5 (TDI)&lt;br /&gt;
* DB25.6 -&amp;gt; JTAG.3 (TRST)&lt;br /&gt;
* DB25.9 -&amp;gt; VCC for the Level shifter i.e. JTAG enable/disable&lt;br /&gt;
* DB25.11 &amp;lt;- JTAG.13 (TDO)&lt;br /&gt;
* DB25.13 &amp;lt;- Target VCC sense (only when JTAG is enabled i.e. DB26.9 = 1) &lt;br /&gt;
&lt;br /&gt;
DB25.18, DB25.19, DB25.20, DB25.21, DB25.22, DB25.23, DB25.24, DB25.25 werden mit GND verbunden.&lt;br /&gt;
&lt;br /&gt;
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.&amp;amp;nbsp;B. OpenOCD oder H-JTAG) wird diese Verbindung nicht benötigt.&lt;br /&gt;
&lt;br /&gt;
Man beachte die Beschaltung von SRST und TRST: &lt;br /&gt;
&lt;br /&gt;
Üblicherweise wird Pin DB25.2 des Druckeranschlusses über eine Inverterschaltung (NPN Transistor) mit dem Reset-Pin des ARM-Controllers verbunden (&#039;&#039;&#039;nSRST&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Pin DB25.6 des Druckeranschlusses wird über Levelshifter direkt mit dem &#039;&#039;&#039;TRST&#039;&#039;&#039;-Pin des Controllers verbunden. In manchen Schaltplänen findet man auch für TRST einen Inverter, aber dies scheint eher unüblich. &lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;übersetzen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
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.&amp;amp;nbsp;B. der Olimex Wiggler-Nachbau (&amp;quot;ARM-JTAG&amp;quot;), nutzen eine Kombination aus einem 74AC244 und einem 74LCX244.&lt;br /&gt;
&lt;br /&gt;
=== sonstige ===&lt;br /&gt;
&lt;br /&gt;
* Abatron BDI2000&lt;br /&gt;
* [http://www.amontec.com/index.shtml Amontec] JTAG Accelerator, Chameleon POD&lt;br /&gt;
* AZ-Electronics&lt;br /&gt;
* JtagConnection&lt;br /&gt;
* [http://www.lauterbach.de/mindex.html Lauterbach] Trace&lt;br /&gt;
* Macraigor Systems LLS&lt;br /&gt;
* Peedi&lt;br /&gt;
* Rowley Associates CrossConnect&lt;br /&gt;
&lt;br /&gt;
=== Anschlussbelegung ===&lt;br /&gt;
&lt;br /&gt;
Auf Evaluation-Boards verschiedener Hersteller (z.&amp;amp;nbsp;B. Atmel, IAR, Keil, Olimex) ist die JTAG-Schnittstelle über einen 20-poligen Wannenstecker (2*10, Raster 2,54mm) herausgeführt.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 | 1 Vcc  &lt;br /&gt;
 | 2 NC  &lt;br /&gt;
 |-&lt;br /&gt;
 | 3 nTRST&lt;br /&gt;
 | 4 GND &lt;br /&gt;
 |-&lt;br /&gt;
 | 5 TDI&lt;br /&gt;
 | 6 GND&lt;br /&gt;
 |-&lt;br /&gt;
 | 7 TMS&lt;br /&gt;
 | 8 GND&lt;br /&gt;
 |-&lt;br /&gt;
 | 9 TCK&lt;br /&gt;
 | 10 GND&lt;br /&gt;
 |-&lt;br /&gt;
 | 11 GND&lt;br /&gt;
 | 12 GND&lt;br /&gt;
 |-&lt;br /&gt;
 | 13 TDO&lt;br /&gt;
 | 14 GND&lt;br /&gt;
 |-&lt;br /&gt;
 | 15 nRESET/nSRST&lt;br /&gt;
 | 16 GND&lt;br /&gt;
 |-&lt;br /&gt;
 | 17 NC&lt;br /&gt;
 | 18 GND&lt;br /&gt;
 |-&lt;br /&gt;
 | 19 NC&lt;br /&gt;
 | 20 GND&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Neuerdings propagiert ARM eine sehr kompakte Variante mit 2*5 Pins in einem 1,27 mm Raster:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 | 1 Vcc  &lt;br /&gt;
 | 2 TMS  &lt;br /&gt;
 |-&lt;br /&gt;
 | 3 GND&lt;br /&gt;
 | 4 TCK&lt;br /&gt;
 |-&lt;br /&gt;
 | 5 GND&lt;br /&gt;
 | 6 TDO&lt;br /&gt;
 |-&lt;br /&gt;
 | 7 RTCK&lt;br /&gt;
 | 8 TDI&lt;br /&gt;
 |-&lt;br /&gt;
 | 9 GND&lt;br /&gt;
 | 10 nRESET/nSRST&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Daneben existiert noch eine weniger gebräuchliche aber dokumentierte Variante mit 14 Polen (2*7). &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Der 10-polige JTAG Stecker von mmvisual ===&lt;br /&gt;
mmvisual hat mit dieser Steckerbelegung die Standard JTAG Schnittstelle erweitert:&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;perfekten&amp;quot; Stecker designt der viele Funktionen beinhaltet.&lt;br /&gt;
&lt;br /&gt;
[[bild:jtag-debug-port10.png]]&lt;br /&gt;
&lt;br /&gt;
==== Die Funktionen ====&lt;br /&gt;
* JTAG&lt;br /&gt;
* SWD&lt;br /&gt;
* Debug-UART-Anschluss (verbunden mit einem freien UART vom STM32) (alternativ ein MAX232 Chip dazwischen schalten)&lt;br /&gt;
* Weniger Platzbedarf auf der Platine (Standard-JTAG 20 Polig)&lt;br /&gt;
* Über 4-Poligen Würfel kann der UART benutzt werden (Pin 7/8/9/10)&lt;br /&gt;
* Es kann ein Jumper gesteckt werden für eine Option (Pin 9/10) ohne dass es sich mit dem RS232 Chip beißt (sofern er eingebaut wurde)&lt;br /&gt;
* Über einen 5-Poligen einreihigen Stecker kann SWD verwendet werden (Pin 1/3/5/7/9)&lt;br /&gt;
* den ganzen Stecker braucht es nur, wenn man den herkömlichen JTAG nutzen möchte.&lt;br /&gt;
* Kurzschlussschutz, da GND und +3V3 nicht gegenüber liegen&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
Interne Boot-ROM (und ohne die BOOT-Pins) aus. Ich habe den in die ersten 8KB Flash programmiert.&lt;br /&gt;
* Das PC-Programm senden über den UART den Befehl &amp;quot;GoTo Bootloader&amp;quot;, damit wird mein Bootloader angesprungen.&lt;br /&gt;
* Dann sendet das PC Programm die Update-Daten.&lt;br /&gt;
* Wenn fertig, dann geht es zurück in die Applikation.&lt;br /&gt;
* Der Bootloader ist immer beim Einschalten des Boards aktiv. Sobald eine Tastenkombination gedrückt wird, bleibt er &amp;quot;hängen&amp;quot; und irgend welche LEDs blinken. Also wenn das Flash &amp;quot;Zerschossen&amp;quot; sein sollte kann man mit einem Restart/Tasten den Bootloader aktivieren und erneut den Update ausführen.&lt;br /&gt;
* Der ST eigene Bootloader hat mir nicht gefallen, weil da keine LED&#039;s Blinken und dem User sagen, &amp;quot;Hallo ich lebe und bin im Bootloader&amp;quot;.&lt;br /&gt;
* Wenn die Tasten beim Einschalten nicht gedrückt werden, dann springt der Bootloader in die Applikation&lt;br /&gt;
* Der Bootloader kann jeden belibigen UART nutzen.&lt;br /&gt;
&lt;br /&gt;
[http://www.mikrocontroller.net/topic/174413 Diskussion zum 10-Poligen JTAG Stecker]&lt;br /&gt;
&lt;br /&gt;
==== Die Adapterplatine ====&lt;br /&gt;
Mit 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]]&lt;br /&gt;
Die Platine ist 33x19mm klein.&lt;br /&gt;
&lt;br /&gt;
==== JTAG-Adapter ====&lt;br /&gt;
Ein JTAG Adapter mit 10-poligem JTAG Stecker ist in Arbeit. Als Vorlage wurder OOCDLink verwendet. Leider klappt das mit dem OpenOCD noch nicht richtig.&lt;br /&gt;
Ich wäre Dankbar für Unterstützung.&lt;br /&gt;
Zum Forum: http://www.mikrocontroller.net/topic/174413&lt;br /&gt;
&lt;br /&gt;
=== 10-pin JTAG im 20&#039;tel-Zoll Raster ===&lt;br /&gt;
&lt;br /&gt;
* Forumsbeitrag [http://www.mikrocontroller.net/topic/188659#1836129 &amp;quot;neuer JTAG-Stecker für ARM&amp;quot;]&lt;br /&gt;
* [http://www.keil.com/support/man/docs/ulink2/ulink2_hw_connectors.htm Keil ULINK2] (und Pinouts anderer JTAG-Stecker)&lt;br /&gt;
&lt;br /&gt;
== MSP430 JTAG ==&lt;br /&gt;
&lt;br /&gt;
Anschluß an Parallelport: &lt;br /&gt;
* [http://elmicro.com/files/olimex/msp430-jtag-d.pdf Olimex MSP430 JTAG (PDF)] bzw. ([http://www.olimex.com/dev/images/msp430-jtag-d-sch.gif (GIF)]). Siehe auch Diskussion im [http://www.mikrocontroller.net/topic/57208#442620 Forum].&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/90754#776070 Forumsbeitrag] mit Anhang eines chinesischen? Schaltplans (PDF)&lt;br /&gt;
&lt;br /&gt;
Anschluß an USB/Seriell:&lt;br /&gt;
* [http://goodfet.sourceforge.net/ 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 [http://events.ccc.de/congress/2009/Fahrplan/events/3490.en.html 26C3 Vortrag])&lt;br /&gt;
&lt;br /&gt;
== FPGA JTAG ==&lt;br /&gt;
&lt;br /&gt;
* Für Xilinx&lt;br /&gt;
** [http://www.freewebs.com/lykos1986/cpldprogrammer.htm Xilinx JTAG programmer] ([[CPLD]], [[FPGA]])&lt;br /&gt;
** [http://www.embedded-projects.net/index.php?page_id=157 Xilinx JTAG XSVF Player mit USBprog] ([[CPLD]], [[FPGA]])&lt;br /&gt;
** [http://www.mikrocontroller.net/articles/Xilinx_USB-JTAG-Adapter Xilinx Platform Cable I Nachbau] - Nachbau des Originalem Xilinx Platform Cable I (DLC9)&lt;br /&gt;
** [http://warmcat.com/milksop/cheaptag.html Cheaptag] - Xilinx Parallel Jtag programming cable&lt;br /&gt;
** [http://embdev.net/topic/139121#new XSVF Player FTDI Bitbang] - XSVF Player with FTDI Bitbang mode&lt;br /&gt;
&lt;br /&gt;
* Für Altera&lt;br /&gt;
** [http://translate.google.com/translate?js=n&amp;amp;prev=_t&amp;amp;hl=en&amp;amp;ie=UTF-8&amp;amp;layout=2&amp;amp;eotf=1&amp;amp;sl=auto&amp;amp;tl=en&amp;amp;u=http%3A%2F%2Fmarsohod.org%2Findex.php%2Fourblog%2F11-blog%2F163-marsblaster Marsblaster] für Altera FPGA, serieller Port&lt;br /&gt;
** [http://www.altera.com/literature/ug/ug_bbii.pdf ALTERA ByteBlaster]&lt;br /&gt;
** [http://www.entner-electronics.com/tl/index.php/eeblaster.html EEBlaster], sehr günstig, kompatibel zu ALTERA USB-Blaster&lt;br /&gt;
** [http://www.pyroelectro.com/tutorials/byteblaster/index.html Build A ByteBlaster] bei www.pyroelectro.com&lt;br /&gt;
** [http://www.ixo.de/info/usb_jtag/ USB-JTAG-Adapter], kompatibel zu ALTERA USB-Blaster&lt;br /&gt;
&lt;br /&gt;
* ColdFire BDM Pod&lt;br /&gt;
** [http://forums.freescale.com/t5/68K-ColdFire-reg-Microprocessors/TBLCF-open-source-debugging-cable/m-p/7543 TBLCF open source debugging cable]&lt;br /&gt;
** [http://www.rockbox.org/wiki/IriverBDM IriverBDM]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- VERALTETE LINKS - PRODUKTE WERDEN DORT NICHT GEFUNDEN&lt;br /&gt;
* FCPU-X Platform Cable USB JTAG cable&lt;br /&gt;
** Bezugsquelle (DE): [http://www.vht-impex-shop.de/product_info.php?info=p786_HW-USB-platform-cable--FCPU-X-platform-cable-similar-to-HW-USB-Kabel-for-Xilinx-evaluation-boards-etc-.html&amp;amp;XTCsid=e613a7119493deac52e83e9038ce131a http://www.vht-impex-shop.de]&lt;br /&gt;
** Bezugsquelle (US): [http://www.celeritous.com/estore/index.php?main_page=product_info&amp;amp;cPath=1&amp;amp;products_id=129 http://www.celeritous.com] &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Universal JTAG Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Versaloon ===&lt;br /&gt;
&lt;br /&gt;
[http://www.versaloon.com/ Versaloon] 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: &lt;br /&gt;
* STM8 support(SWIM)&lt;br /&gt;
* STM32 support(ISP/JTAG/SWD) siehe auch Forumbeitrag von Bingo [http://www.mikrocontroller.net/topic/202785]&lt;br /&gt;
* LPC1000 support(ISP/JTAG/SWD)&lt;br /&gt;
* LM3S support(JTAG/SWD)&lt;br /&gt;
* AT91SAM3 support(JTAG/SWD)&lt;br /&gt;
* AT89S5X support(ISP)&lt;br /&gt;
* PSOC1 support(ISSP)&lt;br /&gt;
* MSP430(without TEST) support(JTAG)&lt;br /&gt;
* C8051F support(C2/JTAG)&lt;br /&gt;
* AVR8 support(ISP/JTAG)&lt;br /&gt;
* LPC900 support(ICP)&lt;br /&gt;
* HCS08 support(BDM)&lt;br /&gt;
* HCS12(X) support(BDM)&lt;br /&gt;
* SVF support(JTAG)&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
&lt;br /&gt;
== AVR JTAG ==&lt;br /&gt;
&lt;br /&gt;
* [[AVR-Studio]] (Windows)&lt;br /&gt;
* [[GDB]] in Verbindung mit [http://avarice.sourceforge.net/ AVaRICE] und AVR JTAGICE kompatibler Hardware. (Linux)&lt;br /&gt;
&lt;br /&gt;
== ARM JTAG ==&lt;br /&gt;
&lt;br /&gt;
* [[GDB]] bzw. Insight und auf die ARM JTAG Hardware abgestimmte GDB-Server (OCDRemote, [http://openocd.berlios.de/ OpenOCD], BDI2000, Peedi)&lt;br /&gt;
* [http://www.hjtag.com/ H-JTAG] und RDI-kompatible Debugger (SDT2.51, ADS1.2, RealView and IAR)&lt;br /&gt;
* Herstellerspezifische Software z.&amp;amp;nbsp;B. von Lauterbach&lt;br /&gt;
&lt;br /&gt;
== FPGA JTAG ==&lt;br /&gt;
&lt;br /&gt;
* Altera: Quartus Programmer (quartus_pgm)&lt;br /&gt;
* Lattice: ToDo...&lt;br /&gt;
* Xilinx: Impact, xc3sprog, ...&lt;br /&gt;
&lt;br /&gt;
== Allgemeine Tools ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.topjtag.com TopJTAG]: boundary-scan software for circuit debugging and flash programming.&lt;br /&gt;
* [http://www.ricreations.com/index.html Universal Scan]&lt;br /&gt;
* [http://urjtag.org UrJTAG]: Kommandozeilentool für Boundary Scan, FPGA und CPLD und Speicher lesen und schreiben u.v.a.m., Nachfolger von openwince JTAG Tools.&lt;br /&gt;
* [http://www.gojtag.com/ goJTAG]: graphisches Boundary-Scan-Tool zum manuellen Durchtesten von Verbindungen, besonders für Nicht-JTAG-Experten geeignet. Plattformunabhängig, da in Java geschrieben. Funktioniert im Prinzip mit allen FT2232(H) basierten Adaptern.&lt;br /&gt;
* [http://wesche.we.ohost.de/ FT2232 BoundaryScan Tool]: free boundary-scan software for flash programming [S29GL128N, S29GL256N, S29GL512N, M25PX16, M25PX32, M25PX64, etc ].&lt;br /&gt;
&amp;lt;!-- link tot 20100521 * [http://www.rsn-tech.demon.co.uk/pjtag/pjtag.html Pesonal JTAG]: halbfertiges Hobbyprojekt, ist bissel buggy, aber kleine Sachen gehen damit. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Anwendungen ==&lt;br /&gt;
&lt;br /&gt;
*[http://www.eetimes.com/General/DisplayPrintViewContent?contentItemId=4207333 Debugging the Linux kernel with JTAG] von Alexander Sirotkin auf eetimes.com (LPC3250 mit FemtoLinux, OpenOCD)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR]]&lt;br /&gt;
[[Kategorie:ARM]]&lt;br /&gt;
[[Kategorie:FPGA und Co]]&lt;br /&gt;
[[Kategorie:Datenübertragung]]&lt;/div&gt;</summary>
		<author><name>93.82.133.8</name></author>
	</entry>
</feed>