Forum: Mikrocontroller und Digitale Elektronik LCD-Zustände bestimmen/LCD auslesen


von Felix E. (mindsolve)


Angehängte Dateien:

Lesenswert?

Moin!
Ich hatte da mal eine Idee: Ich wollte versuchen, ein altes Gerät mit 
LCD mit einer seriellen Schnittstelle auszustatten. Da das Gerät keine 
derartige Funktion hat, wollte ich "einfach" die Zustände aus den 
einzelnen LCD-Elementen auslesen. Zugang zu allen Anschlüssen habe ich.
Wärend ein Element aktiv ist liegt eine Rechteckwelle an mit einer 
Amplitudenspannung von 5V.

Da ich leider noch kein erfahrener Beschreiter des Feldes der 
Elektrotechnik bin, fehlt mir das nötige Wissen, um das Auslesen in die 
Tat umzusetzen.

Ich hatte gedacht, mithilfe der angehängten Schaltung eine von einem 
Mikrocontroller messbare (DC)-Spannung erzeugen zu können, aber dann kam 
das Problem dazu, dass die LCD-Masse nicht zu der Mikrokontroller-Masse 
referenziert ist.
Als ich dann versucht habe einfach mal die LCD-Masse mit der uC-Masse zu 
verbinden, sind alle verbundenen LCD-Elemente mit halber Stärke 
angegangen und ich habe eine Spannung von etwa 2,4V DC gegen Masse an 
den Elementen gemessen.

Da mir da leider das tiefgreifende Verständnis für fehlt, hatte ich 
gehofft von euch ein wenig Hilfe dabei zu bekommen.

Mit freundlichen Grüßen,
MindSolve

von Teo D. (teoderix)


Lesenswert?

Zum laden deines Kondensators reicht der Strom nicht. Da sollte ja 
keinesfalls Strom aus dem Treiber kommen, soll ja nur Spannung anliegen.
Da frag ich mich grade, wie hochohmig man das auskoppeln müsste, um 
nicht den Treiber u. LCD zu stören?

Und ein einfacher Rechteck dürfte da auch nicht anliegen.

von Michael B. (laberkopp)


Lesenswert?

Felix E. schrieb:
> Da mir da leider das tiefgreifende Verständnis für fehlt, hatte ich
> gehofft von euch ein wenig Hilfe dabei zu bekommen.

Nun, du hast ein einfaches, nicht gemultiplextes LCD.

Felix E. schrieb:
> Wärend ein Element aktiv ist liegt eine Rechteckwelle an mit einer
> Amplitudenspannung von 5V.

Na ja, vermutlich liegt die da auch an, wenn es nicht aktiv ist. Denn 
normalerweise hat eine lCD keinen Masseanschluss, sondern einen 
Backplane (bei 7-Segment-LED-Displays würde man sagen COMMON) die auch 
mit 5V Wechselspannung betrieben wird. Das Segment ist an, wenn die 
eigene Leitung genau entgegengesetzt arbeitet, es ist aus, wenn die 
eigene Leitung genau im Takt der backplane arbeitet.

http://ww1.microchip.com/downloads/en/AppNotes/doc2569.pdf

Deine Shcaltung funktioniert nicht, weil 1k eine viel zu hohe Bealstung 
für eine LCD Treiber ist (und sie nützt nichts, weil wohl überall 
Wechselspannung anliegt).

Aber man kann so ein LCD trotzdem auslesen. Dein uC kommt an dieselben 
0V/5V. Alle Pins auf Eingang ohne pull up. finde heraus, welcher 
Anschluss des LCD die Backplane ist. Der uC sollte dessen 
Wechselspannung als Trigger benutzen, man könnte einen Interrupt 
auslösen. Kurz nach dem die Backplane ihre Polarität z.B. von  +5V auf 0 
gewechselt hat, liest du alle anderen Segmente. Welche dort dann +5V, 
also 1 haben, sind an, die anderen aus.

Es kommt also auf das zeitlich genau synchronisierte Auslesen an, du 
brauchst keinerlei Hardware, nur Software.

Schwieriger sind Multiplex-LCD mit mehreren Backplanes auszulesen, dort 
liegen teils 4 Spannungen an die man nict mehr mit einem Digitaleingang 
erfassen kann. Aber dein ist wohl nciht so gebaut.

http://ww1.microchip.com/downloads/en/AppNotes/doc8103.pdf

von Felix E. (mindsolve)


Lesenswert?

Danke schonmal für eure Antworten!

Michael B. schrieb:
> Deine Shcaltung funktioniert nicht, weil 1k eine viel zu hohe Bealstung
> für eine LCD Treiber ist

Der Wert im Schaltbild war der Standartwert des Zeichenprogramms, das 
hatte nichts mit dem tatsächlichen Wert zu tun (weder bei dem 
Widerstand, noch bei dem Kondensator).

Ich verstehe dann den Rest deiner Nachricht so, dass es keine "richtige" 
Wechselspannung ist? Weil ich nur sehr ungern die Pins des 
Mikrocontrollers -5V bis +5V aussetzen möchte...

Danke nochmal,
MindSolve

von c-hater (Gast)


Lesenswert?

Felix E. schrieb:

> Ich hatte da mal eine Idee: Ich wollte versuchen, ein altes Gerät mit
> LCD mit einer seriellen Schnittstelle auszustatten. Da das Gerät keine
> derartige Funktion hat, wollte ich "einfach" die Zustände aus den
> einzelnen LCD-Elementen auslesen. Zugang zu allen Anschlüssen habe ich.
> Wärend ein Element aktiv ist liegt eine Rechteckwelle an mit einer
> Amplitudenspannung von 5V.

Ja sowas ist machbar, habe ich selbst schon gemacht. Wenn das LCD nur 
ein "COMMON" hat, ist es wirklich easy. Du brauchst nur: entweder einen 
µC mit genug Pins oder entsprechend viele Demultiplexer oder 
Shiftregister. Der Rest ist (relativ) triviale Software auf dem µC.

> Ich hatte gedacht, mithilfe der angehängten Schaltung eine von einem
> Mikrocontroller messbare (DC)-Spannung erzeugen zu können

Das ist definitiv der falsche Weg.

von Felix E. (mindsolve)


Lesenswert?

Moin!

Soll das heißen dass keine "echte" Wechselspannung (-5V <-> +5V) sondern 
nur ein Wechsel von 0V <-> +5V da ist? Dann wäre die ganze Sache ja 
wirklich easy...

MfG,
MindSolve

von Manfred (Gast)


Lesenswert?

Felix E. schrieb:
> Soll das heißen dass keine "echte" Wechselspannung (-5V <-> +5V) sondern
> nur ein Wechsel von 0V <-> +5V da ist?

Warum hälst Du nicht einfach mal ein Scope dran?
Der Kram ist sehr hochohmig, aber es ist ja genug Pegal da, über 10 
MegOhm anzukoppeln.

von Felix E. (mindsolve)


Lesenswert?

Manfred schrieb:
> Warum hälst Du nicht einfach mal ein Scope dran?

Weil ich leider kein Oszilloskop habe. (Hätte ich eines hätten sich die 
ganzen Fragen hier gar nicht gestellt.)

Meine Aussage im Originalpost

Felix E. schrieb:
> Wärend ein Element aktiv ist liegt eine Rechteckwelle an mit einer
> Amplitudenspannung von 5V.

hatte ich ausschließlich aus dem Datenblatt des LCD-Treibers, nicht 
selber nachgemessen.

mfG,
MindSolve

: Bearbeitet durch User
von my2ct (Gast)


Lesenswert?

Felix E. schrieb:
> Meine Aussage im Originalpost
>
> Felix E. schrieb:
>> Wärend ein Element aktiv ist liegt eine Rechteckwelle an mit einer
>> Amplitudenspannung von 5V.
>
> hatte ich ausschließlich aus dem Datenblatt des LCD-Treibers, nicht
> selber nachgemessen.

Dann verrate, um welches LCD es sich handelt und verlinke das Datenblatt 
(oder habe ich da irgendwie übersehen?).

Es brings nichts, falsche Schaltungen zu zeigen und 
Bauteiltypen/Datenblätter geheim zu halten.

von Teo D. (teoderix)


Lesenswert?

my2ct schrieb:
> Dann verrate, um welches LCD es sich handelt

Wahrscheinlich ein HD44780-Modul. :D
Die 5V Rechteckspannung, hat er sicher aus dem Timing-Diagramm.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Teo D. schrieb:
> Wahrscheinlich ein HD44780-Modul.

Das halte ich hier für unwahrscheinlich, da hier ein "Mithören" auf 
den Datenleitungen des Controllers unweigerlich schneller zum Erfolg 
führen würde als ein Mithören des Gezappels am Display selbst, zumal so 
ein Textdisplay auch verdammt viele Segmente hat, die angesteuert 
werden.

von Teo D. (teoderix)


Lesenswert?

Rufus Τ. F. schrieb:
> Das halte ich hier für unwahrscheinlich, .....

Wenn man weiß was man vor sich hat, sicher. Nur das bezweifle ich 
mittlerweile.

Abwarten, wir werden das Dabla schon zu Gesicht bekommen.

von Felix E. (mindsolve)


Lesenswert?

Hallo zusammen!

my2ct schrieb:
> Dann verrate, um welches LCD es sich handelt und verlinke das Datenblatt
> (oder habe ich da irgendwie übersehen?).
>
> Es brings nichts, falsche Schaltungen zu zeigen und
> Bauteiltypen/Datenblätter geheim zu halten.

Da hast du natürlich recht.

Nur vorweg: Das ganze soll einfach so als "Bastelei" zum Spaß sein, es 
geht mir nicht um Genauigkeit und/oder Geld.

Es geht um einen (China-Nachbau eines) ICL7106 (Datenblatt: 
https://www.intersil.com/content/dam/Intersil/documents/icl7/icl7106-07-07s.pdf)

Die "5V Rechteckspannung" habe ich von Seite 8 des Datenblattes:
> For three readings/sec., this is a 60Hz square wave with a
> nominal amplitude of 5V.
Jetzt verstehe ich auch endlich den Rest auf der Seite (danke nochmal!)
> The segments are driven at the same frequency and amplitude
> and are in phase with BP when OFF, but out of phase when ON

Und jetzt nochmal zur Klarheit: Ist das jetzt ein Wechsel von +5V auf 
-5V oder von 0V auf +5V?

MfG,
MindSolve

: Bearbeitet durch User
von Christian M. (Gast)


Lesenswert?

Felix E. schrieb:
> Und jetzt nochmal zur Klarheit: Ist das jetzt ein Wechsel von +5V auf
> -5V oder von 0V auf +5V?

Aus der Sicht des LCDs ist es +/- sonst verreckt es, der 
Common/Backplane wird einfach auch umgeschaltet.
Aktive Segmente werden einfach gegenphasig geschaltet, Inaktive 
gleichphasig.
=> nimm einen uC!

Gruss Chregu

von Michael B. (laberkopp)


Lesenswert?

Felix E. schrieb:
> Es geht um einen (China-Nachbau eines) ICL7106

Das weisst du NATÜRLICH ewrst jetzt und hast es in deinem 
Ursprungsposting VERSEHENTLICH aus Faulheit vergessen.

Ein ICL7106 wird mit ca. 9V betrieben.

ABER die Ansteuerspannungen für das LCD liegen nur zwischen V+ und 
"internal digital GND" der ca. 4 bis 6V beträgt und am externen 
Anschluss TEST zur Verfügung steht.

Dein uC muss also Spannungen zwischen 4 bis 6V vertragen, ein normaler 
an 5V angeschlossener uC verträgt das nicht. TEST daarf man nicht 
belasten sondern nur mit einem OpAmp abtasten und dann als 
Spannungsfolger weiterleiten.
1
        V+ -----o
2
        |      4-6V
3
TEST --|+\
4
       |  >--+--o
5
    +--|-/   |
6
    |   |    |
7
    +---(----+
8
        |
9
        V-
10
[pre]
11
Man darf auch keine Widerstände als Schutz eines nur mit 5V versorgten uC vor 6V Spannungen benutzen, weil das die GLeichspannungsfreiheit des LCD beschädigt (es sei denn, es wird eh kein LCD mehr angecshlossen).
12
[pre]
13
  V+
14
   |
15
   +--------------+
16
   |              |
17
   |            +----
18
Segment --100k--|uC
19
   |            +----
20
  V-              |GND
Richtig professionell wäre eine Abstastung mit einem CMOS level shifter 
wie CD4504.

von Felix E. (mindsolve)


Lesenswert?

Michael B. schrieb:
> Das weisst du NATÜRLICH ewrst jetzt und hast es in deinem
> Ursprungsposting VERSEHENTLICH aus Faulheit vergessen.

Da kann ich nur folgendes sagen: Nein. Ich wusste es schon als ich den 
Anfangspost geschrieben habe, und nein, ich habe es nicht aus Faulheit 
nicht geschrieben, sondern um zu verhindern das die Diskussion auf 
andere Themen wie z.B. Sinnhaftigkeit abschweift.
Außerdem hatte ich auf eine "allgemeingültige" Antwort gehofft, um das 
auf andere Geräte/Chips übertragen zu können.

Michael B. schrieb:
> Dein uC muss also Spannungen zwischen 4 bis 6V vertragen, ein normaler
> an 5V angeschlossener uC verträgt das nicht.

Das verstehe ich nicht. Das LCD hat doch eine Backplane/Common. Wenn ich 
jetzt also die Backplane als Masse des uC nehme, müssten die einzelnen 
Segmente doch nur +5V/0V sein zu uC-Masse/Backplane.
Was da dann für eine Spannung zu V+/V- (Versorgungsspannung ICL7106) 
ist, müsste doch egal sein, oder?

MfG, MindSolve

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Felix E. schrieb:
> Wenn ich jetzt also die Backplane als Masse des uC nehme, müssten die
> einzelnen Segmente doch nur +5V/0V sein zu uC-Masse/Backplane.

Nein. Falscher Ansatz.

Sowohl die Segmente als auch die Backplane werden vom Display-Controller 
wechselweise mit 0V und 5V versorgt. Würdest Du die Backplane-Spannung 
als Bezugspotential ansetzen, müsstest Du mit Deinem µC Spannungspegel 
zwischen -5V und +5V auswerten.

Die Backplane ist für Deine Auswertung genauso zu betrachten wie ein 
normales Segment. Unterscheiden sich die Spannungpegel 
Backplane/Segment, ist das Segment an, tun sie das nicht, ist das 
Segment aus.

von Nase (Gast)


Lesenswert?

Also mal ehrlich, der Weg ist vermutlich einfach der "Falsche".

Dein ICL hat einen analogen Eingang. Warum nimmst du nicht einfach einen 
uC mit eingebautem ADC und digitalisierst das damit? Dazu brauchst du 
genau 2 Leitungen von deinem ICL zum uC und der Rest ist einfache SW.

Der Nachteil dieser einfachen Lösung: Wenn es dumm läuft, zeigen sie 
nicht jederzeit exakt die selben Displaywerte, denn: wer misst, misst 
Mist, wer doppelt misst, misst doppelt Mist! Das liegt in der Natur der 
Sache ;-)

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.