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
(CLIP-Dekoder) 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.
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!
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.