Forum: Mikrocontroller und Digitale Elektronik JTAG Pins als IP verwenden


von Moritz D. (Gast)


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.

von Moritz D. (Gast)


Lesenswert?

Korrektur im Titel: IP = IO. Sorry.

M.

von Moritz D. (Gast)


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.

von spess53 (Gast)


Lesenswert?

Hi

>Meine Frage ist eigentlich, ob ich mich damit für immer aussperren,

Nein

>oder ob das Programmieren über JTAG dann noch möglich ist.

Ja.

MfG Spess

von Chefkoch (Gast)


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

von Moritz D. (Gast)


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.

von Chefkoch (Gast)


Lesenswert?

Resetleitung evtl. in der Schaltung relativ niederohmig auf VCC gelegt, 
so das der Programmer keinen Reset auslösen kann?

von Mirco C. (Firma: s@Td) (mcontroller)


Lesenswert?

Sieht man den Reset den der Programmer am Device verursachen soll?
Sowas wie Statusled flackern o.ä.?

von Moritz D. (Gast)


Lesenswert?

Chefkoch schrieb:
> Resetleitung evtl. in der Schaltung relativ niederohmig auf VCC gelegt,
> so das der Programmer keinen Reset auslösen kann?

Nein.

Mirco Controller schrieb:
> Sieht man den Reset den der Programmer am Device verursachen soll?
> Sowas wie Statusled flackern o.ä.?

Leider nicht. Habe den jtag ice 3 von Atmeal.

von Svenska (Gast)


Lesenswert?

Du könntest das JTAG erst nach einer Sekunde abschalten, dann kannst du 
direkt nach dem Reset noch normal Flashen.

von Moritz D. (Gast)


Angehängte Dateien:

Lesenswert?

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?

von Marek W. (ma_wa)


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.

von spess53 (Gast)


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

von Moritz D. (Gast)


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.

von spess53 (Gast)


Lesenswert?

Hi

>Jetzt muss ich diese option nur noch finden.

Sieh mal unter Debug->Options and Settings... nach.

MfG Spess

von Moritz D. (Gast)


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.

von Mirco C. (Firma: s@Td) (mcontroller)


Lesenswert?

Hi,

normalerweise sollte der Programmer Reset die ganze Zeit low halten. 
(sofern das richtig eingestellt ist)
Schau dir evt. mal mit dem Oszi an was beim Programmieren mit dem 
Reset-Pin passiert.

von spess53 (Gast)


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

von Moritz D. (Gast)


Lesenswert?

Super. Danke für die hilfsbereitschaft, ich hab's jetzt verstanden und 
mit manuellem Reset drücken funktioniert das flashen auch.

Beste grüße, M.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


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.

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.