Forum: Mikrocontroller und Digitale Elektronik µC versteht Programm nicht mehr nach Spg.ausfall


von Philipp Mayr (Gast)


Lesenswert?

Ich habe einen ATMega128 und programmiere mit CodeVision AVR.
Ich programmiere in C.
Zuerst sage ich "compile the project" dann "make the project". Dann
gehe ich auf "run the chip programmer" und sage "program flash".

Mein Programm funktioniert dann auch einwandfrei am µC. Nur wenn der
Mikrocontroller für ca. 1/2 Tag nicht mit Strom versorgt wird, dann
funktioniert das Programm nicht mehr.
WEnn ich sage program flash müsste es ja doch im
nichtflüchtigen-Flash-Speicher liegen und darf bei Spg.ausfall nicht
verloren gehen.

von Benedikt (Gast)


Lesenswert?

Zu 99,99% liegt der Fehler in deinem Programm (z.B. nichtinitialisierte
Variable usw.).

von Philipp Mayr (Gast)


Lesenswert?

Ja aber wenn ichs neu hinüberlade geht es wieder einwandfrei

von Philipp Mayr (Gast)


Lesenswert?

Kann es was anderes als Nichtinitialisierte Variable auch sein?

von Peter D. (peda)


Lesenswert?

Mach mal ein Verify, wenn es nicht mehr läuft.

Und wenn da Bytes gekippt sind, setze die Brown-Out Fuse.


Peter

von Philipp Mayr (Gast)


Lesenswert?

Ich mach immer ein Verify beim Programmieren.

Nach einem Spg.ausfall kommt immer eine Fehlermeldung zurück, dass eine
Speicherstelle einen Fehler aufweist.
Naja dann lösche ich den Chip komplett und beschreibe ihn neu und dann
gehts wieder.

Ich checks überhaupt nicht mehr.

Was bringt die Brown-Out Fuse?

von Philipp Mayr (Gast)


Lesenswert?

BrownOut Fuse ist ja so wit ich weiß dazu nötig, dass der µC nicht mit
falschen Werten weiterläuft wenn die Spg. nur kurz einbricht.
Dafür hab ich aber einen ResetIC: TL7705ACD

von Cheffe (Gast)


Lesenswert?

Nimm doch einen anderen ATMEGA128 und schau ob es da genauso ist. Wenn
nicht, ist der erste halt defekt. Sowas soll ja hin und wieder
vorkommen!

mfg
Cheffe

von Philipp Mayr (Gast)


Lesenswert?

Hab es schon mit 2 ATMega128 getestet. Bei beiden das gleiche! Also
Defekt kann ich ausschließen.

von Peter D. (peda)


Lesenswert?

Der interne Power-On-Reset ist Quatsch und funktioniert nur dann, wenn
VCC von <0,5V schnell (<10ms) auf 5V ansteigt.

Und wenn die CPU nicht resettet wird, kann sie verrückt spielen (z.B.
ein SPM ausführen).

Ich hab mal die Resetbits auf LEDs ausgegeben und schnell ein- und
ausgeschaltet: Brown-Out kam immer, Power-On nur zu etwa 60%.

Entweder Brown-Out an oder nen Reset-Chip anschließen.
Alles andere ist unzuverlässig.


Peter

P.S.:
Spannung von außen, bevor VCC anliegt, mögen die AVRs auch nicht.

Ich hatte mal ne Spar-RS232 gemacht, wenn ich den PC zuerst
angestöpselt hatte, bevor ich VCC einschaltete war alle 10-mal der
komplette Flash gelöscht.

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.