DisplayProc-01

From blwiki
Jump to: navigation, search

Tindie-larges-v2.png

DISPLAYPROC-01-640pxY.jpg

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

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