-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: LCD 4x20 KS0073 Hardwareproblem?

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    09.03.2008
    Beiträge
    16

    LCD 4x20 KS0073 Hardwareproblem?

    Anzeige

    Hallo,

    Bin noch ziehmlicher Neuling in sachen MCU. Habe vor zwei Jahren schonmal angefangen und mir ein Board gebaut. Jetzt blüht das Ganze neu auf.
    Habe mir am We ein neues Board gefertigt mit LCD. Dieses versuche ich nun anzusteuern.

    Nachdem ich mir etliche Themen hierzu im Internet durchgeselen habe und auch schon mehrere Initialisierungen versucht habe, wende ich mich mal an Euch.
    Könntet Ihr euch mal die Hardware anschauen ob dort vll. ein Fehler ist?
    Der Resetpin macht mir leichte sorgen? Dieser liegt bei mir immer auf +5V. Habe ich so gelesen, dass man das wohl so machen kann?!

    Fakt ist. Das Display zeigt mir in allen 4 Zeilen die 20 Zeichen als Balken an und es passiert nichts. Nach dem Initialisieren, wo auch das Display gelöscht wird sollten die Balken ja schon mal weg sein, oder nicht?

    Nunja, daher schließe ich auf Hardwarefehler.

    MC ist ein mega 16 und das Display-Datenblatt ist auf http://www.lcd-module.de/deu/pdf/doma/dip204-4.pdf

    Würde mich wirklich sehr über Hilfe freuen.

    Gruß
    Jannik
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken lcd_347.jpg  

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Die freie Seite von R2 gehört auf GND, sonst hast du auf VEE immer +5V.
    Ob R3 den Strom der Hintergrundbeleuchtung aushält bezweifle ich.
    Den Rest der Schaltung mit Reset hast du unterschlagen.
    Du steuerst das Disp mit 8bit an, üblich sind 4bit.
    Für C gibt es Lib von z.B. Peter Fleury, die funktionieren ausgezeichnet.
    Der LInk ist wohl ein falsches Disp.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    09.03.2008
    Beiträge
    16
    Die freie Seite von R2 gehört auf GND, sonst hast du auf VEE immer +5V.
    Ob R3 den Strom der Hintergrundbeleuchtung aushält bezweifle ich.
    Danke für den Hinweis. Es sind z.Z. fixe Widerstände eingebaut und die LCD-Bel. nimmt auch nur ca. 45mA auf. Kontrast, sowie auch die Beleuchtung funktioniert.

    Den Rest der Schaltung mit Reset hast du unterschlagen.
    Kannst du das genauer erklären?

    Du steuerst das Disp mit 8bit an, üblich sind 4bit.
    Für C gibt es Lib von z.B. Peter Fleury, die funktionieren ausgezeichnet.
    Ich habe es eigentlich bewusst in 8Bit angesteuert, da ich dachte, dass dies "einfacher" ist. Nach der Lib werde ich mal suchen. Sollte ja trotzdem auch im 4Bit Modus laufen?!

    Hier der richtige Link (Blau/Weiß)
    http://www.lcd-module.de/deu/pdf/doma/dip204-4.pdf

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Mit dem fixen Widerstand könnte der Kontrast zu stark eingestellt sein, so das du nichts erkennen kannst. Es sollte daher schon ein Pot sein.
    Auf deiner Schaltung sieht man nur die Hälfte deiner Schaltung (µC)
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    09.03.2008
    Beiträge
    16
    Habe nun ein Poti eingelötet. Der Kontrast lässt sich doch gleich viel besser einstellen
    Leider passiert immer noch rein garnichts.

    Im Anhang habe ich auch noch mal den kompletten Schaltplan. Mit dem Reset meinte ich eigentlich den Reset von dem LCD, den ich auf +5V gelegt habe.
    Die Hardware hat außenrum sicherlich noch kleine fehler, aber das wichtigste (denke ich zummindest) läuft erstmal.

    Ich poste auch mal meine initialisierung. Mehr möchte ich ja erstmal garnicht haben. Nur ein kleiner blinkender Cursor - ein Lebenszeichen
    Code:
    #include <avr/io.h>
    #include <util/delay.h>
    
    #define lcd_data  PORTC
    
    
    void lcd_init(void) {
    	DDRC = 0xff; //LCD-data als Ausgang
    	DDRD = 0xe0; //Port D als Ausgang für RS EN RW
    	PORTD = 0x00;
    	
    	//lt. datenblatt bsp.
    	_delay_ms(20);
    	lcd_data = 0x34;	//function set 8Bit, extension bit re = 1
    	_delay_us(39);
    	lcd_data = 0x09;	//ext. function set 4zeilen modus
    	_delay_us(39);
    	lcd_data = 0x0f;	//display on, cursor ein, cursor blinken
    	_delay_us(39);
    	lcd_data = 0x01;	//clear display
    	_delay_us(1530);
    	lcd_data = 0x06;	//entry mode set
    	
    }
    
    	
    void main (void) {
    	lcd_init();
    }
    Ich konnte im Datenblatt keine Hinweise zum setzen von dem Enable Bit finden? Wann muss dieser high, wann low? vor jedem Befehl?
    Bei der Initialisierung habe ich mich ziehmlich strikt ans Datenblatt gehalten.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken lcd2_185.jpg  

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Damit das Disp die Daten übernimmt muss nach dem Anlegen der Daten das Enable ca. 1µs auf high gelegt werden. RS muss auch auf high sein.
    Schau auch mal hier http://www.mikrocontroller.net/artic...CD-Ansteuerung
    ist zwar für 4bit Mode, aber man kann doch etwas erkennen.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.03.2006
    Beiträge
    200
    Hallo,

    ich experimentiere derzeit ebenfalls mit meinem Display, allerdings scheint ein KS0070 drauf zu sein. Ich habe mal für meinen ATMega8 ein Ansteuerung über 8Bit in Assembler zusammengebastelt.
    Du müsstest nur die Ports und die MC-Frequenz anpassen. Sollte aber kein Problem sein, Assembler ist ja leichter als C

    Also einfach mal ausprobieren und Rückmeldung geben
    Angehängte Dateien Angehängte Dateien

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    09.03.2008
    Beiträge
    16
    Ich habe eben mal die Datenleitungen am Display gemessen, ob diese den passenden Pegel (High, Low), den ich am PORT C ausgebe, haben.
    Dabei ist mir folgendes aufgefallen. Wenn ich den ganzen PORTC = 0x00 setze habe ich am Display pin 10 (Datenbit3), sowie an einem weiteren Pin 4,96V. Der Pegel ist also immer High. Woran kann das liegen ? Display defekt?

    Ich sollte vll dazu sagen, dass das Display gebraucht ist. KA wo das herstammt.

    Ich habe mal nur die den PORTC ohne Verbindung zum Display gemessen. Bei 0x00 Sind trotzdem 3Pinne auf 4,95V und der rest auf etwa 6-8mV gegen Masse!
    Hier würde ich sagen, ist ganz klar der Controller defekt?!

    Das Display ändert irgendwie seine Datenpegel. Ebenfalls Ende offen und nicht mit Port C verbunden. Mal sind die Datenleitungen D0 -D7 High und mal Low. Wie sollte es normalerweise sein? Vll ist das auch defekt und in folge ist der AVR kaputt gegangen?. Wollte mir jetzt nicht zum "testen" ein neues Display für rund 27 euronen kaufen..

    Nun bin ich der Meinung, dass es wahrscheinlich garnicht an meiner initialisierung liegt (dort vll auch drann, aber erstmal die Hardware i.O. bringen).

  9. #9
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Ich würde eher sagen du hast JTAG nicht disabled, damit kannst du PC2 bis PC5 nicht benutzen.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    09.03.2008
    Beiträge
    16
    Ah, ich werd bekloppt. Das ist ja wenn man zum ersten mal son mega16 benutzt. Hatte vorher einen 8515, der hat ja keinen jtag. Ich versuchs mal

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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