AY-3-8910

Материал из SpeccyWiki
Перейти к: навигация, поиск
AY-3-8910 производства GI, 1979 год и AY-3-8910A производства Microchip, 1989 год
AY-3-8912 производства GI, 1987 год
YM2149F, 1986 год
WF19054 производства Winbond

AY-3-8910 — микросхема трёхголосного программируемого звукогенератора (PSG, Programmable Sound Generator по терминологии производителя). Разработана компанией General Instrument, изначально предназначалась для использования с 16-разрядным процессором CP1610 той же фирмы и с 8-разрядными микроконтроллерами серии PIC1650. AY-3-8910 и её варианты широко использовались во многих игровых автоматах, игровых приставках и домашних компьютерах.

Точная дата разработки и выпуска микросхемы неизвестна. Предположительно она была разработана для игровой приставки Mattel Intellivision, разработка которой началась в 1978 и закончилась в 1979 году. Другие микросхемы, разработанные для приставки, имеют систему обозначений XX-3-89xx с близкими индексами (8900 видеоконтроллер, 8915 кодер NTSC). В ранней, досерийной документации на аппаратуру приставки присутствуют даташиты на эти микросхемы, в том числе даташит на AY-3-8910. Однако, описание отличается от реально выпущенного 8910 — регистры имеют другую нумерацию и некоторые выводы имеют другое назначение[1]. В самой приставке была использована микросхема с обозначением AY-3-8914, которая соответствует этому даташиту.

Наиболее ранний из известных экземпляров микросхемы 8910 датирован 46 неделей 1979 года и выпущен на Тайване. Совместимые с AY-3-8910 микросхемы применяются и в настоящее время. Их производство прекращено, однако сохранился запас ранее произведённых микросхем, и они продолжают продаваться, например, для ремонта старых компьютерных систем. Существует VHDL-реализация микросхемы, для применения в FPGA-репликах игровых автоматов и других ретро-компьютерных систем. Исходный VHDL-код свободно доступен в сети Интернет, в скомпилированном виде он занимает около 10 процентов объёма Xilinx XC2S300 FPGA.

Помимо General Instrument, микросхема производилась по лицензии компании-разработчика фирмами Microchip, Micrel (под оригинальным названием) и другими (под различными названиями). Компания Yamaha выпускала полностью программно и аппаратно совместимый аналог микросхемы с некоторыми улучшениями, под названием YM2149F (SSGSoftware-controlled Sound Generator по терминологии производителя), который также интегрировался в другие микросхемы компании. Наиболее ранний из известных экземпляров микросхемы YM2149F датирован 1986 годом.

Считается, что AY-3-8910 имеет возможности генерации звука, аналогичные микросхеме Texas Instruments SN76489 (создана и продавалась в тот же период времени). Однако, хотя их общие характеристики похожи, эти микросхемы имеют достаточно различные возможности. Творческий подход к использованию AY-3-8910 позволяет получать гораздо более сложный звук, чем у SN76489.

Известность в России

В нашей стране микросхема AY-3-8910 получила известность благодаря её применению в компьютере ZX Spectrum 128, и, соответственно, в его многочисленных отечественных клонах. За время популярности ZX Spectrum в нашей стране существовало более тысячи людей, писавших музыку для AY-3-8910. Ими написано около 30 000 композиций. Эта микросхема создала среди отечественных компьютерных музыкантов начала 90-х годов свою субкультуру, аналогичную созданной микросхемой MOS Technology SID компьютера Commodore 64 в других странах. В настоящее время осталось некоторое количество энтузиастов, продолжающих писать музыку для AY-3-8910. В рамках различных фестивалей компьютерного искусства, таких, как Chaos Constructions и DiHalt, присутствуют и соревнования по написанию музыки для этой микросхемы.

Во всех оригинальных моделях ZX Spectrum 128 (включая модели Amstrad) использовался вариант микросхемы AY-3-8912A. В отечественных клонах большее распространение получил AY-3-8910, вероятно по причине возможности использования YM2149 в качестве замены без переделки платы. Тем не менее, в некоторых клонах использовался AY-3-8912 (Scorpion ZS256+ Turbo), либо делалась разводка под оба варианта.

Радиолюбители подключали AY-3-8910 ко многим отечественным бытовым компьютерам, в частности, к Вектор-06Ц и к БК-0011.

Аналоги AY-3-8910 отсутствуют среди отечественных микросхем. Поэтому в части ранних отечественных клонов ZX Spectrum она отсутствовала (в частности, в первой версии Пентагон 128). Существуют упоминания о схемах аналога на дискретной логике, не сохранившихся до настоящего времени — так, в журнале Радиолюбитель 2/94 упоминается о большом количестве микросхем (до 42) в подобных схемах.

В России AY-3-8910 очень часто называют "музыкальным (со)процессором". Это определение ошибочно, так как микросхема не выполняет программу и не производит обработку данных, представляя собой набор счётчиков с переменным коэффициентом деления. Достоверно неизвестно, когда и где возникло такое определение. В оригинальной документации на микросхему и на ZX Spectrum 128 микросхема называется "программируемым генератором звука". В настоящее время за рубежом определение "сопроцессор" встречается крайне редко, в основном в материалах, переведённых с русского языка. В части источников используется определение "музыкальный (со)процессор Yamaha", что указывает на бОльшее распространение YM2149F в России. Существует версия, что определение "сопроцессор" возникло по причине одного из ранних способов подключения его к отечественным клонам ZX Spectrum: AY устанавливался на небольшую плату, вставляемую в панельку вместо основного процессора, а Z80 вставлялся в панельку на этой плате рядом с AY.

Развитие сцены AY-музыки на ZX Spectrum

С момента доступности AY-3-8910 на ZX Spectrum (1985-1986 годы в качестве штатного устройства, ранее в составе дополнительных устройств) долгое время музыка создавалась только авторами игровых программ. Часто она являлась переносом композиций с других платформ. Не существовало единого инструментария для создания музыки.

Хотя музыкальный редактор общего назначения с поддержкой AY-3-8910, Mark Time Music Box, появился в 1986 году, ограниченность его возможностей и отсутствие мотивации у авторов отложили появление сцены AY-музыки на несколько лет.

Развитие демосцены на ZX Spectrum в начале 1990-х годов и появление музыкального редактора Sound Tracker в 1991 году (вероятно, непосредственно связанное с развитием демосцены) привели к формированию музыкальной сцены. Так как популярность ZX Spectrum на Западе к этому времени существенно снизилась, основной вклад в развитие музыкальной сцены внесли страны восточной Европы - сначала Польша, впоследствии Россия и Чехия.

Из за особенностей интерфейса музыкального редактора, расчитанного на людей с техническим складом ума, первые авторы AY-музыки в основном не являлись композиторами. Значительная часть музыки, созданная с начала по середину 1990-х представляла собой кавер-версии популярной музыки. В частности, было написано много кавер-версий диско и синтипоп-групп (например, Laserdance, Koto). В частности, в ранних демо для ZX Spectrum - Lyra II, Shock, Satisfaction и других - большая часть музыки является ремиксами хитов диско середины 1970-х - середины 1980-х годов. Хотя демо обычно содержали подробную информацию об авторах и самом демо, в них не было никаких упоминаний о неоригинальности музыки. Возможно, авторы предполагали общеизвестность популярных на тот момент композиций и не считали нужным указывать эту информацию. Также возможно, что неоригинальная музыка использовалась намеренно, чтобы обеспечить эффект узнаваемости.

С 1991 года сцена начала быстро развиваться. Практически ежегодно появлялись новые, более совершенные музыкальные редакторы - Advanced Sound Master (1992), SQ-Tracker (1993) и другие. Важным этапом стало появление в 1995 году первой версии редактора Pro Tracker, третья версия которого впоследствии стала наиболее популярным среди всех редакторов.

В 2002 году был выпущен музыкальный кросс-редактор Vortex Tracker II, позволяющий создавать музыку для AY-3-8910 на платформе PC/Windows и обладающий возможностями, аналогичными Pro Tracker 3.

Со временем музыка, создаваемая с помощью музыкальных синтезаторов устаревших компьютеров и игровых консолей, выделилась в отдельный музыкальный жанр, называемый 8bit. Энтузиасты жанра выпускают музыкальные альбомы, издавая их на тематических виртуальных лейблах в виде аудиофайлов, а также распространяя небольшие тиражи CD. Начиная с 2000 годов было создано несколько альбомов музыки, созданной на ZX Spectrum с AY-3-8910. Наибольшее количество альбомов и синглов было выпущено интернациональной группой AY Riders, объединяющей участников из Польши, Чехии, Англии и России.

Сцена AY-музыки существовала и на других платформах - прежде всего Atari ST и Amstrad CPC, и, в существенно меньшей степени, MSX. Несмотря на то, что все платформы используют одинаковые возможности AY-3-8910, из за других технических различий и особенностей музыкальных редакторов, а также из за особенностей развития сцены, музыка, созданная на разных платформах заметно отличается.

Возможности

AY-3-8910 имеет следующие возможности:

  • Три программируемых генератора прямоугольных импульсов (генераторы тона)
  • Один генератор амплитудной огибающей
  • Один программируемый генератор белого шума
  • Логический микшер (смешивает выход генераторов шума и огибающей с одним или несколькими каналами тона)
  • Программируемое усиление
  • Раздельные выходы звука трёх каналов тона (могут быть смешаны как в монофонический, так и в псевдо-стереофонический сигнал)
  • Два порта ввода-вывода общего назначения

Таким образом, микросхема воспроизводить одновременно три независимых голоса. Каждый из голосов может представлять собой простой тон (прямоугольные импульсы), псевдослучайный шум, огибающую, либо комбинацию тона, шума и огибающей.

Огибающая предназначена для изменения амплитуды каналов во времени, позволяя задавать плавное нарастание или спад громкости выбранных каналов за определённое время. Микросхема имеет только один генератор огибающей, что ограничивает возможности его применения по прямому назначению. Однако, при использовании режимов с повторением нарастания/спада с небольшими периодами, огибающая позволяет генерировать сигнал треугольной или пилообразной формы на любом из каналов. При этом отсутствует возможность управления громкостью тона, генерируемого огибающей. При использовании в одном канале одновременно огибающей в качестве генератора тона и обычного тона (прямоугольных импульсов) возможна генерация более сложных тембров, представляющих собой треугольный или пилообразный сигнал, маскируемый прямоугольными импульсами. Использование огибающей подобным образом является главной отличительной особенностью звука, генерируемого микросхемой.

ПО для ZX Spectrum, выпущенное до начала 1990-х годов, не использует огибающую в качестве генератора тона. Её использование для этих целей стало возможным только с появлением редактора Sound Tracker.

В оригинальных моделях ZX Spectrum все три выхода звука соединялись вместе, таким образом звук был монофоническим. В русских клонах был реализован псевдостереофонический звук — два канала подключались к левому и правому выходам, а третий разделялся между ними с меньшей громкостью. Единого стандарта, какой канал является левым, правым и средним, а также на уровень громкости среднего канала, не существовало. Это создавало проблемы с проигрыванием музыки для одной схемы микширования на другой. Так как каналы имеют одинаковые возможности, программно можно переназначить их в любом порядке, что решает проблему разных схем распределения каналов, но не уровней громкости. Однако, выбор распределения каналов редко встречался в программах.

Устройство

AY-3-8910 представляет собой конечный автомат, состояние которого задаётся с помощью шестнадцати 8-разрядных регистров. Они программируются через 8-разрядную внешнюю шину, использующуюся как для передачи данных, так и для задания адреса регистра — режим переключается сменой уровня на специальном выводе микросхемы. Типичный цикл передачи значения: шина переключается в режим задания адреса, передаётся адрес, шина переключается в режим передачи данных, передаются данные.

Шесть регистров R0..R5 управляют частотой звука, генерируемой тремя основными каналами, с помощью задания значения делителя входной тактовой частоты. Делитель хранится в двух 8-разрядных регистрах для каждого из каналов, однако реальная разрядность счётчика-делителя — 12 разрядов, что даёт 4096 вариантов значения частоты звука.

Регистр 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, габариты уменьшились несущественно, а функциональность снизилась, поэтому это исполнение получило наименьшее распространение.

Ранние микросхемы, выпущенные GI, имеют надпись Sound и варианты с и без буквы A в обозначении, тогда как микросхемы, выпущенные компанией Microchip всегда имеют обозначение с буквой A (AY-3-8910A). Все микросхемы, выпущенные компанией Yamaha, имеют обозначение с буквой F в конце.

Совместимые микросхемы

AY-3-8914, AY-3-8916, AY-3-8917 — предположительно первоначальный вариант микросхемы, называвшийся в документации AY-3-8910, но впоследствии выпущенный под другим индексом. Отличается другим порядком регистров и назначением некоторых выводов. Также присутствует дополнительный бит в регистрах громкости — вместо одного бита, включающего или выключающего огибающую, как в 8910, есть два бита, позволяющие выбрать один из трёх уровней громкости огибающей (полный, /2 и /4) или выключить её. Эти микросхемы являются близким аналогом, но не могут устанавливаться вместо 8910-8913. Они использовались в Mattel Intellvision (8914 и 8916) и в модуле расширения для неё (8917).

AY8930 (EPSG, Enhanced PSG) - улучшенная версия AY-3-8910. Имеет два режима - совместимого с оригиналом и расширенный. В расширенном режиме имеет 16-разрядные делители тона (вместо 12), 8-разрядный период шума (вместо 5), управление скважностью и другие возможности.

YM2149 и YM2149F - наиболее распространённый клон AY-3-8910, производившийся компанией Yamaha. Имеет индекс, попадающий в диапазон индексов микросхем FM-синтеза, производившихся этой компанией. Назначение выводов микросхемы соответствует оригиналу, за исключением вывода 26, который включает внутренний делитель входной частоты вдвое, если на него подан низкий уровень. Если этот вывод никуда не подключён, микросхема работает так же, как AY-3-8910. Помимо встроенного делителя входной частоты, YM2149 имеет отличие в разрядности ЦАП огибающей — 5 бит вместо 4 (с логарифмической шкалой). Это создаёт небольшое отличие в тембре звучания, делая его немного более резким, однако позволяющим получить бо́льшую гибкость баса.

YMZ284 - выполнена в 16-выводном корпусе (SOIC16). Функционально и программно совместима с YM2149, однако не имеет внешних портов ввода-вывода, а регистр 15 имеет другое назначение. Отличительные особенности — малое количество выводов, упрощенный интерфейс, один общий выход звука для всех каналов. Выпускалась в двух версиях - YMZ284-D в корпусе DIP16, YMZ284-M в корпусе SOIC16.

YM3439 - КМОП-версия YM2149. Выпущена примерно в 1988 году. Выпускалась в двух версиях, в корпусах DIP40 и QFP44. Применялась в Atari Falcon 030.

WF19054 — версия AY-3-8910, выпускавшаяся Winbond.

Творческое использование

Хотя микросхема не имеет специальных возможностей для проигрывания оцифрованных звуков, оно может быть реализовано программно, с помощью использования ЦАП одного или нескольких каналов при запрещённой логическим микшером генерации тона и шума. Такой подход требует большего использования времени процессора, чем при использовании микросхем, специально созданных для воспроизведения цифрового звука (таких, как чип Paula в компьютере Commodore Amiga). Но, тем не менее, он широко использовался на таких платформах, как компьютер Atari ST, для воспроизведения цифровой музыки, и на Amstrad CPC для воспроизведения коротких звуковых эффектов в некоторых играх.

Используя ту же технику, но не отключая генерацию тона, возможно расширить возможности генерации различных тембров. В этом случае изменение выходного уровня ЦАП канала используется для модуляции основного тона другой частотой. Таким образом можно получить, например, три независимых амплитудных огибающих любой формы, или тембры, напоминающее звучание микросхемы SID. Для эффективной реализации этого способа требуется наличие в системе возможности прерывания работы процессора с достаточно высокой частотой — например, на компьютере Atari SТ, где эта техника использовалась наиболее активно, применялось прерывание по началу строки растра. На системах, где таких аппаратных возможностей нет, для реализации подобного эффекта потребуется почти всё время процессора. Существует демонстрационная программа Digisid, реализующая эффект на компьютере ZX Spectrum, который не имеет аппаратных возможностей, подобных Atari ST.

В 2006 году два разработчика программ для компьютера MSX создали продвинутый энкодер, преобразующий wave-файлы в наиболее оптимальные данные для каналов AY, используя алгоритм поиска Viterbi. Это позволило воспроизводить wave-файл с частотой дискретизации 44100 Герц на компьютере MSX двадцатитрёхлетней давности, с соотношением сигнал-шум выше чем у 8-разрядного ЦАП. Алгоритм поиска Viterbi очень ресурсоёмок, он не мог применяться в 80-х годах, так как в то время не существовало достаточно мощных компьютеров для выполнения такого преобразования.

Некоторые люди, в особенности пользователи компьютера ZX Spectrum, используют микросхему AY для создания музыки, в том числе и для концертных выступлений (см. раздел ссылок).

Список систем

Неполный список систем, в которых использовалась 8910 или её варианты. Не включает различные игровые автоматы, количество которых превышает тысячу.

Игровые приставки:

Домашние компьютеры. Многие из них, в особенности MSX, имеют множество моделей от разных производителей:

Музыкальные редакторы

Для компьютеров, в которых применялась микросхема AY-3-8910, было создано большое количество музыкальных редакторов, использующих её возможности генерации звука. Большинство из них имело интерфейс трекера. Часто они имели большое внешнее сходство с первыми трекерами, появившимися на компьютере Amiga — например, The Ultimate Soundtracker (1987), NoiseTracker (1989), ProTracker (1991). Также, в качестве названий подобных программ использовались похожие или полностью совпадающие названия. По этой причине названия разных программ от разных авторов на разных платформах, и даже в пределах одной платформы, также часто совпадали.

Ниже приводится неполный список музыкальных редакторов для AY-3-8910. Он не включает редакторы, ориентированные на применение сэмплов (редакторы так называемой digital музыки). Некоторые из редакторов выходили только в демонстрационных версиях. В список включены только те демонстрационные версии, которые имели основную функциональность, то есть позволяли редактировать музыку.

  • Amstrad CPC:
    • Noise-Tracker (1989)
    • Soundtrakker (1992)
    • Soundtrakker 128 (1993)
    • Advanced Music Creator (1996)
    • STarKos (2004)
    • Advanced Music System, The
    • BooTracker
    • ChaRleyTraCker
  • Atari ST/STE:
    • Medi (1988)
    • Edsynth (1989)
    • Music maker (1989)
    • Blipp Blopper (1991)
    • CLS Soundchip Editor (1991)
    • Musicmon (1991)
    • Chipmon II (1992)
    • S.O.T.E. Tracker (1993)
    • Xlr8 (1993)
    • YM Tracker (1993)
    • Sid Sound Designer (1994)
    • Magic Synth (1997)
    • Sound Chip Synth (1999)
    • maxYMiser DMA (2005)
    • Triplex 2k4 (2005)
    • MusicMon (2006)
    • Insignia Trisound Sequencer
    • Megatizer
    • Music-Editor
    • MV2000
    • PSG Tracker
    • Xbios Music Construction
  • IBM PC (кросс-редакторы с эмуляцией AY):
  • MSX:
    • PSG Tracker (1992)
    • Karoshi’s Caruso (2005)
    • TwoFun (2008)

В настоящее время на ZX Spectrum наиболее популярными редакторами являются Pro Tracker 3 (в России) и Sound Tracker (за рубежом), а также Vortex Tracker II.

Помимо музыкальных редакторов существовали более узкоспециализированные программы, предназначенные для создания звуковых эффектов (например, для использования в играх).

  • IBM PC (кросс-редакторы с эмуляцией AY):
    • AYFX Editor (2006)
  • MSX:
    • Sound Effect Editor (1991)

Дальнейшее развитие

Фирма Yamaha использовала ядро YM2149 в целом семействе музыкальных микросхем, которые использовались в мобильных телефонах, видеоиграх, и т. п. Например, микросхема YM2203 (также известна как OPN), помимо собственного синтезатора на основе частотной модуляции (FM), содержит полноценный аналог YM2149, полностью совместимый по номерам и назначению регистров (однако, следующая в серии микросхема, YM2612, содержит только FM-часть 2203).

Во многих компьютерах стандарта MSX2 и в некоторых компьютерах MSX1 используются специализированные БИС (MSX Engine) разных фирм. Это, например, микросхемы Yamaha S1985, S3527, Toshiba T7775, T7937, T9769. Помимо большой части схемы компьютера, они также содержат в своём составе полноценный аналог YM2149.

В наборе из двух БМК К1515ХМ1-6006 и К1515ХМ1-6008, предназначенных для построения отечественного клона ZX Spectrum 128, одна из микросхем содержала аналог AY-3-8912.

Фирма Philips разработала микросхему Philips SAA 1099 (применялась в компьютере SAM Coupé и в первых звуковых картах от Creative Labs для IBM PC). Её возможности аналогичны двум AY-3-8910 (6 каналов, 2 огибающих, 2 генератора шума), с некоторыми дополнениями. Однако, программная и аппаратная совместимость отсутствует.

В конце 2003 года российская компания «Русь Телеком» разработала микроконтроллер R100-XP с системой команд MCS51, для применения в автоматических определителях номера (АОН), производимых этой компанией. Помимо своих основных возможностей, он содержит полный аналог AY-3-8910, но с монофоническим выходом.

Эмуляция

Помимо реализации эмуляции микросхемы в эмуляторах различных систем, использующих её, существуют отдельные эмуляторы микросхемы. Они позволяют воспроизводить музыку, написанную для различных систем и сохранённую в их специальных форматах, на обычном PC. Как и в случае с другими подобными микросхемами звукогенераторов, программная эмуляция имеет некоторые отличия в звуке по сравнению с реальной микросхемой, причём возможно даже отличие в лучшую сторону (более чистое звучание, без искажений, делающее звук несколько непохожим на оригинальный). Если в случае с другими, более сложными микросхемами, эти различия возникают из-за неточности эмуляции логики работы микросхем, то в случае с AY-3-8910 и совместимыми микросхемами все тонкости и различия их работы полностью изучены, и основным источником различий становится проблема передискретизации (ресэмплинга) сигнала (микросхема позволяет генерировать звук с частотами до нескольких сотен килогерц).

В 2009-2010 годах было создано несколько программно-аппаратных эмуляторов на микроконтроллерах с высокой производительностью. Большая часть из них использует микроконтроллеры ATMega, также есть реализация на Cygnal 8051. Часть схем просто воспроизводит файлы некоторых форматов из памяти, другие схемы также эмулируют аппаратный интерфейс AY и могут использоваться в качестве замены реальной микросхемы.

Источники

  1. GI Micro Programmable TV Games, стр. 7-100

Ссылки