Skip to content

Commit

Permalink
Updated README
Browse files Browse the repository at this point in the history
Updated MCU list, added PCB descriptions, more usage information, cleanup
  • Loading branch information
Fagear committed Aug 28, 2024
1 parent 8c5f419 commit 9ae2ade
Showing 1 changed file with 31 additions and 21 deletions.
52 changes: 31 additions & 21 deletions README.MD
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

## What is this?

**LowresDisplayTester** is the firmware for AVR MCUs that enables creation of low-part-count and low-cost video generator (sync generator/black burst generator/genlock) device.
It also can be used as a rudimentary pattern generator, but not very stable one. Pattern generation can be disabled via a jumper on the PCB.
**LowresDisplayTester** is a small device with AVR MCUs that enables creation of low-part-count and low-cost video generator (sync generator/black burst generator/genlock) device.
It also can be used as a rudimentary pattern generator, but not very stable one. Pattern generation can be disabled via a jumper on the PCB. This device also performs tests on character displays.

## Features

Expand All @@ -17,10 +17,10 @@ It also can be used as a rudimentary pattern generator, but not very stable one.

## Video outputs

- 525i/29.97 composite (NTSC no color, black level fill + white vertical bars)
- 625i/25 composite (PAL/SECAM no color, black level fill + white vertical bars)
- 640x480 60Hz VGA (blue fill + orange vertical bars)
- 640x200 60Hz CGA/EGA (blue fill + cyan/magenta vertical bars)
- Composite RCA 525i/29.97 (NTSC no color, black level fill + white vertical bars)
- Composite RCA 625i/25 (PAL/SECAM no color, black level fill + white vertical bars)
- VGA 640x480 60Hz (blue fill + orange vertical bars)
- CGA/EGA 640x200 60Hz (blue fill + cyan/magenta vertical bars)

Only one video standard can be selected at any time.

Expand All @@ -29,11 +29,11 @@ Only one video standard can be selected at any time.

## Firmware

Adapter utilizes **Atmel AVR** MCU for all timing, video generation and data protocols. Firmware project is done in **AtmelStudio 7**.
Device utilizes **Atmel AVR** MCU for all timing, video generation and data protocols. Firmware project is done in **AtmelStudio 7**.

Target MCU is **ATmega 168** (either variant). But firmware should be compilable and working on **ATmega 328** variants as well. **ATmega 48** and **ATmega 88** are not supported due to low ROM capacity.
Target MCU is **ATmega 168** (either variant). But firmware should be compilable and working on **ATmega 328** variants as well. **ATmega 48** and **ATmega 88** are not supported due to low ROM capacity. **ATmega 16** and **ATmega 32** are also supported (but require a different PCB).

MCU must be clocked from external 16.0 MHz Xtal for precise timing.
MCU must be clocked from external **16.0 MHz Xtal** for precise timing.

Due to high clock and dependance of output analog levels on logic levels MCU should be run on voltages from **4.1 V** to **5.0 V**. Thus BOD (Brown-out Detector) is enabled by MCU fuses.

Expand All @@ -54,7 +54,7 @@ In hex form:
</details>

<details>
<summary>AVR fuses for ATmega88/ATmega168</summary>
<summary>AVR fuses for ATmega168</summary>

- **SUT1** = 0
- **CKSEL3** = 0
Expand All @@ -70,7 +70,7 @@ In hex form:
</details>

<details>
<summary>AVR fuses for ATmega8/ATmega16/ATmega32</summary>
<summary>AVR fuses for ATmega16/ATmega32</summary>

- **BODLEVEL** = 0
- **BODEN** = 0
Expand All @@ -86,15 +86,23 @@ In hex form:

## Hardware

Sorry, no electrical schematics at the moment...
Sorry, no electrical schematics at the moment.

Adapter fits onto single PCB. PCB project is done in **Sprint Layout 6**.
Sizes of the boards:
- **LRDT.328SMD.xx** (88x41 mm) for ATmega168/ATmega328 in TQFP package
- **LRDT.328DIP.xx** (78x53 mm) for ATmega168/ATmega328 in DIP package
- **LRDT.32DIP.xx** (78x62 mm) for ATmega16/ATmega32 in DIP package

"*xx*" at the end denotes revision of each PCB.

<details>
<summary>Pinout for ATmega 88/168/328 MCU in SMD packages</summary>
<summary>Pinout for ATmega 168/328 MCU in SMD packages</summary>

Power supply:
- **pin 4** *(VCC)*: +5 V supply
- **pin 6** *(VCC)*: +5 V supply
- **pin 18** *(AVCC)*: +5 V supply
- **pin 18** *(AVCC)*: +5 V supply (BOD)
- **pin 20** *(AREF)*: +5 V reference
- **pin 3** *(GND)*: 0 V (common)
- **pin 5** *(GND)*: 0 V (common)
Expand Down Expand Up @@ -136,11 +144,11 @@ UART displays serial port:
</details>

<details>
<summary>Pinout for ATmega 88/168/328 MCU in DIP packages</summary>
<summary>Pinout for ATmega 168/328 MCU in DIP packages</summary>

Power supply:
- **pin 7** *(VCC)*: +5 V supply
- **pin 20** *(AVCC)*: +5 V supply
- **pin 20** *(AVCC)*: +5 V supply (BOD)
- **pin 21** *(AREF)*: +5 V reference
- **pin 8** *(GND)*: 0 V (common)
- **pin 22** *(GND)*: 0 V (common)
Expand Down Expand Up @@ -185,7 +193,7 @@ UART displays serial port:

Power supply:
- **pin 10** *(VCC)*: +5 V supply
- **pin 30** *(AVCC)*: +5 V supply
- **pin 30** *(AVCC)*: +5 V supply (BOD)
- **pin 32** *(AREF)*: +5 V reference
- **pin 11** *(GND)*: 0 V (common)
- **pin 31** *(GND)*: 0 V (common)
Expand Down Expand Up @@ -227,25 +235,27 @@ UART displays serial port:

## Usage

Power supply connects to the default (center-positive) DC barrel jack on the PCB. The board is equiped with reverse-polarity protection. Supplied voltage should in range of **8...20 Volts**. Onboard linear volate regulator provides 5V for MCU and connected character display.

On power-on MCU starts generating video signal for selected video standard. In parallel MCUs tries to communicate with character display through *HD44780* connector.

> [!NOTE]
> Only one of the display output connectors should be used at any time.
## Demo

Video standard is selected through "MODE" switches.

## Current state
- Two-switch video selector works
- PAL and NTSC frame generation works ok
- VGA, EGA and CGA frame generation works ok
- Bar pattern for PAL/NTSC/CGA/EGA/VGA has horizontal jitter due to AVR interrupt jitter
- HD44780 driver works fine
- HD44780 parallel (4-bit) driver works fine

## Plans
- Update I2C driver to working state
- Write driver for character displays with I2C bus
- Write driver for UART Futaba character displays
- Write driver for UART terminal (?)
- Maybe add support for graphical displays

## License
Program copyright 2022-2024.
Expand Down

0 comments on commit 9ae2ade

Please sign in to comment.