-         
Seite 1 von 5 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 42

Thema: Problem mit LCD-Modul TC1602A-09 von Pollin.

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    20.02.2007
    Beiträge
    341

    Problem mit LCD-Modul TC1602A-09 von Pollin.

    Anzeige

    Hi,

    ich habe mir bei Pollin folgendes Display gekauft:

    LCD-Modul TC1602A-09.

    Als dieses nun zuhause ankam sah es schonmal etwas anders auf als auf dem Produktfoto.

    1. Die Anschlussleiste ist nicht unter dem display und hat 16 pins sondern ist neben dem Display und hat 14 Anschlusslöcher und 2 an der gegenüberliegenden Seite 2 für die Hintergrundbeleuchtung.

    So dann hab ich das Display erstmal ohne µc angeschlossen. In der oberen Leiste werden auch die schwarzen Kästchen angezeigt. Kontrast einstellen mit Poti läuft auch ohne Probleme. Soweit so gut, nun wollte ich das Display an meinen Atmega16 (Der auf dem älteren Pollin Evolutionsboard 2.0) sitzt betreiben.

    Angeschlossen ist es im 4-Bit modus an PortA des µC um nicht genau zu sagen:

    Db4 an µc PortA.0
    Db5 an µc PortA.1
    Db6 an µc PortA.2
    Db7 an µc PortA.3
    R/W an µc PortA.4
    E an µc PortA.5
    R/W auf GND
    Db0 - Db4 auf GND

    Dann hab ich den µC mit folgendem Code gespeist:

    Code:
    $regfile = "m16def.dat"
    $crystal = 1000000
    Config Pina.0 = Output
    Config Pina.1 = Output
    Config Pina.2 = Output
    Config Pina.3 = Output
    Config Pina.4 = Output
    Config Pina.5 = Output
    
    Config Lcd = 16 * 2                                         
    Config Lcdpin = Pin , Db4 = Porta.0 , Db5 = Porta.1 , Db6 = Porta.2 , Db7 = Porta.3 , E = Porta.5 , Rs = Porta.4
    
     Config Lcdbus = 4
    
    Initlcd
    
    Cls
    
    Do
     Locate 1 , 1
     Lcd "test"
     Waitms 500
    Loop
    Passieren tut dabei allerdings garnichts. Auf dem Pollinboard ist ein externes Quartz drauf, welches ich allerdings mit den Fusebits nicht wirklich angenommen wird. Stimmt die Angabe von $crystal = 1000000 wenn ich den Internen Takt vom Atmega 16 verwenden möchte ?

    Das Display scheint sich auch nicht zu initalisieren, da die schwarzen Balken auf dem Display bleiben. (Kontrast ist auch richtig eingestellt).

    Leider kann ich momentan nur mit Basecom programmieren. Währe aber auch sehr dankbar wenn mir jemand eine Lösung mit C zeigen könnte wo dann auch das Timing des Display eingehalten werden kann.

    Ich hoffe mir kann wer helfen

    mfg blamaster

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    23.11.2006
    Ort
    K-Town
    Alter
    40
    Beiträge
    178
    hi,

    also erstmal konfiguriere mal den Port richtig...
    z.b. so

    Ddra = &B11111111
    Porta = &B11111111

    oder mit config porta = output

    dann fehlt ein "end" am ende des programms - auch wenn du dich in einer schleife bewegst.

    R/W musst du meiner Meinung nach fest auf Low legen - kein PortPin!
    wahrscheinlich hast du dich da mit R/S verschrieben

    initlcd benötigst du eigentlich nicht. ... stört wahrscheinlich aber auch nicht weiter...

    check das nochmal und messe die Pins von µP zu Display durch...

    Zapo.

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    20.02.2007
    Beiträge
    341
    Jo mit R/S und R/W hatte ich mich verschrieben.

    Ich hab einfach mal mit einer Led die einzelnen Pins durchgetastet.

    Die Led hat dann ziehmlich schwach und schnel geflackert. An 2 Pins hat nichts geflackert da hat sie hell geleuchtet .

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    23.11.2006
    Ort
    K-Town
    Alter
    40
    Beiträge
    178
    hast du das angegeben:

    Config Lcdmode = Port
    Config Lcdbus = 4

    ??

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    20.02.2007
    Beiträge
    341
    Config Lcdbus = 4 hab ich angegeben.

    Config Lcdmode = port nein.

    Stimmt meine quartz einstellung denn sowenn ich das interne quartz verwenden möchte ?

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    23.11.2006
    Ort
    K-Town
    Alter
    40
    Beiträge
    178
    BASCOM ist doch ideal zum einstellen des Taktes!

    wenn du 1 Mhz im Quellcode angibst musst du den Prozessor natürlich auch auf 1 Mhz einstellen ... kontrolliere es indem du oben auf "Manuell Programm" drückst - dann auf die Registerkarte Lock and Fuse Bits klickst und dann musst du ungefähr in der Mitte die Anzeige haben Internal Clock oder Div Clock by 8 enable oder disable oder so....

    erklärt sich ja von selbst, oder ? 8 Mhz durch 8 teilen = 1Mhz
    internal = intern!

    verstanden?

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    20.02.2007
    Beiträge
    341
    Hi,

    wie hoch kann denn der mega 16 getaktet werden mit internem quartz ? 8 Mhz ?

    Die Fusebits würd ich wenn dann gerne mit Pony Prog setzen. Weißt du wleche Einstellungen da die richtigen sind ?

    Und noch ne Frage zum timing vom Display.

    Würde es nicht reichen wenn man zwischen jedem vorgang einfach mal großzügig waitms 100 setzen würde, oder hätte das keinen effekt ?

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.11.2005
    Ort
    QTH: JO43BC
    Alter
    50
    Beiträge
    112
    Hallo,

    also ich habe gerade ein 20*4 an einem ATMega168 geklemmt. Klappte auf Anhieb mit folgendem Minimalcode:

    Code:
    $regfile = "m168def.dat"
    $crystal = 16000000
    
    Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
    Config Lcd = 20 * 4
    
    Initlcd
    Cls
    Cursor Off
    
    Locate 1 , 1
    Lcd "Hello World"
    
    Do
     nop
    Loop
    
    End
    RW ist bei mir auch auf GND. DB0-DB3 haengen bei mir einfach in der Luft. Das habe ich mittlerweile schon mit ca. 60 verbauten LCD's so gemacht. Laeuft seither problemlos.

    Also ich vermute mal das Du noch einen Verdrahtungsfehler hast.

    Mit freundlichen Gruessen
    Digitali

  9. #9
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    20.02.2007
    Beiträge
    341
    so neues voner Front

    Ich hab jetzt nochmal die Verkabelung überprüft und die Pins Db0 - Db3 vom GND genommen.

    Dann folgenden code überspielt:

    Code:
    $regfile = "m16def.dat"
    $crystal = 16000000
    
    Config Lcdpin = Pin , Db4 = Porta.0 , Db5 = Porta.1 , Db6 = Porta.2 , Db7 = Porta.3 , E = Porta.5 , Rs = Porta.4
    Config Lcd = 16 * 2
    Config Lcdbus = 4
    
    Initlcd
    Cls
    Cursor Off
    Locate 1 , 1
    Lcd "Hello World"
    
    Do
     nop
    Loop
    
    End
    Dann dem Display Saft gegeben und die schwarzen Balken waren wieder da. Dann hab ich den uµ angeschaltet und die schwarzen Balken sind verschwunden. Das heißt also das Display scheint sich nun zu initalisieren. Die große Frage ist nun nur was kann man daraus schließen ? Text ist auf dem Display immernoch keiner zu sehen ....

    Aber wenigstens schonmal etwas

    Hoffe ihr könnt mir weiter helfen ^^

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    23.11.2006
    Ort
    K-Town
    Alter
    40
    Beiträge
    178
    es ist so wie auch digitali geschrieben hat:

    minimalcode, pins in der Luft hängen lassen und einschalten - fertig
    inits dauern keine sekunde! du hast entweder ein verdrahtungsfehler drin oder du hast das display bzw. proz. zerstört... tausche mal eine komponente aus... (habe das display ebenfalls und das läuft sehr gut!)

Seite 1 von 5 123 ... LetzteLetzte

Berechtigungen

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