Forum: Mikrocontroller und Digitale Elektronik JTAG-Pins bei ATmega32 anderweitig nutzen


von ... Andi (Gast)


Lesenswert?

Hallo Leute,

ich habe folgendes Problem. Ich habe eine Hardware mit einem ATmega32. 
Die Hardware wird über JTAG programmiert (SPI wird wo anders benutzt und 
ist nicht herausgeführt). Da ich keine freien Pins mehr habe, bleiben 
nur JTAG-Pins, die sonst im Programm ja nix tun. Ist es möglich den 
ATmega über JTAG zu programmieren (JTAGEN-Fuse ist programmiert) und zur 
Laufzeit die JTAG-Pins als I/Os umzukonfigurieren?

Gruß

Andi

von Drehwurm (Gast)


Lesenswert?

Im MCUCSR:
1
• Bit 7 – JTD: JTAG Interface Disable
2
When this bit is zero, the JTAG interface is enabled if the JTAGEN Fuse is programmed. If this
3
bit is one, the JTAG interface is disabled. In order to avoid unintentional disabling or enabling of
4
the JTAG interface, a timed sequence must be followed when changing this bit: The application
5
software must write this bit to the desired value twice within four cycles to change its value.
6
If the JTAG interface is left unconnected to other JTAG circuitry, the JTD bit should be set to
7
one. The reason for this is to avoid static current at the TDO pin in the JTAG interface.

von ... Andi (Gast)


Lesenswert?

@Drehwurm

Danke, das habe ich auch gelesen. Die Frage ist, wenn ich das mache (das 
Bit JTD auf 1 setzen), kann ich dann die Hardware noch programmieren? 
Der Text sagt ja, hats schon jemand probiert? Ich würde ungerne eine 
funktionsfähige Baugruppe in den Sand setzen (habe nicht so viele zur 
Verfügung).

von (prx) A. K. (prx)


Lesenswert?

... Andi schrieb:

> Danke, das habe ich auch gelesen. Die Frage ist, wenn ich das mache (das
> Bit JTD auf 1 setzen), kann ich dann die Hardware noch programmieren?

Mit HVP und ISP ja, mit JTAG nein.

von Thomas (kosmos)


Lesenswert?

ich denke es geht, da dieses Bit nur in Software gesetzt bzw. gelöscht 
wird und nicht fest in den µC geschrieben wird. Während man den µC im 
Resetstatus hält sollte alles wieder beim alten sein. Ich würde eine 
Resetroutine schreiben die erst nach ein paar Sekunden JTAG ausschaltet 
so kann man wenn man will nach einem Reset gleich per JTAG 
losprogrammieren.

Ich schalte beim JTAG auch immer übers Programm aus und bei den Fuses 
ist es mir noch nicht aufgefallen.

von ... Andi (Gast)


Lesenswert?

Danke für die Antworten, dann werde ich es wohl ausprobieren müssen.

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.