Forum: Mikrocontroller und Digitale Elektronik Verlassen des DebugWireModus im Microchip Studio 7.0.x


von Roman R. (reiter86)


Angehängte Dateien:

Lesenswert?

Hallo,
Ich habe seit langem wieder das Atmel-Studio bzw. Micochip Studio 7.0.x 
in betrieb. Wollte einen Atmega 328P welcher sich auf dem Arduino-Board 
befindet beschreiben. Habe diesen mit dem Atmel-Ice erfolgreich 
beschrieben. Habe dann anschließend in den Einstellungen des Tools 
"DebugWire" ausgewählt wo eine Box erschien und ich einfach nur Enter 
gedrückt habe.

Kann den 328P nicht mehr programmieren da ich nicht von dem 
DebugWire-Modus wegkomme. Habe versucht den Debug erneut zu starten 
indem ich im Menüpunkt Debug/ "Start Debugging and Break" (1.png) 
auswählte und anschließend Debug/ "Stop Debugging" (2.png). Anschließend 
kam eine Meldung (3.png) welche ich mit Ja bestätigte und dann eine 
weitere Fehlermeldung (4.png)

Kann mich wer aufklären wie ich da wieder rauskomme?

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


Lesenswert?

Roman R. schrieb:
> Wollte einen Atmega 328P welcher sich auf dem Arduino-Board befindet
> beschreiben.

Lass mich raten: der hat einen Kondensator am /RESET-Pin, oder?

Mach den ab. Und schau nach, ob sie einen Pullup dran haben. Man braucht 
so um die 4,7 oder 10 kΩ Pullup (mal geht der eine Wert besser, mal der 
andere).

Das Dumme ist halt, dass die debugWIRE-Aktivierung eine Einbahnstraße 
ist: damit definierst du den /RESET-Pin zum debugWIRE-Pin um. Da er kein 
Reset mehr auslösen kann, funktioniert ISP so erst einmal nicht. Der 
Rückweg benötigt daher zwingend ein funktionierendes debugWIRE, denn der 
geht so, dass man mit einem debugWIRE-Kommando den /RESET-Pin temporär 
wieder zu /RESET macht, um auf diese Weise wieder ISP machen zu können. 
(Der Zustand hält bis zu einem Power-Cycle an, danach werden die Fuses 
neu eingelesen und folglich wird debugWIRE wieder aktiviert, falls DWEN 
noch gesetzt ist.)

debugWIRE selbst ist eine Art Monitor-ROM, damit hat dieser Modus nur 
Zugriff auf Ressourcen, auf die die CPU zugreifen kann. Fuses setzen 
geht (sinnvollerweise) von der CPU aus nicht, das braucht unbedingt 
einen Programmiermodus (ISP oder HV).

von Stefan F. (Gast)


Lesenswert?

Beim alten AVR Studio musste man einfach nur den Debugger der IDE 
starten und dann die Debug-Sitzung beenden.

Ich meine, dass avrdude das Problem automatisch behebt. Versuche mal, 
den Chip mit avrdude anzusprechen.

avrdude -p atmega328p -c atmelice_isp

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


Lesenswert?

Stefan ⛄ F. schrieb:
> Ich meine, dass avrdude das Problem automatisch behebt.

AVRDUDE versucht von sich aus, den debugWIRE-Modus zu deaktivieren, wenn 
die ISP-Aktivierung nicht geklappt hat. Das ist die von mir genannte 
temporäre Rückschaltung des /RESET-Pins. Danach hat man halt die 
Möglichkeit, einen neue Firmware per ISP zu flashen (das würde 
allerdings auch im dW-Modus gehen), oder aber man kann die Fuses ändern 
und DWEN wieder abschalten. Anders als *-Studio macht AVRDUDE dies 
jedoch nicht von sich aus, das muss man schon mit -U hfuse:... explizit 
selbst tun.

von Roman R. (reiter86)


Angehängte Dateien:

Lesenswert?

Den Pullup von 10k hatte ich schon drangehängt. Jedoch hat sich nach dem 
auslöten des Kondensators nichts geändert.

Mit AVRdude habe ich noch nichts gemacht. Das avrdudeGUI.exe konnte ich 
starten, aber die avrdude.exe nicht.

Habe jetzt einen Atmega328P und den externen Schwingquarz auf ein 
Steckbrett getan um das dort zu versuchen.
Muss feststellen, dass sich nichts geändert hat. Kann den Chip weder 
auslesen noch programmieren.
Wie wenn Microchip Studio aus dem Modus nicht rauskommt. Habe den PC neu 
gestartet, aber das selbe Problem.
Vl. ist das mit Microchip Studio doch nicht das Gelbe vom Ei.

von Gerald K. (geku)



Lesenswert?

Ich hatte beim MSP430G ebenfalls einen Konflikt zwischen der 
Resetschaltung und den Spywire Interface.

Lösung : ich habe Spywire und Resetschaltung mit einem Widerstand 
entkoppelt, da sonst der Kondensator der Resetschaltung die Flanken des 
Spywiresignals verschleift und es zu Bitfehler kommt.

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Roman R. schrieb:
> Den Pullup von 10k hatte ich schon drangehängt.

Dann kannst du es stattdessen mit 4,7 kΩ probieren.

> Jedoch hat sich nach dem
> auslöten des Kondensators nichts geändert.

Der ist eigentlich in dieser Schaltung auch nicht „im Weg“.

> Habe jetzt einen Atmega328P und den externen Schwingquarz auf ein
> Steckbrett getan um das dort zu versuchen.

Ohne irgendwelche /RESET-Beschaltung außer einem Pullup von 4,7 oder 10 
kΩ sollte es aber funktionieren. Natürlich auf dem Steckbrett nicht die 
Abblock-Kondensatoren vergessen sowie eine vollständige Verdrahtung von 
Vcc+AVcc und GND.

Einen Quarz brauchst du erst einmal nicht, ab Werk arbeiten die Teile 
mit dem eingebauten Oszillator.

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.