Articulo de referencia

Motorola 6845

Controlador CRT Motorola 6845 El Motorola 6845 , o MC6845 , es un controlador de pantalla que se usó ampliamente en computadoras de 8 bits durante la década de 1980. [ 1 ] [ 2 ]...

Controlador CRT Motorola 6845

El Motorola 6845 , o MC6845 , es un controlador de pantalla que se usó ampliamente en computadoras de 8 bits durante la década de 1980. [ 1 ] [ 2 ] Originalmente destinado a 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 encontraba más comúnmente en máquinas basadas en el Zilog Z80 y el MOS 6502 .

El chip 6845 no constituye una solución de visualización completa por sí solo; su función principal es gestionar el acceso a la memoria de visualización y calcular la dirección de memoria de la siguiente porción a dibujar. Otros circuitos de la máquina utilizan la dirección proporcionada por el 6845 para obtener el patrón y dibujarlo. La implementación de este hardware depende completamente del diseñador y varía considerablemente entre las distintas máquinas. El 6845 está diseñado para pantallas de caracteres, pero también podría utilizarse para gráficos basados ​​en píxeles con una programación adecuada.

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 tarjetas adaptadoras gráficas antiguas para IBM PC , incluidas la MDA , la tarjeta gráfica Hercules (HGC), el adaptador gráfico a color (CGA) y la Plantronics Colorplus . [ 3 ] Su funcionalidad fue duplicada y ampliada mediante circuitos personalizados en los adaptadores de vídeo EGA y VGA para PC.

Diseño

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

Un clon común de este controlador CRT es el controlador UM6845E de United Microelectronics Corporation (UMC) . Durante los embargos tecnológicos de la Guerra Fría , el 6845 fue clonado en Bulgaria bajo la denominació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 de trama , pero no genera los píxeles propiamente dichos , aunque sí aporta información de cursor y borrado de vídeo a las señales de vídeo (intensidad) de los píxeles. Se utiliza para producir una sincronización horizontal y vertical con la temporización correcta y proporciona la dirección en memoria desde la que 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 a otros circuitos. Por este motivo, los sistemas que utilizan el 6845 pueden tener cantidades y valores de colores muy diferentes, o incluso no admitir color en absoluto. [ 6 ]

Se admiten modos de salida entrelazados y no entrelazados, así como un cursor de texto por hardware. La generación de sincronización incluye la generación de señales de borrado 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, al activarse, duplica y conserva una copia de la dirección de vídeo para que la CPU pueda leerla posteriormente. Esto resulta útil para lápices y pistolas de luz que funcionan 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 se apuntaba. Debido a esta característica, la mayoría de los adaptadores de vídeo para ordenador que utilizaban un 6845 incluían una interfaz para lápiz de luz, aunque normalmente se trataba de un conector interno en la propia placa, no en el exterior del ordenador, y generalmente no estaba documentado en el manual de usuario.

Dado que todos los aspectos de la sincronización de vídeo son programables, un solo procesador puede alternar entre frecuencias de 50 Hz y 60 Hz mediante software (o cualquier otra frecuencia de actualización dentro de los límites del chip). El 6845 puede utilizarse para controlar monitores o cualquier otra pantalla de trama.

Interiores

Diagrama de pines del MC6845.

El chip tiene un total de 18 registros de 8 bits que controlan todos los aspectos de la temporización del vídeo. Solo dos direcciones están expuestas a componentes externos: una para seleccionar qué registro interno se va a 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 carácter de 14 bits y una dirección de fila de 5 bits. La dirección de carácter aumenta linealmente. Cuando el chip activa la sincronización horizontal, incrementa la dirección de fila. Si la dirección de fila no coincide con el número de filas por carácter configurado mediante programación, la dirección de carácter se restablece al valor que tenía al inicio de la línea de exploración que acaba de completarse. De lo contrario, la dirección de fila se restablece a cero y la dirección de memoria continúa aumentando linealmente. Esto provoca que se vuelva a leer la misma secuencia de valores de caracteres de la memoria para cada línea de trama 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 se utiliza la dirección de carácter 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 pantalla 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, donde la referencia de carácter selecciona un conjunto de patrones de líneas de exploración que forman un carácter y la dirección de fila indexa ese conjunto para seleccionar una línea de exploración. En otras palabras, la dirección de la 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 microcontrolador 6845 dejaba al diseñador la libertad de enrutar los bits de la memoria y las direcciones de fila a la RAM de vídeo según su criterio. Por este motivo, la palabra a la que apunta 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 código de carácter y el segundo, un atributo de carácter . La placa utiliza el contenido de estos bytes, junto con la dirección de fila, para leer los datos de la fuente desde la ROM y generar los píxeles.

Se podría utilizar un enrutamiento diferente de los bits, omitiendo la ROM de caracteres, para emular un búfer de fotogramas. Debido a su limitación de 128 líneas, el 6845 no puede proporcionar búferes de fotogramas 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 de elementos que no son caracteres y un desplazamiento horizontal suave y fácil, pero puede impedir un desplazamiento vertical suave. Por ejemplo, el modo gráfico IBM CGA utiliza un tamaño de palabra de un byte, y cada palabra representa cuatro u ocho píxeles (en los modos 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 fotogramas. De esta manera, se pueden utilizar 200 píxeles verticales a pesar de la limitación de 128 líneas. En otros sistemas, el modo gráfico utilizaba un truco similar: en la tarjeta gráfica Hercules, los bits 12-13 de la dirección del búfer de fotogramas 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 altura; el Amstrad CPC utilizaba 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 carácter CA0-CA10 a la dirección de memoria MA0-MA10.

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

Por otro lado, el 6845 obligaba a sus usuarios a 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 pantalla de l líneas y c columnas de caracteres con s líneas de exploración por carácter requiere l × c palabras de memoria para representar una pantalla completa de caracteres, pero se necesitan s veces esa cantidad de accesos a la memoria 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 ancho de banda de memoria elevado, del orden del ancho de banda requerido para pantallas gráficas direccionables por todos los puntos de la misma resolución.

Un controlador de pantalla de vídeo diferente que almacena internamente una línea completa de datos de caracteres puede evitar la lectura repetida de cada línea de caracteres desde la memoria RAM del búfer de pantalla, reduciendo el ancho de banda de memoria necesario y permitiendo el uso de chips de memoria más lentos y económicos, más tiempo para que la CPU del sistema acceda a la memoria, o una combinación de ambos. Añadir dicho búfer de caracteres al 6845 se consideró poco rentable cuando se introdujo el chip; sin embargo, pocos años después, el chip VIC-II utilizado en el Commodore 64 sí incluyó una caché de línea de caracteres de este tipo.

Limitaciones

Utilizando el rango completo de direcciones RA0-RA4:CA0-CA13, el 6845 puede direccionar 2¹⁴ + 5 = 524 288 palabras de memoria. Una palabra puede ser cualquier número de bits elegido 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 puede direccionar puede ser significativamente mayor de lo que se podría suponer porque el 6845 no impone ningún límite al tamaño de cada ubicación de memoria que direcciona. Si el tamaño de palabra es de un byte, como suele ser el caso, el 6845 puede direccionar 512 KiB . Si el tamaño de 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. Estas limitaciones surgen de la combinación del 6845 y el diseño de la memoria externa conectada a él, no del 6845 por sí solo.

búferes de fotogramas lineales

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

Diferencias con respecto al 6545

Aunque son en su gran mayoría compatibles, existen algunas pequeñas variaciones entre los modelos 6845 y 6545.

La principal diferencia radica en que el 6545 puede configurarse para tener acceso exclusivo al bus de direcciones de la memoria de vídeo. Se incluyen dos registros adicionales para establecer cualquier dirección que la CPU desee leer, y el chip alterna entre la salida de direcciones para la generación de la pantalla y la pantalla configurada para el acceso de la CPU. [ 8 ]

Los cambios menores son que la tecnología MOS y una variante del Rockwell 6545 carecen de soporte para salida entrelazada, y todos los 6545 incluyen una desviación de dirección opcional, que retrasa la habilitación de la pantalla un ciclo de carácter si está configurada. Esta segunda característica se incorporó a variantes posteriores del Motorola 6845. El 6545 se puede configurar para funcionar en modo lineal de 14 bits mediante un bit de estado. En el 6845, lo mismo requiere ajustar la altura del carácter. [ 9 ]

Engaños

El chip 6845 lee la dirección de inicio de su pantalla una vez por fotograma . Sin embargo, si se modifican los valores de temporización internos del chip en el momento preciso, se puede lograr que se prepare para un nuevo fotograma sin finalizar el actual, creando una interrupción discontinua en las direcciones generadas a mitad de la pantalla. Esto se utiliza comúnmente en demos y, mucho menos en juegos, para proporcionar un área de la pantalla en movimiento (generalmente el campo de juego) y una estática (generalmente una pantalla de estado).

El desplazamiento vertical parece limitado porque solo se puede establecer la dirección de inicio del carácter y la dirección de la fila siempre se pone a cero al inicio del fotograma. Sin embargo, ajustando los tiempos de los bordes, es posible desplazar la posición donde se muestra el búfer de fotogramas en la pantalla rasterizada en incrementos entre caracteres completos. Al dibujar píxeles en blanco en los bordes de la pantalla, esto se puede hacer invisible para el usuario, creando solo la ilusión de un desplazamiento vertical suave.

Véase también

Referencias

  1. 1 2 "El controlador de tubo de rayos catódicos 6845 (CRTC)" . 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ág. 435, en Google Libros
  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 archivos de hojas de datos . Consultado el 22 de febrero de 2024 .
  6. 1 2 "El controlador de tubo de rayos catódicos 6845 (CRTC)" . www.tinyvga.com . Consultado el 18 de noviembre de 2022 .
  7. "El controlador de tubo de rayos catódicos 6845 (CRTC)" . 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é (2013-11-02). "Diferencias de los modelos CRTC" . 6502.org . Recuperado el 22-02-2024 .
  • Documentación HTML de los registros 6845
  • Archivos TIF comprimidos de las hojas de datos del 6845
  • Diferencias entre los modelos del CRTC
  • Nota de aplicación de Synertek 6545
  • Calculadora de temporización MC6845, calcula los valores de los registros.
  • Compendio Amstrad CPC CRTC 6845
  • Controlador CRT Rockwell R6545/R6545E