Fuse-Bits falsch gesetzt

Beim Flashen meines AVR-Controllers (ATMega32) habe ich aus Versehen die Fuse-Bits falsch gesetzt. Nun erkennt mein Programmieradapter den Microcontroller nicht mehr. Kann ich ihn noch retten?

vorlesen Druckansicht
Lesezeit: 2 Min.
Von
  • Benjamin Benz

Beim Flashen meines AVR-Controllers (ATMega32) habe ich aus Versehen die Fuse-Bits falsch gesetzt. Nun erkennt mein Programmieradapter den Microcontroller nicht mehr. Kann ich ihn noch retten?

Die Fuse-Bits legen fest, woher die Micro Controller Unit (MCU) ihren Takt bezieht, ob intern, extern oder per Quarz. Stehen nun die Bits auf extern, liefert aber kein externes Bauteil den Takt, funktioniert der ISP (In System Programmable) Adapter (unter anderem im c't-Bot, siehe c't 4/06, S. 208) nicht mehr. Meist passiert das, wenn man einen externen Quarz gemeint hat, jedoch tatsächlich die Einstellung für einen externen Oszillator gewählt hat. Der ATMega regt dann den Quarz nicht an, sondern erwartet ein sauberes Taktsignal.

Der Aushilfstaktgeber sorgt für den vom ATMega vermissten externen Takt, indem man die mit einer Spitze versehene Schaltung während des Programmierens an Pin 13 des ATMega anlegt. Bitte isolieren Sie den Taktgeber ausreichend - wir haben das nur zu Demonstrationszwecken weggelassen.

Sie könnten nun mit Hilfe eines externen Programmiergeräts, das den Controller sauber mit einem externen Takt versorgt, die Fuse-Bits wieder zurücksetzen. Der Nachteil ist, dass man dafür den Chip aus der Schaltung nehmen muss, was schließlich immer ein Risiko birgt. Außerdem sind solche Programmiergeräte recht teuer.

Die kostengünstige Variante erfordert ein wenig Bastelei und eine ruhige Hand, wodurch jedoch der Microcontroller an seinem Platz bleiben kann. Mit einer kleinen Schaltung legen Sie einen externen Takt an, während Sie gleichzeitig den Flash-Vorgang mit den nun richtig gesetzten Bits starten. Das bedeutet, Sie müssen dabei die Schaltung an den Pin 13 des ATMega halten und gleichzeitig den Programmiervorgang am PC starten.

Ein billiger Quarzoszillator und ein Kondensator sowie ein wenig Verbindungsmaterial fĂĽr die Stromversorgung reichen, um einen Takt zu erzeugen, der den Microcontroller ATMega befriedigt.

Den Takt erzeugt ein billiger Quarzoszillator, dessen Frequenz überhaupt nicht kritisch ist, solange sie zwischen 1 MHz und der Maximalfrequenz des Microcontrollers schwingt. Man kann den Oszi zusammen mit einem Kondensator (100nF) und einem 10-poligen Wannenstecker bequem auf ein Stück Lochrasterplatine bauen (siehe Abbildung). Ein Stück Silberdraht am Oszillator-Ausgang bildet die „Prüfspitze“, die an den Pin 13 des Controllers gehalten werden muss. Damit es keinen Kurzschluss gibt, empfiehlt es sich, den Aushilfstaktgeber mit einem Gummiüberzieher zu isolieren.

Die Stromversorgung holt man sich einfach vom Programmieradapter. Deshalb der 10-polige Wannenstecker, der die gleiche Pinbelegung erhält wie der Standard-ISP-Adapter von Atmel. Für die „Verlängerung“ des Programmierkabels reichen dann ein Stück Flachbandkabel sowie drei Schneidklemmverbinder. (bbe)