Forum: Mikrocontroller und Digitale Elektronik Fuse falsch gesetzt


von Markus B. (ceeper)


Lesenswert?

Ich habe beim atmega32 versehentlich die fuse auf ext. crystal/resonator 
(high) gestellt und mich damit wohl ausgesperrt. Wie kann ich nun wieder 
den internen Quartz aktivieren?

Mangels externem Taktgeber habe ich einfach einen 2. atmega32 
"huckepack" aufgesteckt, wobei PortB abisoliert ist. In dieser 
Konstellation liest das Programmiergerät die falsche fuse aus - sie wird 
zumindest angezeigt - weigert sich aber sie umzuschreiben. Es erscheint 
immer der Verweis auf einen falschen Takt.

von bitman (Gast)


Lesenswert?

programmiere den zweiten Atmega sodaß er einen Takt auf einem Pin 
ausgibt, und gib diesen Takt auf den verfusten

von Sebastian G. (jaseg)


Lesenswert?

Markus B. schrieb:
> Mangels externem Taktgeber habe ich einfach einen 2. atmega32
> "huckepack" aufgesteckt, wobei PortB abisoliert ist. In dieser
> Konstellation liest das Programmiergerät die falsche fuse aus - sie wird
> zumindest angezeigt - weigert sich aber sie umzuschreiben. Es erscheint
> immer der Verweis auf einen falschen Takt.

Versteh ich jetzt nicht ganz, hört sich aber irgendwie böse an?? Wie ist 
der ISP angeschlossen? an beiden AVRs gleichzeitig (kann nicht klappen, 
wenigstens der Reset-Pin darf nur am "Ziel-AVR" hängen). Mein Vorschlag: 
Bau den AVR aus und ersetze ihn durch einen Sockel, dann sind Fehler 
nicht so schlimm. Dann suchst du dir z.B. ein STK500, damit kannst du 
den AVR trotz falsch gesetzter Fuses programmieren.

Schau mal hier:
http://www.mikrocontroller.net/articles/AVR_Fuses
Stichwort: High Voltage-Programming

von Markus B. (ceeper)


Lesenswert?

Beide CPU's stecken praktisch im gleichen Sockel. PortB sowie RESET/ des 
funktionierenden atmega32 sind isoliert, d.h. nicht angeschlossen. 
Demnach spricht der ISP nur mit dem "defekten".
Meine Idee war, dass der funktionierende den Quartz antriggert, so dass 
der defekte einen Takt erhält.

Der "heile" läuft aber nur auf seinem internen Quartz.

von Markus B. (ceeper)


Lesenswert?

Ich bin nun wirklich ratlos: auf der Platine ist nun ein Quartz 
angebracht, trotzdem reagiert der "defekte" nicht auf Programmiersignale 
(wrong clocking?)

Mittels DX-ISP wird aber immer der externe Oszilator ausgelesen. Sobald 
eine andere CPU steckt, wird der interne Oszilator angezeigt. Irgendwie 
scheint der ISP also etwas auslesen zu können. Schreiben/ändern will 
aber nicht gelingen

:-(

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Bist du dir sicher dass du die RSTDISBL Fuse nicht versehentlich 
gesetzt hast?

von Markus B. (ceeper)


Lesenswert?

Eigentlich schon, zumal ist diese Option im AVR Studio für den atmega32 
gar nicht finden kann. Halte das für unahrscheinlich, ein Restzweifel 
aber bleibt.

Was bedeutet den ext. crystal/resonator? Ist damit eine 
Quartz-Beschaltung gemeint? Oder eine andere Taktquelle?

von Sebastian G. (jaseg)


Lesenswert?

Ja. crystal ~= quarz, resonator meint eine RC-Kombination. Ext. Osc. 
meint einen externen Taktgeber. Die Defaulteinstellung des ATMega8 ist 
glaube ich, dass der auf seinen internen RC-Oszillator (8MHz wenn ich 
mich nicht täusche) läuft.

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Markus B. schrieb:
> Eigentlich schon, zumal ist diese Option im AVR Studio für den atmega32
> gar nicht finden kann. Halte das für unahrscheinlich, ein Restzweifel
> aber bleibt.

Sorry, du hast recht. Beim mega32 gibts für den RESET-Pin keine 
Alternative Funktion und demnach auch keine RSTDISBL Fuse.

von Daniel (Gast)


Lesenswert?

Markus B. schrieb:
> Ich bin nun wirklich ratlos: auf der Platine ist nun ein Quartz
> angebracht, trotzdem reagiert der "defekte" nicht auf Programmiersignale
> (wrong clocking?)

Du hast ja auch nicht auf Quarz (crystal), sondern auf Quarzoszillator 
(c. oszillator) eingestellt. Das kann mit einem Quarz nicht laufen.

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.