Serial Terminal
Revision as of 16:52, 8 May 2022 by Blwikiadmin (talk | contribs) (→P2 - PS/2 Keyboard Using PS2X49 card)
Contents
Serial Terminal
This design is based on Grant Searle's Monitor and keyboard controllers.
This is an inexpensive and small serial terminal design. This design can drive 80x25 text and graphics displays.
This design has been implemented on two cards, the Display Processor and Serial I/O Processor.
Display Processor
- Grant Searle's 2-Chip Terminal design - search page for "My simple video/kb interface"
- Three card set
- DISPLAYPROC-01 - Display Processor
- SIOProc-01 - Serial I/O Controller
- PS2X49 - PS/2 keyboard Mini-DIN connector
- Populated half
- Not using level translator
Video controller specification
- Very easy to interface to, fast and requires no host/external memory
- Character set
- Full "CGA" (8x8) character definitions as used on the IBM PC (DOS).
- Screen size
- Text - 80x25, 40x25, 80x12, 40x12, Graphics 160x100 or ANY mix (defined per 1 of 25 rows)
- Resolution
- 640x200 for 80 char text
- 160x100 for graphics
- Fonts
- Font sizes are defined for each line
- All chars on the same line have the same font size and style
- Graphics
- Any part of the active screen, up to 160x100 pixels
- Each pixel individually addressable
- Defined on any of the 25 screen lines
- Video output
- Standard composite monochrome video
- PAL or NTSC timing
- Non-interlaced so no flicker
- Display memory
- 2000 chars internal + 25 line attributes - no host memory needed
- Very fast update and scrolling whichever interface is used
- Interface
- 8 bit data bus (requires 10 I/O pins)
- 4 bit data bus (requires 6 I/O pins)
- two-wire (I2C) uses only 2 pins
- I2C (thanks to Dave Curran for his guidance and code on this) supports low (100KHz) and high (400KHz) speed clocks or higher (1MHz or more easily achievable).
- Hardware
- Very low cost - two chips - ATmega328 and 74HCT166 (Shift Register)
- Connectors
- J1 - Video Connector
- RCA Jack
- Center is signal
- Outside is ground
Grant's Display Processor Schematic
Connector
P1 - Card Interconnect
- 2x8 header, 0.1" pitch
- Pinout
- VCC
- VCC
- ID0
- ID1
- ID2 - MOSI for ISP Download cable
- ID3 - MISO for ISP Download cable
- ID4 - SCK for ISP Download cable
- ID5
- ID6
- ID7
- Unused
- RESET*
- ACK/SDA (R4 terminator for I2C interface)
- AVAIL/SCL (R3 terminator for I2C interface)
- GND
- GND
ISP Cable
- The card can be programmed with an ISP cable through the J1 connector or via the ATProgHead card
- This is the pinout of the ISP cable
P1 Pin Description ISP Pin Description Color 1 VCC 2 VCC Red 2 3 4 5 MOSI 4 MOSI Green 6 MISO 1 MISO Grey 7 SCK 3 SCK Yellow 8 9 10 11 12 RESET 5 RST White 13 14 15 GND 6 GND Black 16
Configuration Resistors
- Configuration Resistor values can also be set through soft switches in the code
- R5 - Two-wire interface (I2C)
- R6 - 4-bit interface
- R7 - 10K for NTSC, open for PAL
- R3, R4 - I2C Termination resistors - Install for I2C termination - typical = 2.2K
Serial I/O Processor
- This is an inexpensive and small serial terminal design. This design can drive 80x25 text and graphics displays. This design is based on Grant Searle's Monitor and keyboard controllers. This design has been implemented on two cards, this card and Display Processor - which is the other half of this terminal.
Grant's Serial I/o Schematic
Features
- Serial interface
- Fully buffered 115200 baud, handshake on receive, TTL levels.
- Keyboard interface
- PC PS/2 standard keyboard connector, accepts standard keyboards made for PCs. Keyboard LED illumination implemented, and allows for caps lock and num lock.
Hardware
- Two cards
- 8-bit interface connector for card-to-card connections
Connectors
P1 - Card Interconnect
- 2x8 header, 0.1" pitch
- Connector matches the pinout of the other card so it can be mated directly to the other card via 1:1 cable or a female header on this card
- Pinout
- VCC
- VCC
- ID0
- ID1 - CS* for ISP Download cable
- ID2 - MOSI for ISP Download cable
- ID3 - MISO for ISP Download cable
- ID4 - SCK for ISP Download cable
- ID5
- ID6
- ID7
- Unused
- RESET*
- ACK/SDA (R4 terminator for I2C interface)
- AVAIL/SCL (R3 terminator for I2C interface)
- GND
- GND
P2 - Using PS/2 Adapter Cable
- Ordered this cable from ebay.
- Replaced 5 pin connector with 4 pin 0.1" pitch "Dupont" connector
- Pinout of cable after re-wiring with new connector
PS/2 Pin P2 Pin Description Color 1 4 Data TBD 2 N/C N/C N/A 3 1 GND TBD 4 2 +5V TBD 5 3 Clk TBD 6 N/C N/C N/A
P3 - 5V FTDI/Power Connector
- Rev X2 SIOProc card
- 1x6 header, 0.1" pitch
- Pinout matches "standard" FTDI pinout with 1:1 wiring
- FTDI Cable
- Pinout (signals referenced to SIOProc card)
- GND
- RTS (OUT)
- VCC (+5V)
- RX (IN)
- TX (OUT)
- N/C (Marked as CTS on card buy not connected)
- VCC pin provides power into the card when used with an FTDI card
P3 - FTDI to RS-232 DCE Connections
- DCE - FTDI to RS-232 with DB-9 female connector
- VCC pin provides 5V out when used with an RS-232 to TTL interface card
- Swap-over cable
- Wire pins 1, 3 directly
- Swap pins 2,6
- Swap pins 4,5
P4 - In-System Programmer (ISP) Connector
- Cable for use with ArduinoISP programmer
- 0.1" pitch "Dupont" connector
- 2x3
- MISO
- VCC
- SCK
- MOSI
- RESET*
- GND
Configuration Resistors
- Configuration Resistor values can also be set through soft switches in the code
- R1, R2 - I2C termination - install to terminate - typically 2.2K
- R5 - Two Wire Interface output (I2C)
- R6 - 4-bit Interface
P2 - PS/2 Keyboard Using PS2X49 card
- Using PS2X49 card
- Populate J1 with purple Mini-DIN-6
- Does not require U1 IC or J2
- R1, R2 = 0 ohms
- 1x4 header, 0.1" pitch
- GND
- VCC
- KBCLK
- KBDAT
- Alternate chassis mount cable
Software
- Source Code
- Atmel AVR Studio Download
- Run CMD shell in Windows
- In C:\Program Files (x86)\Arduino\hardware\tools\avr\bin, type
avrdude -U lfuse:w:0xc6:m -U hfuse:w:0xd9:m -e -F -v -patmega328p -carduino -PCOM8 -b19200 -D -Uflash:w:"C:\Users\doug_000\Documents\GitHub\lb-Arduino-Code\LBCards\SIOProc\GccApplication1\GccApplication1\Debug\GccApplication1.hex":i -C"C:\Program Files (x86)\Arduino\hardware\tools\avr\etc\avrdude.conf"
- or -
avrdude -U lfuse:w:0xc6:m -U hfuse:w:0xd9:m -e -F -v -patmega328p -carduino -PCOM8 -b19200 -D -Uflash:w:"C:\Users\doug_000\Documents\GitHub\lb-Arduino-Code\LBCards\DisplayProc\AssemblerApplication1\AssemblerApplication1\Debug\AssemblerApplication1.hex":i -C"C:\Program Files (x86)\Arduino\hardware\tools\avr\etc\avrdude.conf"
Checkout
- Saw a blinking cursor
Rev X2 Issues
- None
Rev X1 Issues
- FTDI handshake moved from P3-6 to pin P3-2
- Cut etch at FTDI connector P3-6
- Add wire U1-26 to P3-2