JTAG Pins als IP verwenden

Gast #3563286
Lesenswert?

Hallo an alle,

ich hab da mal eine Frage: Ich programmiere meinen ATmega32 über JTAG. 
Ich würde das auch gerne so beibehalten, allerdings nach dem 
Programmieren diese PINs als IOs verwenden.

Ist das möglich? Ich dachte da an soetwas wie: JTAG softwareseitig zu 
beginn meines Programms deaktivieren und die Pins dann als normale IOs 
programmieren.

Geht das? Ist dann das flashen über JTAG nachwievor möglich?

Danke für hoffentlich hilfreiche Beiträge!

M.
Gast #3563304
Lesenswert?

Ich nochmal:

Eigentlich kann ich meine Frage etwas vereinfachen:

Natürlich kann man JTAG deaktivieren (JTD Bit im MCUCR Register). Meine 
Frage ist eigentlich, ob ich mich damit für immer aussperren, oder ob 
das Programmieren über JTAG dann noch möglich ist.


Danke. M.
Gast #3563323
Lesenswert?

Warum eigentlich nicht? Solange das Fusebit zum Disablen nicht gesetzt 
wird
hat der Controller nach dem Reset ja keine Ahnung wenn das 
JTAG-Interface
etwas von im will.

Zitat "nSRST muss nicht zwingend an /RESET des AVR gelegt werden; wenn 
er fehlt, kann das JTAG ICE eine schlafende CPU nicht wecken oder mit 
einem Controller arbeiten, dessen JTAG-Schnittstelle von der Software 
außer Betrieb genommen worden ist (Bit JTD im Register MCUCSR)"

aus: http://www.mikrocontroller.net/articles/JTAG
Gast #3563350
Lesenswert?

Danke für die antworten. Ich habe JTAG jetzt softwareseitig deaktiviert 
und kann die IO Pins nutzen. Dummerweise funktioniert nun eben das 
Flashen nicht mehr. Genau das habe ich befürchtet. Der Flashvorgang 
bricht ab mit der Meldung: "The tool has been disconnected". Reset ist 
angeschlossen.

hm hm hm... mist... hmmm.

M.
#3563464
Lesenswert?

Moritz D. schrieb:
> Svenska schrieb:
>> Du könntest das JTAG erst nach einer Sekunde abschalten, dann
>> kannst du
>> direkt nach dem Reset noch normal Flashen.
>
> Das versteh ich jetzt nicht?

1.) Eventuell braucht der JTAG Vorgang etwas Zeit, die du ihm geben 
solltest bis du JTAG deaktivierst.

2.) Wenn du mit JTAG debugen möchtest, ist es keine gute Idee JTAG per 
Software im Debuglauf zu deaktivieren.

3.) Solltest du bedenken, dass die an das JTAG angeschlossenen 
IO-Komponenten Einfluss auf die JTAG-Signallage haben.
Gast #3563467
Lesenswert?

Hi

Sieh mal in deine Hilfe zum JTAGICE3:

JTAGICE3->Software Integration->Debug options

Debug options

...

Use external reset

If your target application disables the JTAG interface, the external 
reset must be pulled low during programming. Selecting this option 
avoids repeatedly being asked whether to use the external reset.

MfG Spess
Gast #3563480
Lesenswert?

spess53 schrieb:
> If your target application disables the JTAG interface, the external
> reset must be pulled low during programming. Selecting this option
> avoids repeatedly being asked whether to use the external reset.
>
> MfG Spess

Tatsächlich half es, den externen Reset von Hand gedrückt zu halten. 
Danke für diesen Hinweis! Jetzt muss ich diese option nur noch finden.

Danke.
Gast #3563553
Lesenswert?

Also diese option verhindert nur, dass ich jedes mal gefragt werde. Ich 
versteh das jetzt so:

Wenn meine software JTAG deaktiviert, so muss ich beim programmieren 
Reset manuell drücken. Damit muss ich leben, richtig?

Wann soll man reset loslassen?

Vielen Dank

M.
Gast #3563609
Lesenswert?

Hi

>normalerweise sollte der Programmer Reset die ganze Zeit low halten.
>(sofern das richtig eingestellt ist)

Es geht um JTAG-Debugging. Da ist ein RESET normalerweise nicht 
notwendig.


>Also diese option verhindert nur, dass ich jedes mal gefragt werde.

So verstehe ich

Selecting this option avoids repeatedly being asked whether to use the 
external reset.

auch.

>Wenn meine software JTAG deaktiviert, so muss ich beim programmieren
>Reset manuell drücken. Damit muss ich leben, richtig?

Ist wohl der Preis für die 4 Pins.

>Wann soll man reset loslassen?

Spätesten wenn der Debugger anfängt das Programm zu laden hat er die 
Kontrolle über den AVR.

MfG Spess
Moderator Persönliche Seite #3563710
Lesenswert?

spess53 schrieb:
>> Wann soll man reset loslassen?
>
> Spätesten wenn der Debugger anfängt das Programm zu laden hat er die
> Kontrolle über den AVR.

Andererseits ist es auch völlig egal, man kann das auch die ganze
Zeit über (beispielsweise mit einem Jumper) auf low klemmen.  Erst,
wenn das Programm wieder arbeiten soll, muss man (logischerweise)
den /RESET-Anschluss wieder freigeben.

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