Регистр-защелка в качестве однобайтной памяти (CMS audio)

Печатные платы, программируемая логика, разработка и изготовление аппаратуры

Moderator: Shaos

Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Регистр-защелка в качестве однобайтной памяти (CMS audio)

Post by Tronix »

Здрасте,

Планирую частично повторить 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.
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Post by newold86 »

Не вижу ни одной причины, почему это может НЕ работать, если правильно задействовать LE и /OE (что должно быть крайне просто). Только при активации /OE от сигнала чтения нужно внимательно посмотреть, в какой момент читающее устройство защелкивает данные - чтобы не получилось, что данные защелкиваются по второму фронту сигнала чтения, по которому же выходы регистра переведутся в третье состояние...

P.S. Я вот как раз на прошлой неделе задумался насчет возможности написания минимального Sound Blaster'а на VHDL для своей XT, но пока не нашел внятного описания достаточной степени подробности (правда, пока особо и не искал)...
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Post by Tronix »

То есть лучше все-таки 74hc373 (555ир22), чтоб не заморачиваться со спадом в ир23?

Что будет, если будет конфликт на шине данных? (мать срет данные в данные и одновременно ир23 срет в мать данные на данные) Буфера погорят или ничего страшного?
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Post by Tronix »

Вылезли подробности - не все так просто. К примеру, с порта 0x2X4 читаться должно всегда 0x7f, а не то, что было ранее записано. Плюс запись идет только в два порта 0x2X6 и 0x2X7, а чтение с портов 0x2XA и 0x2XB. То-ли дешифратор городить многоступенчатый, то ли забить на автодетект.[/code]
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Post by newold86 »

Серьезный вопрос - а что, автодетект - самое сложное ? Просто я, например, даже не представляю, как подойти к самой генерации звука (в смысле, какие функции должны быть у платы, и как их реализовывать), а вот описанный автодетект, думаю, минут за 15 на VHDL бы сделал...
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Post by Tronix »

Дык я то не хочу эмулировать, а хочу две настоящие Phillips SAA-1099 на ISA цепануть и все, готов Creative Music System. Это ж не саундбрастер какой-нибудь там.
Odin P. Morgan
Senior
Posts: 151
Joined: 23 Feb 2015 15:37
Location: OMS

Post by Odin P. Morgan »

newold86 wrote:а вот описанный автодетект, думаю, минут за 15 на VHDL бы сделал...
Здравствуй! Скажи, а у тебя есть проектик какой-нить копии звуковой карты для вентильной матрицы? Просто уже серьёзно подумываю взять недорогой FPGA без отладочной и на его основе забодяжить PCMCIA звуковую.
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: Регистр-защелка в качестве однобайтной памяти (CMS audio

Post by Tronix »

В итоге, все получилось. Авто-определялка карты выглядит так:

Image

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

Затем непосредственно допаял на плату две SAA1099 и усилитель:

Image

Примеры музыки с этой карточки: Карта шумит конечно, цифра пробивается. Думаю нужно отделять SAA1099 и усилок отдельным земляным полигоном, разделять аналоговые и цифровые земли. Ну и клубок МГТФ тоже не способствует чистоте звука:

Image

Потом попробовал немного модифицировать 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.
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Re: Регистр-защелка в качестве однобайтной памяти (CMS audio

Post by newold86 »

Нагло спер из какого-то проекта код SAA1099 и адаптировал его для своей универсальной платы
Заработало, и вроде даже по звуку похоже. Хотя записи Tronix’а звучат намного чище - думаю, мне нужно немного повозиться с ЦАПом - пока я даже удивляюсь, что в принципе работает. Зато вещей типа фона 50 Гц и «цифровых» помех вроде особо нет.
Найду кабель, запишу, что получилось

P.S. Полька в исполнении Tronix’а используется в качестве эталона, на нее равняюсь :)

P.P.S. Sound Blaster предварительно адаптировал/скомпилировал, но он оказался офигительно большим - не лезет в мой Max10 ! Не уверен, что специально еще одну идентичную плату захочу паять...
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Re: Регистр-защелка в качестве однобайтной памяти (CMS audio

Post by newold86 »

Это смешно, но я не могу придумать, как записать звук - не через микрофон же с динамиков...
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Re: Регистр-защелка в качестве однобайтной памяти (CMS audio

Post by newold86 »

Посмотрел на схему Sam Coupe и возник академический интерес - какого фига они подключили nDTACK к питанию, да еще в таком месте, что помехи Iref создает ???
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: Регистр-защелка в качестве однобайтной памяти (CMS audio

Post by Tronix »

newold86 wrote:Это смешно, но я не могу придумать, как записать звук - не через микрофон же с динамиков...
Я писал с помощью портативного MP3 плеера Cowon какой-то там. У него есть линейный вход. Были такие девайсы на границе перехода с кнопочных телефонов на смартфоны. А так даже не знаю - попробовать воткнуть в линейных вход компа/ноута? Подключают же иногда микрофоны к ноутам?
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Re: Регистр-защелка в качестве однобайтной памяти (CMS audio

Post by newold86 »

К сожалению, дома стоит iMac, у которого линейного входа нет, а тащить ноутбук домой из офиса лень.

Решил пойти простым путем - у меня есть отладочная FPGA плата, на которой, в т.ч., установлен хороший кодек. Я уже освоил более-менее работу с ним, осталось разобраться, как этот аудиопоток записать в каком-то стандартном формате, и все ! :)
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: Регистр-защелка в качестве однобайтной памяти (CMS audio

Post by Tronix »

newold86 wrote: пойти простым путем
:mrgreen:
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: Регистр-защелка в качестве однобайтной памяти (CMS audio

Post by Tronix »

newold86 wrote: есть отладочная FPGA плата, на которой, в т.ч., установлен хороший кодек.
А что за кодек, кстати? Просто мы тож на работе экспериментировали с каким-то, щаз не вспомню, но могу посмотреть завтра. Самолично говнокодил под stm32, захватывал звук в wav, для пробы. Ну на микроконтроллере это просто все, дел на полчаса. А вот с FPGA не знаю. В max10 же нет встроенного МК, как в старших моделях бывает? На мой дилетанский взгляд не все так просто. Понятно, что стейт машин, но все равно, SPI кодек и ПЛИС - как то в моем мозгу плохо совмещаются. Но, верю, что победите. Ибо воистину круты. :kruto: