Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MAXIOL _ БК 0010 / 11 / 11M _ Подключение музыкального процессора к БК0011М

Автор: SuperMax 4.8.2020, 0:17

Схема 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-bk0011m-modifikatsiya-ay-dram128-turbo-74f198.html



Автор: SuperMax 4.8.2020, 0:18

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



Автор: SuperMax 27.10.2021, 21:25

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

Прикрепленное изображение


Автор: SuperMax 9.11.2021, 13:49

Подборка даташитов

Прикрепленный файл  AY_3_8910_AY_3_8912_AY_3_8913.pdf ( 535.45 килобайт ) Кол-во скачиваний: 464

Прикрепленный файл  AY_3_8910_AY_3_8912_AY_3_8913_.pdf ( 532.37 килобайт ) Кол-во скачиваний: 468

Прикрепленный файл  ym2149.pdf ( 6.08 мегабайт ) Кол-во скачиваний: 491

Прикрепленный файл  AY_3_8910_AY_3_8912.pdf ( 720.51 килобайт ) Кол-во скачиваний: 464

Прикрепленный файл  ym2149_.pdf ( 769.14 килобайт ) Кол-во скачиваний: 486

Прикрепленный файл  home.udmnet.ru.rar ( 64.28 килобайт ) Кол-во скачиваний: 467

Прикрепленный файл  generalinstrument_ay_3_8910.pdf ( 905.99 килобайт ) Кол-во скачиваний: 539

Прикрепленный файл  AY_3_8910_AY_3_8912_.pdf ( 445.16 килобайт ) Кол-во скачиваний: 467

Прикрепленный файл  Data_Manual_GI_AY_3_8910_Feb_1979.pdf ( 1.9 мегабайт ) Кол-во скачиваний: 516


Автор: 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, SSGSoftware-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 имеет следующие возможности:

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 мегабайт ) Кол-во скачиваний: 177


Русская версия Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)