mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 2x m5219B, hef4060bp


Autor: Stefan B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Tobsucht (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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:
.include "m8def.inc"

.equ maxVal = 48
.equ load = 1
.equ dataIn = 2
.equ clock = 3
.def temp = r16
.def max = r17
.def i = r18

;PortB als Ausgang
ldi temp, 0xFF
out DDRB, temp
;alle Ausgänge low
ldi temp, 0x00
out PORTB, temp

ldi max, maxVal
ldi i, 0

sbi PORTB, dataIn
;48 mal high in Controller laden
loop1:
sbi PORTB, clock
cbi PORTB, clock
inc i
cp max, i
brne loop1

ldi max, maxVal
ldi i, 0

cbi PORTB, dataIn
;48 mal low in Controller laden
loop2:
sbi PORTB, clock
cbi PORTB, clock
inc i
cp max, i
brne loop2
;Werte in Latch übernehmen
sbi PORTB, load
cbi PORTB, load

loop3:
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

Autor: Sue8891 (Gast)
Datum:

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

Autor: Tobsucht (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas W. (wagneth)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas W. (wagneth)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier wie versprochen, meine Lib in der Codesammlung : 
Beitrag "Digitaltacho Kadett GSI - Ansteuerung in C"

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.