mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Flash korruption bei Atmega88 durch Versorgungspeaks?


Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich habe ca. 30 gleiche Atmega88 (I/O Slaves) in meinem Haus verbaut, 
welche über einen zentralen Atmega32 gesteuert werden. Das System an 
sich funktioniert ganz gut, allerdings hatte ich bereits mehrmals das 
Problem, dass nach "Servicearbeiten" bei denen an der Versorgung 
ungewollt ein paar Unterbrüche bzw. Peaks entstanden, bei 2 oder 3 
Atemgas der Inhalt des Bootloader-Flash teilweise "zerstört" wurde und 
somit der Slave nicht mehr funktionierte.

Beim Auslesen des Atmegas konnte ich deutlich erkennen, dass einige 
Pages wirre Daten enthielten. Nach einem neuen Flashvorgang mit der 
selben Programmversion funktionierte wieder alles.

Kennt jemand das Problem, dass der Programmspeicher durch äußere 
Einflüsse unbrauchbar gemacht werden kann?

Zur Schaltung:
Das Kernstück des Slaves ist ein Atmega88V-10PU mit internen 8MHz (ohne 
Teilung), einer Bootloadersection (1024) und 2,7V BrownOutDetection.

Versorgt wird er über einen kleinen Step-Down Schaltregler LM2574N-5.0 
mit 5VDC (mit 220µF geglättet und 10nF entstört). Primärseitig gibt es 
für die 24VDC auch noch einen Elko mit 22µF.

Für die Kommunikation hab ich einen LowPower RS485 Treiber vom Typ 
SP485ES-L verbaut und an den RX/TX Pins angeschlossen. Die 
Übertragungsrichtung ~RE/DE läuft über den Pin PD4. Betrieben wird der 
Bus mit 125KBaud im Master-Slave-Betrieb (20ms Zyklus) - ohne Störungen.

Alle anderen Pins sind je nach Konfiguration des Slaves beschaltet. 
Inputs werden mit den internen Pull-Ups hochgehalten.


Erwähnenswert ist wahrscheinlich noch der Bootloader, den ich aus irgend 
einem Codebeispiel gezogen habe. Den habe ich so modifiziert, dass er 
mit geringer Baudrate (ich glaub 4800) ca. 2 Sekunden auf Daten zum 
Flashen wartet, anderfalls startet er das Hauptprogramm.

Vielleicht hat ja bereits jemand mit einem Ähnlichen Problem zu kämpfen 
gehabt. Bin für jeden Hinweis dankbar.

Vielen Dank schon mal im Voraus
Wolfgang

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wolfgang schrieb:
> bei 2 oder 3
> Atemgas der Inhalt des Bootloader-Flash teilweise "zerstört" wurde und
> somit der Slave nicht mehr funktionierte.

Vermutlich ein Fehler im Bootloader.
Ein Bootloader sollte vor jeder SPM-Instruktion prüfen, ob Z auf 
<Bootresetvektor (in Bytes) zeigt.

Lade dochmal irgendwas in den Bootsektor, was kein SPM enthält und 
prüfe, ob das dann immer noch überschrieben wird.


Peter

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter,

danke für den Hinweise. Diese Prüfung habe ich aber bereits 
implementiert, nachdem ich bei der Inbetriebnahme der ersten paar Slaves 
auf dieses Problem auf lief.

Aber ich hab diese Anpassung noch nie mit einem manipulierten Hex-File 
getestet - vielleicht hab ich da ja was falsch gemacht.

Gruß
Wolfgang

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.