Forum: Mikrocontroller und Digitale Elektronik Segmentinformation einer LCD Anzeige extrahieren


von P. K. (dg4ek)


Lesenswert?

Hallo,
zur Ansteuerung einer LED-Anzeige möchte ich gern
die Segmentinformationen einer LCD-Anzeige aus den
Ansteuersignalen eben einer solchen LCD Anzeige
separieren und aufbereiten.

Das Problem besteht nun darin, dass LCD Anzeigen
bekanntlich mit einem Rechteck (man könnte es auch
eine Wechselspannung nennen) anstelle einer
Gleichspannung betrieben werden, so dass aus der
Überlagerung von reiner Segmentinfo und eben dieses
Betriebsspannungsrechteckes, am LCD eine doch ziemlich
verwirrende 4 bis 5-Pegelspannung anliegt
aus welcher der Betriebsspannungsrechteck mit einer
Logik zum Erhalt der reinen Segmentinformationen entfernt
werden müßte.

Konkret praktisches Problem:
Die Anschlüsse, also wo welches Segment und die
Backplane der 8-stelligen LCD-Anzeige den betreffenden
Ansteuerchip (Datenblatt ist nicht zu bekommen)
verlassen, ist weder bekannt, noch konnte ich dies
logisch ermitteln :(

Hat jemand schon einmal so etwas gemacht oder
kann Tipps geben, wie ich die Anschlüsse
der Segmente & der Backplane
ohne die Anzeige zu zerstören (z.B. Zerlegen und
Bahnen auf dem Glas verfolgen) ermitteln könnte?

Eigentlich wäre ja nur die Rechteckbetriebsspannung
zu entfernen....

Ich bin für jeden Tipp und/oder eine konkret
funktionierende Schaltung dankbar...

Peter

von hp-freund (Gast)


Lesenswert?


von P. K. (dg4ek)


Lesenswert?

Danke für den Hinweis. Das hiesige LCD hat
offenbar auch 4 Backplanes, leider kann man aber nicht
alle Leitungen auf dem Glas einwandfrei optisch verfolgen :(

Wie schalten die 8 Stck. 7-Segment Digits dann mit 20 Leitungen
(plus 4 für die Backplanes)...?

Gruß
Peter

von Nosnibor (Gast)


Lesenswert?

Bei nur vier Backplanes gibt es natürlich keine schöne Matrix aus 
Segmenten einerseits und Digits andererseits, wie man das von LEDs oder 
VFDs gewohnt ist.

Meist sind die Backplanes horizontal aufgeteilt, also waagrechte 
Streifen. Dann gibt es eine Backplane für zwei Segmente oben (waagrecht 
und ein senkrechtes), eine für die nächsten zwei (das andere senkrechte 
+ der mittlere waagrechte Strich), eine für die unteren beiden 
senkrechten Striche, und eine für den unteren waagrechten und den 
Dezimalpunkt. Pro Digit braucht's dann zwei Spaltenleitungen. Für 8 
Digits also 16 Spaltenleitungen plus vier Backplanes.

Normalerweise würde man eine Matrix ja möglichst quadratisch bauen, also 
in diesem Fall 8x8 statt 16x4, um mit weniger 
Leitungen/Portpins/Treibern auszukommen. Bei LCD spricht aber dagegen, 
daß man das Multiplexverhältnis nicht so gut kompensieren kann (einfach 
den achtfachen Strom nehmen wie bei LEDs geht eben nicht). Außerdem 
braucht beim Multiplexen von LCDs eine Leitungsgruppe mehr als zwei 
verschiedene Spannungspegel, also eine komplexere Schaltung pro Pin. Da 
nimmt man dann lieber weniger von der Sorte (nur drei oder vier 
Backplanes) und kommt dafür bei den anderen Leitungen mit normalen 
Ausgängen aus.

von P. K. (dg4ek)


Lesenswert?

Hallo,
Du kennst Dich offenbar sehr gut damit aus. Kannst Du mir bitte mal
eine PM schicken, dass wir uns mal ausserhalb des Forums kurzschliessen
können, ich komme mit dem Projekt nämlich leider nicht so recht
weiter :(



Schon jetzt herzlichen Dank und einen schönen Sonntag!

Viele Grüße
Peter

von google (Gast)


Lesenswert?

Ich würde sagen, dass Dein Ansatz falsch ist. Du mußt prüfen, ob Du die 
gewünschte Information auch anders abgreifen kannst. Um über die 
LCD-Backplanes bzw. Segmente die Anzeige zu dekodieren ist der Aufwand 
extrem, wenn es denn überhaupt geht.

von Harald W. (wilhelms)


Lesenswert?

google schrieb:

> Ich würde sagen, dass Dein Ansatz falsch ist. Du mußt prüfen, ob Du die
> gewünschte Information auch anders abgreifen kannst.

Das sehe ich auch so.

> Um über die
> LCD-Backplanes bzw. Segmente die Anzeige zu dekodieren ist der Aufwand
> extrem, wenn es denn überhaupt geht.

Ich würde das zwar nicht als unmöglich ansehen, der Aufwand dürfte
aber so hoch sein (unter anderem braucht man m.E. einen ganzen Sack
voll Komparatoren), das es einfacher ist, ein völlig neues Gerät
zu bauen, welches die Info auf andere Art und Weise gewinnt, z.B.
bei einer Waage aus der Analogspannung der Wägezellen.
Gruss
Harald

von Peter D. (peda)


Lesenswert?

Die signale an den Backplanes sind ja konstant. Es reicht also völlig 
nur eine Backplane zur Synchronisation abzugreifen. Und dann alle 
Segmente über einen Multiplexer an einen ADC.
Man muß die Segmente auch nicht alle in einem Zyklus einlesen. Die 
Anzeige bleibt ja ne Weile stehen, damit man sie ablesen kann.

Mir wäre aber der Aufwand auch viel zu hoch, die Codierung zu ermitteln 
und für die sichere Kontaktierung.

von Nosnibor (Gast)


Lesenswert?

Vorweg: praktische Tips kann ich nicht geben; ich habe so ein LCD-SIgnal 
noch nie auf dem Oszi gehabt oder selbst erzeugt. Aber allerlei 
Datenblätter gelesen und vor Zeiten einmal einen Taschenrechner soweit 
heruntergetaktet, daß man das Multiplexen gut beobachten konnte.

Die Information anderweitig zu beschaffen, wenn irgend möglich, ist 
sicherlich richtig. Nur hat man da bei modernen single-chip-Lösungen 
wenig Möglichkeiten: meist bleibt nur der (analoge) Eingang und der 
(LCD-)Ausgang. Und ich würde lieber ein Dutzend Digitalsignale auswerten 
als ein analoges (jedenfalls wenn mehr als 8bit Auflösung gefragt sind), 
denn bei den Digitalsignalen sind Fehler bei der Auswertung meist 
offensichtlich, während das Analogzeug einfach nur ein bißchen 
danebenliegt.

Nur eine Backplane auszuwerten ist eine gute Idee. Man kann ja mit sehr 
regelmäßigem Timing rechnen; die Displays (also Glas+Chemie) bestehen 
auf max. 1% Asymmetrie bei der Ansteuerung, sonst zersetzt sich die 
"Suppe" langfristig durch Elektrolyse.

Für die Segmentleitungen würde ich aber einfache CMOS-Eingänge nehmen 
(z.B. Schieberegister), mit geeignet angepaßter Versorgungsspannung. ADC 
ist zu viel Aufwand, wenn man einmal weiß / beobachtet hat (Oszi), wie 
die Signale aussehen, also wieviele und welche Pegel verwendet werden.

Bei der Anzahl der Spannungspegel gibt es zwei Varianten, die in den 
Datenblättern 1:2 (oder 1/2) bias bzw. 1:3 (1/3) bias genannt werden.

Bei 1:2 kennen die Backplanes drei Pegel und die Segmente zwei: Die 
momentan aktive Backplane wird nacheinander auf H und L gelegt, die 
Segmentleitungen im Gegentakt dazu (aktive Segmente) oder synchron 
(ausgeschaltete Segmente). Die anderen Backplanes liegen auf mittlerem 
Pegel, so daß die von ihnen bedienten Segmente immer nur die halbe 
Spannung sehen (egal was die Segmentleitung macht) und daher unsichtbar 
bleiben.

Bei 1:3 kennen sowohl Backplanes als auch Segmente vier Pegel. Die 
aktive Backplane wird wieder voll ausgesteuert, die anderen im Gegentakt 
dazu mit geringer Amplitude. Aktive Segmente bekommen das volle Signal 
der aktiven Backplane (natürlich invertiert), ausgeschaltete gehen mit 
geringer Amplitude synchron zur aktiven Backplane. Die Folge davon ist, 
daß nur aktive Segmente die volle Versorgungsspannung sehen, alle 
anderen bekommen immer nur ein Drittel der Spannung.

Zur Auswertung kann man sich an der Amplitude orientieren oder an der 
Phase, je nach dem, wie man die Schaltschwellen der vielen Eingänge am 
einfachsten hingebogen bekommt.

von P. K. (dg4ek)


Lesenswert?

Vielen Dank für die Erläuterung, dann habe ich die Vorgänge auf dem
Skop richtig erkannt.

I.d.R. stehen ausser den zur LCD gehenden Leitungen keine anderen
Signalleitungen zur Verfügung.

Die Dekodierung halte ich nicht für allzu schwierig, man bräuchte
nur je Segment zwei OpAmps die als Differenzverstärker arbeiten, wobei
einer den negativen, der andere den positiven Vollspannungspegel
erkennt, denn bei diesen Pegeln ist das jeweilige Segment eingeschalten.
Ver-odert man dann beide Signale, hat man das Segmentsignal isoliert.

Das wären demnach 4 ICs mit je 4 Opamps um alle Segmentsignale zu 
isolieren, ein durchaus vertretbarer Aufwand.

von MaWin (Gast)


Lesenswert?

> Die Dekodierung halte ich nicht für allzu schwierig, man bräuchte
> nur je Segment zwei OpAmps die als Differenzverstärker arbeiten,

Ich glaube nicht.

Angenommen das Segment wird mit 5V, 2.5V und 0V angesteuert.

Dann sollte es reichen, einen TTl-kompatiblem Eingang mit einer 
Schaltschwelle um 1.4V zu verwenden, wie ihn viele uC von Haus aus 
haben.

Denn das LCD wird ja bei jedem zweiten Multiplexlauf mit umgekehrter 
Polarität betrieben, also kommt die Segmentinformation immer ein mal in 
den Diskriminierungsbereich des Eingangs.

Nun noch auf (die fallende Flanke von) eine Backplane synchronisieren 
und die Zeitpunkte der korrekten Auslesung nicht von den Signalen der 
Backplanes 2 bis 4 abhängig machen, sondern rein zeitlich staffeln. 
Schliesslich ist eine eventuelle Zeitabweichung grosszügig möglich.

von P. K. (dg4ek)


Lesenswert?

MaWin schrieb:
> Denn das LCD wird ja bei jedem zweiten Multiplexlauf mit umgekehrter
> Polarität betrieben, also kommt die Segmentinformation immer ein mal in
> den Diskriminierungsbereich des Eingangs.

Achso, das wusste ich nicht! Ja dann sollte das so gehen wie Du das
sagtest, allerdings muss ich dann die Segmentinfo speichern, sonst
würde eine mit dem µC angesteuerte LED-Anzeige flackern 
(Multiplexfrequenz
des LCD is 190Hz). Ich glaube man muss tatsächlich mal einen Testaufbau
machen.....

Was meinst Du mit zeitlicher Synchronisation? Irgendwo muss ich
den µC z.B. mit einer Interruptroutine fest anbinden sonst
läuft das irgendwann auseinander.

von Erich (Gast)


Lesenswert?

Hmm,
aufwändige Sache...
Gleich eine Kamera ran und OCR Programm... ?
Schnapsidee?
Gruss

von Harald W. (wilhelms)


Lesenswert?

Peter Krengel schrieb:

> Die Dekodierung halte ich nicht für allzu schwierig,

Nun, vielleicht könntest Du hier ja mal einen Bericht geben, wenn
Du es erfolgreich geschafft hast, Deine LED-Anzeige anzusteuern.
Solche Fragen wie Deine kommen hier im Forum öfter, wobei eine
solche Dekodierung bei einer LCD-Uhr wohl wirlich nicht sinnvoll ist.
Gruss
Harald

von MaWin (Gast)


Lesenswert?

> Was meinst Du mit zeitlicher Synchronisation?

Es reicht, sich auf eine Backplane zu synchronisieren und die 3 weiteren 
Abtastzeitpunkte rein zeitlich festzulegen weil viel Toleranz erlaubt 
ist.

von P. K. (dg4ek)


Lesenswert?

Hallo Harald,

ja klar werde ich machen.
Ich dachte auch nicht an eine LCD Uhr, das wäre wirklich
Blödsinn, sondern ich möchte gern eine Lösung (Hard- und Software) 
erstellen, die nach entsprechender Anpassung an die jeweilige LCD 
Hardware,
universell einsetzbar ist. Ob das gelingt?----Schaun wir mal ;)

Jedenfalls hat es wohl noch niemand, mit Ausnahme einer Waage,
ernsthaft probiert.

Viele Grüße
Peter

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
Noch kein Account? Hier anmelden.