Inhalt des Dokuments
AVR JTAG
Zur Hardware-Emulation steht der JTAG-Emulator zur Verfügung der das Code-Debugging auf der Zielhardware ermöglicht.
Hier findet sich neben den Layouts und der benötigten Software eine Anleitung zum Herstellen eines eigenen AVR JTAG Adapters.
Die Nutzung dieser Layouts und der Software
ist nur für privaten Gebrauch gestattet.
Zur Bewältigung immer aufwendigerer Softwarprojekte bestand der Wunsch nach einem JTAG-Emulator. Auf der Webseite von Frank Erdrich (www.uc-projects.com) ist ein DIY JTAG für Atmel Contoller vorgestellt, der für den Einsatz im Labor angepasst wurde.
Eigenschaften
- In-System-programmieren des Zielsystems
- Debugging des Zielsystems
- Datenübetragung per RS232
- Für 3,3V und 5V Systeme
- Einfacher Aufbau
- Vollsändig zum Original JTAG-ICE kompatibel
Hardware
Die Hardware ist, anders als beim Original JTAG-ICE von Atmel, relativ simpel. Sie besteht eigentlich nur aus einem Atmel µController und einem RS232 Pegelwandler inkl. ein wenig Hühnerfutter und Stecker für RS232 und der JTAG-Schnittstelle. Für die Takterzeugung ist ein Quarz mit 7,3728 MHz zuständig, die gleiche Frequenz, welche auch vom Original von Atmel benutzt wird.
Die Spannungsversorgung des Interfaces übernimmt das Zielsystem (also das zu programmierende und zu debuggende µController-System), wobei ein 10 µF Kondensator die Spannung puffert. Es kann, den richtigen Controller (z.B. ATmega16-8AI) vorausgesetzt, mit 3,3 V oder mit 5 V betrieben werden. Dabei ist eine Kontrolle der Spannung mittels AVR-Studio möglich. Beim Betrieb mit 3,3 V sollte auch darauf geachtet werden, dass der RS232-Pegelwandler 3,3 V kompatibel ist (wie z.B. MAX3232).Zusätzlich sind noch 2 Leuchtdioden zur Statusanzeige verbaut. Eine davon zeigt an, ob die Schaltung unter Spannung steht, die andere zeigt JTAG-Aktivität an.
Software
Die Software wird vom Atmel AVR-Studio zur Verfügung gestellt wird. Man braucht lediglich einen Bootloader, der den Erstkontakt zum AVR-Studio herstellt und das Studio veranlaßt, die aktuelle JTAG-Software in den Controller zu laden. Vom Bootloader gibt es zwei Versionen, eine für den Mega163 und eine für den Mega16. Alles in allem setzt der Bootloader auf der App-Note AVR910 auf.
Zu allererst muss man allerdings den Bootloader auf den Controller bekommen. Programmiert wird der Controller mittels Pony-Prog. (Es sollte auch jede andere ISP-Soft- und Hardware funktionieren, auch Atmels ISP-Programmer mit dem AVR-Studio.)
Installation des Bootloaders
Vorbereitung:
Zuerst muss der Bootloader mittels SPI auf den Controller des JTAG-Interfaces programmiert werden. Da ich aber keine ISP-Schnittstelle vorgesehen habe, muss man über die JTAG-Schnittstelle programmieren. Allerdings ist die Reset-Leitung nicht über diese Schnittstelle zu erreichen. Deshalb muss zum Programmieren des Bootloaders eine extra Leitung angelötet werden.
Pinbelegung JTAG-Stecker für ISP-Programmierung:
- JTAG Pin 1: TCK -> an Pin7:SCK vom Programmer
- JTAG Pin 2 + Pin 10: GND -> an Pin 10 + Pin 8 + Pin 6 + Pin 4 vom Programmer - > GND Netzteil
- JTAG Pin 3: TDO -> Pin 9: MISO vom Programmer
- JTAG Pin 4 + Pin 7: +5V -> Pin 2: +5V vom Programmer -> +5V Netzteil
- JTAG Pin 5: TMS -> N.C.
- JTAG Pin 6: Sense -> N.C.
- JTAG Pin 8: NC
- JTAG Pin 9: TDI -> Pin 1: MOSI vom Programmer
- JTAG Reset -> Pin 5: CS vom Programmer
Bei der Programmierung ist auf eine ausreichende Spannungsversorgung zu achten, das sonst das Flashen fehlschlägt. Also lieber mit 5,1 V betreiben.
Programmieren:
Nun sollte man den, dem verbauten Controller entsprechenden, Bootloader aufspielen. Hat das funktioniert, muß man die Fuses entsprechend unten stehendem Bild programmieren.
Sind die Fuses gesetzt, wird das JTAG-ICE über den COM-Port mit dem PC verbunden und das AVR-Studio gestartet. Nun wählt man "AVRPROG" als Programmieradapter aus und wählt im Installationspfad vom AVR-Studio folgendes File zum Programmieren aus "\Programme\Atmel\AVR Tools\JTAGICE\Upgrade.ebn". Nachdem man dieses File erfolgreich in das JTAG-Ice geschrieben hat, muss man mittels Pony-Prog über die ISP-Schnittstelle wieder die Fuses umprogrammieren:
Wenn man das JTAG-ICE nun wieder über COM-Port anschließt und das AVR-Studio startet, sollte das Interface erkannt werden. Über "Tools" "JTAGICE" kann man folgende Information abrufen:
Hex-Files zum Programmieren:
An dieser Stelle nochmals vielen Dank an Frank Erdrich (www.uc-projects.com) für die Möglichkeit, diese Anleitung hier zur Verfügung zu stellen.





