Обсуждаем цифровые устройства...
Ответить

музыкальный сопроцессор AY8910

Вс авг 06, 2006 20:36:48

Конечно, вряд ли кто с ним работал (такой проц в компьютерах Spectrum на Z80). Но как всё-таки его завести и можно ли с помощью контроллера AVR заставить играть его музыку (из потока например на флешке)?

Вс авг 06, 2006 21:34:15

Не спец я в процессорах, но вроде как на флеше МР3 и тому подобные протоколы используются, а тот музыкальный сопроцессор был чем-то вроде таймера ВИ53, то есть программным делителем частоты. Но специализированным, с улучшенным качеством звука.

Пн авг 07, 2006 21:19:20

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

Чт окт 26, 2006 00:54:32

Давно это было...

Подкинуть можно и к AVR и к PIC а вот с потоками сложнее
в AY8910 через 2 регистра (управление и данные)доступно еще 16 регистров. в них и записываются коэффициенты деления, громкости каналов... "две шины данных" вроде 14 и 15 регистры(точно не помню :) см. начало). В общем если из ММС данные читать не проблема и есть время разбираться с AY - шансы есть.

Чт окт 26, 2006 18:33:28

SkyFox! думаю, ты тот, кто мне нужен! как с тобой связаться?

Вс мар 04, 2007 23:02:10

На эту тему есть вот такой сайт... http://www.ucapps.de/ там какраз и делают это..

Ср апр 04, 2007 20:15:06

Даташит на процессор вроде нашел, но никак не могу придумать, как сопрячь его с АВРкой, ищу готовое решение (хотя бы код), ибо писать там много придеца

Ср апр 04, 2007 21:12:11

WildCat писал(а):Даташит на процессор вроде нашел, но никак не могу придумать, как сопрячь его с АВРкой, ищу готовое решение (хотя бы код), ибо писать там много придеца

Наверное, нужен AVR с поддержкой внешнего ОЗУ. Не знаю, есть ли современные такие... Можно, конечно, и с обычными, но мороки будет немало с программой. А вот MCS-51 легко наверняка состыкуется с этим сопроцессором, т.к. поддерживает почти стандартный микропроцессорный интерфейс (шина адреса 16 бит, шина данных 8 бит). Как я понимаю, раз этот сопроцессор с Z80 стыкуется, состыкуется и с MCS-51 без проблем. Дайте мне схему сопроцессора (назначение выводов) - нарисую схему стыковки с MCS-51 :)

Пт апр 06, 2007 10:44:12

Схема сопряжения вроде бы и так есть, однако даташиты все равно выложил тут:
http://avr.easycoding.org/other/ay8910.rar
http://avr.easycoding.org/other/ay8910_2.rar

каждый примерно 500 кб.

Больше все же интересует прошивка МК, как скормить музыку сопроцессору?

Пт апр 06, 2007 16:20:03

Откуда музыку для этого сопроцессора брать? Самому писать? Если уж заморачиваться, то лучше ставить старый добрый ADLIB (OPL2, OPL3) на нем хоть при определенных извращениях можно обычные мидюки играть.
А вообще муть все это. Муть и старье. Современные микроконтроллеры вполне могут эмулировать такой процессор. Да и просто играть звук с SD карточки и лучше и проще.

А вообще вот
http://elm-chan.org/works/mxb/report_e.html

Пт апр 06, 2007 20:36:34

Этот проц - еще из компьютеров на Z80 (спектрумы), поэтому музыки для них существует очч много! У меня есть громаднейшие архивы, но слушать их приходится пока только эмулятором.
То, что описано на elm-chan, не что иное, как запись WAV звука. А в этом сопроцессоре используется синтез реального времени.
Кста, а как можно Adlib увязать с чипом? это тоже было бы неплохо - крутить миди на дверном звонке :)

Вт авг 14, 2007 15:50:34

В 6 номере журнала "Радио" за 1998 год есть схема дверного звонка на AY8910. В качестве МК там Z80 используется.

ftp://ftp.radio.ru/pub/arhiv/1998/06-98/42.pdf
ftp://ftp.radio.ru/pub/arhiv/1998/06-98/43.pdf

Прошивка там же: ftp://ftp.radio.ru/pub/1998/06/melody/melody.zip

Вт авг 14, 2007 22:24:49

на Z80 не катит, ибо там загрузчик писать сложный и схема сама непростая. Увязать AY с авр-кой думаю дело не такое хитрое.

Чт авг 16, 2007 09:02:33

WildCat писал(а):на Z80 не катит, ибо там загрузчик писать сложный и схема сама непростая. Увязать AY с авр-кой думаю дело не такое хитрое.


8) Я не говорю, что надо повторять эту схему один в один. Просто в качестве отправной точки можно использовать.
Я в свое время хотел ее собрать, но так руки и не дошли. Только детали насобирал. :)
К тому же писал раньше на ассемблере для Z80. Славное было время. :))

Вт авг 21, 2007 22:50:25

WildCat писал(а):... То, что описано на elm-chan, не что иное, как запись WAV звука. А в этом сопроцессоре используется синтез реального времени.

Нет, это не запись WAV-звука, а самый настоящий синтезатор-семплер (и именно в реальном времени). WAV-файл там используется как образец инструмента (голоса). Можно хоть мяукнуть в микрофон, а затем исполнять музыку этим звуком (лучше, наверное, по весне :)) ).
Очень интересный проект, вот только никак руки не дойдут интерфейс MIDI к нему прикрутить.

Ср авг 22, 2007 13:48:52

Ну может я не так выразился. Но я имею ввиду, что он все равно использует семп, в то время как я хочу полифонический синтез реального времени. Я просто думаю, как можно увязать AY8910+AVR+SDcard. Есть идеи по прошивке?

Ср авг 22, 2007 22:59:55

WildCat писал(а):... Но я имею ввиду, что он все равно использует семп, в то время как я хочу полифонический синтез реального времени. Я просто думаю, как можно увязать AY8910+AVR+SDcard. Есть идеи по прошивке?

Ну, так это и есть полифонический синтез в реальном времени! В базовой версии прошивки одновременно звучит 6 голосов. Chan пишет, что если использовать команды аппаратного умножения (используя Мегу, в Tiny их нет), то можно увеличить число одновременно звучащих голосов, или повысить качество звука.
Ну, а что касается упомянутой связки, то проблем здесь нет. Схема будет крайне простая. Нужно повесить сигналы AY на порты AVR, SD(MMC) соединить с SPI. Описания AY есть, SD тоже имеются. Далее, нужно будет только писать программу. В принципе, можно использовать схему подключения и от Спектрума, а AVR взять с возможностью работы с внешней памятью (Мега8515, Мега64, Мега128, Мега162). Тогда взяв исходники муз.редактора Спектрума, провести покомандный (а лучше всего алгоритмический) перевод на ассемблер AVR. Мне доводилось таким образом переводить довольно сложную математику с процессора КР580ИК80А на AT90S8515. Проблем не было, ибо ассемблер AVR очень гибкий и мощный. Кроме того, программа получилась заметно короче и сильно быстрее.
Хех, что-то меня в сторону понесло ...
В общем, можно и попробовать. AY у меня есть, Меги водятся, с MMC дружу...

Чт авг 23, 2007 02:20:28

Я в АСМе не силен, поэтому один явно не справлюсь. Осталось раздобыть AY... :)
Стукни в аську 251647191 или свою оставь тут или в ЛС.

Ср авг 29, 2007 04:06:48

dx40 писал(а):Если уж заморачиваться, то лучше ставить старый добрый ADLIB (OPL2, OPL3) на нем хоть при определенных извращениях можно обычные мидюки играть.


А как Вам такой такой чип - YMF721+YAC516 ? ;)
Там упомянутый OPL3 и General MIDI - прошитые в сам чип(!) высококачественные сэмплы (стерео/44100/16бит)!

Подключается на ура к AVR'кам и прочим контроллерам, у которых есть интерфейс внешней памяти!

dx40 писал(а):
А вообще муть все это. Муть и старье. Современные микроконтроллеры вполне могут эмулировать такой процессор.


Во-первых, называйте вещи своими именами :) Это -не процессор - а звуковой СОпроцессор (звуковой чип)

Во-вторых, дайте линк, где показано как сэмулировать хотя-бы OPL на техже ПИКах, АВРах...

dx40 писал(а):
Да и просто играть звук с SD карточки и лучше и проще.


угууу!!! а где памяти стока возьмёте, чтоб уместить качественную MP3-тему 5 минут???

Синтезаторная музыка по понятным причинам будет кушать меньше места.

Подробнее тут:
1) http://zx.pk.ru/showthread.php?t=5413
2) http://www.nedopc.org/forum/viewtopic.php?t=8822
3) http://www.nedopc.org/forum/viewtopic.php?t=8459

Ср сен 19, 2007 13:41:35

я все таки что то значит недопонимаю. Как работает тот миди-синтезатор? Я думал на него подаешь обычный GeneralMIDI, 3байтные команды, а он играет. А тут почему то как внешняя память...
Ответить