Forum: Mikrocontroller und Digitale Elektronik Futaba VFD-Display parallel ansteuern mit AVR


von Ronny Schulz (Gast)


Lesenswert?

Nachdem ich ja so ziemlich alle Hürden genommen habe, um überhaupt mit
dem ATmega16 klarzukommen, stehe ich schon wieder vor dem nächsten
Problem.

Ich möchte ein Text auf einem VFD-Display anzeigen lassen. Leider gibt
es für mein Display kein Datenblatt M202SD01BA. Ich habe daher etwas
gesucht und ein ähnliches gefunden.

-> http://mitglied.lycos.de/projectsilence/m202sd08gk.pdf

Die Beschaltung wird dann auch genauso sein, denke ich. Ich kann auch
den Selbsttest laufen lassen. Allerdings kann ich den seriellen Modus
nicht nutzen, da ich nicht weiss, welche Brücken ich wie löten muss.
Aber das ist auch erst einmal egal, da ich den parallel ansprechen
will.

Aber nun zum eigentlichen Problem:
Der Selbsttest läuft. Es ist ja nicht so kompliziert einfach nur ein
Bit an- und abzuschalten. Aber sonst bekomme ich nichts auf dem Display
zu sehen. Hier mal der Auszug aus meinem Code:


.equ vfd_data    = portc
.equ vfd_ctrl    = portd
.equ vfd_wr_bit    = 7        ;low active
.equ vfd_sel_bit  = 5        ;low active
.equ vfd_test_bit  = 4        ;low active
.equ vfd_in    = pind
.equ vfd_busy_bit  = 6

-> CUT <-
  rcall  vfd_init
  rcall  vfd_test
-> CUT <-
vfd_init:
  ldi    r16,0b11111111      ;PortC auf Ausgang
  out    ddrc,r16        ;setzen
  ldi    r16,0b10110000      ;PortD auf Eingang/Ausgang
  out    ddrd,r16        ;setzen
  cbi    vfd_ctrl,vfd_wr_bit    ;schreiben deaktivieren
  sbi    vfd_ctrl,vfd_test_bit  ;Display-Test beenden (low active)
  ret

vfd_write:
  rcall  vfd_enable        ;Display aktivieren
  rcall  vfd_waitbusy      ;warten bis bereit
  ldi    r16,'A'
  out    vfd_data,r16
  nop
  nop
  nop
  cbi    vfd_ctrl,vfd_sel_bit  ;Display anwählen (low active)
  nop
  nop
  nop
  sbi    vfd_ctrl,vfd_wr_bit    ;schreiben
  nop
  nop
  nop
  cbi    vfd_ctrl,vfd_wr_bit    ;schreiben beenden
  nop
  nop
  nop
  sbi    vfd_ctrl,vfd_sel_bit  ;Display abwählen (low active)
  ret

vfd_waitbusy:
  sbic  vfd_in,vfd_busy_bit
  rjmp  vfd_waitbusy
  ret

Etwas verwirren tut mich auch die Dokumentation. Das Timig-Diagramm
sollte eigentlich alles anzeigen, was man braucht. Allerdings
widerspricht sich das mit den Textpassagen ("The data or control
command is to be written in at the rising edge of /WR(0->1), when /SEL=
low "0".". Also muss /WR zu eins werden und die Daten werden
übernommen. Im Timingdiagramm steht allerdings was von low. Aber ich
habe schon beide Kombinationen probiert. Auf alle Fälle erscheint nach
dem Displaytest nichts auf dem Display. Auch ein verlängern der Timings
brachte nichts. Und 50ns, die mindestens anliegen soillen sind ja bei
8MHz schnell vorbei.

von DO2SHA (Gast)


Lesenswert?

Habe dasselbe Display. Habe beim googlen ne Liste mit Anschlußbeispiel
und Character Code etc gefunden.
http://www.isk.kth.se/kursinfo/mekatronik/utrustning/kretsar/vfd/
Ist zwar Holländisch?Schweidsch?NOrwegisch?Dänisch?
Aber: Man kann verstehen worums geht.
Habe noch so ein riesen Vaku-Leucht-Display, wie es in Supermarktkassen
für den Kunden gibt, für 5 Euro (!!!) die Dinger laufen mit 1200baud
TTL-Pegel, das ist'n super DIng.

Gruß, Carsten

von elGig (Gast)


Lesenswert?

Hi!
Das Kassa-Display hast du für 5€ gekauft oder würdest es verkaufen?
Ich möchte allerdings 3x je 6 Stellen anzeigen...
lgp

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.