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
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
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
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
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.
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?
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.
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
@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
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
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.
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
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