PDA

Просмотр полной версии : Fentone Sound Card



gen1971
03.05.2024, 19:14
Проектирую звуковую карту для ХТ без использования 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) синхронизированы от одного генератора, расположенного на системной плате компьютера.
Поэтому, при создании чиптюн композиций, перечисленные устройства можно задействовать одновременно, при этом они всегда будут сохранять относительный строй.

gen1971
06.05.2024, 13:12
Скорее всего придется применить 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)

Rio444
06.05.2024, 20:06
- Индивидуальные фильтры на каждый источник с разными АЧХ.
Как планируете реализовать?

gen1971
07.05.2024, 02:22
Wavetable - линейная АЧХ.

PC SPK - пассивный фильтр 2 порядка с частотой среза 5 кГц.

AdLib - фильтр 3 порядка на ОУ с частотой среза 15 кГц (по схеме звукового модуля Yamaha TX81z).

Disney Sound Sourse - фильтр 3 порядка на ОУ с частотой среза 3 кГц (по той-же схеме).

Tandy - фильтр 3 порядка на ОУ с частотой среза 4.5 кГц (с 2 резонансами и провалом середины), т.н. CabSim - эмулятор гитарной АС.

Частоты среза фильтров возможно придется подстроить.

Rio444
07.05.2024, 15:29
AdLib - фильтр 3 порядка на ОУ с частотой среза 15 кГц (по схеме звукового модуля Yamaha TX81z).

Disney Sound Sourse - фильтр 3 порядка на ОУ с частотой среза 3 кГц (по той-же схеме).
Не подскажете, где посмотреть схему?
Кто-то уже сделал реверс-инжиниринг DSS?

gen1971
07.05.2024, 16:39
Не подскажете, где посмотреть схему?
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)

Rio444
07.05.2024, 21:31
Полной информации я не нашел.
А откуда это?
фильтр 3 порядка на ОУ с частотой среза 3 кГц

gen1971
08.05.2024, 02:27
А откуда это?

Это мои прикидки. Частота дискретизации 7 кГц +-5% https://archive.org/download/dss-programmers-guide/dss-programmers-guide.pdf
Частота среза фильтра должна быть как минимум в два раза ниже.
Третий порядок максимальный для простой схемы на одном ОУ.
Фильтрация в этом случае недостаточная, будет наложение спектров (алиасинг), но субъективно звучать должно ярко.
Все это надо проверить на макете и, возможно, изменить схему.

gen1971
13.05.2024, 20:13
https://pic.maxiol.com/thumbs2/1715620061.3258060641.2.jpg (https://pic.maxiol.com/?v=1715620061.3258060641.2.jpg&dp=2)

EPM7128SLC84 по количеству выводов подходит, но без запаса.
На CPLD раньше ничего не разрабатывал, буду изучать.

Rio444
14.05.2024, 02:07
На CPLD раньше ничего не разрабатывал, буду изучать.
Немного сталкивался. Если будут вопросы, постараюсь помочь.

gen1971
18.05.2024, 16:29
Rio444, на каком языке (AHDL, VHDL, Verilog) лучше (или проще) написать прошивку для CPLD?

HardWareMan
18.05.2024, 19:03
На любом удобном. Лично я считаю, что Verilog попроще будет. Можно так же тупо схемным вводом.

Rio444
18.05.2024, 19:22
gen1971, Смотря какой Вам ближе - Си или Паскаль.
Verilog сделан "по мотивам" Си, VHDL - "по мотивам" Паскаля.
По сути это одно и то же.

AHDL, насколько знаю, не получил распространения.

P.S. Почитал про AHDL.
Особых преимуществ не увидел. Поэтому рекомендовать бы не стал.
Из-за большей распространенности Verilog и VHDL по ним будет проще нагуглить ответы на возникающие вопросы.

gen1971
18.05.2024, 20:41
Мне одинаково близки схемный ввод, Си, Паскаль, Ассемблер (где-то читал что AHDL можно с ним сравнить), поэтому и затрудняюсь с выбором первого языка для CPLD.
Приедут чипы, начну пробовать, а там видно будет.

HardWareMan
18.05.2024, 20:56
Verilog сделан "по мотивам" Си, VHDL - "по мотивам" Паскаля.
Наоборот. Я паскалист - верилог мне проще. Но если копнуть глубже, то у верилога действительно обязательной писанины меньше.

Rio444
18.05.2024, 22:16
Мне одинаково близки схемный вводЭто так кажется.
На простых проектах и если не надо много править проект, то схемный будет проще.
На сколько-нибудь сложных проектах запаритесь перерисовывать, вместо того, чтобы пару строк отредактировать.


поэтому и затрудняюсь с выбором первого языка для CPLDТогда Verilog.
VHDL я только "читаю со словарём". Особо не могу подсказать.

gen1971
18.05.2024, 22:29
Все логично. Учту ваши с HardWareMan, рекомендации.

gen1971
20.05.2024, 13:35
Чипы с Али USB Blaster не видит, я так понимаю что залочен JTAG.
На подходе EPM7128SLC84-15 от Чипкина, проверю их.

HardWareMan
20.05.2024, 13:43
Разлочка житага у MAX7000S мы делали, но лдично я проверял только на EPM7032, EPM3032 и EPM7064. На EPM7128 я не проверял, но вероятно оно тоже сработает.

Rio444
20.05.2024, 16:41
Чипы с Али USB Blaster не видит, я так понимаю что залочен JTAG.
Не исключено. Но лучше ещё раз все проверить.

Типичная ошибка - если что-то вызывает наибольшие опасения, то любые проблемы сразу списываются на это.
Расскажите, как подключали для прошивки?
Раньше шили альтеру?

gen1971
20.05.2024, 17:06
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 раньше не шил.

Rio444
20.05.2024, 17:25
подтягивающие резисторы 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

Rio444
20.05.2024, 18:17
При чем тут циклоп?
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 вверх.

Rio444
20.05.2024, 18:31
а бластер имеет пуш-пул на выходах
А Вы в курсе, что китайцы сейчас продают "бластеры" с другой начинкой, не той, что была ещё года три назад?
И если в старых внутри самого программатора тоже стояла подтяжка, то в новых её нет. И чип совсем другой.

Я бы не тратил время на пустые споры, а проверил.
Практика - лучший критерий истины.
Перепаять 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

gen1971
21.05.2024, 02:26
Обязательно все проверю и о результатах сообщу, но чуть позже.
"Разлочку" тоже соберу.

Я принял решение сначала сделать версию карты без CPLD, на мелкой логике, но без MIDI OUT и WT разъемов,
а после опробования основных схемных решений выпустить PRO версию с MPU-401 и EPM7128SLC84-15 в качестве связующей логики.
(ATmega1284P-PU меня тоже не совсем устраивает ценой и размерами корпуса, думаю заменить на другой микроконтроллер).

gen1971
22.05.2024, 16:20
Заменил резисторы подтяжки на 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к, вроде. Любое нарушение - и ЕРМке хана. Я много пожёг в своё время.

Rio444
22.05.2024, 16:53
но пара EPM7128SLC84-15 из другой, до этого не проверенной партии, прошли Auto Detect !
Уже хорошо. Значит можно быть уверенным, что дело именно в чипах. А не в подключении, драйверах, программаторе.

Какое состояние ножек у чипов?
Блестящие? Не окисленные?

gen1971
22.05.2024, 17:03
Ножки блестящие.

HardWareMan
22.05.2024, 17:41
PLCC сокета бывает раскалывается от неправильного извлечения или когда не пользуешься экстрактором. Такие сокеты могут не контачить. Как выглядит PLCC экстрактор:
https://i.postimg.cc/6qwM6Kpy/image.png

gen1971
23.05.2024, 02:19
Я пользуюсь таким экстрактором.

gen1971
24.05.2024, 12:46
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 корпусе.

Rio444
24.05.2024, 13:28
в заводской упаковке
Они сейчас все в "заводской упаковке". Даже самые б/у при б/у.


Теперь есть три варианта дальнейшего развития событий.
А от Чипкина на пришли EPM7128SLC84?
Так-то если заморачиваться с CPLD, то лучше по максимуму в неё запихнуть.


Найти недорогой способ "разлочки"Иногда на авито попадаются старые программаторы под LPT за недорого.
Которые могут шить альтеры через параллельный интерфейс.

gen1971
24.05.2024, 13:41
А от Чипкина на пришли EPM7128SLC84?
Чипы от Чипкина путешествуют по России :v2_dizzy_step: (привет Симферополю).


Иногда на авито попадаются старые программаторы под LPT за недорого.
Которые могут шить альтеры через параллельный интерфейс.

А какие модели точно поддерживают EPM7128SLC84?
Нашел информацию что ChipProg+ подходит.

Serg6845
24.05.2024, 14:47
Иногда на авито попадаются старые программаторы под LPT за недорого.
Которые могут шить альтеры через параллельный интерфейс.

программатор - еще далеко не все. нужно чтобы в комплекте был переходник под нужную альтеру или как минимум схема переходника.
у меня вон есть ALL07 - переходники под 7032, 7064 - доступны в виде схем, а под 7128 - фиг.

Rio444
24.05.2024, 17:17
А какие модели точно поддерживают 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

- - - Добавлено - - -


Они сейчас все в "заводской упаковке". Даже самые б/у при б/у.
Причём, им чистят мордочку и заново наносят маркировку, в том числе и лазерной гравировкой.

gen1971
27.05.2024, 00:34
В тему качества деталей. Сегодня на макете пытался разобраться почему не правильно работает делитель тактовой частоты.
Виноватыми оказались микросхемы счетчиков с Али, причем от двух разных продавцов с разной маркировкой изготовителя.

ALS
27.05.2024, 08:39
Мне как-то на полном серьезе пытались доказать, что все модули на nRF24L01, продающиеся на али - глюкавые и их всенепременно надо заворачивать в фольгу. Доказывали ардуинщики.
В общем, думаю, тут "макет" виноват, а не микросхемы.

Rio444
27.05.2024, 09:47
А что за чипы?
Сталкивался, когда разные продавцы продают одну фейковую партию. Но у них и маркировка абсолютно идентичная была.
Чтобы с разной маркировкой были все поддельные, имхо маловероятно.
Хотя и исключать нельзя. Некоторые чипы на али 99-100% поддельные у всех продавцов.

gen1971
27.05.2024, 19:43
Неправильно работает только часть микросхем в партии: не та что должна быть частота на некоторых выводах.

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)

ALS
27.05.2024, 22:43
gen1971, не принимайте близко к сердцу, возможно, мне просто везет с продавцами на али )
Прикопаться не к чему, я бы тоже так сделал - МГТФ, длина проводов - по минимуму, шины питания толстым проводом.
Но, может, емкости по питанию следует увеличить ? Я бы в довесок к имеющимся поставил какой-нибудь твердотельный или тантал.

gen1971
27.05.2024, 23:17
Я раньше ставил на макеты тантал в корпусе 0805, как найду добавлю.
Еще хочу попробовать убрать звон с импульсов 14.318 МГц.

Rio444
28.05.2024, 00:26
Почему "HC", а не "HCT"?
Какие там уровни?

Хотя если частота неправильная только на некоторых выходах, то да, видимо дело не в уровнях.
Вход "CLR" на "земле"?

gen1971
28.05.2024, 07:22
HCT не нашел, для HC поставил подтяжку 2.2К на +5В.
CLR на земле.

gen1971
28.05.2024, 18:31
https://pic.maxiol.com/thumbs2/1716910133.3104869283.sc01.jpg (https://pic.maxiol.com/?v=1716910133.3104869283.sc01.jpg&dp=2)

Схема цифровой части карты.

gen1971
04.06.2024, 20:59
Для отладки платы можно использовать входящий в DOS интерпретатор QBASIC.
Например запускаем:
10 OUT &H388, &H55
20 OUT &H389, &HAA
30 GOTO 10
Осциллографом на панельке YM3812 смотрим сигналы D0-D7, A0, CS, WR.

gen1971
12.06.2024, 16:39
Наконец пришли EPM7128SLC84 от Чипкина.
У половина чипов залочен JTAG, один чип с КЗ по питанию.

Rio444
12.06.2024, 16:57
У половина чипов залочен JTAG, один чип с КЗ по питанию.
Напишите Чипкину в чат.
Он уверен, что у него только надежные поставщики.
Да и собственно раньше нареканий по его микросхемам почти не было.

gen1971
12.06.2024, 17:02
Отправил сообщение в чат.
Итог - с EPM7128SLC84 везде проблемы.

Rio444
12.06.2024, 19:24
У меня пара лежит с али, ещё с прошлого года.
Думаю в ближайшие пару месяцев дойдут руки проверить.

gen1971
12.06.2024, 22:51
https://pic.maxiol.com/thumbs2/1718221344.3104869283.ym3812.jpg (https://pic.maxiol.com/?v=1718221344.3104869283.ym3812.jpg&dp=2)

Али прислал YM3812 с лазерной маркировкой (слева) и в не таком корпусе как оригинал (справа).
Но оба чипа в Wolf3D определяются как AdLib и одинаково звучат.

Rio444
13.06.2024, 12:03
Хз. Может какой-то клон. Даже от той же Ямахи.
Может действительно и в таком корпусе были. А китайцы просто обновили маркировку.

gen1971
16.06.2024, 01:56
Прошел по граблям в даташите на SN76489 (https://wiki.console5.com/tw/images/b/b0/SN76489.pdf), где D0 - MSB, а я на это не обратил внимание.
Хорошо что собираю прототип на макетке, а то пришлось бы резать дорожки на плате.

gen1971
18.06.2024, 02:12
Собрал и отладил AdLib, Tandy, вход РС Speaker.
Послушал все три варианта в игре Planet X3.
На канале AdLib надо увеличить громкость.

gen1971
19.06.2024, 15:51
Наконец добился авто-определения Disney Sound Sourse части в Wolfenstein 3D.
Даже пришлось смотреть исходники игры, но все оказалось проще -
по невнимательности подключил вывод контроля FIFO перед 245 буфером (а надо было после).

gen1971
22.06.2024, 22:17
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.

gen1971
17.12.2025, 19:34
https://pic.maxiol.com/thumbs2/1765989042.3258060253.soundcard.jpg (https://pic.maxiol.com/?v=1765989042.3258060253.soundcard.jpg&dp=2)