www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Generelle Frage zu Programmsicherheit


Autor: Tristan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Freunde der Elektronik,

ich habe eine generelle Frage zum Mikrokontroller. Sollte man bei
Verwendung eines LCD's dieses von Zeit zu Zeit programmtechnisch neu
initialisieren? Oder reicht einmal initialisieren aus? Welche andere
Möglichkeit bleibt um die ordnungsgemäße Funktion des LCD's zu
überprüfen?

Ich hoffe auf viele Hinweise...

Tristan

Autor: Marko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die ordnungsgemäße Funktion sieht man für gewöhnlich ...
hatte bisher och keine Probleme das ein LCD seine Initialisierung
vergessen hätte ... mal abgesehen von Stecker raus ziehen ;o)

Autor: blubber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich geh mal vom 0815 Display aus

Meistens haben die ein CGRAM, wenn du keine Zeichen selbst generierst
machs so: Schreib einen Code ins RAM, warte und lies ihn wieder - wenn
das geht weißt du dass es noch funktioniert.

Gruß Andreas

PS: Du könntest auch in den "nicht genutzten Speicher" schreiben
(z.B. einzeiliges Display mit 16 Zeichen hat Speicherbereiche die sich
beschreiben lassen, aber nicht angezeigt werden - weil eben die gleice
Hardware eingebaut wird) - ob da allerdings wirklich Ram dahinter hängt
weiß ich nicht...

Autor: Dietmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Tristan:

Fang jetzt bloß nicht an, ein einfaches Register 2 mal zu schreiben,
sonst drehst du irgendwann am Rad. Das gibt ein Ding ohne Ende.

Man kann vielleicht, in längeren Zeitabständen, vielleicht nachts um
12, wenn es nicht stört, den ganzen Controller mal neu initialisieren.

Anfangs habe ich auch mal geglaubt, bei so einem µC könnten die
Register unstabil werden, und man müsse sie von Zeit zu Zeit mal wieder
erneuern, z.B. Interruptfreigaben, müsse was gegen Programmabsturz tun,
usw..

Aber, allen Ernstes: Glaubst du denn, daß du auf diese Art und Weise
noch eine komplexere Softwareentwicklung bewältigt bekommst?

Im Grunde, muß jedes Bit zu jeder Zeit glaubwürdig sein, sonst kann man
ja eine größere Anwendung von Anfang an vergessen. Es könnte zu jeder
Zeit jedes Bit einen Fehler hervorrufen. Bei Programmierung in
Hochsprache wie z.B. C, bekommt man ja erst recht nicht mehr mit, was
sich auf Maschinensprachenebene abspielt.

Beim Displaycontroller, kann man das genau so handhaben.

Hat ein Peripheriebaustein noch eine Readback-Funktion für
initialisierte Register, kann man die natürlich nutzen.

Wenn ich sehe, was sich im meinem ARM7-Controller alles abspielt???

Vielleicht ist eine Betriebsspannungsüberwachung (Spannungs-Watchdog,
µC-Supervisor) in der Schaltung eher angebracht, denn kurze
Spannungseinbrüche killen Daten???

Natürlich, geben vorwiegend amerikanische Halbleiterhersteller in den
Datenblättern an, daß man sich für sichere Anwendungen etwas anderes
suchen soll. Na ja, ein gebadeter Yorkshire-Terrier zum Trocknen in der
Mikrowelle kann in den USA mal schnell einige Millionen Dollar Regreß
fordern. Das ist alles Juristerei.

Gruß

Dietmar

Autor: Volker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
na ja, so abwegig ist das ganze nicht,
ich hatte mal Probleme mit der CPU einer Kleinserie. In unbestimmten
Abständen war nur noch Schrott auf den Diplays zu sehen. Die Frage war
nun, warum und was kann man dagegen tun. Zunächst habe ich
softwaremäßig das Display alle paar Minuten neu initialisiert, so
konnte man wieder zur richtigen Anzeige kommen.
Später fand ich auch den Grund für die Fehlfunktionen. Es lag am
PLCC-Sockel, der an den Eckkontakten (waren die relevanten
Display-Steuersignle) Kontaktprobleme hatte. Seit wir die Controller
einlöten
ist nichts mehr passiert.
Seit diesem Vorfall habe ich jegliches Vetrauen in PLCC-Sockel
verloren.
Wenn die Leitungen zum Display sehr lang sind, kann durch
Störeinstrahlung ähnliches passieren.
Allerdings sollte man schlechte Hardware nicht mit Software
kompensieren wollen.

Gruß Volker

Autor: Unbekannter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Seit diesem Vorfall habe ich jegliches Vetrauen in
> PLCC-Sockel verloren.

Nicht nur PLCC-Sockel. Sockel machen immer irgendwann Probleme. Bei mir
kommt schon langer kein Sockel mehr auf eine Platine. Nur wenn es
wirklich unbedingt sein muss.

Wenn ein Baustein defekt ist, nützt ein Sockel nämlich auch nicht viel,
da man den Baustein beim Ausbauen sowieso mechanisch zerstören kann.
Dann kann man den Baustein auch ohne Gefahr für die Platine ausbauen
und hinterher einen neuen einlöten.

Klar, dauert etwas länger, aber man spart sich einen Haufen Ärger mit
magischen Sockel-Problemen (Temperatur, Luftfeuchte, Vibrationen, ...)

Autor: Tristan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank an euch für Eure Meinungen und Vorschläge. Ich werde rein
zur Sicherheit einfach nach einer gewissen Zeit eine Neuinitialisierung
vornehmen. Schaden kann es ja nicht.

Viele Grüße

Tristan

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei Anwendungen (z.B. KFZ) kann ein zyklisches Initialisieren der
LCD-Controllers sinnvoll sein, wenn Störungen (ESD) zu erwarten sind
('Elektrischer Kunststoff-Sitz'). Je nach Controller wird das Bild
dabei nicht gestört, sodaß einmal pro Sekunde sinnvoll ist.

Autor: Dietmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Volker, Unbekannter, Tristan, Michael:

Natürlich, kann man bei bekannten Fehlerquellen zyklisch neu
initialisieren. Dann sollte man aber gelegentlich die Fehlerursache
abschaffen.

Beim Display macht eine Initialisierung sicher kein Problem, wenn es
das Programm zeitlich zuläßt.

Was macht man denn, wenn der Controller selbst in einer PLCC-Fassung
steckt, und das EPROM (Programmspeicher) und vielleicht noch ein CPLD
oder GAL ebenfalls?

Hier stürzt doch die gesamte Anwendung ab, kommt noch nicht mal der
Watchdog zum Zuge, da ist nicht mehr viel mit neu initialisieren.

Fest einlöten ist gut, wenn man sicher ist, daß der Baustein nie
gewechselt werden muß. Bei neueren Controllern mit Flash und ISP (JTAG,
etc.) ist das auch kein Problem mehr.

Gruß

Dietmar

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.