|
|
Zeile 168: |
Zeile 168: |
| * [https://github.com/muccc/netfbd netfbd - Framebuffer over IP] | | * [https://github.com/muccc/netfbd netfbd - Framebuffer over IP] |
| * git clone http://hannover.ccc.de:3018/wintermute/flipdots.git - Flipdot-Code in avr/ | | * git clone http://hannover.ccc.de:3018/wintermute/flipdots.git - Flipdot-Code in avr/ |
| + | |
| | | |
| = Unklar / TODO = | | = Unklar / TODO = |
Version vom 21. Juli 2013, 17:43 Uhr
|
Warnung:
|
|
Under Construction: Die Informationen in diesem Artikel sind mit Sicherheit unvollständig und eventuell auch falsch.
|
Flipdot
Wir haben ein Flip Dot Modul mit 20x16 schwarz/weissen Pixeln aus den Beständen des CCC München.
Die Displays stammen von der Parkplatzanzeige der Allianzarena auf der A9 bei München, in der 198 dieser Module zu einer großen Anzeigefläche verbunden waren.
Auf Google Streetview ist die Anzeige noch zu sehen.
Aufbau
Matrix
Flip Dot Matrix Schaltung
Rückseite mit Doppeldioden
Die Flip Dot Matrix besteht aus jeweils einer Spule pro Pixel, die über einen gemeinsamen Eingang pro Zeile und zwei Eingänge pro Spalte geschaltet werden. Je nach Polung dreht sich das mit einem Dauermagneten versehene Plättchen zur einen oder anderen Seite. Wenn Xn auf High und Cn gleichzeitig auf Low geschaltet werden, gibt es einen Kurzschluss in der Spalte. Das Display nimmt nur zum Umschalten der Pixel Strom auf, nicht aber im Ruhezustand.
Pinbelegung Pfostenleiste auf der Rückseite der Flip Dot Matrix
|
32 |
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1
|
ST1
|
N1 |
N2 |
? |
? |
Y14 |
Y12 |
Y10 |
Y8 |
Y6 |
Y4 |
Y2 |
Y0 |
C19 |
C18 |
C17 |
C16 |
C15 |
C14 |
C13 |
C12 |
C11 |
C10 |
C9 |
C8 |
C7 |
C6 |
C5 |
C4 |
C3 |
C2 |
C1 |
C0
|
ST2
|
N3 |
? |
? |
? |
Y15 |
Y13 |
Y11 |
Y9 |
Y7 |
Y5 |
Y3 |
Y1 |
X19 |
X18 |
X17 |
X16 |
X15 |
X14 |
X13 |
X12 |
X11 |
X10 |
X9 |
X8 |
X7 |
X6 |
X5 |
X4 |
X3 |
X2 |
X1 |
X0
|
N1,2,3: Verbunden
Schaltzustände der Flip Dot Matrix
Xn |
Cn |
Yn |
|
Z/L |
L |
H |
Flip
|
H |
Z/H |
L |
Flop
|
H |
L |
* |
Kurzschluss
|
Die linke obere Ecke eines Moduls ist auf der Rückseite mit "X0 / Y0" markiert.
An unserem Display ist Pixel X15/Y15 defekt. Wir haben den Fehler noch nicht näher analysiert. Eventuell lässt es sich wiederbeleben. An Pixel X19/Y5 ist ein Teil des Plastiklagers abgebrochen und das Plättchen fehlt.
Treiberplatine
Flip Dot Treiberplatine mit identifizierten ICs
Flip Dot Treiberplatine Rückseite
In unserem Display wird die 20x16 Matrix über zwei Schieberegister und eine Reihe von Transistoren auf der Treiberplatine gesteuert.
Das eine Schieberegister (ROW) ist je Modul 16 Bit lang und selektiert die Zeilen, in denen geschaltet werden soll. Das zweite Register (COL) enthält 24 Bit pro Modul und gibt den X-Zustand in den ausgewählten Zeilen vor. Die Strobe-Eingänge beider Register sind verbunden. Die Daten werden in einem zweiten Registersatz gespiegelt und steuern die H-Brücken für die Pixel an.
Bei einem Zusammenschluss mehrerer Module werden die Spaltenregister horizontal hintereinander geschaltet und die Zeilenregister vertikal.
Aufgrund der Zahl von 20 Pixeln pro Modulzeile endet bei einer ungeraden Anzahl an horizontalen Modulen eine Zeile nicht auf vollen Bytes. Das Spaltenregister enthält pro Modul 4 ungenutzte Bits, die beim Durchschieben berücksichtigt werden müssen.
Bauteile auf der Platine u.a:
- L7805CV (5V Spannungsregler) (7.5V - 35V MAX, 1.5A)
- versorgt die ICs
- eingangsseitig abgesichert mit 160mA Micro Fuse (sieht ähnlich aus)
- 2x 74HC08D (Quad 2-input AND gate) (= 8x 2-input AND)
- jeweils AND von Eingangssignal und VCC (Ausnahme: OE0 / OE1)
- Signalregenerierung zum Ausgleich der 1kΩ Widerstände am Eingang
- 10x 74HC4094 (8-stage shift register) (= 80 Bit)
- 2x ROW und 3x COL pro Registersatz
- der zweite Registersatz wird parallel befüllt
- Daten im 2. COL-Register werden invertiert
- OE0 und OE1 schalten die Output Enable jeweils eines Registersatzes
- XOR verhindert Kurzschluss durch gleichzeitiges Einschalten beider OE
- 6x ULN2003A (7x Darlington Array) (= 42x Darlington)
- zwischen Schieberegistern und P-MOSFETs
- 36x MMFT2955E (P-Channel MOSFET)
- 36x MTD3055EL (N-Channel MOSFET)
- 74HC02 (Quad 2-input NOR gate) (= 4x 2-input NOR)
- 74HC14 (Hex Schmitt-Trigger Inverter) (= 6x Inverter)
- 74HC74 (Dual D-Type Flip-Flop) (= 2x Flip-Flop)
- 1Ω(?) (zwischen V+ und P-MOSFETs)
- Schmelzsicherung 2.5A
Anschluss
Stromversorgung
Das Display wird mit 24V DC betrieben. Zum Testen schliessen wir es an ein Labornetzteil mit 3A Strombegrenzung an. Für die feste Installation ist noch ein passendes Netzteil zu besorgen (z.B. dies, das oder jenes)
Daten
Pinbelegung am Flachbandstecker
1 |
Durchgeschleift |
11 |
GND
|
2 |
COL Data |
12 |
GND
|
3 |
Strobe |
13 |
GND
|
4 |
OE0 |
14 |
GND
|
5 |
OE1 |
15 |
GND
|
6 |
ROW Clock |
16 |
GND
|
7 |
COL Clock |
17 |
GND
|
8 |
ROW Data |
18 |
GND
|
9 |
ROW DO |
19 |
GND
|
10 |
NB |
20 |
NA
|
NA: Wird durch Darlington auf Masse gezogen wenn N1 == H
NB: Wird durch Darlington auf Masse gezogen wenn N2 == H
Horizontale Kaskadierung
- Flachbandstecker des rechten Moduls auf die Buchse des linken Moduls stecken
Vertikale Kaskadierung
- ROW Data des unteren Moduls mit ROW DO des oberen Moduls verbinden
- Alle anderen Signale des unteren Moduls mit dem oberen Modul parallel schalten
Ansteuerung
IN -> OUT
ROWn |
COLn |
OE0 |
OE1 |
Pixel
|
0 |
* |
* |
* |
Keine Änderung
|
1 |
0 |
1 |
0 |
Keine Änderung
|
1 |
1 |
1 |
0 |
Flip
|
1 |
0 |
0 |
1 |
Flop
|
1 |
1 |
0 |
1 |
Keine Änderung
|
- Zeilen im ROW Register auswählen
- pro vertikalem Modul 16 Daten-Bits schieben
- COL Register mit Daten füllen
- pro horizontalem Modul zuerst 4 Dummy-Bits, dann 20 Daten-Bits schieben
- STROBE kurz auslösen (>25ns)
- OEx kurz auslösen (>500µs)
- OE0 flippt die 1-Bits in COL zur einen Seite
- OE1 flippt die 0-Bits zur anderen Seite
Jedes gleichzeitig geschaltete Pixel erhöht die Stromspitze. Bei geringerer Framerate kann man evtl. Pixel nacheinander ändern.
Software
Unklar / TODO
- Was ist "0"? Schwarz oder weiss?
- Was ist das unbekannte SOT23-3 Bauteil zwischen Shunt und Flip-Flop?
- Was genau macht das Flip-Flop da mit OE und STROBE?
- Wie funktioniert die Schaltung mit N*? Kann man damit die Module zählen?