Articulo de referencia

Instrumento General AY-3-8910

AY-3-8910 dado El AY-3-8910 es un generador de sonido programable (PSG) de tres voces diseñado por General Instrument (GI) en 1978, inicialmente para su uso con su microordenado...

AY-3-8910 dado

El AY-3-8910 es un generador de sonido programable (PSG) de tres voces diseñado por General Instrument (GI) en 1978, inicialmente para su uso con su microordenador CP1610 de 16 bits o con uno de los microordenadores de 8 bits de la serie PIC 1650. Cuenta con tres canales de sonido con una amplia respuesta en frecuencia que pueden reproducir casi todas las notas de un piano de 88 teclas. Estos canales pueden modificarse mediante un generador de envolvente compartido y un canal de ruido aleatorio que permite añadir efectos de sonido.

El AY-3-8910 y sus variantes se utilizaron en muchos videojuegos arcade —el Gyruss de Konami contiene cinco [ 1 ] — y máquinas de pinball Bally, además de ser el chip de sonido en las consolas de videojuegos Intellivision y Vectrex , y en los ordenadores domésticos Amstrad CPC , Oric-1 , Colour Genie , Elektor TV Games Computer , MSX , Tiki 100 y posteriormente ZX Spectrum . También se utilizó en las tarjetas de sonido Mockingboard y Cricket para el Apple II y en el cartucho Speech/Sound [ 2 ] para el TRS-80 Color Computer .

Tras la escisión de Microchip Technology por parte de GI en 1987, el chip se vendió durante algunos años bajo la marca Microchip. También fue fabricado bajo licencia por Yamaha (con un pin divisor de reloj seleccionable y una tabla de envolvente de volumen de doble resolución y doble velocidad) como el YM2149F ; el Atari ST utiliza esta versión. Los chips ya no se fabrican, pero aún se producen clones funcionalmente idénticos. Existe una descripción VHDL no oficial basada en el YM2149 disponible gratuitamente para su uso con FPGA . [ 3 ]

Descripción

sistema de autobuses

El AY-3-8910 es una máquina de estados finitos simple . Su estado , compuesto por dieciséis registros de 8 bits , se programa a través de un bus de 8 bits , que se utiliza tanto para el direccionamiento como para la transmisión de datos. La lectura o escritura requiere dos ciclos. Por ejemplo, un ciclo de configuración típico pone el bus en "modo de direccionamiento" y escribe el valor en el bus para seleccionar un registro, y luego cambia al "modo de datos" para establecer el contenido de dicho registro. Este bus se implementó de forma nativa en las CPU de GI, pero fue necesario recrearlo mediante lógica de interconexión o con la ayuda de un adaptador de interfaz adicional, como el MOS Technology 6522, cuando el chip se utilizaba con las CPU mucho más comunes MOS Technology 6502 o Zilog Z80 .

Solo hay 16 registros, que requieren únicamente cuatro bits del valor de 8 bits indicado en el "modo de dirección". En la mayoría de los casos, los cuatro bits más significativos (MSB) del valor deben configurarse al valor predeterminado de fábrica "0000" al seleccionar un registro. Configurar incorrectamente los bits MSB provoca que el chip ignore el cambio de registro. GI aceptó pedidos de versiones personalizadas que respondían solo a valores MSB distintos de "0000". Estas permiten que el mismo procesador controle más de un chip AY en el mismo bus (por ejemplo, TurboSound para ZX Spectrum), utilizando los valores MSB como selector de chip . Existen muchos chips nuevos de stock antiguo (NOS) en el mercado secundario con los bits MSB configurados de fábrica a un valor distinto de "0000". Este valor distinto de "0000" puede causar importantes problemas de desarrollo para diseñadores y técnicos de reparación. Es necesario escribir software para identificar el valor correcto de los bits MSB en cualquier chip. Además, es necesario modificar el software o añadir hardware para permitir que estos chips MSB configurados de fábrica se utilicen en lugar de los chips '0000' predeterminados.

Tonos

El sistema tiene tres canales de salida, A, B y C, que se producen mezclando varias entradas posibles. [ 4 ]

Seis registros, R0 a R5, controlan los tonos producidos en los tres generadores de tono primarios. La frecuencia a generar se almacena en dos registros de 8 bits dedicados a cada canal: los registros de ajuste fino y grueso. El canal A tenía el control fino en R0 y el grueso en R1, el canal B usaba R2 y R3, etc. Los cuatro bits superiores de los registros gruesos no se utilizan, dejando doce bits para producir valores de 1 a 4095 (el 0 se trata como un 1 por razones técnicas). El valor de 12 bits se utiliza como divisor de frecuencia en el reloj de entrada, produciendo un tono de salida en el canal correspondiente. [ 4 ]

El 8910 puede funcionar con una señal de reloj de entrada de 4  MHz, o de 6  MHz con el YM2149F. Esto le permite generar tonos con frecuencias fundamentales de hasta 125  kHz, muy por encima del rango de audición humana y dentro del rango ultrasónico . La existencia de valores ultrasónicos es consecuencia del diseño del divisor de frecuencia; para obtener una resolución adecuada en frecuencias audibles, es necesario que la frecuencia de reloj general (y, por lo tanto, la salida en divisores pequeños) sea considerablemente superior al rango audible. Solo los divisores inferiores a 5 proporcionan frecuencias de salida totalmente ultrasónicas. Se pueden definir frecuencias equivalentes a la octava superior de un teclado de piano con una precisión razonable respecto a los valores de nota aceptados para la escala temperada, con  una precisión cercana a 1 Hz en el rango de A440 e incluso más precisa en tonos más graves. A pesar de la alta frecuencia máxima, la posibilidad de dividir esa cifra entre 4096 implica que la frecuencia de salida más baja directamente definible es de 30,6  Hz, aproximadamente igual a B0, la tercera nota más baja de un piano normal de 88 teclas, y prácticamente subsónica para los sistemas de altavoces convencionales. En esencia, el chip es capaz de producir un sonido musical decente en todos los tonos razonables que se encuentran en la mayoría de las composiciones.

En cambio, el circuito integrado SN76489 de Texas Instruments, su competidor , solo cuenta con 10 bits de precisión en sus divisores de frecuencia. Al tener la misma frecuencia base de 125  kHz, en teoría debería carecer de las dos octavas más bajas del 8910. Para solucionar esto, el SN76489 reproduce sus generadores de tono una octava más baja que su frecuencia calculada, lo que resulta en una octava menos en los graves y una octava menos en los agudos en comparación con el 8910.

Efectos

R6 es el control de ruido. Los cinco bits inferiores se utilizan para almacenar un valor entre 0 y 31, que define el período del ruido, y los tres bits superiores no se utilizan. El reloj de entrada se divide por 16 y luego por el valor en R6 para producir una frecuencia de ruido. [ 4 ] R7 controla el mezclador. Los bits 0, 1 y 2 controlan si el generador de tono correspondiente se alimenta a la salida para A, B y C respectivamente. Los bits 3, 4 y 5 controlan si el generador de ruido se emite en los canales A, B y C respectivamente. Cualquier canal dado puede emitir un tono puro, ruido puro o una mezcla de ambos. Nótese que estos seis bits están invertidos; la salida se habilita cuando el bit correspondiente es cero. Los bits 6 y 7 controlan si los dos puertos de E/S, IOA e IOB, están configurados para entrada (0) o salida (1). [ 4 ]

R10, R11 y R12 controlan el volumen de los tres canales. Los cuatro bits inferiores producen un valor de 0 (apagado) a 15 (alto). El bit 4 controla el "modo de amplitud" o M, que hace que el volumen de salida se module mediante el generador de envolvente compartido, ignorando el volumen de 4 bits establecido. Los tres bits superiores no se utilizan. [ 4 ]

R13 y R14 controlan los tiempos del controlador de envolvente , fino y grueso respectivamente. El reloj de entrada se divide primero por 16 (o por 8 en el YM2149, porque el generador de envolvente tiene el doble de pasos y, por lo tanto, necesita el doble de relojes para completar un ciclo completo), y luego por el valor de 16 bits. El registro final, R15, controla la forma de la envolvente, usando los cuatro bits inferiores. La envolvente es simple en comparación con diseños posteriores que incluían un controlador ADSR completo ; solo controla si la envolvente comienza en volumen cero y aumenta hasta el volumen máximo (15), o comienza en el volumen máximo y disminuye. Esto se controla con el bit 2, ataque; si se establece en 1, el sistema aumenta gradualmente, y el tiempo de rampa en sí se controla con R13 y 14. Los otros tres bits controlan lo que sucede después de este primer ciclo. Si el bit 3, continuar, está activado, el volumen se reiniciará y volverá a aumentar gradualmente, repitiéndose. Si el bit 1, alternar, está activado, las rampas alternarán hacia arriba y hacia abajo, produciendo un patrón triangular. Finalmente, el bit 0, en estado de retención, anula los demás bits, lo que provoca que el volumen se bloquee en 0 o 15 después del primer ciclo. [ 4 ]

Dado que solo existe una envolvente compartida entre los tres canales, muchos programadores la ignoraron y programaron sus propios controladores de envolvente por software (controlando el volumen directamente). Un truco conocido consistía en ejecutar la envolvente de hardware con tiempos de ciclo superiores a 20  Hz y usarla para producir sonidos de bajo con forma de onda de sierra o triangular.

Variantes

Chip AY-3-8912, encapsulado DIP de 28 pines con tornillo de carcasa de ordenador para escala.
Chip YM2149F, encapsulado DIP de 40 pines

El chip de silicio 8910 se vendía en tres formatos diferentes.

El AY-3-8910 dispone de dos puertos de E/S paralelos de propósito general de 8 bits , A y B, que están disponibles en el encapsulado de 40 pines del mismo nombre.

El AY-3-8912 es el mismo chip en un encapsulado de 28 pines, con el puerto paralelo B simplemente sin conectar a ningún pin. Los encapsulados más pequeños ahorran costes y espacio en la placa. El 8912 fue la variante más utilizada.

El AY-3-8913 es el mismo chip en un encapsulado de 24 pines, con ambos puertos paralelos desconectados. Algunos usuarios pensaron que la pequeña reducción en el número de pines con respecto al 8912 lo hacía menos interesante; sin embargo, los registros de E/S rara vez eran utilizados por los diseñadores, por lo que GI creó esta alternativa de 24 pines completamente funcional y la lanzó aproximadamente 6 meses después de los chips 8910 y 8912. El objetivo era reducir la complejidad para el diseñador y disminuir el espacio ocupado en la PCB. El miembro de French Touch, fenarinarsa, investigó y documentó un problema con el chip AY-3-8913. [ 5 ]

El chip Yamaha YM2149F SSG (Generador de Sonido Controlado por Software) tiene la misma distribución de pines que el AY-3-8910, con la pequeña diferencia de que el pin 26 podría reducir a la mitad la frecuencia del reloj maestro si se conecta a un nivel bajo. Si se deja sin conectar, como ocurriría al reemplazar un chip AY-3-8910, una resistencia interna mantiene el pin en un nivel alto, por lo que la frecuencia del reloj maestro no se reduce a la mitad.

El Yamaha YM3439 es una versión CMOS del YM2149F. Está disponible en dos encapsulados: DIP de 40 pines (YM3439-D) y QFP de 44 pines (YM3439-F).

El Yamaha YMZ294 es una de las variantes más recientes del YM2149, pero en un encapsulado de 18 pines. No tiene puertos paralelos y solo una salida de audio con los tres canales mezclados.

El Yamaha YMZ284 es una variante aún más pequeña del YM2149, en un encapsulado de 16 pines. Básicamente es un YMZ294 sin el  pin de selección de 4/6 MHz ni el pin /TEST.

El Yamaha YMZ285 tiene un encapsulado de 28 pines e incorpora un módulo PCM. No dispone de puertos paralelos y cuenta con dos salidas de audio: una con los tres canales SSG mezclados y otra con la salida PCM.

El chip Toshiba T7766A es compatible, tiene la misma distribución de pines que el AY-3-8910 y se utilizó en algunos modelos de MSX .

Los chips Winbond WF19054 , JFC 95101 y File KC89C72 tienen la misma configuración de pines que el AY-3-8910 y son 100% compatibles con el software. Todavía se fabrican y se utilizan en muchas máquinas tragamonedas .

El AY-3-8914 tiene la misma distribución de pines y viene en el mismo encapsulado de 40 pines que el AY-3-8910 , excepto que los registros de control del chip están reorganizados y la "entrada esperada" en el pin A9 puede ser diferente. Se utilizó en la consola Intellivision y el ordenador Aquarius de Mattel .

El AY-3-8930 , también conocido como AY8930 , es una versión mejorada, pero mayormente compatible con versiones anteriores, del AY-3-8910 . La función del pin BC2 se modifica (se ignora y se asume que es 0 independientemente del estado del pin); por lo demás, la distribución de pines es la misma que la del AY-3-8910 . Esta variante del chip añade varias mejoras importantes, como envolventes separadas para los tres canales (en lugar de una envolvente compartida), ciclos de trabajo variables, mayor precisión en bits para la frecuencia de nota, el volumen y la frecuencia de la envolvente, y un generador de ruido mucho más configurable. Se utilizó en la tarjeta de sonido Covox Sound Master para el IBM-PC. Muy pocos juegos aprovecharon sus funcionalidades más allá de las características normales del AY-3-8910 . Es posible que este chip solo haya sido fabricado por Microchip Technology .

Yamaha ha utilizado el núcleo YM2149 para producir toda una familia de chips musicales empleados en teléfonos móviles, ordenadores domésticos, sistemas de videojuegos domésticos y arcade, etc. La serie OPN de chips de síntesis FM de 4 operadores de Yamaha destaca por este enfoque, al incluir el núcleo YM2149 como parte del propio chip. El YM2203 (también conocido como OPN) fue el primer chip de la serie en incluir el núcleo del YM2149, con los generadores de envolvente del YM2149 ubicados directamente en el núcleo. Sus sucesores, mucho más avanzados: el YM2608 (también conocido como OPNA) y el YM2610 (también conocido como OPNB), también incluían el núcleo YM2149 y conservaban todas las características anteriores, ampliándolas considerablemente. El YM2610, entre otros cambios menores, excluía los puertos de E/S. El YM2612 (también conocido como OPN2), que a su vez es una versión mejorada del YM2203, eliminó por completo la parte del YM2149, entre otros cambios, incluyendo la eliminación de todos los canales de sonido y puertos de E/S del YM2149, pero conservó los generadores de envolvente del YM2149 ubicados en el núcleo del chip.

Uso

videojuegos arcade

Ferretería para el hogar

Pinball

  • Flash Gordon
  • Frontera
  • Hotdoggin'
  • Místico
  • Agitador de suelo Nitro
  • Rolling Stones (Bally)
  • Skateball
  • Manía de la bola de plata
  • Invasores del espacio
  • Vikingo
  • Xenón
  • Jeutel Compañía francesa  : Papillon, Le King, Juegos Olímpicos

Véase también

  • VGM : un formato de archivo de audio para múltiples plataformas de videojuegos.
  • Texas Instruments SN76477 : un diseño similar que también se utilizó, pero no fue tan popular como el AY-3-8910.

Referencias

  1. "Gyruss" . Historia de las máquinas recreativas .
  2. "Manual de referencia técnica de los cartuchos de voz/sonido de Radio Shack" . archive.org .
  3. "YM-2149 / AY-3-8910 Núcleo FPGA del generador de sonido complejo" . Github .
  4. 1 2 3 4 5 6 Manual 1978 , pág. 5.21. Error de sfn: no hay destino: CITEREFManual1978 ( ayuda )
  5. "Algo anda muy mal con el AY-3-8913" . www.fenarinarsa.com . 19 de mayo de 2024. Consultado el 16 de diciembre de 2024 .
  • AY-3-8914, AY-3-8916 y AY-3-8917
  • Catálogo de datos de microelectrónica de General Instruments, 1978
  • ST SOUND, Escuchando el chip AY-3-8910
  • Página de inicio de AY-3-8910, AY-3-8912 y YM2149 (emulador de chip AY para Win32, gran archivo de música AY
  • Blog del Dr. Stack van Hay (en alemán) Imagen microscópica de gran tamaño del chip AY-3-8910 y los bloques funcionales
  • Implementación en FPGA
  • Fundación para la Preservación de la Música de Videojuegos AY-3-8910
  • AY-3-8910 vs YM2149F
  • Ballas, JA, Houston, J. Evaluación de un chip generador de sonido: El AY 3-8910. Behavior Research Methods, Instruments, & Computers 16 , 282–284 (1984).