Jump to content

    
Sign in to follow this  
alexdsp

USB-AUDIO-MIDI и как с этим жить дальше

Recommended Posts

Пару лет назад я серьёзно озадачился SUBJ-ем, и сделал-таки свою звуковую подсистему USB-AUDIO-MIDI всё в одном стакане.

Некое лирическое отступление.... а далее, просто мысли вслух...

По поводу супер-пупер-мега АЦП с поражающими воображение децибелами....

Чтоб реализовать что-то по THD+N превышающее 100 Дб потребуется как минимум многослойка, очень дорогие операционники и вся пассивная часть схемы, ОЧЕНЬ качественное питание и приличная доля практического опыта построения таких систем. Да и вопрос ещё через что это счастье будет подключаться к PC (предполагается, чо подключаем к PC)

Но у меня, опять же, была куча ограничений, чтоб и дёшево было и сердито и работало чтоб почти везде безо всяких мудрых драйверов и типа специального "родного" софта... Поэтому USB-AUDIO и выбрал.

Плюсы: 1) не надо писать драйверов, т.к. вроде бы (потом выяснилось, что именно "вроде бы") в популярных операционках оно уже имеется. 2) Опять же "вроде" имеется питание, аж целых 5 вольт! 3) Ну и там, пресловутая защищённость от помех вынесенного устройства...

В общем, в глубинах сознания ещё тлела мысль о PCI, а руки и глаза уже разводили плату под USB.

Опустив ненужные повествования о моих злоключениях и борьбе с драйверами от MS, перерыв разные форумы ихних же разработчиков, мои печали закончились и всё вроде бы работает очень даже неплохо, НО!

Если кому-то вдруг приспичит делать что-то подобное хочу предупредить о следующем: реализация USB-AUDI в системе WIN это что-то... короче, сделать 24 бита без глюков мне так и не удалось. Очень много версий реализаций драйвера даже от одного сервис-пака к другому, и в результате остановился на 16 битах, ибо если их сделать ПРАВИЛЬНО, то для такой игрушки как у меня , это вполне адекватно. Протрахалса с MIDI много.... ну никак не ожидали разработчики MS, что в одном устройстве может быть и аудио и мидм.... :)

Короче, в результате: питается всё прямо от USB, стерео дифференциальные входы и выходы, и один обычный умощнённый выход на наушники.

Петля тестирования (при помощи RightMarkAnalyzer): встроенный ЦАП во встроенный АЦП даёт где-то 95 Дб динамики. По THD сильно зависит от частоты дискретизации в силу...мать-мать-мать-крософт...:) Я оптимизировал, для работы на частотах 44.1 и 88.2 чтоб музыку слушать было приятственней. Точную цифру не помню... приду домой, сообщу, но оччень неплохо! :)

Хорошо это работает только под XP SP1 и выше, да и то какой-то там QFE нужно доустановить...непомню, весь проект дома лежит...

В общем, что я могу сказать, ОДНАКО ПОЛУЧИЛОСЬ!

Удовлетворил свои амбиции, продать это нереально, в силу раскрученных торговых марок, впаривающих фуфло народонаселению.

Может и было бы это полезно, например музыканту с ноутбуком: и МИДИ клаву надо подключить, и оцифровать что-то и прослушать тут-же, и МИДИ выход тоже есть, если внешний синтезатор подключить надо...

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

Share this post


Link to post
Share on other sites

Я использовал PCM2706, с ней гемор практически отсутствует, распознается без проблем виндами начиная с 98-ой. Но вот реализовать MIDI в ней нереально. Только встроенный ЦАП PCM2706 использовать не рекомендуется, ибо гАвно, лучше повесить на шину I2S что-то вроде AD1857, не забыв про гальваническую развязку с помощью ADUM1400.

Share this post


Link to post
Share on other sites

А у PCM2706 есть возможность подключать АЦП? У TUSB3200 полная гибкость в этом вопросе, 4 штуки I2S в разных комбинациях. Плюс, это нормальный микроконтроллер, можно написать всё что душе заблагорассудится....

Share this post


Link to post
Share on other sites

Есть, но I2S порт только один. Кстати, как я понял, для того чтобы TUSB начала принимать /передавать данные по USB, нужно прогу под нее писать???

Share this post


Link to post
Share on other sites

Не, это геморрой писать под USB AUDIO. Достоинство PCM-ки то что под нее ничего писать не надо. А в целом сам по себе протокол USB AUDIO не обеспечивает высокого качества звучания по причине высокого джиттера (около 2 нс), свести который до более-менее приемлемого уровня 10-50пс весьма и весьма проблематично.

Share this post


Link to post
Share on other sites

Не знаю, как там по поводу джиттера, но я тестировал систему петлёй, то есть с ЦАПа подавал сразу на АЦП программой RightMark Analyzer. Она всё это видит и тестирует с очень высокой точностью. Динамический диапазон на 16 битах у меня получился 95 дб. По поводу интермодуляционных искажений точной цифры не помню, помню только что эта программа выдала по всем пунктам тестирования в режиме 16 бит 44.1 КГц результат как "Excellent". По этим тестам моя плата, несмотря на её простоту, превосходит почти ВСЕ платы, включая и PCI в ценовом диапазоне до 100 долларов. Разумеется, не обошлось без именно этого "программописания". Просто есть несколько моделей синхронизации при передаче данных аудио по USB. Было много возни, не скрою.

Кстати, интересно какие результаты показывает ваша плата в таких тестах? При желании, могу скинуть файл со своими результатами в виде HTML отчёта, когда вернусь домой.

Share this post


Link to post
Share on other sites

Вот, не дожидаясь, на работе, со звенящим и просаженным блоком питания и без экранированного шнура (остался дома) тест "навскидку". Сразу получаем динамику 94.3 дб. Всё остальное вообще в норме....

Musici_ONE.zip

Share this post


Link to post
Share on other sites

Измерения приводились на синусоиде или на недетерминированном сигнале???

 

Я не использовал АЦП, у меня только ЦАП, AD1865N-K, уровень шума ~ 110 дБ. У меня в тракте стоит ASRC AD1896, реклок перед цапом, тактирование от ЭСЛ генератора, джиттер ~10пс . RMAA я не особо верю, поскольку ее результаты не совсем коррелируют со звучанием. На недетерминированном сигнале в случае сигма-дельта ЦАП реальная монотонность вряд ли будет превышать 12-14бит, что соответствует интермодово-шумовому пъедесталу 70-85 дБ. Хотя у промышленных звуковух этот параметр еще хуже.

Share this post


Link to post
Share on other sites

Понятно, у меня-то полный тракт и АЦП-105дб и ЦАП-108дб. Кодек AD1838A.

Rightmark хорошая программа. И со звучанием очень неплохо кореллирует.

Сигналы она подаёт всякие. Измерение интермодуляционных искажений производится двухсигнальным методом, после чего при помощи FFT выясняются все интересующие значения. По поводу джиттера... в подсистеме USB-AUDIO есть несколько моделей синхронизации, одной из них вообще всё по барабану, пусть хоть на микросекунду всё на шине трясётся, у звуковой платы есть свои опорные синхроимпульсы с малым джиттером, и есть фифо, и есть программа которая следит, чтоб было всё в порядке. По поводу SRC. Если у вас стоит в системе SRS - совершенно понятно, почему вы недовольны качеством звучания. Дело в том, что по страшному секрету, внутри WIN на ЛЮБОЙ частоте дискретизации работает внутренний алгоритм SRC, хоть и довольно неплохой, но в результате у вас в системе получается ДВА SRC.

Share this post


Link to post
Share on other sites
у звуковой платы есть свои опорные синхроимпульсы с малым джиттером, и есть фифо, и есть программа которая следит, чтоб было всё в порядке.

Что из себя представляет опорный генератор? Какой объем фифо? Как реализована ФАПЧ? Если ФАПЧ реализованна программно, то получение джиттера порядка сотен пикосекунд весьма и весьма сомнительно.

 

Про SRC в маздае знаю, с этим ничего не поделаешь. AD1896 на несколько порядков лучше маздаевского SRC, так что влияние его на звук по сравнению с маздаевским совсем незначительно. Я пробовал включать его в синхронном режиме, привязываясь к восстановленной тактовой PCM, получается весьма говенно по причине джиттера. В результате забил на эти извраты, поскольку USB я поставил только как довесок к SPDIF/I2S LVDS внешнему ЦАП

Share this post


Link to post
Share on other sites

По порядку:

Опорный генератор кварцевый. Объём ФИФО: удвоенный размер миллисекундного слота, напр. для 48 КГц 16 бит - это будет 192 байта на один канал, что выше крыши... т.к. пропусков SOF я ещё никогда не видел, а если бы даже они и были, то с этим тоже ведётся программная борьба. ФАПЧ реализована в самом чипе и разумеется с программным управлением. Опять же, по поводу этого несчастного джиттера, всё зависит от полосы пропускания петли обратной связи ФАПЧ. Вне этой полосы, джиттер определяется только самим VCO генератором, его шумом, цепями питания и прочими аналоговыми факторами, а вот внутри полосы собственно трекинг и происходит, и если мы сумеем сделать эту полосу очень узкой и не потерять устойчивость и при этом управлять ФАПЧ, то все негативные последствия уйдут в инфранизкие частоны, что собственно у меня и происходит, это Rightmark показывает абсолютно верно, (просто на картинке отрезаны эти инфранизкие), но эти частоты вообще не слышны! Ну например, ухудшение динамики, в области 3 Гц по -70 дб, кто это услышит !? В наушниках, НИКТО!

> AD1896 на несколько порядков лучше маздаевского SRC, так что влияние его на звук по сравнению с маздаевским совсем незначительно.

А зачем она ВООБЩЕ ТАМ НУЖНА спрашивается?!

Вот ещё такой момент.... может быть у нас немного отличаются понятия "говённо" и "хорошо" :)

Собственно, что это за такое "говённо" и в чём оно выражается? Кстати, настоятельно рекомендую померить свою плату Rightmark-ом, хоть он и не может чего-то там, но по крайней мере, даст очень много ответов на насущные вопросы...

На мой скромный слух, у меня, через USB, качество звучания выше чем через стационарный CD проигрыватель, и это при себестоимости около $25

Share this post


Link to post
Share on other sites
Вне этой полосы, джиттер определяется только самим VCO генератором, его шумом, цепями питания и прочими аналоговыми факторами

 

Я глубоко сомневаюсь в высоком качестве встроенного в чип VCO. Вряд ли уровень его джиттера будет меньше 400-500 пикосекунд, что совершенно недопустимо для высококачественного звуковоспроизведения.

зачем она ВООБЩЕ ТАМ НУЖНА спрашивается?!

В моем конвертере она используется в синхронном режиме в качестве цифрового фильтра. Тактирование осушествляется от ЭСЛ генератора с джиттером около 10 пс. Непосредственно перед ЦАПом осуществляется реклок.

Кстати, настоятельно рекомендую померить свою плату Rightmark-ом, хоть он и не может чего-то там, но по крайней мере, даст очень много ответов на насущные вопросы...

Я измерял спектр выходного сигнала, интермодуляционно-шумовой пьедестал в случае передачи сигнала по интерфейсу I2S LVDS был ниже собственного ИШП анализатора спектра. Теоретически это около -110 дБ. Под USB ИШП был около -70 дБ, что недвусмысленно говорит об ущербности протокола USB AUDIO.

 

ЗЫ Для устройства стоимостью 25 $ это нормальные параметры. Мои затраты были примерно в 15-20 раз больше :-(, дешевле реализовать РЕАЛЬНЫЙ динамический диапазон >96 дБ к сожалению не получается :-( :-( :-(

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this