Forum: Mikrocontroller und Digitale Elektronik Simons Mikro-Web-Server, beim Debuggen gestorben


von Einhart (Gast)


Lesenswert?

Hallo Forum,

gerade habe ich 'mal wieder mit dem Dragon per debug-wire an Simons Code 
gebastelt. Einige Änderungen haben funktioniert, aber dann nach einer 
Änderung (Versuch den ADC einzubinden) lief der Code nicht mehr. 
Schlimmer allerdings: eine debug-wire Verbindung war nicht mehr 
herzustellen.

Auch per ISP ging keine Verbindung mehr. Dragon getestet - zum Glück OK. 
Dann den zweiten Mikro-Web-Server angeschlossen. Verbindung klappte, 
Programm geladen und gestartet - der Erfolg siehe oben.

Also kann man den Mega168 mittels Programmfehler beim Debuggen 
zerschießen. Hat irgenjemand eine Idee was da passiert? Kann man auf 
diese Art die Fuses verändern?

Ich habe einen neuen Mega168 eingelötet und jetzt läuft der eine Server 
wieder. Allerdings habe ich Angst weiter am Code zu fummeln. Meine kaum 
vorhandenen C Kenntnisse wollte ich eigentlich per try und error 
verbessern.

Irgendwelche Tipps?

Danke
Einhart

von Einhart (Gast)


Lesenswert?

Moin,
da mir niemand helfen wollte ;-) habe ich selbst arbeiten müssen. Das 
Verfahren einen eingelöteten AVR unbrauchbar zu machen:

DebugWire aktivieren. Debug eines Codes starten, der im PRR Register 
PRSPI auf 1 setzt. Das war's dann schon:

SPI geht nicht mehr da DebugWire aktiviert ist. DebugWire geht nicht 
mehr da dieser beim Reset sofort deaktiviert wird. Hätte ich nur das 
Mega168 Datenblatt gelesen:
• Bit 2 - PRSPI: Power Reduction Serial Peripheral Interface
If using debugWIRE On-chip Debug System, this bit should not be written 
to one.

Einzige Abhilfe: Chip auslöten und mit parallel Programmierung 
wiederbeleben.

Nur zur Info und Warnung

Gruß
Einhart

von Peter D. (peda)


Lesenswert?

Einhart wrote:
> da mir niemand helfen wollte ;-)

Dem kann ich nicht zustimmen.
Webserver ist doch eher ne exotische Anwendung auf MCs.
Daher gibts da nur äußerst wenige, die helfen können.


> habe ich selbst arbeiten müssen. Das
> Verfahren einen eingelöteten AVR unbrauchbar zu machen:

Dagegen hilft ein Bootloader, wenn man ihn denn vorher reingebrannt 
hätte.
Damit hätte man den Konflikt mit Debugwire leicht rückgängig machen 
können, indem man ein anderes Programm flasht.
Außerdem besteht keine Gefahr des Verfusens mehr, da er ja nicht fusen 
kann.
Ein Bootloader ist daher immer zu empfehlen.


Peter

von Einhart (Gast)


Lesenswert?

Hallo Peter,

das mit dem nicht helfen wollen war nicht ernst gemeint: siehe ;-)

Danke für den Tipp mit dem Bootloader! Das muss ich ausprobieren. Das 
Aus- und Einlöten macht man nicht zu oft - sonst ist die Platine hin.

Gruß und danke

Einhart

von Peter D. (peda)


Lesenswert?

Ich habe Debugwire bisher noch nie gebraucht, daher weiß ich nicht, ob 
es den Flash beim Debuggen auch immer komplett löscht.
In diesem Fall wäre ja der Bootloader dann auch weg.


Peter

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.