- Akku Tests und Balkonkraftwerk Speicher         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 32

Thema: LCD defekt?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    03.05.2011
    Beiträge
    12
    Schau mal auf die Pinbelegung.
    Ich kenne das Bauteil zwar nicht aber ich gehe mal davon aus das es ein Display welches HD44780 oder zumindestens Kompatibel ist.

    Ich hatte das gleiche Problem bei einem anderen Projekt.
    Die beiden Zeilen weisen darauf hin das dein Display korrekt initalisiert wird aber keine weiteren Daten ankommen.

    Leider erinnere ich mich nicht mehr genau woran es bei mir lag. Aber Fehlerbeschreibung war gleich.
    Ich hatte später die Pin-Belegung am AVR verändert. Ich hatte zu erst die Steuerpins und dann die Datenpins am Port C und hab dann zu erst Data und dann Steuerpins an Port C gelegt. Danach lief es nach einigen Versuchen.

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Diese Initialisierung verwende ich bei meinem Display für mein I2C-LCD am arm64. Der Code ist aus den Libraries des m32 kopiert:
    Code:
    // Initialize the LCD. Always call this before using the LCD!
    void initLCD(void)
    {
    	//delayCycles(34000); No need for Power ON delay as usually the
    	// Bootloader should have been executed before...
    	setLCDD(0b0011);
    	delayCycles(18000);
    	setLCDD(0b0011);
    	delayCycles(5500);
    	setLCDD(0b0011);
    	delayCycles(5500);
    	setLCDD(0b0010);
    	delayCycles(5500);
    	writeLCDCommand(0b00101000);
    	delayCycles(5500);
    	writeLCDCommand(0b00001000);
    	delayCycles(5500);
    	writeLCDCommand(0b00000001);
    	delayCycles(5500);
    	writeLCDCommand(0b00000010);
    	delayCycles(5500);
    	writeLCDCommand(0b00001100);
    	delayCycles(5500);
    }
    Der rote Bereich ist das CLS-Kommando. Dieses braucht zur Ausführung laut Datenblatt meines LCD aber bis zu 1,64ms! Alle anderen Befehle brauchen maximal 40µs. Das ist letztlich der Grund warum meine eigenen LCD-Ansteuerungen bisher nicht sauber liefen. Hier mein aktuelles Setup, die zweiten Werte sind die Wartezeiten in µs laut Datenblatt, sieht deshalb (seit heute;) so aus:
    Code:
    	rsl;
    	_delay_ms(20);                // Initialisieren >15ms nach dem Einschalten
    	lcd_write8(0b00110000,5000);	// >4,1ms
    	lcd_write8(0b00110000,150);   //
    	lcd_write8(0b00110000,150);   //
    	lcd_write8(0b00110000,150);   //
    
    	lcd_write8(0b00100000,150);	// Function Set: 4bit-Modus starten
    	lcd_write4(0b00101000,40);		// Function Set: 2 Zeilen, Font 0 (0010NFxx)
    	lcd_write4(0b00000001,1640);	// Display Clear (dauert ewige 1,64ms!!!)
    	lcd_write4(0b00000110,40);		// Entry Mode Set: inc, no shift
    	lcd_write4(0b00001100,40);		// Display On and Cursor (00001DCB)
    	rsh;
    Lange Rede, kurzer Sinn: Vielleicht stimmt die Initialisierung in der m32-Lib nicht:

    // writeLCDCommand(0b00000001);

    Gruß

    mic
    Geändert von radbruch (18.06.2011 um 17:06 Uhr)
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.09.2009
    Ort
    Berlin (Mariendorf)
    Beiträge
    1.023
    Zitat Zitat von rylix Beitrag anzeigen
    Die beiden Zeilen weisen darauf hin das dein Display korrekt initalisiert wird aber keine weiteren Daten ankommen.
    Vielleicht habe ich das missverstanden, aber: Die dunkle und die helle Zeile weisen meines Wissens genau darauf hin, daß das Display nach dem internen Einschalt-Prozedere eben keine Konfigurierungsbefehle kriegt.
    Wenn so wenig geht, würde ich zu allererst eine penible Sichtprüfung auf Lötbrücken, Zinnkleckse und schlechte Lötstellen machen. Dann die Enable-, Command/Data- und R/W-Leitungen auf eindeutige Funktion testen. Danach kann man in der Software nach dem Fehler fahnden, ohne sich am Ende "in den H...." beißen zu wollen, wenn doch ein Lötklecks schuld war ...
    Kann man bei der fraglichen Hardware Vertauschungen von Leitungen ausschließen? Ist das Display definitiv pinkompatibel zum Standard? Ich hatte schon mal eines, da war die Pinbelegung nur beim ersten flüchtigen Blick OK.

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    18.06.2011
    Ort
    Hechingen
    Alter
    52
    Beiträge
    20
    Hallo,

    danke für die Hinweise.

    Das LCD ist dieses hier. Aufgrund der Beschreibung gehe ich davon aus dass die Pin-Belegung passen müsste.

    Ich habe mir nochmal die Lötstellen angeschaut. Ich kann wirklich keine lockeren Lötstellen oder Lötbrücken erkennen. Ein Messgerät habe ich noch nicht zur Verfügung...aber bald.

    Grüsse, Jordi

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    03.05.2011
    Beiträge
    12
    Zitat Zitat von Jordi Beitrag anzeigen
    Das LCD ist dieses hier. Aufgrund der Beschreibung gehe ich davon aus dass die Pin-Belegung passen müsste.
    Dann prüf sie noch mal
    Ich hab sie bei meinem gefühlte 20x getestet.

    Wenn du die Möglichkeit hast sortiere die Pin-Belegung am AVR mal um.
    Sprich erst oder Data Pins und dann die Steuer Pins bzw andersrum.

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    18.06.2011
    Ort
    Hechingen
    Alter
    52
    Beiträge
    20
    Hallo rylix,

    das Display hängt am LCD-Anschluss der M32-Platine. Wie prüfe ich die Belegung?

    Gruss, Jordi

  7. #7
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    40
    Beiträge
    1.516
    Gar nicht!

    Das ist ein fertig konfektioniertes LCD genau passend zu dem Board da kanns also nicht dran liegen.

    Wohl aber an einem gebrochenen Kabel oder sonstigen Hardwaredefekten wie ich ja schon schrieb.


    Die Initialisierung in Software sollte es eigentlich auch nicht sein, mit dem Display Typ wurde das ja getestet und (es gibt verschiedene Controller je nach Display verhält sich das anders... ).
    Aber sicherheitshalber @Jordi ändere mal die von radbruch angegebene Zeile in


    writeLCDCommand(0b00000001);
    delayCycles(34000);


    um. Sollte daran aber nicht liegen.

    (ACHTUNG: Danach einmal make clean ausführen damit die Library auch sicher aktualisiert wird - danach den Selftest nochmal neu compilieren...)

    MfG,
    SlyD

  8. #8
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Ein Versuch kann ja nicht schaden. Ich habe leider kein vernünftiges Datenblatt für das verwendete Display gefunden. Für einen schnellen Test könnte man initLCD() auskommentieren und durch die geänderte Initialisierung ersetzen:

    PHP-Code:
        // initLCD(); // auskommentiert
        
    setLCDD(0b0011);
        
    delayCycles(18000);
        
    setLCDD(0b0011);
        
    delayCycles(5500);
        
    setLCDD(0b0011);
        
    delayCycles(5500);
        
    setLCDD(0b0010);
        
    delayCycles(5500);
        
    writeLCDCommand(0b00101000);
        
    delayCycles(5500);
        
    writeLCDCommand(0b00001000);
        
    delayCycles(5500);
        
    writeLCDCommand(0b00000001); // längere Wartezeit nach cls
        
    delayCycles(34000);
        
    writeLCDCommand(0b00000010);
        
    delayCycles(5500);
        
    writeLCDCommand(0b00001100);
        
    delayCycles(5500); 
    So braucht man nicht an den Dateien der Library rumfummeln;)

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    18.06.2011
    Ort
    Hechingen
    Alter
    52
    Beiträge
    20
    Hallo SlyD,

    daran lags wirklich nicht.

    Grüsse, Jordi

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    18.06.2011
    Ort
    Hechingen
    Alter
    52
    Beiträge
    20
    Hallo,

    hier mal ein Feedback. Ich habe jetzt die Messungen vorgenommen.

    Zuerst habe ich auf der LCD-Platine immer benachbarte Lötstellen über das Messgerät verbunden um nach ungewollten Lötbrücken zu fahnden. Alle Messungen waren i.O., d.h. das Messgerät zeigte keinen Durchgang an.
    Dann habe ich wie weiter oben im Thread beschrieben Board + LCD-Platine durchgemessen. Bei allen 14 Verbindungen wurden Durchgänge angezeigt.

    Naja, werde das LCD-Display wohl zurückschicken müssen. Trotzdem danke an alle für ihre Hinweise und Vorschläge.

    Grüsse, Jordi

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. RP6 TWI Defekt
    Von Magelan1979 im Forum Robby RP6
    Antworten: 9
    Letzter Beitrag: 22.06.2010, 18:38
  2. LCD Defekt
    Von Pipo im Forum Robby RP6
    Antworten: 6
    Letzter Beitrag: 01.06.2010, 17:53
  3. LCD defekt?
    Von iK3 im Forum AVR Hardwarethemen
    Antworten: 13
    Letzter Beitrag: 01.02.2009, 17:12
  4. AVR-ISP defekt?
    Von der_andi im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 04.02.2008, 10:40
  5. LCD defekt?
    Von PcVirus im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 13.07.2006, 05:49

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests