UartDisplay

Motivation

Das Portieren der Display-Lib auf verschiedene Mikrocontroller macht keinen Spass. Deshalb haben wir uns dazu entschlossen, die von Dominic geschriebene Lib für einen ATMega 8 zu verwenden. Der ATMega8 sollte dann per UART die darzustellenden Texte empfangen, da eine UART-Lib ohnehin für jedes Mikrocontrollerprojekt nötig ist und aktuelle Mikrocontroller ohnehin genug UARTs zur Verfügung stellen.

Allgemeines

Das Modul wird über unseren UART-TTL-Stecker mit anderen UART Geräten verbunden, und ist somit einfach mit allen entprechend ausgestatteten Geräten kombinierbar. Die Bedienung ist staight forward, da einfach der Text der über den UART empfangen wird direkt auf dem Display dargestellt. Dabei erscheint eine neue Zeile in der letzten Zeile des Displays und schiebt alle anderen Zeilen um eins nach oben, wie von einem klassischen Terminal gewohnt. Das Exakte positionieren von Text auf dem Display ist absichtlich nicht möglich, da so die Ansteuerung möglichst einfach gehalten wird.

Außerdem verfügt das Modul über 8 Tasten, welche seitlich des Displays angeordnet sind. Beim Drücken einer der Tasten wird eie ASCII Kodierte Ziffer gesendet.

Für Akustisches Feedback gibt es einen Piezo-Signalgeber, welcher beim Empfang des Steuerzeichens <BEL> einen kurzen Ton erzeugt.

Schaltplan und Layout

Schaltplan Schaltplan

Software

Interface, Ansteuerung

Der UART des ATMegas ist statdardmäßig auf 115200 BAUD eingestellt, dies kann aber im Sourcecode leicht geändert werden.

Prinzipiell wird auf dem Display genau der Text angezeigt, der per UART gesendet wird. Ein Newline-Zeichen \r schließt eine Zeile ab und verschiebt den gesamten Inhalt des Displays um eine Zeile nach oben. Die neue Zeile erscheint dann ganz unten. Ein Carriage return \n beendet ebenfalls eine Zeile, führt aber nicht zur Darstellung des Puffer-Inhalts auf dem Display. Dies geschieht nur unmittelbar nachdem ein \r gesendet wurde.

Falls mehr Zeichen gesendet werden als auf das Display passen, werden die überschüssigen Zeichen ignoriert. Als letztes Zeichen einer zu langen Zeile wird ein Müllzeichen angezeigt, um zu signalisieren, dass Zeichen verworfen wurden. Fall scrollen aktiviert ist, beträgt die maximale Zeilenlänge 60 Zeichen, Das Müllzeichen wird nicht angezeigt. Der Text läuft dann wie ein Laufband im Kreis herum. Es ist Sinnvoll am Ende eine langen Zeile 1-3 Leerzeichen anzufügen um den Beginn der Zeile hervorzuheben.

Der Zeichensatz des Displays entspricht nicht exakt dem ASCII Zeichensatz. Deshalb wird intern über eine Lookup-Table eine Anpassung der empfangenen Zeichen vorgenommen, so dass alle Zeichen auf der Tastatur korrekt auf dem Display dargestellt werden. Um einige Sonderzeichen, wie z.B. Pfeile, ohne großen Aufwand als tippbaren String übermitteln zu können versteht das Modul eine Reihe von Sondersequenzen die geparst und durch entsprechende Zeichen ersetzt werden. Alle Sondersequenzen werden durch ein Form-Feed \f eingeleitet. Darauf folgen genau 2 weitere Zeichen, deren bedeutung im folgenden dargestellt ist:

<- : Pfeil nach links
<| : Return-Zeichen
<b : Dicker Pfeil nach links
<< : Doppelpfeil nach links
>b : Dicker Pfeil nach rechts
>> : Doppelpfeil nach rechts
^| : Pfeil nach oben
^\\ : Pfeil nach links-oben
^^ : Doppelfpeil nach oben
^b : Dicker Pfeil nach oben
v| : Pfeil nach unten
v/ : Pfeil nach links-unten
vv : Doppelpfeil nach unten
vb : Dicker Pfeil nach unten
/^ : Pfeil nach rechts-oben
\\v : Pfeil nach rechts-unten
-> : Pfeil nach rechts
v| : Pfeil nach unten
^| : Pfeil nach oben
|n : Progressbar (n=1..5)

Außerdem gibt es Steuerbefehle zur Konfiguration des Displays:

\ei : Display initialisieren
\eS : horizontales Scrollen einschalten
\es : horizontales Scrollen ausschalten
\eL : Hintergrundbeleuchtung einschalten
\el : Hintergrundbeleuchtung ausschalten
\ax  : Einen Ton ausgeben; x = ['1','2','3']

Beim Betätigen eines Tasters sendet das Display ein dem Taster zugehöriges Zeichen. Dabei wird beim Drücken die die Minuskel gesendet und beim Lostlassen die Majuskel. Die Zuordnung der Taster ist folgendermaßen:

S1 -> 'a','A'
S2 -> 'b','B'
S3 -> 'c','C'
S4 -> 'd','D'
S5 -> 'e','E'
S6 -> 'f','F'

Teileliste

/!\ Unvollständig: enthält nur Teile, die nicht üblicherweise griffbereit sind.

Name

Bestellnummer Reichelt

Bestellnummer Farnell

Menge

X2

7,3728-HC49U-S

1842266

1

S1-S6

TASTER 3301

2402409

6

R1

PT 6-L 2,5K

1

SG2

1765028

1

T1-T2

IRLML 6302

9103406

2

Display

EA DIP203J-4

1

Downloads

History (Software)

History (Hardware)