Перейти к содержанию
    

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

Пару лет назад я серьёзно озадачился 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 нужно доустановить...непомню, весь проект дома лежит...

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Микросхемка USB - TUSB3200, кодек - AD1838, ну и всякая хитрая мелочёвка аналоговая....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Разумеется, писать нужно. Реализовывать весь класс и всё, что с ним связано...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Musici_ONE.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По порядку:

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

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

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

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...