Forum: Mikrocontroller und Digitale Elektronik 2x m5219B, hef4060bp


von Stefan B. (Gast)


Lesenswert?

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 ?

von Michael U. (Gast)


Lesenswert?

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

von Tobsucht (Gast)


Angehängte Dateien:

Lesenswert?

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

von Sue8891 (Gast)


Lesenswert?

ICH WEIß ES... aber ich verrats nicht :-P

von Tobsucht (Gast)


Lesenswert?

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.

von Thomas W. (wagneth)


Lesenswert?

;)

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

von Thomas W. (wagneth)


Lesenswert?

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