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