Помощь - Поиск - Пользователи - Календарь
Полная версия: Подключение музыкального процессора к БК0011М
MAXIOL > Техника > DEC hardware / software > БК 0010 / 11 / 11M
SuperMax
Схема RDC (Денис Сотченко) она же московская, частота работы чипа 1.5МГц.
с делителем на распространнёной микросхеме ТМ2.

Используются:
AY-3-8910 AY-3-8912 Yamaha YM2149F
оригинал
Нажмите для просмотра прикрепленного файла
документация
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла

перерисовка
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла

Вообще в идеале частота должна быть 1/2 от поднесущей NTSC (3 579 545,5)
те 1 789 772,75

Однако есть проблема - красивого подключения не получится - будет куча соплей:Нажмите для просмотра прикрепленного файла


Ссылки
https://zx-pk.ru/threads/27705-podklyuchenie-muzykalnogo-protsessora-k-bk0011m-na-primere-ym2149f.html
https://zx-pk.ru/threads/20933-plata-bk0011...rbo-74f198.html


SuperMax
Cамарская схема, для частоты 1.75 Мгц, т.е. как на синклере-спектруме,
ныне подобная используется в новоделе БК11М с AY и одной микросхемой ОЗУ.


SuperMax
Правильная схема

Нажмите для просмотра прикрепленного файла

SuperMax
AY-3-8910микросхема, являющаяся трёхканальным генератором звука (PSG, Programmable Sound Generator по терминологии производителя). Разработана фирмой General Instrument (нынешний Microchip), изначально предназначалась для использования с 16-разрядным процессором CP1610 (упрощенная версия CP1600) той же фирмы и с 8-разрядными микроконтроллерами серии PIC1650. AY-3-8910 и её варианты широко использовались во многих игровых автоматах, игровых приставках и домашних компьютерах. Помимо General Instrument, эта микросхема производилась по лицензии разработчика фирмами Microchip (в то время — сторонний производитель кристаллов), Micrel (под оригинальным названием) и другими (под различными названиями), а также фирмой Yamaha (под названием YM2149F, SSGSoftware-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.

SuperMax
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

Нажмите для просмотра прикрепленного файла
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.