Регистр-защелка в качестве однобайтной памяти (CMS audio)
Moderator: Shaos
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
Регистр-защелка в качестве однобайтной памяти (CMS audio)
Здрасте,
Планирую частично повторить Creative Music System ( http://nerdlypleasures.blogspot.ru/2012 ... about.html ) Там определение карточки идет так - в любой порт начиная с 0x2X4 по 0x2XF записывается число, а затем из любого порта в этом диаппазоне считывается. Если равны - значит ок.
Дык вот, нужно бы что-то вроде 74HC373 или 74HC374 подключить, чтоб при записи защелкивать туда данные, при чтении - читать.
Можно двумя концами (D и одновременно Q) повесить такой регистр в D0-D7?
Планирую частично повторить Creative Music System ( http://nerdlypleasures.blogspot.ru/2012 ... about.html ) Там определение карточки идет так - в любой порт начиная с 0x2X4 по 0x2XF записывается число, а затем из любого порта в этом диаппазоне считывается. Если равны - значит ок.
Дык вот, нужно бы что-то вроде 74HC373 или 74HC374 подключить, чтоб при записи защелкивать туда данные, при чтении - читать.
Можно двумя концами (D и одновременно Q) повесить такой регистр в D0-D7?
Last edited by Tronix on 07 Nov 2015 23:56, edited 1 time in total.
-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
Не вижу ни одной причины, почему это может НЕ работать, если правильно задействовать LE и /OE (что должно быть крайне просто). Только при активации /OE от сигнала чтения нужно внимательно посмотреть, в какой момент читающее устройство защелкивает данные - чтобы не получилось, что данные защелкиваются по второму фронту сигнала чтения, по которому же выходы регистра переведутся в третье состояние...
P.S. Я вот как раз на прошлой неделе задумался насчет возможности написания минимального Sound Blaster'а на VHDL для своей XT, но пока не нашел внятного описания достаточной степени подробности (правда, пока особо и не искал)...
P.S. Я вот как раз на прошлой неделе задумался насчет возможности написания минимального Sound Blaster'а на VHDL для своей XT, но пока не нашел внятного описания достаточной степени подробности (правда, пока особо и не искал)...
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
-
- Senior
- Posts: 151
- Joined: 23 Feb 2015 15:37
- Location: OMS
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
Re: Регистр-защелка в качестве однобайтной памяти (CMS audio
В итоге, все получилось. Авто-определялка карты выглядит так:

Для определения наличия в системе Creative Music System с порта 0x2X4 читаться должно всегда 0x7f, а не то, что было ранее записано. Плюс запись идет только в два порта 0x2X6 и 0x2X7, а чтение с портов 0x2XA и 0x2XB.
Затем непосредственно допаял на плату две SAA1099 и усилитель:

Примеры музыки с этой карточки:

Потом попробовал немного модифицировать Miles Sound System Version 2, по примеру как это делали с картой Innovation SSI-2001 - это MIDI драйвера, которые использовались во многих играх того времени. В итоге заиграло музыку в сотнях игр. Вот например Warcraft II:
Схема: http://habrastorage.org/files/105/62d/b ... ddb193.png
Схема в формате DipTrace в прикрепленном архиве.
Треды на других форумах по теме создания:
http://www.vintage-computer.com/vcforum ... le-replica
http://www.vogons.org/viewtopic.php?f=24&t=43553
http://www.phantom.sannata.ru/forum/index.php?t=17534
Для определения наличия в системе Creative Music System с порта 0x2X4 читаться должно всегда 0x7f, а не то, что было ранее записано. Плюс запись идет только в два порта 0x2X6 и 0x2X7, а чтение с портов 0x2XA и 0x2XB.
Затем непосредственно допаял на плату две SAA1099 и усилитель:
Примеры музыки с этой карточки:
- Top of the World [CMS with KA2206]
- Monkey Island [CMS with KA2206]
- Polka (CMS replica)
- Sabre Dance (CMS replica)
Потом попробовал немного модифицировать Miles Sound System Version 2, по примеру как это делали с картой Innovation SSI-2001 - это MIDI драйвера, которые использовались во многих играх того времени. В итоге заиграло музыку в сотнях игр. Вот например Warcraft II:
Схема: http://habrastorage.org/files/105/62d/b ... ddb193.png
Схема в формате DipTrace в прикрепленном архиве.
Треды на других форумах по теме создания:
http://www.vintage-computer.com/vcforum ... le-replica
http://www.vogons.org/viewtopic.php?f=24&t=43553
http://www.phantom.sannata.ru/forum/index.php?t=17534
You do not have the required permissions to view the files attached to this post.
-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
Re: Регистр-защелка в качестве однобайтной памяти (CMS audio
Нагло спер из какого-то проекта код SAA1099 и адаптировал его для своей универсальной платы
Заработало, и вроде даже по звуку похоже. Хотя записи Tronix’а звучат намного чище - думаю, мне нужно немного повозиться с ЦАПом - пока я даже удивляюсь, что в принципе работает. Зато вещей типа фона 50 Гц и «цифровых» помех вроде особо нет.
Найду кабель, запишу, что получилось
P.S. Полька в исполнении Tronix’а используется в качестве эталона, на нее равняюсь
P.P.S. Sound Blaster предварительно адаптировал/скомпилировал, но он оказался офигительно большим - не лезет в мой Max10 ! Не уверен, что специально еще одну идентичную плату захочу паять...
Заработало, и вроде даже по звуку похоже. Хотя записи Tronix’а звучат намного чище - думаю, мне нужно немного повозиться с ЦАПом - пока я даже удивляюсь, что в принципе работает. Зато вещей типа фона 50 Гц и «цифровых» помех вроде особо нет.
Найду кабель, запишу, что получилось
P.S. Полька в исполнении Tronix’а используется в качестве эталона, на нее равняюсь

P.P.S. Sound Blaster предварительно адаптировал/скомпилировал, но он оказался офигительно большим - не лезет в мой Max10 ! Не уверен, что специально еще одну идентичную плату захочу паять...
-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
Re: Регистр-защелка в качестве однобайтной памяти (CMS audio
Это смешно, но я не могу придумать, как записать звук - не через микрофон же с динамиков...
-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
Re: Регистр-защелка в качестве однобайтной памяти (CMS audio
Посмотрел на схему Sam Coupe и возник академический интерес - какого фига они подключили nDTACK к питанию, да еще в таком месте, что помехи Iref создает ???
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
Re: Регистр-защелка в качестве однобайтной памяти (CMS audio
Я писал с помощью портативного MP3 плеера Cowon какой-то там. У него есть линейный вход. Были такие девайсы на границе перехода с кнопочных телефонов на смартфоны. А так даже не знаю - попробовать воткнуть в линейных вход компа/ноута? Подключают же иногда микрофоны к ноутам?newold86 wrote:Это смешно, но я не могу придумать, как записать звук - не через микрофон же с динамиков...
-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
Re: Регистр-защелка в качестве однобайтной памяти (CMS audio
К сожалению, дома стоит iMac, у которого линейного входа нет, а тащить ноутбук домой из офиса лень.
Решил пойти простым путем - у меня есть отладочная FPGA плата, на которой, в т.ч., установлен хороший кодек. Я уже освоил более-менее работу с ним, осталось разобраться, как этот аудиопоток записать в каком-то стандартном формате, и все !
Решил пойти простым путем - у меня есть отладочная FPGA плата, на которой, в т.ч., установлен хороший кодек. Я уже освоил более-менее работу с ним, осталось разобраться, как этот аудиопоток записать в каком-то стандартном формате, и все !

-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
Re: Регистр-защелка в качестве однобайтной памяти (CMS audio
newold86 wrote: пойти простым путем

-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
Re: Регистр-защелка в качестве однобайтной памяти (CMS audio
А что за кодек, кстати? Просто мы тож на работе экспериментировали с каким-то, щаз не вспомню, но могу посмотреть завтра. Самолично говнокодил под stm32, захватывал звук в wav, для пробы. Ну на микроконтроллере это просто все, дел на полчаса. А вот с FPGA не знаю. В max10 же нет встроенного МК, как в старших моделях бывает? На мой дилетанский взгляд не все так просто. Понятно, что стейт машин, но все равно, SPI кодек и ПЛИС - как то в моем мозгу плохо совмещаются. Но, верю, что победите. Ибо воистину круты.newold86 wrote: есть отладочная FPGA плата, на которой, в т.ч., установлен хороший кодек.
