Flipdot-Display mit Arduino steuern

Seite 6: Reverse Engineering

Inhaltsverzeichnis

Bei manchen Reverse-Engineering Projekten lohnt es sich, der Schaltung beim normalen Betrieb auf die Finger zu gucken. Man sieht dann Signale auf internen und externen Bussen, kann die Stromaufnahme und weiteres messen. Also schlossen wir auch hier das ganze Display mal an 24V an und guckten, was passiert. Leider zeigte sich keine Regung, ohne dass Befehle über den IBIS Bus gesendet werden. Daher mussten wir anders vorgehen und versuchen, die Schaltung von Grund auf zu verstehen.

Anfangsfragen:

  • Wie viele Pixel werden bei diesem Display gleichzeitig gedreht (zum Beispiel beim Löschen der Anzeige)?
  • Kann man gleich eine ganze Zeile oder Spalte umsteuern?
  • Kann man die sechs Panels gleichzeitig ansteuern?

Mikrocontroller 80C535

Einiges davon beantworten die Spezifikationen der Bauteile: Der Mikrocontroller 80C535 hat sieben IO-Ports mit jeweils 8 Pins, von denen Port 0 und Port 2 für das EPROM gebraucht werden. Port 3 wird für die seriellen Schnittstelle und WR und RD des EPROMs benötigt, was bestenfalls vier Ports (32 Bits) für das Display übrig lässt. Diese werden also durch Multiplexen auf die Zeilen und Spalten verteilt, was eine Gleichzeitigkeit ausschließt.

Das Datenblatt des FP2800 hat uns bereits gezeigt, dass jeweils nur eine Ausgangsleitung gleichzeitig aktiv sein kann. Es ist aber dadurch noch nicht eindeutig klar, dass möglicherweise alle Pixel einer Spalte gleichzeitig geschaltet werden.

Datenblatt des FP2800

Der maximale Versorgungsstrom beträgt 370mA. Aktivierte man die 24 Magnetspulen einer Spalte gleichzeitig, so würde dieser Strom bei weitem überschritten.

Controller-Seite des Flachbandkabels

Wir können also davon ausgehen, dass die Schaltung auf der Controllerplatine per Dekoder mit 5 Bits des Mikrocontrollers die 24 Spaltenleitungen ansteuert: 5 Bits für die Spalten (FP2800 A0–A1 und B0, B1) und vermutlich 5 Bits für die Zeilen. Jedes Panel hat eine eigene Adresse, die mit einem DIP-Schalter eingestellt wird. In unserem Display ist beim ersten Panel der erste Schalter geschlossen, beim zweiten der zweite und so weiter. Das lässt vermuten, dass man alle sechs Panels gleichzeitig ansteuern kann, wenn man alle Bits auf 1 setzt.

Nun steht langwierige Sucharbeit an. Die einzelnen Bits des FP2800 und die Zeilenleitungen müssen dem Flachbandstecker auf dem Display zugeordnet werden. Am besten schreibt man das direkt auf den Stecker. Auf dem Foto sieht man das für die Controller-Seite des Flachbandkabels.

Hier die ermittelte Steckerbelegung:

1-19    PLUS (Zeilen)
20 -
21-39 MINUS (Zeilen)
41 GND
42 +24V
43 +24V
44 +VS
45 +5V
46 -
47 Panel D (FP2800 via TTL-Dekoder auf jedem Panel)
48 Panel A0 (FP2800 via TTL-Dekoder auf jedem Panel)
49 Panel A1 (FP2800 via TTL-Dekoder auf jedem Panel)
50 Panel A2 (FP2800 via TTL-Dekoder auf jedem Panel)
51 Panel B0 (FP2800 via TTL-Dekoder auf jedem Panel)
52 Panel B1 (FP2800 via TTL-Dekoder auf jedem Panel)
53-60 Modul Nummer Bit1 bis 8

Im Web fand sich dann auch noch eine Beschreibung eines ähnlichen Displays, die exakt die gleiche Steckerbelegung zeigte, was eine gute Bestätigung für uns war. Es scheint mehrere Auflösungs-Varianten dieser Displays zu geben. Unseres hat noch ein weiteres Flachbandkabel, das die Zeilen 20–24 zur Verfügung stellt. Dieses ist hier nicht beschrieben, weil sich die Funktion nach den nächsten Schritten von alleine ergab.