JTAG-Connector für Atmel AVRs - Fragen zur Belegung

Jul 24, 2005 3 Replies

Hi NG, ich scheitere momentan am JTAG-Debugging meiner ATMEGA16 based Schaltung.



Der Olimex AVR-JTAG-USB bringt genauso wie ein selbsgebauter JTAG die Fehlermeldung "no valid JTAG-ID" unter AVR Studio - sehr unbefriedigend.



Auf der Fehlersuche bin ich nun auf einige Fragen gestossen:


  1. auf der Olimex-Website
    formatting link
    kann man die Stecerbelgeung einsehen.

Bei mir liegen an Pin 4 und 7 jeweils 5V der Stromversorgung vom Targetsystem an. Korrekt ? Vref sollte dann im AVRStudio Auskunft über die Versorgungsspannung am Target geben.


  1. TDO, TDI und TMS haben jeweils gegen Vcc oder GND gemessen sehr hohe Widerstände (~30MOhm), nicht so TCK. Das hat gegen Masse "nur" 115 kOhm. Korrekt ? Ich kann es leider weder an einem anderen ATMega noch an einer funktionierenden Schaltung messen.


  1. Rätselhaft sind mir die beiden Pins 6 & 8 NSRST und NTRST. trotz langer Suche im Netz habe ich nicht den Sinn des zweiten Pins gefunden. Bei mir führt Pin 6 zum Reset-EIngang des ATMega, Pin 8 ist unbelegt.



Irgendwo habe ich mal gelesen, für die Funktion sei der Reset gar nicht zwinglich notwednig, nur könne das Target-System per Software resettet werden.


Hoffe, es kann mir jemand helfen


Gruss Nico


Aehnlich

Welchen Programmer verwendest Du? Zumindestens AvrStudio4->Tools->Program AVR kann kein ELF. Und AvrStudio4->Tools->AvrProg erkennt den Jtag Adapter nicht.

Bitte kein TOFU.

Uwe Bonnes bon@elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------

"Nicolas Nickisch" schrieb:

Nur spaßeshalber, was sagt ein avarice -v denn dazu?

(Du plenkst.)

Ja, korrekt. Pin 7 müsste den JTAG-Dongle aus dem Target versorgen (braucht man bei diesen Clones daher vermutlich zwingend, beim originalen ICE eher nicht, da es eigenversorgt ist), Pin 4 dient der Rückmeldung über die Versorgungsspannung des Targets.

Wobei die wohl bei den Clones immer 5,0 V sein dürfte. ;-) Schließlich versorgst du ja das ICE aus dem Target, damit hast du keinen Vergleich mehr zum Messen. Pin 4 muss trotzdem verbunden sein, da mit fehlender Vtarget-Rückmeldung das ICE nicht arbeiten möchte.

Genau so ist es. /TRST ist vom JTAG-Standard offenbar vorgesehen, wird aber bei den ATmegas nicht implementiert. Datenblattzitat ATmega128:

``The IEEE std. 1149.1 also specifies an optional TAP signal; TRST -- Test ReSeT -- which is not provided.''

nSRST ist sowohl Ein- als auch Ausgang. Als Ausgang kann man damit das Target zurücksetzen. Das ist insbesondere dann nötig, wenn die Applikation als einen ihrer ersten Schritte den JTAG-Port abschaltet, weil sie die entsprechenden IO-Pins gern für sich selbst benutzen möchte. In diesem Falle würde das ICE /RESET anlegen und sofort nach dem Reset die JTAG-Initialisierung durchziehen. Als Eingang liest das ICE darüber, ob ein externer Reset den ATmega ereilt (solange der Chip im Reset ist, arbeitet das ICE nicht). Wenn du das JTD-Bit in MCUCSR nicht anfasst und die externen Resets dich nicht interessieren, musst du diesen Anschluss nicht mit /RESET verbinden. Das originale JTAG ICE hat intern einen Pullup, ich hoffe, die Clones haben das auch.

Die JTAG-Fuse hast du aber nicht abgeschaltet? Das äußert sich nämlich ebenfalls in einer vermeintlichen JTAG ID 0xffff, mit der das ICE nicht zu arbeiten gewillt ist.

Jörg Wunsch "Verwende Perl. Shell will man können, dann aber nicht verwenden." Kristian Köhntopp, de.comp.os.unix.misc

Hallo Nicolas,

hast du dir mal die FUSE-Bits angeschaut? Meines wissens kann über diese die JTAG-Schnittstelle deaktivert werden.

Gruß, Florian

Nicolas Nickisch schrieb:

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required