Forum: Mikrocontroller und Digitale Elektronik ATMEGA644 JTAG disabled in SW :-(


von Thomas B. (xantiac)


Lesenswert?

Liebe Kollegen,

an meinem ATMEGA644 am PORTC4 (einer der JTAG Pins) habe ich eine LED.
Um die anzusteuern, muss ich in Software den JTAG ausschalten:

int main(void) {
  MCUCSR=(1<<JTD);
  MCUCSR=(1<<JTD);

Programmiert wird der Chip über JTAG Ice Mk2 und es hat anfangs auch 
richtig funktioniert. Seitdem ich die JTAG Schnittstelle im Code 
ausschalte, meldet der JTAGICE Mk2 einen Fehler: "Unable to enter 
programming mode". Ich fürchte ich habe eine Dummheit begangen. Wie 
lässt sich der Chip wieder über JTAG umprogrammieren? Reset manuell kurz 
low halten? An den Fuses habe ich nichts verfused.

Danke und Grüße
Karel

von Horst (Gast)


Lesenswert?

Einmal per ISP löschen dürfte das sicherste sein.

von Thomas B. (xantiac)


Lesenswert?

Liebe Kollegen,

was hat geholfen? Ich habe "Use external reset" angeklickt im AVR Studio 
- Device programming tool und den RESET Pin des Porzessors auf die JTAG 
Schnittstelle gelegt :-) So kann der JTAG ICE Mk2 den Porzessor direkt 
vorm Flashen resetten und bevor die Firmware anspringt, den Prozessor 
umprogrammieren.

Grüße
Karel

von Pandur S. (jetztnicht)


Lesenswert?

Der JTAG Port bei den kleinen Mega mit 44 pins wie den Mega 644 ist 
immer etwas unguenstig gelegen, es gibt eigentlich immer Konflikte mit 
anderer Peripherie. Ich konnt den JTAG noch in keinem Projekt verwenden. 
Hab immer mit dem ISP, dh MISO, MOSI, SCLK gearbeitet.

von Chris L. (kingkernel)


Lesenswert?

Was machst du, wenn du jedoch debuggen musst? Das wird bei 
umfangreicheren Projekten notwendig. Ich leg auf die JTAG-Pins, sofern 
notwendig, eigentlich immer nur sachen, welche für das Debuggen nicht 
notwendig sind oder auf die man verzichten kann. (Status-LEDs, den 
Status kann ich auch per Debugger sehen oder Eingabetaster, welche 
keinen Interrupt benötigen.)
Es sind ja "nur" 4 Leitungen, da muss man halt Effizient planen, beim 
Schaltplanentwurf.

von Thomas B. (xantiac)


Lesenswert?

Hi Chris,

genau, ich habe zwei Status-LEDs auf die JTAG Schnittstelle gelegt. Sie 
werden nicht im produktiven Gerät verwendet.
K.

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.