Значок ресурса

AY-3-8912 Emulator — современная замена легендарным звуковым чипам AY/YM

AY-3-8912-Emulator-v1.3_Photo_V2.jpg


AY-3-8912 Emulator — это плата-заменитель для звуковых чипов AY-3-8910, AY-3-8912 и YM2149F, выполненная в форм-факторе DIP-28. Проект построен на базе микроконтроллера и эмулирует поведение оригинальных программируемых звуковых генераторов (PSG) на уровне регистров. Это позволяет заменить редкие, дорогие и снятые с производства микросхемы современным и доступным аналогом, полностью совместимым по выводам.

Программируемый звуковой генератор (PSG) — историческая справка:

Чип AY-3-8910 был разработан компанией General Instrument в конце 1970-х годов и стал одним из самых распространённых звуковых чипов 8-битной эпохи, появившись во множестве домашних компьютеров и аркадных систем. Чип предоставляет три независимых тоновых канала с программируемой частотой и амплитудой, а также генератор шума, который может подмешиваться в каждый канал. Генерация звука управляется через внутренние регистры, что делало AY-3-8910 простым в сопряжении с микропроцессорами того времени. Его характерное звучание сильно повлияло на стиль чиптюн-музыки ранних компьютерных и видеоигровых систем.

YM2149F — это полностью совместимая версия AY-3-8910, производившаяся компанией Yamaha. Она имеет ту же внутреннюю архитектуру и программную модель, но отличается улучшенными электрическими характеристиками и немного иным поведением аналогового выхода, особенно на низких уровнях громкости. Благодаря своей стабильности и более чистому выходу, YM2149F широко использовался в европейских компьютерных системах. С программной точки зрения оба чипа взаимозаменяемы и управляются идентичным кодом на уровне регистров.

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

Внутренне AY-3-8910 и YM2149F используют регистровую архитектуру с 16 программируемыми регистрами, доступ к которым осуществляется по 8-битной шине данных. Звук генерируется на основе трёх независимых генераторов прямоугольных импульсов с программируемыми делителями частоты и общего генератора псевдослучайного шума с настраиваемым периодом. Регистр микшера управляет вкладом тона и шума для каждого канала, в то время как поканальное управление амплитудой позволяет использовать либо фиксированные уровни громкости, либо модуляцию, управляемую огибающей.

Генератор огибающей обеспечивает аппаратное изменение амплитуды, используя программируемый период и набор предопределённых форм огибающей, что снижает необходимость в постоянных обновлениях со стороны процессора. Выходные уровни формируются внутренними ЦАП на резисторных матрицах, которые по своей природе нелинейны; вместе с аналоговыми выходными каскадами это придаёт характерное звучание данным чипам. Хотя YM2149F остаётся программно совместимым с AY-3-8910, незначительные аппаратные различия, такие как опциональный внутренний делитель тактовой частоты и немного отличающаяся разрешающая способность по амплитуде, могут приводить к едва уловимым, но заметным на слух различиям в звуке.

НазваниеОписаниеGitHubYandex.Диск
Даташиты (datasheet)Документация на микроконтроллер и сопутствующие компоненты.Ссылка на GitHubСсылка на Яндекс.Диск
Прошивка (firmware)Исходный код прошивки для MCU (Assembly).Ссылка на GitHubСсылка на Яндекс.Диск
Аппаратная часть (hardware)Файлы печатной платы и схемы эмулятора (включая изображение платы).Ссылка на GitHubСсылка на Яндекс.Диск
Скачать все файлыВсе файлы находятся в одном архивеСсылка на GitHubСсылка на Яндекс.Диск

Аппаратная часть (Hardware):
  • Форм-фактор DIP-28, полностью совместим по выводам с семейством AY/YM.
  • Эмуляция PSG на базе микроконтроллера (MCU), реализованная в прошивке.
  • PWM-аудиовыходы с аналоговой низкочастотной фильтрацией.
  • Внешняя EEPROM для хранения конфигурации.
  • Интерфейс ICSP для прошивки и отладки.
Прошивка (Firmware):

Эмулятор стремится воспроизвести оригинальное поведение AY/YM на уровне регистров и звука. Из-за архитектурных различий между реализацией на MCU и оригинальными чипами, некоторые временные и аналоговые характеристики могут отличаться.

Таблица совместимости функций (FW 1.0):

ФункцияFW 1.0Комментарий
Специфичное поведение AY-3-8910/AY-3-8912⚠️Частично реализовано в AY-сборке прошивки
Специфичное поведение YM2149F⚠️Частично реализовано в YM-сборке прошивки
Шина данных/адреса 7-0 (DA7-DA0, выводы 28-21)✅
Bus Control 1 (BC1, вывод 20)✅Обрабатывается аппаратным прерыванием (INT0)
Bus Control 2 (BC2, вывод 19)❗Не будет реализован (не требуется)
Bus Direction (BDIR, вывод 18)✅Обрабатывается аппаратным прерыванием (INT1)
Address 8 (A8, вывод 17)❌Запланировано к реализации
Вход сброса (#RESET, вывод 16)✅
Вход тактовой частоты (CLOCK, вывод 15)⚠️Частота задаётся в конфигурационном файле EEPROM
Биты порта ввода-вывода 7-0 (IOA7-IOA0, выводы 7-14)❗Не будет реализован (аппаратное ограничение)
Аналоговые каналы A, B, C (выводы 5, 4, 1)✅Три PWM с низкочастотными фильтрами
Параллельный ввод/вывод: запись данных в регистр✅
Параллельный ввод/вывод: чтение данных из регистра✅
Последовательный ввод/вывод: запись данных в регистр✅UART, 57600 бод (см. протокол)
Последовательный ввод/вывод: чтение данных из регистра❌Запланировано к реализации
Конфигурирование прошивки через J1, J2❌Запланировано к реализации
Внутрисхемное программирование (ICSP)✅Через выводы ICSP (или через выводы PIO, начиная с HW 1.5)

Известные ограничения:
  • Порт IOA (выводы 7–14) не поддерживается из-за аппаратных ограничений.
  • Внешний вход CLOCK не используется; тактовая частота конфигурируется через EEPROM.
  • Сигнал BC2 не реализован, так как он не требуется для целевых систем.
Запланированные функции:
  • Поддержка линии адреса A8.
  • Последовательное чтение данных.
  • Конфигурирование прошивки через джамперы (J1/J2).
Коммуникация:
  • Параллельный интерфейс — следует поведению оригинального даташита AY-3-8910 / AY-3-8912. Поддерживает адресацию регистров и операции чтения/записи данных с использованием управляющих сигналов BC1 и BDIR. Подробное описание: docs/parallel_io.md.
  • Последовательный интерфейс (UART) — альтернативный интерфейс для доступа к регистрам и отладки. UART, 57600 бод, 8 бит данных, без контроля чётности, 1 стоп-бит (8N1). Поддерживается запись в регистры PSG, чтение запланировано. Описание протокола: docs/serial_protocol.md.
Полезные ссылки проекта:
  • Репозиторий проекта — GitHub
  • AY-3-8912-Emulator-v1.3_Photo_V2.jpg
    AY-3-8912-Emulator-v1.3_Photo_V2.jpg
    29.5 КБ · Просмотры: 92
Автор
Verter_bot
Просмотры
22
Первый выпуск
Последнее обновление

Оценки

0.00 звезд(ы) 0 оценок
Назад
Вверх