stringtranslate.com

Motorola 6845

Controlador CRT Motorola 6845

El Motorola 6845 , o MC6845 , es un controlador de pantalla que se utilizó ampliamente en computadoras de 8 bits durante la década de 1980. [1] [2] Originalmente pensado para diseños basados ​​en la CPU Motorola 6800 y con un número de pieza relacionado, se usó más ampliamente junto con otros procesadores y se encontró más comúnmente en máquinas basadas en Zilog Z80 y MOS 6502 .

El 6845 no es una solución de visualización completa por sí solo; La función principal del chip es cronometrar adecuadamente el acceso a la memoria de visualización y calcular la dirección de memoria de la siguiente porción que se extraerá. Otros circuitos de la máquina utilizan la dirección proporcionada por el 6845 para buscar el patrón y luego dibujarlo. La implementación de ese hardware depende totalmente del diseñador y varía ampliamente entre las máquinas. El 6845 está diseñado para pantallas de caracteres, pero también podría usarse para gráficos basados ​​en píxeles, con alguna programación inteligente.

Entre sus usos más conocidos se encuentran las tarjetas gráficas BBC Micro , Amstrad CPC y Videx VideoTerm para Apple II . [1] También forma parte de muchas de las primeras tarjetas adaptadoras de gráficos para IBM PC , incluidas MDA , Hercules Graphics Card (HGC), Color Graphics Adapter (CGA) y Plantronics Colorplus . [3] Su funcionalidad fue duplicada y ampliada mediante circuitos personalizados en los adaptadores de video para PC EGA y VGA .

Diseño

Originalmente diseñado por Hitachi como HD46505 , [4] las versiones construidas por Hitachi se encuentran en una amplia variedad de computadoras japonesas, desde Sony, Sharp, Panasonic y Casio. Clonado posteriormente como MB89321A por Fujitsu. [5] También se conoce como 6845 CRTC o CRTC6845 , que significa " controlador de tubo de rayos catódicos ". Esta versión se utilizó en Apricot PC y Victor 9000 para proporcionar una pantalla monocromática con resolución de 800x400.

Un clon común de este controlador CRT es el controlador CRT UM6845E de United Microelectronics Corporation (UMC) . Durante la época de los embargos tecnológicos de la Guerra Fría , el 6845 fue clonado en Bulgaria con la designación CM607 . El 6845 era muy similar y estaba relacionado con el posterior 6545 fabricado por MOS Technology (Commodore Semiconductor Group) y Rockwell (en dos versiones).

[6]

Descripción general

El chip genera las señales necesarias para interactuar con una pantalla rasterizada , pero no genera los píxeles reales , aunque contribuye con información del cursor y de supresión de video a las señales (intensidad) del video de píxeles. Se utiliza para producir sincronización horizontal y vertical sincronizada correctamente y proporcionar la dirección en la memoria desde la cual se debe leer el siguiente píxel o conjunto de píxeles. El proceso de leer ese valor, convertirlo en píxeles y enviarlo a un CRT se deja en manos de otros circuitos. Debido a esto, los sistemas que utilizan el 6845 pueden tener números y valores de colores muy diferentes, o pueden no admitir ningún color. [6]

Se admiten modos de salida entrelazados y no entrelazados, al igual que un cursor de texto de hardware. La generación de sincronización incluye la generación de señales de supresión de vídeo horizontales y verticales, que se utilizan para acondicionar los circuitos externos de generación de píxeles. Además, se proporciona un pestillo interno que, cuando se activa, duplicará y conservará una copia de la dirección de vídeo para que luego la CPU pueda volver a leerla. Esto es útil para bolígrafos y pistolas luminosas que pueden funcionar enviando un pulso al 6845 cuando pasa el haz de electrones, lo que permite que un programa en ejecución lea la ubicación a la que apuntaba. Debido a esta característica, la mayoría de los adaptadores de video para computadora que usaban un 6845 incluían una interfaz de lápiz óptico, aunque generalmente era un conector interno en la placa misma, no en el exterior de la computadora, y generalmente no estaba documentado en el manual del usuario.

Debido a que todos los aspectos de la temporización del vídeo son programables, una sola máquina puede cambiar entre temporizaciones de 50 Hz y 60 Hz en el software (o incluso cualquier otra frecuencia de actualización dentro de los límites del chip). El 6845 se puede utilizar para controlar monitores o cualquier otra pantalla rasterizada.

Internos

Distribución de pines MC6845.

El chip tiene un total de 18 registros de 8 bits que controlan todos los aspectos de los tiempos de vídeo. Sólo dos direcciones están expuestas a componentes externos: una para seleccionar en qué registro interno se leerá o escribirá y otra para acceder a ese registro. [7]

El 6845 está diseñado para pantallas basadas en caracteres. Cada dirección que genera se compone de dos partes: una dirección de caracteres de 14 bits y una dirección de fila de 5 bits. La dirección del carácter aumenta linealmente. Cuando el chip indica sincronización horizontal, aumenta la dirección de la fila. Si la dirección de la fila no es igual al número de filas por carácter establecido mediante programación, entonces la dirección del carácter se restablece al valor que tenía al comienzo de la línea de exploración que acaba de completarse. De lo contrario, la dirección de la fila se restablece a cero y la dirección de la memoria continúa aumentando linealmente. Esto hace que se vuelva a leer la misma secuencia de valores de caracteres de la memoria para cada línea ráster de cada fila de caracteres, antes de que el 6845 avance la dirección de memoria a la siguiente fila de caracteres y repita el mismo patrón.

Si la dirección de carácter se utiliza para buscar una referencia de carácter en la RAM y la dirección de fila para indexar una tabla de gráficos de caracteres en la ROM , se construye una visualización en modo de texto normal . La referencia de carácter leída de la memoria debe combinarse con la dirección de fila para formar la dirección de la ROM de gráficos de caracteres, con la referencia de carácter seleccionando un conjunto de patrones de líneas de escaneo que forman un carácter y la dirección de fila indexándose en ese conjunto para seleccionar un escaneo. línea. En otras palabras, la dirección ROM se divide en dos partes para usar la ROM como una matriz bidimensional: la primera dimensión selecciona un carácter y la segunda selecciona una fila del patrón gráfico de ese carácter.

Sin embargo, el 6845 dejó al diseñador la libertad de enrutar los bits de la memoria y las direcciones de fila a la RAM de video como mejor le pareciera. Por esta razón la palabra direccionada por el 6845 no tiene por qué ser igual a un píxel o un carácter. En el modo alfanumérico (texto) CGA, hay dos bytes por carácter, a los que el 6845 accede secuencialmente (el primer byte es un byte de código de carácter y el segundo byte es un byte de atributo de carácter) y la placa usa el contenido de los bytes, juntos. con la dirección de la fila, para leer los datos de fuente de la ROM y generar los píxeles.

Se podría utilizar un enrutamiento diferente de los bits, omitiendo el carácter ROM, para emular un búfer de trama. Debido a su limitación de 128 líneas, el 6845 no puede proporcionar buffers de cuadros lineales grandes. Una solución fue combinar la dirección de fila y la dirección de carácter para proporcionar líneas de exploración lineales dentro de un búfer no lineal. Esto tiene las ventajas de una programación más sencilla para la visualización sin caracteres y un desplazamiento horizontal fluido y sencillo, pero puede impedir el desplazamiento vertical fluido. Por ejemplo, el modo de gráficos IBM CGA utiliza un tamaño de palabra de un byte y cada palabra representa cuatro u ocho píxeles (en los modos de gráficos de resolución media o alta, respectivamente); el 6845 está configurado para una altura de carácter de 2 píxeles y el bit de dirección de fila RA0 se utiliza para el bit 13 de la dirección del búfer de trama. De esta manera, se pueden utilizar 200 píxeles verticales a pesar de la limitación de 128 líneas. El modo de gráficos en otros sistemas utilizaba un truco similar: en la tarjeta gráfica Hercules, los bits 12-13 de la dirección del búfer de cuadros provenían de los bits de dirección de fila RA0-RA1, lo que proporcionaba una resolución vertical de 348 píxeles a partir de 87 líneas de cuatro píxeles de alto. "; Amstrad CPC usó una altura de línea de 8 al igual que en el modo texto, asignando la dirección de fila RA0-RA2 a la dirección de memoria MA11-MA13 y la dirección de caracteres CA0-CA10 a la dirección de memoria MA0-MA10.

Estos modos de operación fueron posibles porque el 6845 no realizó ningún almacenamiento en búfer de datos de caracteres. En las décadas de 1970, 1980 y, en menor medida, 1990, la memoria era cara, especialmente la memoria rápida, y esto constituía una preocupación importante. En la década de 1970 y principios y mediados de la década de 1980, las densidades de los circuitos de los chips tampoco eran muy altas, y colocar un búfer de caracteres de 80 bytes o más en un chip como el 6845 podría haber ampliado la matriz del chip entre un 50 y un 100%, lo que a su vez habría hecho que es unas cuantas veces más caro debido al crecimiento exponencial de las tasas de defectos en los chips y la consiguiente disminución del rendimiento de la producción con el tamaño del troquel.

Por otro lado, el 6845 responsabiliza a sus usuarios de proporcionar suficiente ancho de banda de memoria para admitir la relectura de datos en cada línea. Si un carácter ocupa una "palabra" en el búfer de vídeo, una visualización de l líneas y c columnas de caracteres con s líneas de escaneo por carácter requiere l × c palabras de memoria para representar una pantalla completa de caracteres, pero requiere s veces esa cantidad de memoria. accesos para completar un ciclo de actualización: cada línea de palabras de caracteres se lee repetidamente s veces antes de leer la siguiente línea. Esto significa que las pantallas de caracteres que utilizan el 6845 requieren un alto ancho de banda de memoria del orden del ancho de banda requerido para pantallas de gráficos direccionables por todos los puntos de la misma resolución.

Un controlador de pantalla de video diferente que almacene internamente una línea completa de datos de caracteres puede evitar esta lectura repetida de cada línea de caracteres de la RAM del búfer de pantalla, reduciendo el ancho de banda de memoria requerido y permitiendo que se utilicen chips de memoria más lentos y menos costosos, más tiempo. para que una CPU del sistema acceda a la memoria, o una combinación de ambos. Se consideró que agregar un búfer de caracteres de este tipo al 6845 no era un enfoque rentable cuando se introdujo el chip; sin embargo, sólo unos años más tarde, el chip VIC-II utilizado en el Commodore 64 incluía dicho caché de líneas de caracteres.

Limitaciones

Usando el rango completo de direcciones RA0-RA4:CA0-CA13, el 6845 puede direccionar 2 14+5 = 524,288 palabras de memoria. Una palabra puede ser cualquier número de bits elegidos por el diseñador del sistema como ancho de memoria: aunque el número de direcciones únicas que el 6845 puede direccionar está limitado a 524,288 , la cantidad de memoria que el 6845 puede direccionar puede ser significativamente mayor de lo que podría ser se supone porque el 6845 no impone límite en el tamaño de cada ubicación de memoria a la que se dirige. Si el tamaño de la palabra es de un byte, como suele ser el caso, el 6845 puede direccionar 512 KiB . Si el tamaño de la palabra es de 32 bits, por ejemplo, para gráficos en color de 32 bits con un píxel por palabra, entonces el 6845 puede direccionar 2048 KiB; para palabras de 64 bits, puede direccionar el doble. Estos límites surgen de la combinación del 6845 y el diseño de la memoria externa conectada a él, no solo del 6845.

Búfers de fotogramas lineales

Como se describió anteriormente, el 6845 normalmente no puede proporcionar grandes buffers de cuadros lineales. Un diseño solo podría usar direccionamiento de caracteres de 14 bits y establecer el número de líneas por carácter en 1, pero estaría restringido a 128 líneas y 16 KB de memoria direccionable.

Diferencias con el 6545

Aunque son abrumadoramente compatibles, existen pequeñas variaciones entre el 6845 y el 6545.

La mayor diferencia es que el 6545 se puede configurar para que tenga acceso exclusivo al bus de direcciones para la memoria de video. Se incluyen dos registros adicionales para configurar cualquier dirección que la CPU desee leer y el chip alterna entre direcciones de salida para la generación de pantalla y la pantalla configurada para acceso a la CPU. [8]

Los cambios más pequeños son que la tecnología MOS y una variación del Rockwell 6545 carecen de soporte de salida entrelazada y todos los 6545 incluyen una desviación de dirección opcional, que retrasa la activación de la visualización durante un ciclo de caracteres si está configurada. Esta segunda característica se incorporó en variaciones posteriores del Motorola 6845. El 6545 se puede configurar para que funcione en modo lineal de 14 bits utilizando un bit de estado. En el 6845 lo mismo requiere ajustar la altura de los caracteres. [9]

Trucos

El 6845 lee la dirección inicial para su visualización una vez por cuadro . Sin embargo, si los valores de sincronización internos en el chip se modifican en el momento correcto, se puede preparar para una nueva trama sin finalizar la actual, creando una interrupción no continua en las direcciones generadas a mitad de la pantalla. Esto se usa comúnmente en demostraciones y, mucho más raramente, en juegos para proporcionar un área móvil de la pantalla (generalmente el campo de juego) y otra estática (generalmente una pantalla de estado).

El desplazamiento vertical parece restringido porque solo se puede configurar la dirección de inicio del carácter y la dirección de la fila siempre se pone a cero al inicio del cuadro, pero al ajustar los tiempos de los bordes es posible cambiar la posición en la que se muestra el framebuffer en la pantalla ráster para incrementos entre caracteres completos. . Al dibujar píxeles en blanco en los bordes de la pantalla, esto puede volverse invisible para el usuario, creando simplemente la ilusión de un desplazamiento vertical suave.

Ver también

Referencias

  1. ^ ab "El controlador de tubo de rayos catódicos (CRTC) 6845". www.tinyvga.com . Consultado el 18 de noviembre de 2022 .
  2. ^ "Diferencias de los modelos CRTC". www.6502.org . Consultado el 18 de noviembre de 2022 .
  3. ^ PC Mag, julio de 1983 , p. 435, en libros de Google
  4. ^ "Hojas de datos-hitachi:hd4650" (PDF) . Consultado el 22 de febrero de 2024 .
  5. ^ "Archivo de hojas de datos: hoja de datos MB89321AP de Fujitsu". Motor de búsqueda de archivo de fichas técnicas . Consultado el 22 de febrero de 2024 .
  6. ^ ab "El controlador de tubo de rayos catódicos (CRTC) 6845". www.tinyvga.com . Consultado el 18 de noviembre de 2022 .
  7. ^ "El controlador de tubo de rayos catódicos (CRTC) 6845". 28 de enero de 2006 . Consultado el 22 de febrero de 2024 .
  8. ^ "Diferencias de los modelos CRTC". www.6502.org . Consultado el 18 de noviembre de 2022 .
  9. ^ Fachat, André (2 de noviembre de 2013). "Diferencias de los modelos CRTC". 6502.org . Consultado el 22 de febrero de 2024 .

enlaces externos