Difference between revisions of "Serial Terminal"

From Land Boards Wiki
Jump to navigation Jump to search
(Created page with "Display 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 Monit...")
 
Line 1: Line 1:
Display Processor
+
== Display 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 Serial I/O Processor - which is the other half of this terminal.
 
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 Serial I/O Processor - which is the other half of this terminal.
  
Line 6: Line 7:
 
Searle-DisplayProc.gif
 
Searle-DisplayProc.gif
  
Video controller specification
+
* Video controller specification
Very easy to interface to, fast and requires no host/external memory
+
* Very easy to interface to, fast and requires no host/external memory
Character set
+
* Character set
Full "CGA" (8x8) character definitions as used on the IBM PC (DOS).
+
* Full "CGA" (8x8) character definitions as used on the IBM PC (DOS).
Screen size
+
* Screen size
Text - 80x25, 40x25, 80x12, 40x12, Graphics 160x100 or ANY mix (defined per 1 of 25 rows)
+
** Text - 80x25, 40x25, 80x12, 40x12, Graphics 160x100 or ANY mix (defined per 1 of 25 rows)
Resolution
+
* Resolution
640x200 for 80 char text
+
** 640x200 for 80 char text
160x100 for graphics
+
** 160x100 for graphics
Fonts
+
* Fonts
Font sizes are defined for each line
+
** Font sizes are defined for each line
All chars on the same line have the same font size and style
+
** All chars on the same line have the same font size and style
Graphics
+
* Graphics
Any part of the active screen, up to 160x100 pixels
+
** Any part of the active screen, up to 160x100 pixels
Each pixel individually addressable
+
** Each pixel individually addressable
Defined on any of the 25 screen lines
+
** Defined on any of the 25 screen lines
Video output
+
* Video output
Standard composite monochrome video
+
** Standard composite monochrome video
PAL or NTSC timing
+
** PAL or NTSC timing
Non-interlaced so no flicker
+
** Non-interlaced so no flicker
Display memory
+
* Display memory
2000 chars internal + 25 line attributes - no host memory needed
+
** 2000 chars internal + 25 line attributes - no host memory needed
Very fast update and scrolling whichever interface is used
+
** Very fast update and scrolling whichever interface is used
Interface
+
* Interface
8 bit data bus (requires 10 I/O pins)
+
** 8 bit data bus (requires 10 I/O pins)
4 bit data bus (requires 6 I/O pins)
+
** 4 bit data bus (requires 6 I/O pins)
two-wire (I2C) uses only 2 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).
+
** 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
+
* Hardware
Very low cost - two chips - ATmega328 and 74HCT166 (Shift Register)
+
** Very low cost - two chips - ATmega328 and 74HCT166 (Shift Register)
Connectors
+
* Connectors
J1 - Video Connector
+
** J1 - Video Connector
RCA Jack
+
** RCA Jack
Center is signal
+
** Center is signal
Outside is ground
+
** Outside is ground
P1 - Card Interconnect
+
 
2x8 header, 0.1" pitch
+
== P1 - Card Interconnect ==
Pinout
+
* 2x8 header, 0.1" pitch
VCC
+
*Pinout
VCC
+
# VCC
ID0
+
# VCC
ID1
+
# ID0
ID2 - MOSI for ISP Download cable
+
# ID1
ID3 - MISO for ISP Download cable
+
# ID2 - MOSI for ISP Download cable
ID4 - SCK for ISP Download cable
+
# ID3 - MISO for ISP Download cable
ID5
+
# ID4 - SCK for ISP Download cable
ID6
+
# ID5
ID7
+
# ID6
Unused
+
# ID7
RESET*
+
# Unused
ACK/SDA (R4 terminator for I2C interface)
+
# RESET*
AVAIL/SCL (R3 terminator for I2C interface)
+
# ACK/SDA (R4 terminator for I2C interface)
GND
+
# AVAIL/SCL (R3 terminator for I2C interface)
GND
+
# GND
ISP Cable
+
# GND
 +
 
 +
=== ISP Cable ===
 +
 
 
P1 Pin Description ISP Pin Description Color
 
P1 Pin Description ISP Pin Description Color
 
1 VCC 2 VCC Red
 
1 VCC 2 VCC Red

Revision as of 10:34, 16 April 2020

Display 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 Serial I/O Processor - which is the other half of this terminal.

Here's Grant's schematic:

Searle-DisplayProc.gif

  • 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

P1 - Card Interconnect

  • 2x8 header, 0.1" pitch
  • Pinout
  1. VCC
  2. VCC
  3. ID0
  4. ID1
  5. ID2 - MOSI for ISP Download cable
  6. ID3 - MISO for ISP Download cable
  7. ID4 - SCK for ISP Download cable
  8. ID5
  9. ID6
  10. ID7
  11. Unused
  12. RESET*
  13. ACK/SDA (R4 terminator for I2C interface)
  14. AVAIL/SCL (R3 terminator for I2C interface)
  15. GND
  16. GND

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 Software Source Code Copy of the Display Processor Code in my GitHub Repository - any changes are here Atmel AVR Studio Download 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\DisplayProc\AssemblerApplication1\AssemblerApplication1\Debug\AssemblerApplication1.hex":i -C"C:\Program Files (x86)\Arduino\hardware\tools\avr\etc\avrdude.conf" Checkout Saw a blinking cursor Assembly Sheet Display Processor Assembly Sheet

SIOPROC-01-640px.jpg

Contents 1 Serial I/O Processor 2 Features 3 Connectors 3.1 P1 - Card Interconnect 3.2 P2 - PS/2 Keyboard 3.2.1 PS/2 Adapter Cable 3.3 P3 - 5V FTDI/Power Connector 3.4 P4 - In-System Programmer (ISP) Connector 4 Configuration Resistors 5 Software 6 Rev X1 Issues 7 Assembly Sheet 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.

Here's Grant's schematic:

Searle-SIOProc.gif

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 - PS/2 Keyboard PS2Conn.png

1x4 header, 0.1" pitch GND VCC KBCLK KBDAT PS/2 Adapter Cable S-l1600-Adapter-Cable-720px.jpg

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 S-l1600.jpg

1x6 header, 0.1" pitch Pinout GND RTS VCC (+5V) TX RX N/C 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 Software Source Code Copy of the Serial I/O Processing Code in my GitHub Repository - any changes are located here Atmel AVR Studio Download 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" 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 Assembly Sheet SIOProc-01 Assembly Sheet