Google Analytics

14 oktober 2021

Bouw: ASCII video terminal

Een Arduino Uno is een kleine computer die heel geschikt is voor aansturing en uitlezing van allerlei elektronische componenten, bij voorbeeld LED's, schakelaars, sensoren, stappen motoren, etc. 

Wat er -in tegenstelling tot een Raspberry PI- niet standaard op zit, zijn aansluitingen voor een beeldscherm en een toetsenbord. In sommige projecten is daar wel eens behoefte aan en Geoff's Projects heeft daar een leuke oplossing voor bedacht in de vorm van een bouwpakketje. Dit pakket is o.a. te bestellen bij BudgeTronics.eu.

Het betreft een bouwpakket voor een ASCII video terminal. In de jaren 70 werden terminals gebruikt bestaande uit een toetsenbord en beeldscherm waarvan een aantal op een grote centrale computer (mainframe) werden aangesloten. Deze terminals beschikten over een seriële RS-232 poort voor de communicatie en bevatte de hardware en geheugen voor het weergeven van ASCII tekst (25 regels van 80 tekens) en het uitsturen van het toetsenbord. Zelf heb ik nog een tijd een ADM-3A terminal in bezit gehad.

 
ADM-3A terminal © Sudo Null

Al met al een hele grote bak met elektronica en zoals de foto hieronder laat zien kan dit tegenwoordig veel compacter. Het bouwpakket bevat een printplaat niet groter dan een credit card. 

Op bovenstaande foto zijn de vier connectoren inmiddels al gesoldeerd en volgt nu de rest van de onderdelen.

Alles is nu gesoldeerd en de flux is verwijderd met IPA.

Het hart wordt gevormd door de al voorgeprogrammeerde PIC32MX250F128B IC links in het midden. Dit IC doet eigenlijk alles, het genereren van het VGA signaal, inlezen van een PS/2 toetsenbord en de seriële communicatie (RS-232 op TTL niveau).

Van links naar rechts: de VGA connector, de video output connector en de PS/2 toetsenbord connector.

Aan de achterkant links de aansluitingen voor de 3.3V voeding (afkomstig van de Arduino) en  de seriële transmit (TX) en receive (RX) en rechts een USB B aansluiting voor een externe 5V voeding die eventueel gebruikt kan worden in plaats van de 3.3V.

We sluiten een scherm en toetsenbord aan op de ASCII video terminal en verbinden de 3.3V en GND met de corresponderende aansluitingen op de Arduino. De TX van de terminal wordt verbonden met de RX (Pin 0) op de Arduino en de RX van de terminal met de TX (Pin 1).

Voor de Arduino heb ik voor de gelegenheid een CLI (Command Line Interface) programma geschreven die fungeert als een computer met een heel beperkte set commando's.

Eenmaal aangesloten blijkt er geen beeld op de VGA monitor te zijn. Na bestudering van het schema blijkt dat ik op de bovenkant van de printplaat nog een keus had moet maken voor de tekst kleur door een soldeerbrug aan te brengen. Ik kies voor groen omdat dat op de terminals in de jaren 70 ook gebruikelijk was.


Het werkt: de tekst wordt weergegeven op het VGA scherm en de via het toetsenbord gegeven commando's worden door de Arduino verwerkt.
De ASCII video terminal ondersteund de VT52 en VT100 terminal "escape codes" waarmee speciale commando's kunnen worden gegeven.

Een leuk detail is dat er ook escape codes zijn ingebouwd voor het tekenen van rechthoeken, lijnen en cirkels, iets waar de VT52 en VT100 terminals uit de jaren 70 niet over beschikten.

Geen opmerkingen:

Een reactie posten