From 9ae2ade4840fb96d32bfe875c716a2161b388055 Mon Sep 17 00:00:00 2001 From: Fagear Date: Wed, 28 Aug 2024 03:40:38 +0300 Subject: [PATCH] Updated README Updated MCU list, added PCB descriptions, more usage information, cleanup --- README.MD | 52 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 21 deletions(-) diff --git a/README.MD b/README.MD index e811067..258a0c0 100644 --- a/README.MD +++ b/README.MD @@ -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 @@ -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. @@ -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. @@ -54,7 +54,7 @@ In hex form:
-AVR fuses for ATmega88/ATmega168 +AVR fuses for ATmega168 - **SUT1** = 0 - **CKSEL3** = 0 @@ -70,7 +70,7 @@ In hex form:
-AVR fuses for ATmega8/ATmega16/ATmega32 +AVR fuses for ATmega16/ATmega32 - **BODLEVEL** = 0 - **BODEN** = 0 @@ -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.
-Pinout for ATmega 88/168/328 MCU in SMD packages +Pinout for ATmega 168/328 MCU in SMD packages 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) @@ -136,11 +144,11 @@ UART displays serial port:
-Pinout for ATmega 88/168/328 MCU in DIP packages +Pinout for ATmega 168/328 MCU in DIP packages 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) @@ -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) @@ -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.