Hi,
ich hab im Keller ein LCD Display PC1602LRM-LSO-C
Datenblatt: http://www.pollin.de/shop/downloads/D120508D.PDF
gefunden. Nun möchte ich das ganze über nen ATMEGA 16 ansteuern und z.B.
TEST ausgeben lassen.
Wie ich gerade gelesen habe, brauche ich eine Negativ-Kontrastspannung.
Kann ich dir irgendwie durch die rs232 schnitstelle vom µc erzeugen ?
Hatte da mal irgendwas von logischer 0 und logischer 1 gelesen.
mfg Yannic
Yannic wrote:
> Wie ich gerade gelesen habe, brauche ich eine Negativ-Kontrastspannung.> Kann ich dir irgendwie durch die rs232 schnitstelle vom µc erzeugen ?
Der µC hat keine RS-232-Schnittstelle, sondern nur ein UART, das mit
entsprechender Beschaltung mit RS-232 kommunizieren kann. Der µC selbst
kann auch keine negativen Spannungen ausgeben. Was Du vermutlich meinst
ist der Baustein MAX232 (oder ein Derivat desselben), der als
Schnittstellentreiber mit eingebauter Ladungspumpe die negativen Pegel
erzeugen kann, was manche Bastler ausnutzen, um sich ihre negativen
Kontrastspannungen erzeugen zu lassen. Hat aber nichts mit dem ATMega16
zu tun, sondern ist ein extra Bauteil.
BTW:
Aus diesem Kurzdatenblatt kann ich nicht ersehen, dass da eine negative
Kontrastspannung erforderlich ist. Woher hast Du diese Information?
Hi,
nen MAX232N hab ich auf meinem controller Board auch drauf.
Ich vermute mal stark das es sich bei der Kontrastspannung um eine
Negativspannung handelt. Das Datenblatt scheint aber auch nicht ganz mit
dem Lcd übereinzustimmen. Als ich das Display jedenfalls über den
Normalweg mit poti angeschlossen habe. Hat das Display bei spannungen im
positiven bereich jedenfalls keinen Mucks von sich gegeben. also gehe
ich mal davon aus das es sich um Negativspannung handelt.
wie würde denn dann die Schaltung mit dem MAX232 aussehen ?
Wenn an dem MAX232 noch ein TxIN/TxOUT-Paar frei ist, dann kannst Du,
indem Du den Controller-seitigen TxIN-Pin auf logisch "1" legst, am
entsprechenden TxOUT eine negative Spannung von ca. -10 V abgreifen.
So hab nochmal eine Skizze gemacht wie ich ihn jetzt versucht habe
anzusteuern. Das funktioniert aber auch nicht wirklich.
Der Max232 bekommt den saft dann vom controllerboard.
Warum schreib ich eigentlich was von TxIN/TxOUT, wenn Du dann nen
RxIN/RxOUT verwendest? Mit RxIN/RxOUT geht es nicht!
BTW:
Ich hoffe, die restliche Beschaltung des MAX stimmt und Du hast sie
jetzt nur nicht gezeichnet...
Pin1 an GND
Pin2 an 5V
Pin3 an GND oder - wenn Kontrast zu gering - an Schleifer von Poti,
welches zwischen 5V und GND hängt.
Bist du sicher, dass du die richtigen Pins erwischt hast? In dem
Datenblatt ist Pin 1 zur MITTE der Platine hin markiert ;-)
So ich habe jetzt nochmal Pin 1 an GND Pin 2 an 5V und Pin3 an GND
gehängt also ohne Poti zwischen. Das ganze hatte den Erfolg das ein paar
ziffern auf dem Display kurtz geflackert haben und dann aus gegangen
sind. Immerhin schonmal etwas. Aber so ganz kann es das doch auch noch
nicht sein oder ?
> Aber so ganz kann es das doch auch noch nicht sein oder?
Natürlich nicht. Du brauchst jetzt einen sauber aufgebauten µC inkl.
Energieversorgung, weitere Verbindungen zwischen deinem µC und dem
LCD-Modul und ein ordentliches Steuerprogramm auf dem µC. Zu allen drei
Aspekten liefert die Artikelsammlung wertvolle Hinweise ;-)
Wenn ich den pin fürn Kontast direkt auf Gnd setze müsste doch das ganze
display schwartz werden oder ? Wenn ja das tut es irgendwie nicht.
Hab das display jetzt ans Controllerboard angeschlossen und ein kleines
Programm eingespielt. Passieren tut allerdings wieder 0
Mehr Infos über dieses Display findest du bei
http://www.powertipusa.com/qa.htm
u.a.
- eine genauere Beschreibung der Kontrasteinstellung (10K-20K Poti) und
Auswahl einer interne/externe Kontrasteinstellung per Jumper!
- eine genaue Beschreibung der RESET/INIT Sequenz (Timing, Anweisungen)
Kann es sein, dass du versuchst mit BASCOM zu programmieren. Speziell
mit dem Pollin Display liest man einiges von Schwierigkeiten mit BASCOM,
hingegen sollen übliche C und Assemblerroutinen funktionieren.
Und ich bettele jetzt nicht nochmal nach deinem Schaltplan und dem
Steuerprogramm. Du wirst wissen, was du machst. Viel Erfolg!
Danke schonmal für die Info :)
Bisher hab ich alles so aufgebaut wie hier beschriben:
http://www.roboternetz.de/wissen/index.php/Bascom_und_LCD%27s
Den Code in Basecom habe ich auch so übernommen.
Auf der Website verstehe ich die Funktion von den Jumpern nicht so
genau. Kannst du mir das ggf. noch mal genauer erklären ?
Willst du mich ver*rschen?
Atmega8 (Roboternetzseite) und Atmega16 (du) sind nicht pinkompatibel
und nicht programmkompatibel. Schau mal was PD0/PD1 am Atmega16 ist und
was du "noch auf deinem Controllerboard drauf" hast und wie das mit der
Schaltung und dem Programm von Roboternetz harmoniert.
Ich hab das Regfile und die Quartzzahlen natürlich angepasst. Die Pins
sind sonst wie folgt belegt:
PD0 (RXD)
PD1 (TXD)
PD2 (INT0)
PD3 (INT1)
PD4 (OC1B)
PD5 (OC1A)
PD6 (ICP1)
PD7 (OC2)
Verarschen will ich hier keinen. Ich bin halt noch totaler Anfänger und
kenn mich noch nicht so ganz mit der Materie aus. Deswegen hoffe ich ja
auch auf möglichst einfache erklärungen so das ich auch dazu lernen
kann.
Eigentlich würd ich ja erstmal am liebsten Testen ob das LCD überhaupt
funktionstüchtig ist, oder ob irgendwas durchgeschmorrt ist.
Nur hab ich keine ahnung wie ich das Anstellen soll.
Hat den sonst jemand ne Idee zum Code. Der sollte nur beinhalten das
erstmal überhaupt irgendetwas mit dem LCD passiert.
Aber alleine jetzt, wo die Kontrastspannung von meinem LCd über einen
10K Poti lüft sollte wenn ich das Poti drehe doch irgendetwas auf dem
LCD Passieren. tut es aber nicht. Also kann man doch davon ausgehen das
es defekt ist oder ?
So neuer Versuch:
Ich hab mir gerade dieses Display bei Pollin gekauft.
http://www.pollin.de/shop/shop.php?.....hp&pg=NQ==&a=OTc1OTc4OTk=
Erstmal hab ich das Poti für den Kontrast angeschlossen, das klappte
auch schon mal alles super.
Dann hab ich die Pins wie folgt belegt:
Atmega16 PinD0 an an DB 4
Atmega16 PinD1 an an DB 5
Atmega16 PinD2 an an DB 6
Atmega16 PinD3 an an DB 7
Atmega16 PinD4 an RS
Atmega16 PinD5 an E
und R/W hab ich auf Masse gelegt.
Dann hab ich versucht das ganze mit folgendem Code anzusteuern:
$regfile = "m16def.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 ,
Db7 =Portd.3 , E = Portd.5 , Rs = Portd.4
Cls
Locate 1 , 1
Lcd "Hello world."
Nur das Display bleibt leider leer und es tut sich nichts.
Hat wer eine Lösung für das Problem ?
mfg Yannic
dann ise Display vieleicht kaputt!
Wenn bei diesen einfachen Character LCDs die Kontrastpannung in der Nähe
von GND (0.2-0,5V) ist sollte für jeden Char ein schwarzes Kästchen zu
sehen sein.
10K Poti zwischen VCC und GND. Schleifer auf Kontrasteingangpin LCD.
Graphic LCDs brauchen meist negative Kontrastspannung. (DC/DC Wandler
oft auf LCD drauf)
mfg
Roger