Hallo Leute, ich stehe gerade vor der Frage, wie ich ein solches LCD-Display hier am besten ansteuern kann: http://www.reichelt.de/?ACTION=3;LA=4;GROUP=A5211;GROUPID=3005;ARTICLE=10182;START=0;SORT=preis;OFFSET=1000 Die Problematik ist, dass normales Multiplexing nicht funktioniert, da man bei diesem Display nicht einfach einzelne Ziffern abschalten kann, indem man ihnen die Versorgungsspannung kappt -- oder gibt es da doch irgendeine Moeglichkeit, die ich nicht sehe? Ich koennte im Prinzip Treiberbausteine benutzen aber das finde ich ein bisschen verschwenderisch (die sind teuer), ausserdem hab ich nicht die mit der richtigen Logik da so dass ich alles nochmal invertieren muesste. Habe mir auch ueberlegt, dass man ja die Segmente von einem Bus abgreifen koennte und nochmals jedes einzelne dann mit einem UND-Gatter und einer Selektionsleitung verbindet (hoffe ihr versteht, was ich meine). Da ich aber nur NORs habe wird auch das etwas aufwendig, da man dann doch ne Menge Gatter braucht. Funktionieren wuerde es aber schon. Vielleicht hat ja von Euch einer ne bessere Idee? Gruesse, Michael
@ Michael G. (linuxgeek) >Die Problematik ist, dass normales Multiplexing nicht funktioniert, da >man bei diesem Display nicht einfach einzelne Ziffern abschalten kann, >indem man ihnen die Versorgungsspannung kappt -- oder gibt es da doch Doch. Allerdings brauchen die Dinger eine reine Wechselspannung, damit sie nicht kaputt gehen. D.H. der Backplaneanschluss muss immer getoggelt werden, ebenso die Segmente. Ist aber kein Propblem, sind ne Handvoll Befehle. >mit der richtigen Logik da so dass ich alles nochmal invertieren >muesste. Und? Du hast doch sowieso einen uC, oder? >Habe mir auch ueberlegt, dass man ja die Segmente von einem Bus >abgreifen koennte und nochmals jedes einzelne dann mit einem UND-Gatter >und einer Selektionsleitung verbindet (hoffe ihr versteht, was ich >meine). Da ich aber nur NORs habe wird auch das etwas aufwendig, da man >dann doch ne Menge Gatter braucht. Funktionieren wuerde es aber schon. Du willst eine Ansteuerung mit reinen NORs bauen? Na mal viel Spass . . . >Vielleicht hat ja von Euch einer ne bessere Idee? nimm einem kleinen uC, damit kannst du wenigstens zwei Stellen direkt ansteuern. Wenn es mehr sein sollen nimm Schieberegister. AVR-Tutorial: Schieberegister MfG Falk
Falk Brunner wrote: >>Die Problematik ist, dass normales Multiplexing nicht funktioniert, da >>man bei diesem Display nicht einfach einzelne Ziffern abschalten kann, >>indem man ihnen die Versorgungsspannung kappt -- oder gibt es da doch > > Doch. Allerdings brauchen die Dinger eine reine Wechselspannung, damit > sie nicht kaputt gehen. D.H. der Backplaneanschluss muss immer getoggelt > werden, ebenso die Segmente. Ist aber kein Propblem, sind ne Handvoll > Befehle. Da liegst du falsch, Miachael hat schon recht: Man benötigt mehr als 2 Pegel um ein LCD zu multiplexen. Atmel hat dazu glaube ich auch eine Application Note, da wird das über Spannungsteiler und Tristate erreicht. In diesem Fall ist es aber anderst: Das LCD wird statisch angesteuert, also nicht gemultiplexed. BP wird mit einer Rechteckspannung (einige 100Hz bis wenige kHz) angesteuert. Dann gilt: BP = Segment -> Segment aus BP != Segment -> Segment an
> Doch. Allerdings brauchen die Dinger eine reine Wechselspannung, damit > sie nicht kaputt gehen. D.H. der Backplaneanschluss muss immer getoggelt > werden, ebenso die Segmente. Ist aber kein Propblem, sind ne Handvoll > Befehle. Verstehe ich jetzt nicht ganz...? Bloederweise gibt es zu den Teilen kein echtes Datenblatt (zumindest hat weder Reichelt noch C eines und sonst habe ich auch keines gefunden) nur ein Bild mit der Pinbelegung. D.h. jetzt man legt an die Anschluss fuer das back panel eine Frequenz an? Und an Col/COM kommt Masse? > Du willst eine Ansteuerung mit reinen NORs bauen? Na mal viel Spass... Nein natuerlich nicht. Du hast einen Bus und mit der Logik greifst Du halt Du die Leitungen halt so ab dass Du immer ein Segment auswaehlen kannst. Ein Eingang des Gatters geht dann quasi auf den Datenbus und ein zweites wird dann aktiviert (AND), wenn gerade Daten fuer genau dieses Segment anliegen. Verstehst Du? Mit dem Gedanken Schieberegister habe ich auch schon gespielt... gefaellt mir aber spontan jetzt nicht so. Haette sogar welche da... will mir ja jetzt deswegen keine neuen Teile holen das is nur ein Spassprojektlein, soll eine Digitaluhr werden, so zum warm werden quasi ;) Ach ja in dem Zusammenhang: Isch will einen Impulsgeber zum Einstellen der Zeit einsetzen... hab damit auch noch nicht gearbeitet, daher komme ich wahrscheinlich damit auch nochmal an ;)
@ Benedikt K. (benedikt) >Da liegst du falsch, Miachael hat schon recht: Man benötigt mehr als 2 >Pegel um ein LCD zu multiplexen. Atmel hat dazu glaube ich auch eine Stimmt, hast Recht, ich war gedanklich bei der normalen Ansteuerung. MFG Falk
Michael G. wrote: > D.h. jetzt man legt an die Anschluss fuer das back panel eine Frequenz > an? Und an Col/COM kommt Masse? Guck dir mal die Datenblätter der LCD-AVRs an (das sind die 9er AVRs: ATmega169, ATmega329/3290, ATmega649/6490). Erstens könntest du natürlich gleich einen solchen nehmen, zweitens ist dort auch ein wenig beschrieben, wie die Ansteuerung funktioniert.
Ich seh schon, das wird schwieriger als urspruenglich vermutet. Gut dass ich nochmal nachgefragt habe. Danke fuer den Tip.
Hallo Michael, schau dir mal das datenblatt zu dem "74HC 4543" an, den gibts auch be reichelt. ich habe genau dieses display auch mit hilfe dieses bausteins angesteuert. die lösung ist zwar recht aufwendig, aber wenn du spass am basteln hast, dann bist du damit genau richtig bedient. dieser baustein verfügt schon über den "Ph" eingang, mit deren hilfe sich die ausgänge toggeln lassen. du musst dann nur noch dafür sorgen das du an der backplane des displays genau die gegenphase anlegst, das kannst du erreichen indem du das ph signal mit hilfe eines bc547 einfach invertierst, oder einen invertierten uc pin dafür abstellst. um die daten verteilen zu können, werden alle datanpins parallel geschaltet. ABCD. mit den strobe leitungen kannst du die daten in das interne latch laden. ich habe das mal vor jahren gemacht, diese methode ist recht aufwändig, da du für jedes segment einen treiber benötigst, das liegt daran das das display nur eine backplane besitzt, und ein multiplexing somit ausgeschlossen wird, ansonsten könntest du dir einiges sparen. auf dem ph pin kannst du mit einer frequenz von rund 50hz und einem tastverhältnis von 50% 50% ein gutes ergebnis erziehlen. es gibt diese displays auch mit getrennter backplane. gruß, m.
Mit µC lassen sich auch LCDs mit mehreren Backplanes ansteuern (siehe Anhang). Für einfache Displays glaube ich einmal eine Schaltung mit CMOS-EXOR-Gattern (geschaltete Inverter) gesehen zu haben. Einfach einen Takt von 30-200Hz an BP und jeweils den ersten Gattereingang. Die zweiten Eingänge kommen vom µC. Damit lassen sich auch andere Symbole als BCD erzeugen. Gruss Digger
Hi Maddin, danke fuer Deinen Tip allerdings hatte ich gehofft ohne zusaetzliche Treiberbausteine auszukommen -- ausserdem nehm ich mir da ja schon fast wieder zuviel ich will ja lernen. Und mal generell zu wissen wie die Geschichte funktioniert sich sicherlich von Vorteil. Digger72, danke! Das Dokument ist ja sehr vielversprechend, wird gleich mal ausgedruckt ;)
> Was spricht denn gegen ATmega169 & Co?
Dass ich keinen davon gebunkert habe und ich heute nich schon wieder 2
Stunden fuer das hohe C verplempern will? ;)
Also das mit dem Duplexing scheint ja nen bissel nen echtes Problem zu
sein... "only (S/2)+2 MCU pins are required to drive", das sind dann
28/2+2 = 16. Hmmm... die 16 koennte man aber doch so grade noch
zusammenkratzen denke ich mal? Das Display scheint ja zwei
COM-Anschluesse zu haben also isses wohl ein "duplexed LCD". Allerdings
kann man sich nich sicher sein, das "Datenblatt" oder die
Produktbezeichnung gibt darueber keinen Aufschluss :(
Mir is im Moment grad unklar warum man da nich multiplexen kann naja
spaeter denk ich mal drueber nach wenn ich Zeit hab :/
Michael
Michael G. wrote: > Also das mit dem Duplexing scheint ja nen bissel nen echtes Problem zu > sein... "only (S/2)+2 MCU pins are required to drive", das sind dann > 28/2+2 = 16. Hmmm... die 16 koennte man aber doch so grade noch > zusammenkratzen denke ich mal? Das Display scheint ja zwei > COM-Anschluesse zu haben also isses wohl ein "duplexed LCD". Allerdings > kann man sich nich sicher sein, das "Datenblatt" oder die > Produktbezeichnung gibt darueber keinen Aufschluss :( Das LCD hat 40 pins und 4 * 8 =32 Segmente. Also wird nichts gemultiplexed. beide BP Pins sind miteinander verbunden. > Mir is im Moment grad unklar warum man da nich multiplexen kann naja > spaeter denk ich mal drueber nach wenn ich Zeit hab :/ Die Theorie hinter einer gemultiplexten LCD Ansteuerung ist etwas komliziert (vor allem wenn man die Kurvenformen betrachtet). Das ganze zu erklären dauert etwas zulange, daher hier nurmal die wichtigsten Punke: - Die Spannung zwischen den Zeilen/Spalten (also die die ein Segment letztendlich sieht) muss DC frei sein - Ein Segment "leuchtet" sobald die Spannung einen bestimmten Wert überschreitet, egal ob positiv oder negativ. Wenn man sich jetzmal bei einer LED Multiplexanzeige die Spannung anschaut, sieht man, dass die ausgechalteten LEDs eine Spannung von -5V bekommen. Die LEDs sind aus, da sie nur auf eine richtig gepolte Spannung reagieren. Ein LCD leuchtet dann aber. Daher muss man mit ein paar Tricks arbeiten und die Spannungen so wählen, dass die Schwellspannung bei nicht aktiven Zeilen (=Backplanes) gerade so noch nicht erreicht ist, damit das Segment leuchtet. Daher ist der Kontrast immer etwas eingeschränkt, da die Schwellspannung nicht ein fester Punkt ist, sondern eine mehr oder weniger steile Kennlinie. Schau dir mal das Datenblatt des PCF8577 an, da ist das ganze einigermaßen gut dargestellt, wie die Spannungen bei den unterschiedlichen Muxraten aussehen.
Joerg, wie war das doch gleich mit dem Atmega169? *g Hm ich seh grad dass ich dafuer leider keinen Programmer habe, zumindest noch nicht. Alles verflixt... Theoretisch koennte ich ja auch nen 32er nehmen der haette genug Portpins dafuer ;) Also irgendeine pragmatische Loesung muss her... danke fuer die Hinweise, Benedikt, muss mir das mal durch den Kopf gehen lassen.
@ Michael G. (linuxgeek) >Theoretisch koennte ich ja auch nen 32er nehmen der haette genug >Portpins dafuer ;) Also irgendeine pragmatische Loesung muss her... Nimm Schiebegregister, 74HC595. Schnell, billig, braucht drei Pins. MFG Falk
OK ich glaube auch langsam dass es dann auf Schieberegister hinauslaeuft. Mal sehen wieviele ich davon dann brauche, habe welche aus der 40xx-Serie die sollten hoffentlich tun...
Michael G. wrote: > OK ich glaube auch langsam dass es dann auf Schieberegister > hinauslaeuft. Mal sehen wieviele ich davon dann brauche, habe welche aus > der 40xx-Serie die sollten hoffentlich tun... Für 4 Digits brauchst Du 4 Stück 74HC595. Peter
Was für einen Programmer hast du denn, dass er den (eigentlich schon sehr alten) ATmega169 nicht unterstützt? Abgesehen vielleicht von einem AVR910-artigen sollte es den Programmer doch sowieso kaum interessieren, was genau für ein AVR da hinten dran hängt (und beim AVR910 musst du halt mal einen Firmwareupgrade machen).
Ich benutze den STK500, aber der ATmega 169 kommt im TQFP-64-Gehaeuse daher und dafuer hab ich immo kein Modul... kommt spaeter mal. Und da jetzt was zusammenzuimprovisieren is jetzt nich grad das wahre ;) Hab ohnehin erst kuerzlich wieder Unsummen in das Hobby investiert da darf ich garnich dran denken ;)
Achso... da gibt's aber auch Adapterplatinchen für den TQFP-Kram. Was den STK502 so teuer macht, ist ja nur diese ZIF-Fassung. Oder eben gleich eine Platine für ATmega169 + LCD entwerfen.
Yaps ich weiss da gibbet ein Aufsteckboard sogar eines wo schon ein LCD mit drauf ist (gibt es z.B. bei Segor). Aber wie gesagt: >100EUR nicht im Moment. Habe das aber schon im Auge, das noch aufzuruesten. Ich dachte faengste mal klein an...
Nein, das Aufsteckboard ist der STK502 mit der teuren ZIF-Fassung. Ich meinte so 'ne einfache Adapterplatine, auf die man einen TQFP auflöten kann und die die Pins nach draußen auffächert.
Das waere natuerlich eine Moeglichkeit... aber dann is das IC halt auf der Platine... und loet das dann mal wieder aus. Is mir zuviel Gefrickel ;) Ich werde es jetzt mit den Schieberegistern versuchen und wenn isch brauchbare Ergebnisse habe werde ich es Euch wissen lassen. Kann irgendwo auch nicht angehen dass man da schon zu solchen Geschuetzen greifen muss nur fuer so ein kleines LCD, da freu ich mich schon auf die vollgrafische OLED, die ich mir bestellt hab :D Na sups ich seh grad die haben's nich mehr im Programm und daher nicht geliefert :(
Michael G. wrote: > Das waere natuerlich eine Moeglichkeit... aber dann is das IC halt auf > der Platine... und loet das dann mal wieder aus. Einfacher als einlöten: mit der Heißluftpistole. Ich würde aber vermutlich angesichts des geringen Preises das Teil auf der Adapterplatine lassen (für künftige Experimente) und die fertige Schaltung mit einem zweiten aufbauen.
Also ich hab' immer das passende Ansteuer-IC dazu genommen (ICL 7106 CPL glaube ich). Lässt sich einfachst vom µC ansprechen.
Joerg: Hoert sich gut an ich werde sicher auch mal mit diesem Controller experimentieren, aber fuer den Moment und fuer diese einfache Anwendung muss es auch ein Atmega8 (max. 32 und nichtmal das wirklich) tun. Ja ich koennt etz wieder zum hohen C fahren nur um dann zu merken dass er das, was ich brauche, mal wieder nicht auf Lager hat... oder es mit den Sachen machen, die ich habe, und nerven sparen ;) Wenn es denn wirklich ueberhaupt nich klappen will kann ich immer noch ueber ansteuerics nachdenken. Aber: solche ICs sind ueblicherweise recht teuer und wenn ich schon nen Mikrocontroller hab wozu das? Den code braucht man auch nur einmal schreiben und hat ihn dann...
hier mal ein paar bilder der anwendung mit dem 74hc4543 gruß, m.
Schaut fast so aus als ob ich mir so Treiberbausteine holen werde... die Schieberegister die ich daheim habe passen irgendwie nich so recht (4006). Auf der besch... C-Homepage findet man mal wieder nichts jetzt kann ich nur hoffen dass die die Dinger auch haben :/ Thx for the tip. Beim Reichelt kost er 40ct dann kost er beim C wahrscheinlich >1EUR.
@Michael g, >>danke fuer Deinen Tip allerdings hatte ich gehofft ohne zusaetzliche Treiberbausteine auszukommen -- ausserdem nehm ich mir da ja schon fast wieder zuviel ich will ja lernen. Und mal generell zu wissen wie die Geschichte funktioniert sich sicherlich von Vorteil.<< >>Habe mir auch ueberlegt, dass man ja die Segmente von einem Bus abgreifen koennte und nochmals jedes einzelne dann mit einem UND-Gatter und einer Selektionsleitung verbindet (hoffe ihr versteht, was ich meine). Da ich aber nur NORs habe wird auch das etwas aufwendig, da man dann doch ne Menge Gatter braucht. Funktionieren wuerde es aber schon.<< ...also: treiberbausteine sind dir zu teuer, naja, 38cent reißen was weg. nor und nand sind dir zu aufwendig, ein kleiner passender treiber nimmt dir evtl. zu viel am spaß, ganz ehrlich: irgentwie widersprichst du dir selbst so stark, nun gut, ich habe mit diesen schaltungen wunderbar den einstieg in die lcd ansteuerung gefunden, klar kannst du da auch schieberegister hin nageln, oder was weiß ich... meinen segen hast du, viel erfolg. gruß, m.
Es gibt CD4543 und 74HC4543. Für die Kommapunkte braucht man noch extra EXOR-Gatter, also 74HC86 oder CD4030. Mit zwei Gattern kann man noch den Wechselspannungsgenerator bauen, 32Hz wird gern benutzt, aber das ist unkritisch, sollte halt nicht flackern, aber nicht so schnell wechseln, sonst verschmiert die Anzeige durch ihre große Kapazität.
hi, ich nutze einfach 5x 4543, mit dem letzten lässt sich bei richtiger verdrahtung jeder punkt einzeln ansprechen, wenn man die richtigen segmentleitungen verwendet... gruß, m.
Die Dezimalpunkte brauche ich nicht in diesem Fall daher werde ich es jetzt mal mit dem 74HC4543 wagen. Maddin: Ich widerspreche mir nicht, sondern habe mich lediglich fuer einen der unterschiedlichen Ansaetze von Euch entschieden. Ferner habe ich leider nur begrenzt Zeit. Da ich diese LCD-Displays etwas unterschaetzt habe verwende ich jetzt eben die Treiberbausteine, denn das ist weniger umstaendlich als mit Schieberegistern und ein vergleichbarer Schaltaufwand. OK ein paar mehr Portpins braucht man, allerdings hat der Atmega8 hierfuer genug. Danke fuer Eure Anregungen, Michael
He da is mir gleich noch ne gute Idee gekommen im Zusammenhang mit dieser Uhr: Ich bau mir meine Geek-Version gleich mit :D Die kommt mit 29 LEDs als Ausgabe klar (=
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.