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
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)
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...
@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
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
> 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, ...)
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
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.
@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
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.