Forum: Mikrocontroller und Digitale Elektronik Programmierprobleme AVR


von AVR (Gast)


Lesenswert?

Hallo zusammen, ich arbeite mit einem Tiny84A.

Mein Mikrocontroller arbeitet an sich wie erwartet bzw. wie 
Programmiert. Nun teste ich die Grenzen meines Meisterstückes. In meinem 
Fall Drehe ich die Spannung von 24V herunter auf 5V (Der uC wird von 
einem 7805 DCDC-Wandler versorgt). Soweit so gut, in diesem Fall 
arbeitet dieser noch. Gehe ich mit der Spannung jedoch unter 5V, 
funktioniert mein Programm nicht mehr. Auch meine Entwickelte UART 
Kommunikation ist "Geschichte". Ich habe mir nun mein EEPROM und das 
Flash von meinem veralteten AVR Studio 5.0 auslesen lassen und 
festgestellt, dass in den beiden HEX-Dateien lauter "0xFF" steht. Ist 
dies die Default-Einstellung?
Wie kann das sein, dass Obwohl mein Programm nur Pins Toggeln soll 
aufeinmal einen anderen Flash-Code besitzt, nachdem ich die 
Betriebsspannung unter 5V eingestellt habe?

Bin gerade ein wenig ratlos. Wäre für Hilfe sehr dankbar....

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

Teste Dein Wunderwerk doch mal mit 400V Direktspeisung. Vielleicht 
erklärt das die Frage. Und wieso so ein Controller nicht mit warmer Luft 
und gutem Zureden funktioniert.

Ein Blick in die Datenblätter des AVR und 7805 hinsichtlich der 
minimalen Betriebsspannungen hilft bestimmt auch.

von Oliver S. (oliverso)


Lesenswert?

Was genau erwartest du, und warum?

Der Tiny läuft auch noch mit 1,8V. Dein 7805 „DCDC“ eher nicht, das „AVR 
Studio“ zum auslesen auch nicht, und die Gegenstelle deiner UART auch 
nicht.

Oliver

von AVR (Gast)


Lesenswert?

ok ich muss dazu sagen, dass ich im Anschluss die Spannung wieder auf 
24V eingestellt habe und trotzdem mein Programm überschrieben wurde...

von Bernd N. (_bn_)


Lesenswert?


von spess53 (Gast)


Lesenswert?

Hi

>ok ich muss dazu sagen, dass ich im Anschluss die Spannung wieder auf
>24V eingestellt habe und trotzdem mein Programm überschrieben wurde...

Dann solltest du den Brown-Out-Detektor einstellen.

MfG Spess

von Jim M. (turboj)


Lesenswert?

AVR schrieb im Beitrag #5740814:
> Fall Drehe ich die Spannung von 24V herunter auf 5V (Der uC wird von
> einem 7805 DCDC-Wandler versorgt

Mal in dessen DB geschaut? Der hat so rund 2V Spannungsdrop. Und bei <3V 
muss der olle AVR nicht mehr vernünftig funktionieren, Stichwort: 
Brownout.

Dem Hersteller sind diese Art von Problemen durchaus bekannt, deswegen 
hat der Chip Brownout Detector, den man in den Fuses aktivieren kann.

AVR schrieb im Beitrag #5740814:
> dass in den beiden HEX-Dateien lauter "0xFF" steht. Ist
> dies die Default-Einstellung?

Leeres Flash hat 0xFF. Blinky nutzt nur einen winzigen Teil des Flashs, 
also ist das eigentlich OK das da lauter 0xFF vorhanden sind.

von Oliver S. (oliverso)


Lesenswert?

Jim M. schrieb:
> Leeres Flash hat 0xFF. Blinky nutzt nur einen winzigen Teil des Flashs,
> also ist das eigentlich OK das da lauter 0xFF vorhanden sind.

Na ja, in dem kleinen Teil zu Beginn des Speichers, den das Programm 
belegt, wäre das nicht ok.

Oliver

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

Einfach mal die Dateien hochladen. So top secrect wird ein 
LED-Blinkprogramm ja nicht sein.

Der EEPROM ist unbeschrieben komplett mit 0xFF gefüllt, das Flash auch.

Falls der Controller mit zu wenig Spannung und ohne brown-out-Reset 
betrieben wird, kann der Speicher korrupiert werden. Aber ob dann alles 
0xFF ist?

von Peter D. (peda)


Lesenswert?

AVR schrieb im Beitrag #5740814:
> Ich habe mir nun mein EEPROM und das
> Flash von meinem veralteten AVR Studio 5.0 auslesen lassen und
> festgestellt, dass in den beiden HEX-Dateien lauter "0xFF" steht.

Ein Programm darf sich nicht bei Spannungeinbruch von selbst löschen.
Womit hast Du es rein programmiert?
Wenn Du einen Bootloader benutzt, sollte unbedingt das Brownout 
aktiviert sein.

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.