Forum: Mikrocontroller und Digitale Elektronik Fusebit von alleine verstellt?


von franzlst (Gast)


Lesenswert?

Moin!

Ich glaube, bei mir haben sich die Fuse-Bits eines ATMega128 "von 
alleine" verstellt.

Wie ich darauf komme:
Ich programmiere den µC mit einem USB-Programmer ("mySmartUSB") über 
ISP, dem AVR Studio und AVR Prog, was auch immer gut funktioniert.

Heute ist es mir passiert, dass ich das Programm ins Flash habe 
schreiben lassen, während der µC jedoch nicht mit Strom versorgt wurde. 
Während des Übertragens habe ich dann die Spannung eingeschaltet.

Seitdem wird der µC nicht mehr erkannt (ausgelesene Adresse FFFFFF). 
Auch nicht nach einem Neustart, erneutem Anschließen, etc. und auch 
nicht über BASCOM und dem USB-ISP Prog.

Für mich deutet das alles darauf hin, dass sich die Fusebits verstellt 
haben (SPI deaktiviert oder sowas). Obwohl ich nie die Fusebits selbst 
aktiv geändert habe!

Ist das möglich oder gibts da noch was anderes, was in Frage kommt?

Für mich ist das ein sehr wichtiges Projekt, da es sich dabei um einen 
Roboter für meine Facharbeit handelt, die in 2 Wochen fertig sein muss..

Deshalb bin ich über jede Hilfe froh

Danke und ein schönes Wochenende

Franz

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Hallo Franz,

Falls es wirklich die fuses sind: Ist die externe Taktversorgung in 
Ordnung? Du sagst der Controller wird nicht mehr erkannt, laeuft denn 
das Programm normal ab? Das solltest Du mal als erstes pruefen.

Michael

von Otto (Gast)


Lesenswert?

Hallo Franz,

> Heute ist es mir passiert, dass ich das Programm
> ins Flash habe schreiben lassen, während der µC jedoch nicht mit Strom
> versorgt wurde. Während des Übertragens habe ich dann die Spannung
> eingeschaltet.


wer weiß schon, wohin da Daten geschrieben wurden. Ich würde da nicht 
"von alleine" sondern eher von "Mißgeschick" sprechen.....

Gruss Otto

von franzlst (Gast)


Lesenswert?

Hi Michael,

in wie weit die externe Taktversorgung in Ordnung ist kann ich nicht 
sagen, da ich über kein Oszilloskop verfüge. Allerdings habe ich daran 
ja nichts gemacht, ich bezweifle also, das da etwas defekt ist.

Das Programm, das vorher drauf war, läuft nicht mehr.

Das hat allerdings auch nichts zu sagen, da AVR Prog ja zunächst das 
Programm löscht, bevor er das neue aufspielt. Jetzt kann es natürlich 
sein, dass das Programm zunächst gelöscht wurde (geht das auch wenn der 
µC nicht mit Strom versorgt wird? Ich vermute mal über die ISP 
Schnittstelle kommt genügend Saft) und das Problem beim Einschalten der 
"normalem" Stromversorgung entstanden ist, als also (zumindest Teile) 
bereits gelöscht waren.

Grüße

Franz

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Naja die Fuses beinflussen u.a. auch die Wahl der Taktquelle. Verwendest 
Du denn einen externen Quarz? Du solltest vielleicht mal einen 
Schaltplan posten das waere hilfreich.

von franzlst (Gast)


Lesenswert?

Bei dem Board ahndelt es sich um das Folgende: 
http://www.robotikhardware.de/download/rnmega128funk.pdf
Auf Seite 44 findet sich der Schaltplan

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Also ein fertiges Board... passt die Spannungsversorgung usw? Ich kann 
mir fast nicht vorstellen dass Du es auf die Art geliefert hast. Alles 
richtig angeschlossen? Du hast das Teil selber zusammengebaut und es 
lief bisher, richtig?

von franzlst (Gast)


Lesenswert?

Spannung passt - das Teil funktioniert schon lange einwandfrei.

Leider fehlen mir die Kenntnisse über ISP und Fuses um sagen zu können, 
ob der Flash einfach so an der falschen Stelle beschreiben werden kann 
und damit die Fuses überscheibt.

von Wolfgang B. (logox2)


Lesenswert?

Diesen Fall hatte ich auch vor kurzem.

Ich habs geschafft den m128 wieder mit dem HVPP-Programmiermodus wieder 
zu beleben.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

franzlst wrote:
> Spannung passt - das Teil funktioniert schon lange einwandfrei.

Grad hast Du doch gesagt dass es nicht funktioniert.
Naja ich fuerchte den Fehler wirst Du selber finden muessen, hab 
eigentlich keine Lust Dir alles aus der Nase zu ziehen. Viel Spass dann 
noch.

Michael

von franzlst (Gast)


Lesenswert?

@Michael
Ich finde es schön dass du mir helfen willst. Ich weiß jedoch nicht, 
welche Informationen ich dir (und anderen) noch geben soll. Mit 
funktioniert einwandfrei meinte ich natürlich "bis jetzt" (so war ja 
auch deine Frage formuliert).

Nachdem ich wie gesagt etwas unter Zeitdruck stehe und laut Wolfgang 
wohl tatsächlich die Fuses verstellt sind, ist es aber für mich wohl das 
schnellste, einen neuen µC zu kaufen, auch wenn das natürlich wieder ins 
Geld geht.
Es sei denn, es meldet sich hier einer im 97er PLZ bereich, der bereit 
wäre, mir mit seinem HVPP den µC wieder richtig einzustellen (wenn das 
im einegbauten Zustand überhaupt möglich ist), natürlich gegen 
Bezahlung.
Ich verfüge nämlich nicht über einen solchen und das verschicken und 
wieder zurückschicken dauert mir zu lange.

Wenn jemand so nett ist und sich heut oder morgen Vormittag meldet, wäre 
das genial, ansonsten werde ich bei Reichelt einen neuen kaufen.

Interessant wäre es dennoch zu wissen, warum hierbei die Fuses 
überschrieben wurden.

Danke an alle Helfer

Franz

von Michael U. (Gast)


Lesenswert?

Hallo,

auch wenn es nur eine Anmerkung ist, die Dir nicht wirklich hilft:

wenn mir sowas passiert, sehe ich genau 2 Mäglichkeiten:
neuer Versuch und geht noch - puuuh, nochmal Glück gehabt. :)
geht nicht mehr - Misz, Pech gehabt, Lehrgeld bezahlt. :(

Der Virsuch, ihn per HV-Programming wiederzubeleben bleibt, mägliche 
Ergebnisse siehe oben.

>Interessant wäre es dennoch zu wissen, warum hierbei die Fuses
überschrieben wurden.

Vieles ist interessant zu wissen, manches wird man nie erfahren...
Atmel wird sich kaum die Mühe machen, die AVR mit allen möglichen 
Varianten eines Betriebs außerhalb der Spezifikation zu quälen (das ist 
es, wenn man ein IC ohne Ub aber mit Signalen an den Eingängen 
betreibt).

Du wirst es also wohl nie erfahren...

Gruß aus Berlin
Michael

von yalu (Gast)


Lesenswert?

Ich hatte auch vor Kurzem einen ähnliche Fall: AVR mit externem Quarz
ohne Versorgungsspannung über ISP programmiert, d.h. die Versorgung
kamm ausschließlich über die Signalleitungen. Anschließend ging nichts
mehr. Der Quarz schwang auch nicht mehr.

Also legte ich den Takt eines externen Oszillators (sozusagen als
Herzschrittmacher :-)) an XTAL1. Dadurch regte sich der AVR wieder.

Wie ich dann feststellte, waren in den Fuse-Registern völlig wirre
Werte enthalten, die unter anderem bewirkten, dass der Takt von einem
externen Oszillator erwartet wurde.

Ich habe alle Fuses wieder auf die richtigen Werte zurückgestellt und
konnte anschließend wieder normal weiterarbeiten, auch ohne den
Schrittmacher. Sicherheitshalber habe ich auch die BOD aktiviert, die
bewirkt, dass bei zu niedriger Versorgungsspannung der Controller in
den Reset-Zustand geht. Ich hoffe, dass dadurch in Zukunft
unkontrollierte Änderungen der Fuse-Register vermieden werden.

Wenn du also wie ich keinen keinen HV-Programmer hast, kannst du den
Externen-Oszillator-Trick versuchen.

von franzlst (Gast)


Lesenswert?

Danke für den Tipp yalu:
Habe ich gerade versucht (mit einem 16MHz Quarzoszillator) - leider 
erfolglos. Muss wohl doch ein neuer µC her

>wenn mir sowas passiert, sehe ich genau 2 Mäglichkeiten:
>neuer Versuch und geht noch - puuuh, nochmal Glück gehabt. :)
>geht nicht mehr - Misz, Pech gehabt, Lehrgeld bezahlt. :(

Jo so ähnlich seh ich das auch

Franz

von Peter D. (peda)


Lesenswert?

Die Fuses können entweder auf externen Takt verstellt sein, dann hilft 
ein externer Takt statt XTAL1.
Sie können aber auch auf die internen 128kHz gesetzt sein, dann muß man 
die Programmiersoftware entsprechend runter takten.
Völlig aussperren sollte man den M128 nicht können.

Um solche Unfälle zukünftig zu vermeiden, würde ich zu nem Bootloader 
raten.
Der Bootloader kann nicht die Fuses verstellen und läßt sich viel 
einfacher benutzen. Man muß nur die UART mit dem PC verbinden, ein 
spezieller Programmer ist nicht mehr nötig.


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.