mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD mit Atmega 16 ansteuern?


Autor: Yannic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Yannic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ?

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Yannic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wie genau mache ich das ?

Gibt es sonst noch eine Möglichkeit um zu testen ob das display nicht 
defekt ist ?

Autor: Yannic (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ;-)

Autor: Yannic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo die pins stimmen. Sind bei mir auch nochmal auf der Platine selber 
beschriftet.

Autor: Yannic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ?

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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 ;-)

Autor: Yannic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!

Autor: Yannic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke schonmal für die Info :)

Bisher hab ich alles so aufgebaut wie hier beschriben:

http://www.roboternetz.de/wissen/index.php/Bascom_...

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 ?

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Yannic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich teste LCDs meistens am LPT.
Da gibt es für jeden Displaytyp fertige Programme.
...kostet halt 0,5-1 Stunde um ein passendes Kabel anzufertigen.

Autor: Yannic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ?

Autor: Yannic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"nochmal rauswühl"

Ist es eigentlich egal mit welchen ports vom µC man ein Display 
ansteuert also ob A,B,C oder D ?

mfg Yannic

Autor: roboterheld (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
-10 volt sind ein bisschen zuviel gewesen.

Autor: Yannic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur noch letzte Frage ist aktuell.

Bitte um Antwort :)

Autor: Yannic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So neuer Versuch:

Ich hab mir gerade dieses Display bei Pollin gekauft.

http://www.pollin.de/shop/shop.php?.....hp&pg=NQ==...

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

Autor: Yannic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Edit. Oberer Link geht nicht:

http://www.pollin.de/shop/downloads/D120420D.PDF

Autor: Roger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Yannic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja wenn ich die Kontrastspannung niedrig einstelle hab ich kästchen in 
der 1. Zeile.

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Setze mal den Befehl "INITLCD" vor das CLS.

MfG Paul

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.