ATMEGA644 JTAG disabled in SW :-(

OP #4838517
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
OP #4838658
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
#4839193
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren