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.
Bei dem Board ahndelt es sich um das Folgende: http://www.robotikhardware.de/download/rnmega128funk.pdf Auf Seite 44 findet sich der Schaltplan
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.
Diesen Fall hatte ich auch vor kurzem. Ich habs geschafft den m128 wieder mit dem HVPP-Programmiermodus wieder zu beleben.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.