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

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

Reply to
Nicolas Nickisch
Loading thread data ...

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
 Click to see the full signature
Reply to
Uwe Bonnes

"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."
 Click to see the full signature
Reply to
Joerg Wunsch

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:

Reply to
Florian Pfanner

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.