Anzeigemodul mit
VQC10
Ein Display mit LED-Punktmatrixanzeigen aus DDR-Zeiten.
Leiterplatte mit folgenden Eigenschaften:
- Maximalgröße 200 x 70 mm² (kann man noch bequem mit A4-Drucker ausgeben)
- Darstellungsumfang: 2 Zeilen à 20 Zeichen
- Leiterplatte kürzbar auf bis zu 1 Zeile à 8 Zeichen
- Doppelseitige Platine mit minimierter Anzahl von Durchkontaktierungen,
mit Eigenbaumitteln (Drahtstück) fertigbar
- Durchsteckbauelemente ausschließlich von Unterseite kontaktiert
- Multiplexbetrieb durch modernen Mikrocontroller
MSP430F5524
(einziger Schaltkreis auf der Platine,
Musterlieferung von Texas Instruments möglich)
- leistungsfähige, preisgünstige
p-Kanal-MOSFET
zur Anodensteuerung,
keine Zusatzbeschaltung (Widerstände) erforderlich
- USB-Anschluss und -Speisung, HID-Klasse, für PC-Anschluss
- Möglichkeit für RS232, RS485, SPI und I²C durch eingebauten
Port-Mapping-Controller an den verbleibenden 3 freien Pins
- Anzeige per Software stürzbar (der USB-Anschluss kann wahlweise
oben oder unten sein)
Für einen HD44780-kompatiblen Anschluss fehlten hier freie Pins.
Vor- und Nachteile
Gegenüber günstig (besonders bei Pollin)
verfügbaren LCD-Anzeigemodulen
besitzen derartige LED-Punktmatrixanzeigen folgende Vorteile:
- Ablesbarkeit ohne Winkelabhängigkeit
- relativ groß (günstig für ältere Personen und Brillenträger)
- selbstleuchtend, nachts gut lesbar
- superschnelle Anzeige-Aktualisierung, Laufschrift u.ä. Effekte möglich
- Modul stürzbar (diese Eigenschaft fehlt den üblichen LCD-Modulen)
Dem stehen folgende Nachteile gegenüber:
- Hoher Stromverbrauch, Batteriebetrieb inakzeptabel
- relativ groß (schlecht für Kleingeräte) - dafür gibt's OLED-Anzeigen
- Bei Sonneneinstrahlung schlecht ablesbar
- hoher
EMV-Störpegel
durch die hohen geschalteten Ströme (ungünstig für Amateurfunk und Messtechnik)
- teurer (je nachdem, wie man an die VQC10 herankommt; hier lagen sie nur herum)
Verwendungsmöglichkeiten
Ein solches Anzeigemodul ist für
Case-Modding
viel zu schade.
Auch für die reine Zifferndarstellung ist Punktmatrix übertrieben;
Siebensegmentanzeigen
sind besser ablesbar.
Ich denke da vielmehr an folgende Anwendungen:
- Rufnummern- und Namensanzeige
bei eingehenden Telefonanrufen
für „alte“ Telefone (und Rentner)
- Fernbedienbare Motorsteuerungen,
wie dem Hexapod (Positionsanzeige und Schrittweite)
- Messwertanzeige an Werkzeugmaschinen (mit Einheit)
- Anzeigen für Kantinenspeisepläne (für Mensen und den Nahverkehr
gibt's das ja schon zwei Nummern größer)
Für die Kommunikation mit dem „zweiten“ Mikrocontroller bietet sich
SPI oder I²C an.
Dieses Modul implementiert Slave-SPI bzw. Slave-I²C,
d. h. der „zweite“ Mikrocontroller muss (darf) den Takt vorgeben.
Schaltplan und Board-Layout
Hier ist der Schaltplan als
Vektorgrafik,
Pixelgrafik oder
xslt-prozessiert zu sehen.
Die Leiterplatte ebenso:
Vektorgrafik Oberseite,
Vektorgrafik Unterseite,
Pixelgrafik Oberseite,
Pixelgrafik Unterseite,
xslt-prozessiert.
Die obere Reihe der Anzeigemodule wurde gestürzt angeordnet,
um die beiden Textzeilen einander etwas näher zu bringen.
Die chaotische Zuordnung der Leitungen an den Mikrocontroller
erleichterte die Entflechtung der Leiterplatte erheblich,
verkompliziert hingegen die Firmware etwas.
Alle 10 Katodenleitungen befinden sich jedoch an genau einem
16-bit-Port, PA (= P1 und P2), für eine schnelle Interruptserviceroutine.
Motto: Software ist billiger als Hardware!
Bekannte Konstruktionsfehler (2015)
- Kein freier Analogeingang, auch infolgedessen
kein Umgebungslichtsensor (Fototransistor) anschließbar
- Pull-Up für p-MOSFET-Gates fehlen, wichtig ist dieser für die
Latch-Zuschaltung (10 kΩ); dadurch hoher Stromverbrauch
beim Betrieb des Bootloaders und Gefahr des Durchbrennens der LEDs
- Pull-Down für PUR fehlt (1 MΩ); Bootloader wird manchmal
trotz geladener Firmware aktiviert
- Serienwiderstände in USB-Leitungen fehlen (2× 22 Ω),
macht sich bei langer USB-Leitung bemerkbar
- Zwang zu Kondensatoren in 0603-Bauform (die Elkos im Foto
waren so nicht vorgesehen und wurden nur in Ermanelung
passender SMDs bestückt; es gibt sie aber allesamt zu kaufen)
Firmware
… in Entwicklung …
Der Anzeigeteil realisiert das Multiplexen der Anzeige mit nominell 100 Hz
sowie einer Helligkeitsmodulation zur Darstellung hervorgehobener
oder abgeschwächter Zeichen und Einzelpixel
sowie zur Anpassung an die Umgebungshelligkeit.
Jede der 7 Anodenzeilen wird bis zu 1,4 ms eingeschaltet.
TODO: Zu Pausenzeiten werden auch die Strom fressenden VQC10-Latches
abgeschaltet.
Intern arbeitet das Programm mit einer repräsentativen Bitmap (also Vollgrafik)
mit 2 Ebenen (für 3 Helligkeitsstufen).
Bei jeder Änderung wird diese Bitmap von der Hauptschleife
in ein „Katoden-Array“ umgerechnet,
die zum schnellen Multiplexen die Daten vorhält.
Die Zeichendarstellung erfolgt durch Kopieren der Zeichenform (Font)
in die Bitmap.
Der USB-Teil implementiert ein USB-HID-Gerät der "Alphanumeric Display Page"
(0x14), also maximal USB-konform.
Die Usage ist im Dokument "Universal Serial Bus HID Usage Tables"
ab Seite 109 dokumentiert.
Geflasht wird die Firmware via eingebautem USB-Bootloader (BSL)
und meiner Quick-And-Dirty-Version von
msp430-usbbsl.
Zum Aktivieren des Bootloaders Pin 51 (PUR) mit 3,3 V verbinden,
dann Reset aktivieren (Pin 64 nach Masse) oder Strom zuschalten.