TinyVT

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

von cameris

noch (lange) im Aufbau

Folgender Artikel beschäftigt sich mit der Erstellung eines Video Terminals, dem tinyVT.

tinyVT am Raspberry Pi

Einleitung

Wie ein PC, brauchen viele Mikrocontroller Projekte eine Form der Ein- und Ausgabe von Daten.

So wurden früher Fernschreiber als Text User Interface zu einem Mainframe Computer verwendet. Diese kommunizierten mit einer sequenziellen Datenübertragung miteinander.

Die Fernschreiber wurden schließlich von den Video Terminals abgelöst, die meist über die RS-232 Schnittstelle mit dem Computer kommunizierten und einen Röhrenbildschirm statt eines Druckwerks besaßen. Am Anfangen waren diese nicht mehr als eine elektronische Version des Fernschreibers und konnten bestenfalls eine Handvoll von C0 Steuerzeichen (ASCII 0x00-0x19, z.B. CR, LF) interpretieren.

Die späteren "intelligenten" Terminals konnten mittels Escape Sequenzen verschiedene Funktionen ausführen, etwa Zeilen löschen oder den Cursor neu positionieren. Zu den bekanntesten Vertretern dieser Terminals zählt wohl das von Digital Equipment Corporation (DEC) entwickelte VT100.

Auch wenn die Zeit der Video Terminals vorbei ist, sind Terminals in Form der System Konsole oder Emulatoren (xterm, minicom), gerade im Linux-Umfeld, noch weit verbreitet. Zusammen mit einem MAX232 und der RS-232 Schnittstelle oder einem USB-TTL Kabel stellen Terminals die einfachste Möglichkeit dar, eine Benutzerschnittstelle zum µC zu implementieren.

Um den Umweg über den PC zu eliminieren wurde das tinyVT entwickelt, das neben dem Einsatz als universelles Ein- und Ausgabegerät für Mikrocontroller auch als Terminal an einem PC (z.B. headless server, router) betrieben werden kann oder ohne Tastatur als eine Art Statusmonitor am Rechner, der per cronjob mit Informationen gefüttert wird.

Hardware

Verwendet wurde ein LCD-Modul mit dem Treiber-IC SSD1289, das recht günstig bei verschieden Quellen erhältlich ist. Eine der wichtigsten Funktionen eines Terminals ist das Scrollen des Bildschirms. Zwar unterstützt der SSD1289 scrollen, aber nur im Porträt-Modus und auch nur über den ganzen Bildschirm, weshalb das Scrollen per Software gelöst wird (siehe Firmware). Dadurch kann die Software leicht an andere GLCDs angepasst werden kann.

Da ich keine einzige Tastatur mit PS/2 Anschluss mehr besitze, aber alle meine Tastaturen PS/2 kompatibel sind, habe ich mir die Mini-DIN6 Buchse + Adapter gespart und gleich eine USB Buchse verwendet um Platz zu sparen. Auch beim UART Anschluss bin ich einen eigenen Weg gegangen und verwende eine 8P8 Buchse mit einem Crossover Netzwerkkabel. Dabei ist darauf zu achten, dass beim Kabel nur 2 Paare gekreuzt sind (10/100BASE-T).

Sonstige Features:

  • Piezobeeper (\a, standardmässig deaktiviert)
  • Durch ADUM1201 sowohl 5V als auch 3V3 TTL möglich
  • 3 Jumper zum Bezug oder Bereitstellung der Spannungen
  • Tastatur Reset Button falls automatische Erkennung fehlschlägt

Schaltplan

Schaltplan
Schaltplan Schaltregler

Layout

Layout (front)
Layout (back)

Platine

fertige Platine
Ursprügnlich wollte ich das Projekt tinyterm nennen bis ich gemerkt habe, dass der Name schon von mehrfach verwendet wird. Nur falls ihr euch wundert.

Firmware

Escape Sequenzen


Linux

Surfen mit w3m

AVR client library

PLANNED

Downloads

  • Kicad Dateien, Sourcecode und terminfo Eintrag auf Google Code

Siehe auch