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.
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.
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
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.
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.
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?
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.
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
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.
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.
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.
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
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.