Forum: Mikrocontroller und Digitale Elektronik AVR Dragon und JTAG, Reset bleibt aktiv?


von Stefan (Gast)


Lesenswert?

Hallo,
ich habe heute mal einen ATmega128 mit dem AVR Dragon programmiert. Über 
ISP funktioniert alles einwandfrei. Ich wollte trotzdem nochmal die 
programmierung über JTAG testen. JTAG ist schön, weil deutlich 
schneller. Ich habe den JTAG Header auf der Platine nach der Belegung 
von Atmel ausgeführt. Ich habe allerdings die Reset Leitung mit 
draufgeführt. Der Dragon programmiert auch schön brav den Mega128. 
Allerdings bleibt die Resetleitung auf low nach abgeschlossener 
programmierung. Nach Disconnect und Reconnect aus dem AVR Studio läuft 
der AVR dann auch los. Ich habe gelesen das es auch ohne Anschluss der 
Reset Leitung funktioniert, aber warum lässt der Dragon die Leitung 
nicht wieder los? Pull Up ist natürlich auf der Platine, es kommt also 
wirklich vom Dragon aus.

mfg
Stefan

von Fred S. (Gast)


Lesenswert?

Hallo Stefan,

inzwischen hast Du sicher eine Lösung gefunden (?). Ich entwickle gerade 
eine Platine mit einem JTAG-Adapter zur Programmierung des Prozessors 
mit dem Dragon und habe zudem vor, das JTD-Bit zu verändern, da ich die 
JTAG I/O-Pins auch für andere Zwecke benötige. Beim Suchen im Inet bin 
ich auf http://ltc.cit.cornell.edu/courses/ee476/AtmelStuff/dragon.pdf 
gestoßen, wo in der Tabelle auf S. 8 zum nSRST Pin steht: "This pin is 
also an input to the adapter so that the reset initiated on the target 
may be reported  to the AVR Dragon". Ein einfaches RESET Deines 
Prozessors bringt also vielleicht den Dragon dazu, die (open collector) 
Line freizugeben (hoffe ich...).

Viele Grüße

Fred

von Rudolph R. (rudolph)


Lesenswert?

Da bin ich vor einiger Zeit schon drüber gestolpert, das ist 
wahrscheinlich ein Fehler im AVR-Studio.

Einfach den Reset am JTAG nicht anschliessen und es funktioniert wie es 
soll.
Denn JTAG braucht den Reset überhaupt nicht.

Im Zweifel kann man im Layout den Reset ja auch über einen 
Konfigurations-Null-Ohm führen.

@Fred S
Wie soll der Dragon denn merken, dass man versucht, einen Reset 
auszulösen?
Ist der Pegel bei Null kannst Du solange Deinen Taster Reset-gegen-GND 
betätigen wie Du willst, da gibt es nichts zu detektieren.
Hochohmig mit VCC zu verbinden bringt auch nichts ausser Stromfluss.

von Fred S. (Gast)


Lesenswert?

Hallo Rudolph R.,
> @Fred S
> Wie soll der Dragon denn merken, dass man versucht, einen Reset
> auszulösen?
Ich gehe davon aus, dass die nSRST-Leitung nach Beenden des 
Programmiervorgangs abwechselnd als Ein-und Ausgang geschaltet wird, um 
genau das festzustellen. Habe die Info, dass es funktionieren soll, auch 
nur aus dem zitierten Dokument und nirgendwo behauptet, mehr Wissen dazu 
zu besitzen.

Ich werde, da ich das JTD-Bit setzen muss, auf jeden Fall eine volle 
Funktionalität der nSRST-Leitung benötigen, denn sonst kann ich meinen 
Prozessor nicht mehr programmieren, wenn ich JTD-gesetzt habe (siehe 
ATmega329P Datenblatt Version 8021C–AVR–08/07, Seite 315). Laut 
Dokumentation zum Dragon im AVR STudio geht das auch. Aber Dokumente 
sind bekanntlich geduldig...

Viele Grüße

Fred

von Fred S. (Gast)


Lesenswert?

Hier noch das Originaldokument von Atmel:

http://www.atmel.com/dyn/resources/prod_documents/doc2562.pdf (Seite 4).

Gruß

Fred

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.