8bit: ¿Cómo generar salida de video?

3

Estoy diseñando una computadora de 8 bits, tratando de mantener los componentes de bajo costo disponibles en 1984 +/- 3. Siguiendo una pregunta anterior , he completado el hardware basado en 6845 , excepto que no tengo ni idea de cómo generar la señal de video RGB.

Miré los esquemas de muchas computadoras de la era, especialmente el Amstrad CPC y BBC Micro , pero descubrió que todo se hizo en un ULA opaco, sin detalles sobre la operación.

Tengo el hsync y el vsync del 6845, y mi diseño ahora puede producir sincrónicamente para cada píxel un valor de N bits para cada componente R-G-B, ya sea en paralelo o en serie a través de registros de desplazamiento. ¿Entonces qué?

Supongo que debería alimentar los valores a algún DAC capaz de convertirlos a una señal analógica, pero no vi nada de eso en los esquemas. Parece que están introduciendo valores de ram de video, rom de caracteres y pestañas de color en la ULA y luego, ¡presto, directamente al conector de video!

¿Esos ULA incluyen DAC también, o es la salida de video estándar digital después de todo, o (lo más probable) me estoy perdiendo algo?

    
pregunta airman

4 respuestas

2

En la década de 1980, los DAC de video integrados eran caros y difíciles de integrar en chips personalizados. La mayoría de las computadoras domésticas con salida RGB utilizaban DAC discretos hechos de resistencias o tenían salidas digitales (RGB o RGBI).

La ULA de Amstrad CPC y BBC micro no tenía DAC internos. El procesador de video de la BBC solo produjo salidas digitales (2 niveles), por lo que se limitó a 8 colores. La matriz de puertas de Amstrad utilizó sus salidas digitales de tres estados para producir 3 niveles (alto, bajo o flotante) con resistencias externas que crean los voltajes analógicos deseados. Esto fue capaz de producir 27 colores.

Aquí es parte del circuito de video de Amstrad. R125-129 tira las salidas hacia arriba, mientras que R131-133 y R135 las bajan. Cuando una salida de la matriz de puertas es de tres estados (circuito abierto), se produce un voltaje en el punto medio. R131-133 y R135 también mezclan los colores para producir video compuesto. R126-130 descargue las salidas RGB a 0.7V cuando las líneas terminen correctamente con 75 ohmios.

InclusosepuedenproducirmáscoloresutilizandoDACbasadosenresistencias.ElAmiga1000produjo4096coloresusandoelcircuitoacontinuación.ElchipdevideoDeniseprodujosalidasRGBdigitalesde4bitsqueluegoseconvirtieronenanalógicasutilizandoresistenciasponderadasbinarias(1k,2k,4ky8k).

    
respondido por el Bruce Abbott
2

En general, los sistemas 6845 no estaban diseñados para conducir televisores o pantallas de color estándar con video compuesto. En su lugar, originalmente tenían la intención de conducir CRT monocromáticos dedicados que solo requerían 3 entradas: HSync, VSync, Video y Video normalmente era un nivel lógico TTL. Con un poco de circuitos adicionales se podría resaltar el cursor, pero eso es todo. Además, por supuesto, era solo texto. El 6845 no tiene la velocidad suficiente para hacer una visualización sin texto que valga la pena. La frecuencia máxima de reloj es de 2,5 MHz. Incluso suponiendo un tiempo de visualización horizontal de 48 usec (estándar para pantallas de 60 Hz), eso solo le brinda una resolución horizontal de aproximadamente 120 píxeles. Por supuesto, para las pantallas de texto, el reloj de píxeles se ejecutará aproximadamente 8 veces y se dividirá para dar el reloj CRTC.

Estos monitores CRT, por supuesto, se han ido hace tiempo, aunque todavía puedes encontrarlos en eBay. En general, cualquier monitor moderno con entradas analógicas VGA aceptará video no compuesto, aunque no todos funcionarán a las bajas velocidades de escaneo que producirá el 6845. Además, la interfaz VGA quiere ver niveles de video p-p de 1 voltio.

Además de su 6845, necesitará una memoria RAM estática para mantener los datos de su pantalla. También necesitará una ROM de caracteres en la salida de la RAM y un registro de desplazamiento para serializar la salida de la ROM. Además, por supuesto, la lógica de control del bus para determinar qué elemento (CPU o CRTC) está accediendo realmente a la RAM.

Hacer una salida de color desde esta configuración requiere un enfoque claramente no estándar. Puede codificar sus datos de video con un formato no ASCII, colocar los datos de caracteres en los 6 bits más bajos y usar los 2 bits superiores como selección de color, o su RAM de video tendrá que tener más de 8 bits de ancho, con la complejidad correspondiente. involucrado en escribir datos desde un bus de datos de 8 bits. Puedes hacerlo, pero sospecho que necesitas un poco más de diseño lógico que los que tienes. Si me equivoco, diviértete.

Si tiene 2 bits de datos de color, el uso más simple es usar un decodificador de 2 a 4 líneas para seleccionar el color primario (R, G o B) en el que desea que aparezca el carácter. Si ha hecho algo no estándar y desea una mejor resolución de color, puede usar los 2 bits para abordar una tabla de búsqueda que convertirá los 2 bits en 3 conjuntos de valores RGB (2 o 3 bits cada uno cabrá en una ROM de 8 bits, o puede incluso haga algo creativo con RAM de alta velocidad, aunque luego tendrá que averiguar cómo acceder a él.

Hacer un DAC de video de 2 bits no es difícil, pero hay que tener en cuenta que las entradas de video VGA son nominalmente de 75 ohmios. Algo como

simular este circuito : esquema creado usando CircuitLab

debería funcionar, ya que los buffers son las puertas de la serie 7400 TTL.

Si está determinado a tener un color de bits múltiples (que en su período de tiempo solo estaba disponible en monitores de muy alta gama), necesitará DAC de video de mayor resolución. Recomiendo tratar de encontrar viejos DAC de Brooktree, que a veces aparecen en eBay. El BT103 tiene 3 DAC de 4 bits, y el Bt102 y el Bt106 manejan 8 bits. Todos ellos tienen entradas TTL y darán 1 voltio a 75 ohmios. Puede encontrar un catálogo Brooktree 1991 en este sitio y le dará toda la información técnica que necesita.

    
respondido por el WhatRoughBeast
1

Deberías mirar a Apple] [esquemas. Se basaron en puertas lógicas estándar, con trucos especiales para generar video compuesto a color.

También hubo tarjetas adicionales para salidas RGB ("Chat Mauve" por ejemplo)

    
respondido por el TEMLIB
1

Puede rodar su propio DAC usando la cadena de resistencia R-2R y un amplificador operacional de salida. La cadena R-2R puede ir con cualquier cadena de pines de salida CMOS y obtienes x bits de resolución si usas x pines de salida.

Por ejemplo, un DAC de 8 bits se puede construir utilizando un 74HC595, un grupo de resistencias y un amplificador operacional. Usando tres de ellos obtienes color de 24 bits.

Lista de materiales por canal:

  • 74AHC595 (necesita la velocidad. Si puede usar un bus de salida paralelo, sería aún mejor)
  • 18 resistencias
  • Un amplificador operacional (1/4 de LM324)

Una salida RGB de 24 bits completa:

  • 3x 74AHC595's
  • 54 resistencias
  • Un LM324
respondido por el Maxthon Chan

Lea otras preguntas en las etiquetas