Hallo Leute, ich habe ein LCD Tacho aus einen Kadett Gsi zerlegt. Auf der Platine mit den LCD Elementen sind die oben genanten Chips zufinden. Weiß jemand wie man diese Ansteuern muß damit mein ein Segment ansprechen kann ?
Hallo, Google kaputt? Einer der ersten Treffer führt hier ins Forum, vielleicht hilft das ja etwas weiter: Beitrag "Optrex DMF50191N" da gibt es irgendwo ein Datenblatt zum MSM5219B, vielleicht hilft das ja. Gruß aus Berlin Michael
Hallo, hoffe der Beitrag ist noch nicht zu alt. Ich habe mir auch den Tacho aus dem Kadett GSI zugelegt. Auf der Platine sind zwei LCD-Controller m5219B in Reihe geschaltet, genau wie es im Datenblatt beschrieben wird. Der hef4060bp erzeugt den Takt den die LCD-Controller brauchen. Herausgeführt sind sechs Anschlüsse. VDD, GND, CLOCK, DATA IN, LOAD und BLANK. Laut Datenblatt des Controllers liegen 5V Betriebsspannung im normalen Bereich. Nun kann man die Daten seriell in den Controller schieben. Dabei hat DATA IN den entsprechenden Wert und wird mit der steigenden Flanke von CLOCK übernommen. Wobei die Ausgänge der ersten sieben Sebmente nicht angeschlossen sind. Nachdem man die Daten in den Controller geschrieben hat kann man mit einem Impuls auf LOAD die Daten an den internen Latch schicken und somit anzeigen. Was mich jetzt wundert ist, dass der Pin ALL ON auf der Platine auf Masse liegt. Im Datenblatt steht das wenn dieser Pin high ist die Segmente angesteuert werden. Der BLANK Anschluss ist herausgeführt und führt bei high dazu das auf dem Display nichts angezeigt wird. ALL ON ist vorrangig über BLANK. Beim Ausprobieren rührt sich am Display auch nicht. Habe BLANK auf high und mal auf low gesetzt, ändert aber nichts am Ergebnis. Hab hier mal den Code:
1 | .include "m8def.inc" |
2 | |
3 | .equ maxVal = 48 |
4 | .equ load = 1 |
5 | .equ dataIn = 2 |
6 | .equ clock = 3 |
7 | .def temp = r16 |
8 | .def max = r17 |
9 | .def i = r18 |
10 | |
11 | ;PortB als Ausgang |
12 | ldi temp, 0xFF |
13 | out DDRB, temp |
14 | ;alle Ausgänge low |
15 | ldi temp, 0x00 |
16 | out PORTB, temp |
17 | |
18 | ldi max, maxVal |
19 | ldi i, 0 |
20 | |
21 | sbi PORTB, dataIn |
22 | ;48 mal high in Controller laden |
23 | loop1: |
24 | sbi PORTB, clock |
25 | cbi PORTB, clock |
26 | inc i |
27 | cp max, i |
28 | brne loop1 |
29 | |
30 | ldi max, maxVal |
31 | ldi i, 0 |
32 | |
33 | cbi PORTB, dataIn |
34 | ;48 mal low in Controller laden |
35 | loop2: |
36 | sbi PORTB, clock |
37 | cbi PORTB, clock |
38 | inc i |
39 | cp max, i |
40 | brne loop2 |
41 | ;Werte in Latch übernehmen |
42 | sbi PORTB, load |
43 | cbi PORTB, load |
44 | |
45 | loop3: |
46 | rjmp loop3 |
Die Mindestzeiten zur Ansteuerung werden eingehalten da der Mega8 mit 1MHz läuft. Werde demnächst mal mit dem Oszi überprüfen ob der hef4060bp arbeitet. Ich komme jetzt nicht drauf wo der Fehler liegt und hoffe das Ihr mir weiterhelfen konnt. Grüße
Habe heute mal den HEF4060BP durchgemessen. Er funktioniert so wie er soll. Gibt einen Takt von ~84Hz an die LCD-Controller. Bin jetzt soweit das ich fast glaube dass das Timing meiner Ansteuerung nicht ganz passt. Kann dazu jemand etwas sagen? Auf Seite 4 des Datenblatts stehen die minimalen Zeiten die die Signale anstehen müssen. Bei meiner Ansteuerung liegen die signale 1µs an, das ist doppelt so lang wie gefordert. Meine Clockfrequenz zum einladen der Daten liegt bei 0,5MHz mit Duty = 50%, die Maximale Frequenz liegt bei 1MHz. Also liege ich innerhalb der Anforderungen. Werde daraus nicht schlau. Zu dem ALL ON Signal habe ich herausgefunden das es wohl nur zum Segmenttest dient, also zur Ansteuerung nicht benötigt wird.
;) Ich habe vorgestern auch das alles rausbekommen. (wusste garnicht dsa hier jemand auch sowas machen will...) Habe mal auf die schnelle eine Lib mit demo geschrieben. Nur zwei segmente des mittleren Digits habe ich nicht richtig. Ansonsten funktioniert die Ansteuerung durch ATMega8 für : Tankanzeige, VoltMeter, Kühlmitteltemp, Öldruck, Tacho digit 1+3 (digit 1 kann nur 1,2 oder garnichts anzeigen) und der DZM. Bei Digit 2 habe ich einen Fehler im Mapping. Ansonsten geht alles. Wenn ich das heute Abend gefixt habe, stell ich den Source mal in die Codesammlung. Grüße an die OpelFahrer ;) ...und die anderen
Hier wie versprochen, meine Lib in der Codesammlung : Beitrag "Digitaltacho Kadett GSI - Ansteuerung in C"
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.