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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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).

  6. 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