AY-3-8910 —
микросхема, являющаяся трёхканальным генератором звука (
PSG,
Programmable Sound Generator по терминологии производителя). Разработана фирмой
General Instrument (нынешний
Microchip), изначально предназначалась для использования с 16-разрядным процессором CP1610 (упрощенная версия
CP1600) той же фирмы и с 8-разрядными микроконтроллерами серии PIC1650. AY-3-8910 и её варианты широко использовались во многих
игровых автоматах,
игровых приставках и
домашних компьютерах. Помимо General Instrument, эта микросхема производилась по лицензии разработчика фирмами
Microchip (в то время — сторонний производитель кристаллов), Micrel (под оригинальным названием) и другими (под различными названиями), а также фирмой
Yamaha (под названием
YM2149F,
SSG —
Software-controlled Sound Generator по терминологии производителя).
Одно из первых применений AY-3-8910 относится к 1980 году, в игровом автомате Carnival от
Sega, а затем на платформе
MSX. Совместимые с AY-3-8910 микросхемы применяются и в настоящее время. Их производство прекращено, однако сохранился запас ранее произведённых микросхем, и они продолжают продаваться, например, для ремонта старых компьютерных систем. Существует
VHDL-реализация микросхемы, для применения в
FPGA-репликациях игровых автоматов и других ретро-компьютерных систем. Исходный VHDL-код свободно доступен в сети Интернет, в скомпилированном виде он занимает около 10 процентов объёма
Xilinx XC2S300 FPGA.
Считается, что AY-3-8910 имеет возможности генерации звука, аналогичные микросхеме
Texas Instruments SN76489 (создана и продавалась в тот же период времени). Однако, хотя их общие характеристики похожи, эти микросхемы имеют достаточно различные возможности. Творческий подход к использованию AY-3-8910 позволяет получать гораздо более сложный звук, чем у SN76489, благодаря наличию в AY-3-8910 так называемой
огибающей, которая может быть запрограммирована на нестандартную (звуковую) частоту.
AY-3-8910 имеет следующие возможности:
- Три программируемых генератора треугольных импульсов (тона), без возможности изменения скважности сигнала
- Один программируемый генератор псевдо шума с периодичностью 16 кб (128 кбит)
- Один генератор огибающей, производящей амплитудную модуляцию тона, шума, либо их смеси, а также звучащий сам по себе при выборе звуковой частоты
- Логический микшер (смешивает выход генераторов шума и огибающей с одним или несколькими каналами тона)
- Раздельные выходы звука трёх каналов тона (могут быть смешаны как в монофонический, так и в стереофонический сигнал)
- Два порта ввода-вывода общего назначения
- Программируемое усиление [2]>
AY-3-8910 представляет собой
конечный автомат, состояние которого задаётся с помощью шестнадцати 8-разрядных регистров. Они программируются через 8-разрядную внешнюю шину, использующуюся как для передачи данных, так и для задания адреса регистра — режим переключается сменой уровня на специальном выводе микросхемы. Типичный цикл передачи значения: шина переключается в режим задания адреса, передаётся адрес, шина переключается в режим передачи данных, передаются данные. Эта шина изначально была реализована на собственных процессорах GI, но ее пришлось воссоздавать с помощью логики или дополнительного интерфейсного адаптера, такого как MOS Technology 6522, однако чип использовался с гораздо более распространенной технологией MOS 6502 или Zilog Z80
Шесть регистров R0..R5 управляют частотой звука, генерируемой тремя основными каналами, с помощью задания значения делителя входной тактовой частоты. Делитель хранится в двух 8-разрядных регистрах для каждого из каналов, однако реальная разрядность счётчика-делителя — 12 разрядов, что даёт 4095 вариантов значения частоты звука (0 и 1 эквивалентны).
Регистр R6 задаёт 5-разрядное значение периода для псевдослучайного генератора шума.
Регистр R7 представляет собой логический микшер, содержащий по два бита для каждого канала, в зависимости от которых к каналам подмешивается сигнал генератора шума, либо генератор огибающей. Также в регистре R7 находятся два бита управления портами ввода-вывода общего назначения.
Три регистра R8..R10 управляют громкостью трёх основных каналов (16 уровней), а также имеют бит разрешения использования огибающей.
Три регистра R11..R13 управляют частотой (два регистра, 16-разрядное значение) и формой (один регистр, 16 вариантов) сигнала генератора
ADSR-подобной огибающей. В отличие от большинства систем, 8910 использует фиксированные значения времени для фаз
плато и
затухания, и повторяющуюся последовательность фаз
атаки и
спада. Для примера, генератор может постоянно повторять цикл атаки-спада, или наоборот, начиная с максимального уровня, постепенно понижая его, без фазы атаки.
Регистры R14 и R15 управляют состоянием входных-выходных линий портов ввода-вывода общего назначения.
Оригинальный кристалл 8910 имел три варианта исполнения.
AY-3-8910 имела два параллельных восьмиразрядных порта ввода-вывода общего назначения — A и B. Выполнена в 40-выводном корпусе (DIP40).
AY-3-8912 выполнена в 28-выводном корпусе (DIP28). Сигналы порта B не подводятся ко внешним выводам. Такое исполнение снижало стоимость микросхемы и её габариты, что сделало это исполнение наиболее популярным.
AY-3-8913 выполнена в 24-выводном корпусе (DIP24). Сигналы портов A и B не выведены наружу. По сравнению с 8912, габариты уменьшились несущественно, а функциональность снизилась, поэтому это исполнение получило наименьшее распространение.
Назначение выводов микросхемы
YM2149F соответствует AY-3-8910, за исключением вывода 26, который включает внутренний делитель входной частоты вдвое, если на него подан низкий уровень. Если этот вывод никуда не подключён, микросхема работает так же, как AY-3-8910. Помимо встроенного делителя входной частоты, YM2149 имеет отличие в разрядности
ЦАП огибающей — 5 бит вместо 4 (с логарифмической шкалой). Также для тона используются только нижние[color=#444444][/color][
источник не указан 2298 дней] (тихие) 4 бита. Это создаёт отличие в тембре звучания огибающей, делая его более ярким, однако позволяющим получить бо́льшую гибкость баса.
YMZ284-D выполнена в 16-выводном корпусе (DIP16).
YMZ284-M выполнена в 16-выводном корпусе (SOIC16). Функционально и программно полностью совместим с AY-3-8910, AY-3-8912 и AY-3-8913. Отличительная особенность — малое количество выводов, упрощенный интерфейс, моно аудиовыход.
Microchip
AY38910A выполнена в 40-выводном корпусе (DIP40). Полностью совместима с YAMAHA
YM2149f.
Microchip
AY8930. Совместим с Microchip
AY38910A. Может быть переключен в расширенный режим: не 4 а 8-битный тональный период, не 5 а 8-битный шумовой период, шум генерируется не жёстким LFSR-механизмом, а с дополнительными программируемыми AND и OR масками.
Микросхемы Winbond
WF19054, China
JFC95101,
WB5300 и Jile
KC89C72 также являются клонами AY-3-8910.