LCD EA DOGM204N-A spinnt? Seit einigen Tage bemühe ich mich mit dem PIC18F45K20 per Assembler (MPLAB 8.92) das LCD EA DOGM204N-A zum Arbeiten zu bringen. Den Code habe ich beigefügt. Die Beschaltung folgt dem Datenblatt von electronic assembly, Stand 2015.7 (siehe beigefügten Schaltplan). Ebenso folgt die Initialisierungssequenz dem Datenblatt wie in der Anlage ersichtlich. Nachdem dies erfolglos war, wird jetzt 3x im 8-Bit-Modus und dann im 4Bit-Modus initialisiert (vgl. ASM-File). Nach dem Einschalten der Versorgungsspannung (3,3V) zeigt das LCD entweder nichts oder aber gelegentlich und rein zufällig den Text, welchen das Programm vorgibt (siehe Anlage). Dabei läuft die Software sauber durch, wie ich an den im Programmlauf geschalteten Kontroll-LEDs erkennen kann. Schalte ich dann die Spannungsversorgung aus und schalte erneut ein, tut sich meist nichts, gelegentlich lässt sich ein schwaches Pixelmuster sehen, es kann aber auch sein, dass alle Zeilen mit kräftig schwarzen, vollen Digits belegt sind oder aber - welche Freude - der Vorgabetext wird wieder einmal fehlerlos ausgegeben! Wenn das LCD korrekt ausgibt, messe ich am den Anschlüssen mit dem DVM (Ri=10MOhm): Pin 31 Vdd 3,27V Sollwert=3,3V 32 Vss 0V (GND) 44 RESET 3,27V 23 Vout 11,90V 24 V0 10,16V 25 V1 8,39V 26 V2 6,74V 27 V3 3,39V 28 V4 1,76V Diese Spannungswerte sind stabil und verändern sich auch nicht während der Spannungsmessung. Schalte ich jetzt die Schaltung ab und dann wieder ein, bleibt die Anzeige meist leer und ich messe dazu an den Anschlüssen Pin 23 - 24 irreguläre Werte: 2,62V, 2,62V, 2,02V, 0,06V, 0,16V. Offensichtlich arbeitet die Ladungspumpe nicht. Hatte das Problem vielleich schon jemand und weiß Abhilfe? mfG Ottmar
Hi
>Offensichtlich arbeitet die Ladungspumpe nicht.
Dann ersetze erst mal die Elkos durch Keramikkondensatoren.
MfG Spess
spess53 schrieb: > > Dann ersetze erst mal die Elkos durch Keramikkondensatoren. > Hmm... würde ich gerne machen, habe aber 1µF in Keramik nicht auf Lager und auch keine Folienkondensatoren. Wenn der Fehler daran liegen sollte, muss ich mich wohl bis zur nächsten Bestellung gedulden... Ottmar
Das hat vermutlich nichts mit den Kondensatoren zu tun, sonst würde es nie gescheit funktionieren. Die Displays laufen normalerweise auch mit Elkos, zumindest nehme ich die immer auf dem Breadboard dafür her. Bei mir hat das bisher immer geklappt. Ich tippe da eher auf ein Softwareproblem. Mir ist schon folgendes passiert (allerdings DOGS): Nach dem Einschalten lief es nie, nach dem Programmieren des Controllers immer. Ursache: Keine Wartezeit nach dem Einschalten der Versorgung, das Display hat einen Resetcontroller drin, man muss 5ms warten. Vielleicht ist es bei dir sowas ähnliches?
WehOhWeh schrieb: > Mir ist schon folgendes passiert (allerdings DOGS): > Nach dem Einschalten lief es nie, nach dem Programmieren des Controllers > immer. > Ursache: > Keine Wartezeit nach dem Einschalten der Versorgung, das Display hat > einen Resetcontroller drin, man muss 5ms warten. Hallo WehOhWeh, besten Dank für Deinen Hinweis! Um die "Qualität" der Elkos aufzuwerten (Reststrom) habe ich sie mal zur Probe mit 22µf Tantal in Reihe geschaltet. Jetzt funktioniert die Anzeige im Gegensatz zu vorher immer dann, wenn ich den Controller programmiere. Beim Einschalten weiterhin recht selten. Evtl. sind meine Elkos doch von mieser Qualität. Allerdings war schon immer, wie aus meinem beigefügten Code ersichtlich, vor der Initialisierung 250ms Wartezeit eingefügt. LcdInit ;--INITIALIZATION SEQUENCE 4BIT-INTRFACE movlw .250 ;Power ON,wait time >5ms after VDDIO/ VDD/VCI stable CALL Delay1ms ;delay=250ms movlw 0x33 ; 1. FUNCTION SET 8 bit, DL = 1 movwf LCD_LAT ; b'00111000'0x38 mfG Ottmar
Bestehen noch Probleme? Betreibst du das display mit SPI? Falls ja, kannst du dir vllt Hilfe von meinem Treiber Beitrag "Treiber für DOGM204 - A" holen.
Hallo Niklas, besten Dank fuer Deinen Hinweis. Wegen der Probleme habe ich die weitere Bearbeitung verschoben, bis ich wieder mal Zeit dafuer habe. Werde dann Deinen Treiber mal anwenden. mfG Ottmar
Hallo Ottmar, hattest du dafür bereits eine Lösung gefunden? MfG Daniel
Oha, der Thread ist ja schon uralt. Aber ich hatte erst kürzlich ähnliche Probleme, mit anderen LCDs, verschiedene Module, alle über Portexpander am gleichen I2C Bus. Einige initialisierten problemlos, andere nicht. Meine Hypothese war, dass es am Timing innerhalb der Initialisierungssequenz lag. Ballert man die 8-Bit Initialisierung zu schnell raus, kamen ein paar Module damit nicht klar. Aber inbesondere beim Umschalten 8-Bit -> 4-Bit war es wichtig, dass das Hinterherschicken des Low-Nibbles nicht zu lange dauerte. Wenn das Low-Nibble nicht innerhalb von 25µs auf das High-Nibble folgte, hielten die das wohl für ein neues Datenwort oder was der Geier. Mir wirkte es ein bißchen so als das Modul dann zwar in 4-Bit Kommunikation, aber mit einem Nibble Versatz. Schickte man in dem Zustand eine neue Initialisierungssequenz rein, war das Verhalten nicht mehr vorhersehbar. Teilweise initialisierte gar nix, teilweise erschienen falsche Zeichen, vermutlich wegen High<->Low-Nibble-Drehern. Mittlerweile habe ich ein Timing gefunden, das allen meinen verwendeten LCDs schmeckt.
Hallo Ottmar, bei mir tritt exakt dasselbe Fehlerbild auf! Konntest du damals etwas herausfinden, an was es lag? Viele Grüße Thomas
Ich habe das Problem bei mir gelöst! Ich hatte den Reset-Pin des Displays nicht gut beschaltet. Hatte diesen direkt an der Versorgungsspannung hängen. Beim Power-up hatte der Controller damit offenbar Probleme. Mit einem RC Glied (10kOhm und 100nF) am Reset-Pin funktioniert das Display nun einwandfrei. Es steht übrigens auch im Datenblatt des SSD1803A, dass nach dem Power-up ein Reset durchgeführt werden sollte. Ich denke das kann man aber auch gut über die Verzögerung des RC-Glieds realisieren. Grüße
Geröll schrieb: > Aber inbesondere beim Umschalten 8-Bit -> 4-Bit war es wichtig, > dass das Hinterherschicken des Low-Nibbles nicht zu lange dauerte. Wenn > das Low-Nibble nicht innerhalb von 25µs auf das High-Nibble folgte, > hielten die das wohl für ein neues Datenwort oder was der Geier. Solange Du noch im 8Bit-Mode bist, darfst Du natürlich keine Befehle im 4Bit-Mode senden, sondern nur Nibble. Wenn Du schneller als 25µs bist, wird das 2. Nibble ignoriert. Wenn man es aber richtig macht, kann man beliebig langsam senden. Hier mal ein korrektes Init: https://www.avrfreaks.net/forum/tutc-lcd-tutorial-1001
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.