tbs1-bo / flipflapflop

Steuerung einer Flipdot-Zielanzeige mit verschiedenen Mikrocontrollern.
https://tbs1-bo.github.io/flipflapflop/
2 stars 0 forks source link

Arduino Ansteuerung #4

Closed pintman closed 5 years ago

pintman commented 5 years ago

Idee für eine Umstellung auf eine Ansteuerung des Displays mit einem Arduino. Die Kommunikation mit dem Display erfolgt über die serielle Schnittstelle nach dem folgenden Protokoll.

Die gesendeten Bytes werden in Befehle und Daten unterschieden.

1xxxx xxxx Befehle. Die möglichen Befehle werden unten beschrieben.
0xxxx xxxx Daten. Informationen stecken in den x'en.

Folgende Befehle werden unterstützt.

1001 0000 DIMENSION Es folgen zwei Bytes mit BREITE und HÖHE.
1000 0001 PICTURE   Es folgen Breite*Höhe Datenbits (zeilenweise)
1000 0011 PXSET X Y Es folgen zwei Bytes mit Positionsinformationen 
1000 0010 PXRESET X Y Es folgen zwei Bytes mit Positionsinformationen 
1111 0000 ECHO Das gesendet Byte wird zurückgesendet.
pintman commented 5 years ago

Für das Debugging bieten sich mehrere Varianten an.

Zum einen kann eine virtuelle Maschine in VirtualBox mit einer seriellen Schnittstelle konfiguriert werden, die die Ausgaben in eine Datei umleitet.

Die andere Variante zeigt den Verkehr auf der seriellen Schnittstelle mit einem Logic-Analyzer an. Bildschirmfoto vom 2019-06-18 14-57-37

Bei einer weiteren Variante werden TX und RX direkt miteinander verbunden, so dass alle Daten direkt an den Aufrufer zurück gesendet werden.

Schließlich bietet die pyserial-API über den Protocol-Handler spy:// die Möglichkeit, die Kommunikation zu protokollieren.

pintman commented 5 years ago

Mit der Debugausgabe sieht das Senden eines vollständigen Bildes wie folgt aus.

000000.002 Q-RX reset_input_buffer
000000.003 TX   0000  81 70 0F 78 07 60 1F 70  0F 40 3F 60 1F 00 3F 40  .p.x.`.p.@?`..?@
000000.003 TX   0010  3F 00 7F 00 7F 01 7E 01  7F 03 7C 03 7E 07 78 03  ?.....~...|.~.x.
000000.003 TX   0020  7C 0F 70 07 78 1F 70 0F  70 3F 60 1F 60 7F 40 3F  |.p.x.p.p?`.`.@?
000000.003 TX   0030  40 7F 00 7F 00                                    @....