Controlador de Gráficos VGA
Construye un generador de señal VGA que muestra gráficos en un monitor real—crea temporización de video, búferes de cuadro y salida de píxeles.
Overview
Este proyecto genera señales de video VGA apropiadas para mostrar gráficos en un monitor real. Construirás circuitos de temporización para la sincronización horizontal y vertical, un búfer de cuadro en RAM para almacenar los datos de los píxeles y un DAC para convertir valores de color digitales en señales VGA analógicas. ¡Así es como funcionaban las primeras tarjetas de video!
Components Needed
- 1x Oscilador de cristal de 25.175MHz
- 3x SN74HC393 IC (Contador Binario)
- 2x SN74HC138 IC (Decodificador)
- 2x SN74HC00 IC (NAND)
- 1x 6116 SRAM (o similar)
- 12x Resistores DAC R-2R
- 1x Conector VGA (hembra)
- manyx Cables
Instructions
Construir el Contador Horizontal
Usa contadores binarios en cascada controlados por el reloj de píxel de 25.175MHz. Cuenta de 0 a 799 para cada línea horizontal, luego reinicia. Genera el pulso Hsync durante los conteos 656-751.
Construir el Contador Vertical
Incrementa el contador vertical cada vez que el contador horizontal se reinicia. Cuenta de 0 a 524 para cada cuadro. Genera el pulso Vsync durante las líneas 490-491.
Generar la Señal de Blanqueo
Crea una señal de blanqueo que esté activa durante las porciones no visibles (pórticos y períodos de sincronización). Esto fuerza las salidas RGB a negro durante el retrazado.
Construir el DAC
Crea tres DACs de escalera R-2R (uno para cada canal: Rojo, Verde, Azul). Cada uno convierte bits de color digitales a los niveles analógicos de 0-0.7V que espera VGA.
Añadir el Búfer de Cuadro
Conecta la RAM con las líneas de dirección controladas por los contadores X/Y. La salida de datos pasa a través de los DACs. Para simplificar, comienza con baja resolución (por ejemplo, 64x48 con duplicación de píxeles).
Conectar el Conector VGA
Conecta: salidas del DAC a los pines RGB, Hsync y Vsync a los pines de sincronización, tierras a los pines de tierra. ¡Enciende y deberías ver una imagen en el monitor!
Challenges
- Implementa la generación de caracteres para visualización de texto
- Añade superposiciones de sprites para gráficos de juegos
- Construye un procesador de comandos gráficos para dibujar primitivas
- Aumenta la resolución o la profundidad de color