Автор: SuperMax 4.8.2020, 0:18
Cамарская схема, для частоты 1.75 Мгц, т.е. как на синклере-спектруме,
ныне подобная используется в новоделе БК11М с AY и одной микросхемой ОЗУ.
Автор: SuperMax 29.5.2022, 0:16
AY-3-8910 — https://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D0%B0, являющаяся трёхканальным генератором звука (PSG, Programmable Sound Generator по терминологии производителя). Разработана фирмой https://ru.wikipedia.org/wiki/General_Instrument (нынешний https://ru.wikipedia.org/wiki/Microchip), изначально предназначалась для использования с 16-разрядным процессором CP1610 (упрощенная версия https://ru.wikipedia.org/wiki/General_Instrument_CP1600) той же фирмы и с 8-разрядными микроконтроллерами серии PIC1650. AY-3-8910 и её варианты широко использовались во многих https://ru.wikipedia.org/wiki/%D0%98%D0%B3%D1%80%D0%BE%D0%B2%D0%BE%D0%B9_%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82_(%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%B8%D0%B3%D1%80%D1%8B), https://ru.wikipedia.org/wiki/%D0%98%D0%B3%D1%80%D0%BE%D0%B2%D0%B0%D1%8F_%D0%BF%D1%80%D0%B8%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B0 и https://ru.wikipedia.org/wiki/%D0%91%D1%8B%D1%82%D0%BE%D0%B2%D0%BE%D0%B9_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80. Помимо General Instrument, эта микросхема производилась по лицензии разработчика фирмами https://ru.wikipedia.org/wiki/Microchip (в то время — сторонний производитель кристаллов), Micrel (под оригинальным названием) и другими (под различными названиями), а также фирмой https://ru.wikipedia.org/wiki/Yamaha (под названием YM2149F, SSG — Software-controlled Sound Generator по терминологии производителя).
Одно из первых применений AY-3-8910 относится к 1980 году, в игровом автомате Carnival от https://ru.wikipedia.org/wiki/Sega, а затем на платформе https://ru.wikipedia.org/wiki/MSX. Совместимые с AY-3-8910 микросхемы применяются и в настоящее время. Их производство прекращено, однако сохранился запас ранее произведённых микросхем, и они продолжают продаваться, например, для ремонта старых компьютерных систем. Существует https://ru.wikipedia.org/wiki/VHDL-реализация микросхемы, для применения в https://ru.wikipedia.org/wiki/%D0%9F%D0%9B%D0%98%D0%A1-репликациях игровых автоматов и других ретро-компьютерных систем. Исходный VHDL-код свободно доступен в сети Интернет, в скомпилированном виде он занимает около 10 процентов объёма https://ru.wikipedia.org/wiki/Xilinx XC2S300 FPGA.
Считается, что AY-3-8910 имеет возможности генерации звука, аналогичные микросхеме https://ru.wikipedia.org/wiki/Texas_Instruments_SN76489 (создана и продавалась в тот же период времени). Однако, хотя их общие характеристики похожи, эти микросхемы имеют достаточно различные возможности. Творческий подход к использованию AY-3-8910 позволяет получать гораздо более сложный звук, чем у SN76489, благодаря наличию в AY-3-8910 так называемой https://ru.wikipedia.org/wiki/%D0%90%D0%BC%D0%BF%D0%BB%D0%B8%D1%82%D1%83%D0%B4%D0%BD%D0%B0%D1%8F_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%86%D0%B8%D1%8F, которая может быть запрограммирована на нестандартную (звуковую) частоту.
AY-3-8910 имеет следующие возможности:
- Три программируемых генератора треугольных импульсов (тона), без возможности изменения скважности сигнала
- Один программируемый генератор псевдо шума с периодичностью 16 кб (128 кбит)
- Один генератор огибающей, производящей амплитудную модуляцию тона, шума, либо их смеси, а также звучащий сам по себе при выборе звуковой частоты
- Логический микшер (смешивает выход генераторов шума и огибающей с одним или несколькими каналами тона)
- Раздельные выходы звука трёх каналов тона (могут быть смешаны как в монофонический, так и в стереофонический сигнал)
- Два порта ввода-вывода общего назначения
- Программируемое усиление https://ru.wikipedia.org/wiki/AY-3-8910#cite_note-2>
AY-3-8910 представляет собой https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D0%B5%D1%87%D0%BD%D1%8B%D0%B9_%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82, состояние которого задаётся с помощью шестнадцати 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 вариантов) сигнала генератора https://ru.wikipedia.org/wiki/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 имеет отличие в разрядности https://ru.wikipedia.org/wiki/%D0%A6%D0%90%D0%9F огибающей — 5 бит вместо 4 (с логарифмической шкалой). Также для тона используются только нижние[color=#444444][/color][
https://ru.wikipedia.org/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%A1%D1%81%D1%8B%D0%BB%D0%BA%D0%B8_%D0%BD%D0%B0_%D0%B8%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B8] (тихие) 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.
Автор: SuperMax 22.9.2022, 14:03
2AY реализованные варианты для БК
На момент написания этого текста существует три варианта подключения спаренных чипов AY-3-8910 (YM2149F) к БК-0011(0010).
Первый вариант. Маски разрядов 14. и 15. порта 177714.
Основан на переключении AY при помощи старших разрядов 14. и 15. порта 177714. Суть в следующем. Поскольку обмен с AY
происходит путем отправки пары "регистр AY (слово)- данные (байт)", то в момент отправки слова с номером регистра AY
один из битов 14. или 15. устанавливается, как маска, что позволяет подключить нужный AY. Например, нужно отправить
данные регистра 7 одного из AY в 177714:
Код
MOV #100007, R0 ;ПОМЕСТИЛИ НОМЕР РЕГИСТРА AY В МЛАДШИЙ БАЙТ
COM R0 ;ДАННЫЕ ДЛЯ ОТПРАВКИ В 177714 ИНВЕРСНЫЕ
MOV R0, @#177714;ОТПРАВИЛИ СФОРМИРОВАННОЕ СЛОВО И УСТАНОВИЛИ ДЛЯ ЗАПИСИ РЕГИСТР 7 ТРЕБУЕМОГО AY
MOV #100005, R0 ;ТЕПЕРЬ НУЖНО ОТПРАВИТЬ НАПРИМЕР ЗНАЧЕНИЕ 5 В УСТАНОВЛЕННЫЙ ВЫШЕ РЕГИСТР ПОДКЛЮЧЕННОГО AY
COMB R0 ;ИНВЕРСНЫЕ ДАННЫЕ ДЛЯ ОТПРАВКИ В 177714
MOVB R0, @#177714;ОТПРАВИЛИ БАЙТ И ЗАПИСАЛИ ЗНАЧЕНИЕ В УСТАНОВЛЕННЫЙ РЕГИСТР ПОДКЛЮЧЕННОГО AY
Для записи в регистр другого AY программный код будет аналогичным, только вместо MOV #100000,R0 следует указать MOV #40000,R0
т.е. установить 14.-й разряд.
Данный вариант подключения обратно совместим, т.к. все legacy ("старые") проигрыватели при отправке данных в 177714 ничего не
записывают в старший байт, и соответственно не трогают биты 14. и 15. Единственное "но" при этом оба AY "играют" параллельно
одно и то же. На слух это иногда звучит оригинально, но для истинных ценителей желательно предусмотреть возможность физического
отключения одного из AY.
Второй вариант. Стандарт TurboSound.
Плата TurboSound спроектирована и реализована так, что ее можно подключить на место существующего чипа AY-3-8910 (YM2149F)
и она будет работать как с legacy ("старыми") проигрывателями так и с новыми, которые поддерживают способ переключения двух AY.
Этот способ подключения очень прост. Что бы переключить AY потребуется отправка слова в порт 177714 с номером несуществующего
регистра AY. В стандарте TurboSound этими регистрами выбраны значения 255. и 254. Программно это выглядит достаточно просто.
Перед отправкой основных данных управления регистрами AY в порт 177714 пишется подключение нужного AY:
Код
MOV #255., R0 ;ДЛЯ ПОДКЛЮЧЕНИЯ AY#1 УСТАНОВИМ ЗНАЧЕНИЕ 255. (ИЛИ 254. ДЛЯ AY#2)
COM R0 ;ДАННЫЕ ДЛЯ ОТПРАВКИ В 177714 ИНВЕРСНЫЕ
MOV R0, @#177714;ОТПРАВИЛИ СЛОВО И УСТАНОВИЛИ НУЖНЫЙ AY
... ;ДАЛЕЕ ИДЕТ ОБЫЧНАЯ ОТПРАВКА ДАННЫХ ДЛЯ AY
Для legacy проигрывателей все остается по старому. Т.е. после RESET на БК, порт 177714 устанавливается в инверсную -1,
что соответствует значению 255. или подключению AY#1.
Третий вариант. Внешнее устройство AZBK.
В AZBK произошел полный отказ от использования 177714 для 2хAY и были реализованы новые порты для управления 2xAY.
(legacy AY 177714 конечно поддерживается)
Это:
Код
177172 - для указания номера регистра AY#1
177173 - для записи данных указанного в 177172 номера регистра AY#1
177174 - для указания номера регистра AY#2
177175 - для записи данных указанного в 177174 номера регистра AY#2
Все порты байтовые! Кроме этого, для управления AY теперь не требуется инверсия передаваемых данных, а порты доступны как для записи, так и для чтения.
Запись данных в нужные AY выглядит просто:
Код
MOVB #2, @#177172;УСТАНОВИЛИ РЕГИСТР 2 AY#1
MOVB #124, @#177173;ОТПРАВИЛИ ДАННЫЕ В УКАЗАННЫЙ ВЫШЕ РЕГИСТР AY#1
MOVB #5, @#177174;УСТАНОВИЛИ РЕГИСТР 5 AY#2
MOVB #30, @#177175;ОТПРАВИЛИ ДАННЫЕ В УКАЗАННЫЙ ВЫШЕ РЕГИСТР AY#2
Все указанные реализации были проверены с помощью написанного мной универсального проигрывателя, который поддерживает все
варианты:
https://disk.yandex.ru/d/Rv26trQndwKexw
2022, Владимир 'KUVO' Кутяков / CSI
2AY_universal_player_by_KUVO.zip ( 5.89 мегабайт )
Кол-во скачиваний: 226