Guten Abend, ich habe folgendes Problem. Ich beschreibe meinen ATMega88 ganz normal ( Siehe Bild 1. Programm und alles ist 1A. Schalte ich mein Board aus und mache es wieder an, stürtzt mein Programm ab. Nun habe ich festgestellt das wohl mein Speicher teilweise gelöscht wird. Bild 2. Schreibe ich mein Programm wieder rein geht es wieder 100% bis zum nächsten ein und aus :-( Wie kann das sein? Es ist ein Neuer ATMega. Kann man da noch was machen?
Kann es sein, dass deine Quelldatei leer oder im Eimer ist? Wenn ich nix ins Flash schreibe und anschließend mit nix vergleiche, so ist dieser Vergleich korrekt, aber nicht gerade umwerfend brauchbar. FFh ist oft ein Zeichen von Leer, muss aber nicht sein. Ein Tipp: Anschließen und explizit auslesen. Unbedingt eigenen Namen fürs Ziel verwenden. Wenn Du ein Hex-File rausbekommst, ist eine ASCII-Datei, kannst Du ja mal reinschauen. Steht da nur FF, FF usw. so ist auch nix angekommen.
Den Schaltplan habe ich gerade nicht zur hand. Doch wird es an der Schaltung nicht liegen. Habe hier 20 Boards da geht alles. Fuse Bits: Bild 1 und 2 sind die bei denen es nicht mehr geht. Fuse Bits: Bild 3 und 4 sind nach dem Programmieren wo alles bis zur Stromabschaltung geht.
>Fuse Bits: Bild 1 und 2 sind die bei denen es nicht mehr geht. >Fuse Bits: Bild 3 und 4 sind nach dem Programmieren wo alles bis zur Die sind doch alle identisch. Warum ist die BOOTRST Fuse gesetzt?
>Weil ein Bootloader drauf ist. Warum programmierst du dann nicht per Bootloader? >Schalte ich mein Board aus und mache es wieder an, stürtzt mein Programm >ab. Nun habe ich festgestellt das wohl mein Speicher teilweise gelöscht >wird. Bild 2. Teilweise oder ganz? Zeig doch mal ein HEX File. Läuft der Bootloader evtl. Amok? >Schreibe ich mein Programm wieder rein geht es wieder 100% bis zum >nächsten ein und aus :-( Sowas hatte ich mal mit einem alten Tiny. Hatte ne Überspannung auf den Kopf bekommen. Der lief nach dem programmieren auch, aber einmal Spannung für 30s aus und wieder ein, nix mehr, tot.
Bild 1 Zeigt den Code aus dem ATMega88 nach dem Programmieren. Bild 2 den Code nach einem neuanschalten.
>Bild 1 Zeigt den Code aus dem ATMega88 nach dem Programmieren. >Bild 2 den Code nach einem neuanschalten. Hmm, deine Interruptvektoren und der Resetvektor wurden gelöscht. Wer auch immer das gemacht hat;)
Wie getippt ich trenne Ihn lediglich von der Spannun, warte einen Moment und schalte wieder ein. Melden tut sich der Bootloader normal und auch das Programm startet. Aber wie eben richtig bemerkt bei einem Interrupt warst das. Auch wie getippt läuft das ganze schon 20x hier neben mir. Nur der kerl will nicht. Kann das Flash defekt sein? Doch warum wird das Flash bei Spannung gehalten?
>Kann das Flash defekt sein? Glaub ich nicht. >Hmm, deine Interruptvektoren und der Resetvektor wurden gelöscht. Exakt eine Page. Was für ein Zufall. Und ich glaube nicht an Zufälle. >Doch warum wird das Flash bei Spannung gehalten? Weil der Bootloader erst beim nächsten Neustart den Bereich löscht? Das ist doch ein Softwareproblem.
ICh glaube ja auch nicht an einen Defekt deswegen sitze ich ja noch hier :-(
>ICh glaube ja auch nicht an einen Defekt deswegen sitze ich ja noch hier >:-( Dann brenn doch mal ein kleines Programm ohne Bootloader rein. So ein kleines ganz nacktes Blinky mit ner LED. Dann wirst du schon sehen ob das Flash noch in Ordnung ist. Ist das denn so schwer?
Der Bootloader läuft schon seit x jahren .. und auf den anderen Systemen habe ich auch kein Problem. Aber een habe ich den File mal via Bootloader ruff geschmissen. So wie es aussieht hält der ... verstehe ich nicht.. aber ich warte noch mal.
Peter Dannegger schrieb: > Mit Bootloader muß auch immer das Brownout enabled sein! Wie meinst Du das?
Ich habe nun Brownout auf 4,3V gestellt und es scheint zu gehen. Aber warum? Würde mir das einer bitte mal erklären. Alle anderen die mit diesem Booloader laufen haben den Brownout disabled und laufen. GLÜCK??? Muss ich nun durch halb Deutschland fahren und die alle umstellen?
H. Rothenberg schrieb: > Ich habe nun Brownout auf 4,3V gestellt und es scheint zu gehen. Aber > warum? Weil der Prozessor bei unzureichender Versorgungsspannung dann nicht mehr Amok läuft.
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.