Просмотр полной версии : Fentone Sound Card
Проектирую звуковую карту для ХТ без использования DMA.
ТЕХЗАДАНИЕ:
- Шина ISA8
- Объединение источников звука эпохи ХТ:
-- Tandy (с возможностью переключения адреса ХТ/АТ)
-- AdLib
-- Disney Sound Sourse.
-- (PRO версия) MPU-401 intelligent mode (разъемы MIDI OUT и Wavetable Connector),
для возможности использовать Roland MT-32 и, например, WavetablePi.
- Тактирование от одного системного генератора.
- Вход сигнала Speaker системной платы.
- Индивидуальные фильтры на каждый источник с разными АЧХ.
- Аналоговые регуляторы громкости источников (микшер на 4-5 каналов).
- Выход МОНО на штатный PC Speaker или внешнюю АС.
- Дополнительные стабилизаторы аналогово питания.
- Все микросхемы в DIP корпусах, резисторы и керамические конденсаторы SMD 0805.
- Постараться разместить на двухслойной плате размером не более 100х100 мм.
Все основные источники звука этой карты (PC Speaker, Tandy, AdLib, сэмплы DSS) синхронизированы от одного генератора, расположенного на системной плате компьютера.
Поэтому, при создании чиптюн композиций, перечисленные устройства можно задействовать одновременно, при этом они всегда будут сохранять относительный строй.
Скорее всего придется применить CPLD серии Altera MAX7000S в PLCC корпусе, иначе плата будет больше чем 100х100 мм.
https://pic.maxiol.com/thumbs2/1714997071.3258060641.1.jpg (https://pic.maxiol.com/?v=1714997071.3258060641.1.jpg&dp=2)
- Индивидуальные фильтры на каждый источник с разными АЧХ.
Как планируете реализовать?
Wavetable - линейная АЧХ.
PC SPK - пассивный фильтр 2 порядка с частотой среза 5 кГц.
AdLib - фильтр 3 порядка на ОУ с частотой среза 15 кГц (по схеме звукового модуля Yamaha TX81z).
Disney Sound Sourse - фильтр 3 порядка на ОУ с частотой среза 3 кГц (по той-же схеме).
Tandy - фильтр 3 порядка на ОУ с частотой среза 4.5 кГц (с 2 резонансами и провалом середины), т.н. CabSim - эмулятор гитарной АС.
Частоты среза фильтров возможно придется подстроить.
AdLib - фильтр 3 порядка на ОУ с частотой среза 15 кГц (по схеме звукового модуля Yamaha TX81z).
Disney Sound Sourse - фильтр 3 порядка на ОУ с частотой среза 3 кГц (по той-же схеме).
Не подскажете, где посмотреть схему?
Кто-то уже сделал реверс-инжиниринг DSS?
Не подскажете, где посмотреть схему?
https://www.synthxl.com/wp-content/uploads/2018/02/Yamaha-TX-81-Z-Schematic.pdf
Кстати, в TX81z применен интересный чип FM синтеза для профессионального звукового оборудования - OPZ YM2414.
Его звуки раньше очень много где можно было услышать: "Lately Bass" в EDM, "Plastic Hit" Ласковый Май, "Grand Piano" в лирических композициях, синтетический звук "Money for Nothing" Dire Straits .
В звуковых картах чип не применялся, соответственно поддержки софтом нет, а так можно было бы его использовать, он звучит лучше OPL2 YM3812 и OPL3 YMF262.
Хотел предусмотреть возможность установки OPZ YM2414, но места уже нет и чип выбивается из общей концепции этой звуковой карты.
Кто-то уже сделал реверс-инжиниринг DSS?
Полной информации я не нашел.
Дополнительно на плате потребуется логика LPT порта.
P.S. Тема на VOGONS Reversing the Disney Sound Source (https://www.vogons.org/viewtopic.php?f=62&t=42250)
Полной информации я не нашел.
А откуда это?
фильтр 3 порядка на ОУ с частотой среза 3 кГц
А откуда это?
Это мои прикидки. Частота дискретизации 7 кГц +-5% https://archive.org/download/dss-programmers-guide/dss-programmers-guide.pdf
Частота среза фильтра должна быть как минимум в два раза ниже.
Третий порядок максимальный для простой схемы на одном ОУ.
Фильтрация в этом случае недостаточная, будет наложение спектров (алиасинг), но субъективно звучать должно ярко.
Все это надо проверить на макете и, возможно, изменить схему.
https://pic.maxiol.com/thumbs2/1715620061.3258060641.2.jpg (https://pic.maxiol.com/?v=1715620061.3258060641.2.jpg&dp=2)
EPM7128SLC84 по количеству выводов подходит, но без запаса.
На CPLD раньше ничего не разрабатывал, буду изучать.
На CPLD раньше ничего не разрабатывал, буду изучать.
Немного сталкивался. Если будут вопросы, постараюсь помочь.
Rio444, на каком языке (AHDL, VHDL, Verilog) лучше (или проще) написать прошивку для CPLD?
HardWareMan
18.05.2024, 19:03
На любом удобном. Лично я считаю, что Verilog попроще будет. Можно так же тупо схемным вводом.
gen1971, Смотря какой Вам ближе - Си или Паскаль.
Verilog сделан "по мотивам" Си, VHDL - "по мотивам" Паскаля.
По сути это одно и то же.
AHDL, насколько знаю, не получил распространения.
P.S. Почитал про AHDL.
Особых преимуществ не увидел. Поэтому рекомендовать бы не стал.
Из-за большей распространенности Verilog и VHDL по ним будет проще нагуглить ответы на возникающие вопросы.
Мне одинаково близки схемный ввод, Си, Паскаль, Ассемблер (где-то читал что AHDL можно с ним сравнить), поэтому и затрудняюсь с выбором первого языка для CPLD.
Приедут чипы, начну пробовать, а там видно будет.
HardWareMan
18.05.2024, 20:56
Verilog сделан "по мотивам" Си, VHDL - "по мотивам" Паскаля.
Наоборот. Я паскалист - верилог мне проще. Но если копнуть глубже, то у верилога действительно обязательной писанины меньше.
Мне одинаково близки схемный вводЭто так кажется.
На простых проектах и если не надо много править проект, то схемный будет проще.
На сколько-нибудь сложных проектах запаритесь перерисовывать, вместо того, чтобы пару строк отредактировать.
поэтому и затрудняюсь с выбором первого языка для CPLDТогда Verilog.
VHDL я только "читаю со словарём". Особо не могу подсказать.
Все логично. Учту ваши с HardWareMan, рекомендации.
Чипы с Али USB Blaster не видит, я так понимаю что залочен JTAG.
На подходе EPM7128SLC84-15 от Чипкина, проверю их.
HardWareMan
20.05.2024, 13:43
Разлочка житага у MAX7000S мы делали, но лдично я проверял только на EPM7032, EPM3032 и EPM7064. На EPM7128 я не проверял, но вероятно оно тоже сработает.
Чипы с Али USB Blaster не видит, я так понимаю что залочен JTAG.
Не исключено. Но лучше ещё раз все проверить.
Типичная ошибка - если что-то вызывает наибольшие опасения, то любые проблемы сразу списываются на это.
Расскажите, как подключали для прошивки?
Раньше шили альтеру?
https://pic.maxiol.com/thumbs2/1716213678.3258060641.3.jpg (https://pic.maxiol.com/?v=1716213678.3258060641.3.jpg&dp=2)
Подключил все ноги питания. Поставил блокировочные конденсаторы 0.1 мк. На JTAG подтягивающие резисторы 10К.
Альтеру с использованием USB Blaster раньше не шил.
подтягивающие резисторы 10КЧто ж так много?
Производитель рекомендует 1К. Думаю в пределах 1,5-2К допустимо. Но не на порядок же!
HardWareMan
20.05.2024, 18:11
Что ж так много?
Производитель рекомендует 1К. Думаю в пределах 1,5-2К допустимо. Но не на порядок же!
Увидев один раз в букваре на циклоп вот такую картинку я тоже везде использовал 10к. Даже на MAX7000S, MAX3000А и MAXII.
https://i.postimg.cc/C56w2G9z/image-png-6fa485703c277edff19709387b469706.png
При чем тут циклоп?
80840
Букварь http://ps-2.kev009.com/ohland/misc/ALTERA_an095.pdf
Страница 5.
Оно конечно может в каких-то случаях будет работать и с 10К.
Но никто ничего не гарантирует))))
HardWareMan
20.05.2024, 18:22
PS Вот такой макетки абсолютно хватает проверить EPM7128SLC84
https://i.postimg.cc/KYsZYSZR/Whats-App-Image-2024-05-20-at-20-16-31.jpg
https://i.postimg.cc/856VP7K0/Whats-App-Image-2024-05-20-at-20-16-42.jpg
- - - Добавлено - - -
При чем тут циклоп?
А ни причём, я просто сказал свою личную практику.
Оно конечно может в каких-то случаях будет работать и с 10К.
Но никто ничего не гарантирует))))
Конечно будет. Чтобы уметь в 10МГц даже 1к подтяжки крайне мало. Токи утечки на выводах JTAG слишком мелкие, чтобы требовать именно 1к (они есть в букваре на МАХ), а бластер имеет пуш-пул на выходах. Подтяжка нужна чтобы наводки не было от чего ТАР начинал бы сходить с ума, так что достаточно задавить ТСК вниз и ТМS вверх.
а бластер имеет пуш-пул на выходах
А Вы в курсе, что китайцы сейчас продают "бластеры" с другой начинкой, не той, что была ещё года три назад?
И если в старых внутри самого программатора тоже стояла подтяжка, то в новых её нет. И чип совсем другой.
Я бы не тратил время на пустые споры, а проверил.
Практика - лучший критерий истины.
Перепаять 4 резистора - 5 минут.
HardWareMan
20.05.2024, 19:08
А Вы в курсе, что китайцы сейчас продают "бластеры" с другой начинкой, не той, что была ещё года три назад?
И если в старых внутри самого программатора тоже стояла подтяжка, то в новых её нет. И чип совсем другой.
Конечно, я же каждый год покупаю бластеры на алике (точнее, они идут халявные к девбордам). Да, их у меня уже десяток с разными кишками но в одинаковом корпусе.
Я бы не тратил время на пустые споры, а проверил.
Практика - лучший критерий истины.
Перепаять 4 резистора - 5 минут.
А прочитать мой пост - менее минуты. Я экономлю вам 4 минуты!
- - - Добавлено - - -
Моя истина вот, из соседнего топика:
https://i.postimg.cc/jqPmHPbd/Whats-App-Image-2024-05-20-at-21-06-55.jpg
https://i.postimg.cc/7LXYYdKd/image.png
Обязательно все проверю и о результатах сообщу, но чуть позже.
"Разлочку" тоже соберу.
Я принял решение сначала сделать версию карты без CPLD, на мелкой логике, но без MIDI OUT и WT разъемов,
а после опробования основных схемных решений выпустить PRO версию с MPU-401 и EPM7128SLC84-15 в качестве связующей логики.
(ATmega1284P-PU меня тоже не совсем устраивает ценой и размерами корпуса, думаю заменить на другой микроконтроллер).
Заменил резисторы подтяжки на 1К. Ни одна микросхема из ранее проверенных не определилась,
но пара EPM7128SLC84-15 из другой, до этого не проверенной партии, прошли Auto Detect !
Пробовал на залоченном чипе подать напряжение 11.5В на 84 ногу (ОЕ) и нажимать Auto Detect - не помогло,
только микросхема нагрелась, видимо спалил.
Выбор режима Erase не активен (серый), стереть не получается. Пробовал в Quartus II 9.1 sp2 и 9.0 sp2.
HardWareMan
22.05.2024, 16:50
gen1971, у Кактуса есть удобный JTAG Chain Debugger, вызывается через меню программатора. В нём удобно тестировать работоспособность чипов и их JTAG.
https://i.postimg.cc/DwK4K7dL/886855420-364.jpg
Что касается стирания, то надо руками добавить чип, автодетект, ясен пень, не будет работать (но можно сделать на рабочей, стереть её и потом подменить на залоченную). Потом установить erase. А затем, подключаешь питание, JTAG, в последний момент подаёшь HV на OE и жмёшь "выполнить". Лучше HV подавать через кнопку. Нельзя подавать раньше/позже, нельзя подавать напряжение 12в, только 10.5! Причём, подключать надо через сопротивление в 1к, вроде. Любое нарушение - и ЕРМке хана. Я много пожёг в своё время.
но пара EPM7128SLC84-15 из другой, до этого не проверенной партии, прошли Auto Detect !
Уже хорошо. Значит можно быть уверенным, что дело именно в чипах. А не в подключении, драйверах, программаторе.
Какое состояние ножек у чипов?
Блестящие? Не окисленные?
HardWareMan
22.05.2024, 17:41
PLCC сокета бывает раскалывается от неправильного извлечения или когда не пользуешься экстрактором. Такие сокеты могут не контачить. Как выглядит PLCC экстрактор:
https://i.postimg.cc/6qwM6Kpy/image.png
Я пользуюсь таким экстрактором.
gen1971, у Кактуса есть удобный JTAG Chain Debugger
Какую версию Quartus использовать для прошивки MAX7000S, с активным Erase для этой серии?
- - - Добавлено - - -
Получил с Али EPM7064SLC44-10N в заводской упаковке. Auto Detect и Blank Check эти чипы проходят.
https://pic.maxiol.com/thumbs2/1716543535.3258060641.64.jpg (https://pic.maxiol.com/?v=1716543535.3258060641.64.jpg&dp=2)
Теперь есть три варианта дальнейшего развития событий.
1. Сделать карту на мелкой логике, но без MPU-401.
2. Найти недорогой способ "разлочки" EPM7128SLC84, и сделать карту с MPU-401.
3. Переработать карту с MPU-401 под использование мелкой логики, EPM7064SLC44 и микроконтроллер в меньшем чем 40 ног DIP корпусе.
в заводской упаковке
Они сейчас все в "заводской упаковке". Даже самые б/у при б/у.
Теперь есть три варианта дальнейшего развития событий.
А от Чипкина на пришли EPM7128SLC84?
Так-то если заморачиваться с CPLD, то лучше по максимуму в неё запихнуть.
Найти недорогой способ "разлочки"Иногда на авито попадаются старые программаторы под LPT за недорого.
Которые могут шить альтеры через параллельный интерфейс.
А от Чипкина на пришли EPM7128SLC84?
Чипы от Чипкина путешествуют по России :v2_dizzy_step: (привет Симферополю).
Иногда на авито попадаются старые программаторы под LPT за недорого.
Которые могут шить альтеры через параллельный интерфейс.
А какие модели точно поддерживают EPM7128SLC84?
Нашел информацию что ChipProg+ подходит.
Serg6845
24.05.2024, 14:47
Иногда на авито попадаются старые программаторы под LPT за недорого.
Которые могут шить альтеры через параллельный интерфейс.
программатор - еще далеко не все. нужно чтобы в комплекте был переходник под нужную альтеру или как минимум схема переходника.
у меня вон есть ALL07 - переходники под 7032, 7064 - доступны в виде схем, а под 7128 - фиг.
А какие модели точно поддерживают EPM7128SLC84?
Нашел информацию что ChipProg+ подходит.
Много какие. Но не из простых конечно.
Да, наверное ChipProg+ проще всего купить. Остальные или совсем редкие, или просят за них >>10 тыс.
переходники под 7032, 7064 - доступны в виде схем, а под 7128 - фиг.
По аналогии сделать схему для 7128 не получится?
Сигналы скорее всего одни и те же.
Serg6845
24.05.2024, 18:21
По аналогии сделать схему для 7128 не получится?
Сигналы скорее всего одни и те же.
ну как сказать. 7032 шьется примерно так - читается ревизия чипа, загружается последовательно по 80 кажется бит в 2 потока, дергается куча ног определенным образом, выгружается, проверяется. причем алгоритмов (в зависимости от ревизии чипа) я увидел три штуки. 7064 - примерно то же самое, но потоков - четыре. 7128 - потоков... правильно, 8. учитывая что в свободном доступе нет никакой документации по параллельному программированию альтеры - ква.
HardWareMan
24.05.2024, 20:16
Какую версию Quartus использовать для прошивки MAX7000S, с активным Erase для этой серии?
Последнюю, которая умет в чипы и симуляцию без моделсима: 9.1SP2
- - - Добавлено - - -
Они сейчас все в "заводской упаковке". Даже самые б/у при б/у.
Причём, им чистят мордочку и заново наносят маркировку, в том числе и лазерной гравировкой.
В тему качества деталей. Сегодня на макете пытался разобраться почему не правильно работает делитель тактовой частоты.
Виноватыми оказались микросхемы счетчиков с Али, причем от двух разных продавцов с разной маркировкой изготовителя.
Мне как-то на полном серьезе пытались доказать, что все модули на nRF24L01, продающиеся на али - глюкавые и их всенепременно надо заворачивать в фольгу. Доказывали ардуинщики.
В общем, думаю, тут "макет" виноват, а не микросхемы.
А что за чипы?
Сталкивался, когда разные продавцы продают одну фейковую партию. Но у них и маркировка абсолютно идентичная была.
Чтобы с разной маркировкой были все поддельные, имхо маловероятно.
Хотя и исключать нельзя. Некоторые чипы на али 99-100% поддельные у всех продавцов.
Неправильно работает только часть микросхем в партии: не та что должна быть частота на некоторых выводах.
https://pic.maxiol.com/thumbs2/1716827550.3104869283.4040.jpg (https://pic.maxiol.com/?v=1716827550.3104869283.4040.jpg&dp=2)
- - - Добавлено - - -
В общем, думаю, тут "макет" виноват, а не микросхемы.
Возможно. Но тогда подскажите, что я делаю не правильно, и покажите, как правильно делаете это Вы.
https://pic.maxiol.com/thumbs2/1716827980.3104869283.017.jpg (https://pic.maxiol.com/?v=1716827980.3104869283.017.jpg&dp=2) https://pic.maxiol.com/thumbs2/1716828017.3104869283.018.jpg (https://pic.maxiol.com/?v=1716828017.3104869283.018.jpg&dp=2)
gen1971, не принимайте близко к сердцу, возможно, мне просто везет с продавцами на али )
Прикопаться не к чему, я бы тоже так сделал - МГТФ, длина проводов - по минимуму, шины питания толстым проводом.
Но, может, емкости по питанию следует увеличить ? Я бы в довесок к имеющимся поставил какой-нибудь твердотельный или тантал.
Я раньше ставил на макеты тантал в корпусе 0805, как найду добавлю.
Еще хочу попробовать убрать звон с импульсов 14.318 МГц.
Почему "HC", а не "HCT"?
Какие там уровни?
Хотя если частота неправильная только на некоторых выходах, то да, видимо дело не в уровнях.
Вход "CLR" на "земле"?
HCT не нашел, для HC поставил подтяжку 2.2К на +5В.
CLR на земле.
https://pic.maxiol.com/thumbs2/1716910133.3104869283.sc01.jpg (https://pic.maxiol.com/?v=1716910133.3104869283.sc01.jpg&dp=2)
Схема цифровой части карты.
Для отладки платы можно использовать входящий в DOS интерпретатор QBASIC.
Например запускаем:
10 OUT &H388, &H55
20 OUT &H389, &HAA
30 GOTO 10
Осциллографом на панельке YM3812 смотрим сигналы D0-D7, A0, CS, WR.
Наконец пришли EPM7128SLC84 от Чипкина.
У половина чипов залочен JTAG, один чип с КЗ по питанию.
У половина чипов залочен JTAG, один чип с КЗ по питанию.
Напишите Чипкину в чат.
Он уверен, что у него только надежные поставщики.
Да и собственно раньше нареканий по его микросхемам почти не было.
Отправил сообщение в чат.
Итог - с EPM7128SLC84 везде проблемы.
У меня пара лежит с али, ещё с прошлого года.
Думаю в ближайшие пару месяцев дойдут руки проверить.
https://pic.maxiol.com/thumbs2/1718221344.3104869283.ym3812.jpg (https://pic.maxiol.com/?v=1718221344.3104869283.ym3812.jpg&dp=2)
Али прислал YM3812 с лазерной маркировкой (слева) и в не таком корпусе как оригинал (справа).
Но оба чипа в Wolf3D определяются как AdLib и одинаково звучат.
Хз. Может какой-то клон. Даже от той же Ямахи.
Может действительно и в таком корпусе были. А китайцы просто обновили маркировку.
Прошел по граблям в даташите на SN76489 (https://wiki.console5.com/tw/images/b/b0/SN76489.pdf), где D0 - MSB, а я на это не обратил внимание.
Хорошо что собираю прототип на макетке, а то пришлось бы резать дорожки на плате.
Собрал и отладил AdLib, Tandy, вход РС Speaker.
Послушал все три варианта в игре Planet X3.
На канале AdLib надо увеличить громкость.
Наконец добился авто-определения Disney Sound Sourse части в Wolfenstein 3D.
Даже пришлось смотреть исходники игры, но все оказалось проще -
по невнимательности подключил вывод контроля FIFO перед 245 буфером (а надо было после).
https://pic.maxiol.com/thumbs2/1719083458.3104869283.dscn0010.jpg (https://pic.maxiol.com/?v=1719083458.3104869283.dscn0010.jpg&dp=2) https://pic.maxiol.com/thumbs2/1719083489.3104869283.dscn0012.jpg (https://pic.maxiol.com/?v=1719083489.3104869283.dscn0012.jpg&dp=2)
Прототип собран и отлажен. PCM часть протестировал в Wolf3D.
https://pic.maxiol.com/thumbs2/1765989042.3258060253.soundcard.jpg (https://pic.maxiol.com/?v=1765989042.3258060253.soundcard.jpg&dp=2)
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot