Cambio de píxeles a la pantalla con VGA sin computadora

[Ben Eater] regresó con la segunda parte de su serie de videos sobre la construcción de una tarjeta de video simple que puede producir 200 × 600 píxeles en una pantalla con nada más que una conexión VGA, un puñado de 74 chips lógicos y un cristal de 10 MHz. En esta entrega vemos cómo no usa nada más que EEPROM y un puñado de resistencias para obtener una imagen en la pantalla.

La parte interesante es cómo se codifican los datos de la imagen en la EEPROM, ya que debe ser tratable por el mismo circuito de tiempo que el que se usa para la sincronización horizontal y vertical. Al seleccionar las entradas relevantes que harían una dirección válida y duplicar el tamaño de cada píxel unas cuantas veces, se puede codificar una imagen de 100 x 75 píxeles en la EEPROM y procesar directamente mediante este circuito de temporización.

La salida de la EEPROM en sí no se inserta directamente en el monitor, ya que la interfaz VGA espera una señal de 0 V a 0,7 V en cada pin RGB, lo que indica el brillo. Para obtener más de tres colores de este diseño, [Ben] construye un DAC simple de 2 bits que permite dos bits por canal, lo que significa cuatro niveles de brillo por canal de color o 64 colores de manera efectiva.

Vea el video después del enlace para obtener todos los detalles. Aunque bastante cerca de la perfección, un pequeño número permanece al final en forma de líneas verticales negras. Estos son causados ​​por un problema de tiempo en el circuito, con comentarios en el video de YouTube que sugieren otras posibles correcciones. ¿Ya ha empapelado su propia versión para depurar este número antes? [Ben]¿Aparece el siguiente video?

  • LIV2 dice:

    Tuve un problema similar con las líneas en mi propio circuito VGA, que simplemente se soluciona agregando un pestillo a la salida y sincronizándolo con el reloj de píxeles. Incluso si la rom fue lo suficientemente rápida o usó una SRAM rápida (como yo) la memoria no es síncrona, por lo que es necesario hacerlo registrándola con un perno

  • epitaxia dice:

    Terrible trabajo e increíblemente informativo.

  • MoJo dice:

    Pensé que habíamos pasado por alto el uso de esa imagen en particular ... Suspiro.

    • Kam dice:

      Si está apuntando a Lenna, no ha visto el video, Ben Eater está enviando un pájaro tropical como imagen de prueba.

      • MoJo dice:

        Está en la miniatura ... Clickbait parece empeorar las cosas.

    • Steven dice:

      Por que hariamos eso? Tiene una licencia generosa y es casi la referencia real para el procesamiento de imágenes.

      Sería como pasar de "hola mundo".

  • Ricardo dice:

    El contenido de este chico es 10/10.

  • rv6502 dice:

    El recuento de piezas podría reducirse en gran medida si la EEPROM quedara más de 2 bits generando la señal sincrónica h y sincrónica v.

    Todo lo que necesita es un comparador de bordes de imagen completo.

    Lo que también puede eliminar al tener un código especial en la EEPROM restablecer el contador como (Vsync bit AND con rojo bit 0) -> restablecer (el color siempre debe ser 0 mientras está vacío)

    • MvK dice:

      Benchhof presentó el mismo proyecto hace dos semanas. https://la-tecnologia.com/2019/07/07/low-res-video-card-is-still-amazing-since-its-made-out-of-logic-chips/

      Tampoco es necesario que todo sea tan complejo. Además, la señal de control para las calculadoras puede provenir de la memoria de píxeles. La-Tecnologia presentó esto hace dos años: https://la-tecnologia.com/2017/03/07/vga-without-a-microcontroller/

  • rastersoft dice:

    Un posible cambio es usar 3 bits para R y G, y 2 para B, aprovechando el hecho de que el ojo humano es menos sensible al azul que al rojo / verde.

    • reg dice:

      Dudo el DAC que tiene, así como la teoría, porque solo asumió que las piezas apagadas eran tres declaradas, que no es el caso. Entonces, en cualquier caso en que un pin esté encendido y el otro apagado, el divisor de voltaje tiene otra pata que regresa a la salida baja en el eprom. Habría usado 3 eproms y 3 dacs de 8 bits para producir un color de 24 bits, pero fue genial que pudiera hacer lo que hizo con material analógico realmente simple.

      En general, fue bueno que pudiera hacer lo que hizo con las cosas que tenía que hacer con él. Estoy bastante seguro de que no me importaría trabajar tan bajo, pero fue divertido ver cómo funcionaba.

      Hace muchas décadas, mi amigo hizo dacs R 2R con resistencias y los insertó junto con un conector RCA hembra en la carcasa de un conector DB25 que podía insertar en un puerto de impresora y escribió un programa para permitirle reproducir archivos de audio a través de él. Solía ​​venderlos junto con discos de archivos de audio en programas de computadora. Era un cachorro inteligente y diseñó una caja realmente inteligente para empacarlos. Parecían un producto real, no algo armado en la mesa de la cocina .....

  • Roberta dice:

    Sigue así, Ben 🙂 ¡Cosas fantásticas!

  • PKM dice:

    Sé que el objetivo de este proyecto es "hardware mínimo factible para generar imágenes VGA desde ROM", pero me complace un poco que la resolución sea una cuarta parte de lo que podría ser debido a la falta de una dirección. Dos del mismo chip EEPROM y un pin utilizado para el cambio de banco podrían corregir eso y darnos los 200 × 150 que obtuvieron los cálculos de su reloj original. Además, el DAC de dos bits es un ejemplo bastante simple, pero dada una ROM de 8 bits, sería bueno ver qué tan bien podría funcionar con una profundidad de color de 3-3-2 bits.

    • Jaxxon dice:

      No sé si esto es realmente "hardware mínimo factible". Hay varios proyectos que realizan salidas VGA con efectos visuales en tiempo real, etc. Solo en AVR sin hardware adicional.

  • Jon Luanto dice:

    Esto parece una cantidad increíble de circuitos adicionales. Este tipo tiene una salida VGA estable (junto con muchos ciclos de CPU utilizados para sus efectos y sonido) de solo Atmega88 sin chips periféricos como siempre: http://linusakesson.net/scene/craft/index.php

    • Joe Lane dice:

      El Atmega88 es mucho más complejo que este circuito. Accidentalmente se vuelve más pequeño y todo en un solo chip. Un número de chips más bajo no necesariamente equivale a una menor complejidad.

  • aa1ww dice:

    Aunque no es una implementación TTL o TVT, los circuitos VGA del microcontrolador exhiben algunos buenos trucos. El primer gen Parallax Propeller hace una pantalla VGA y hay muchos microcontroladores VGA o N x 3.579MHz TVT y proyectos lógicos (discretos, CPLD y FPGA). Es muy satisfactorio crear y depurar un proyecto en el que literalmente ves el resultado independientemente de la tecnología que uses.

Victoria Prieto
Victoria Prieto

Deja una respuesta

Tu dirección de correo electrónico no será publicada.