Jump to content

    

Проектирование USB аудиокарты

А может вообще забить на I2S в МК?

Как по другому?

Есть еще AC'97. Множество достойных кодеков. Работать с ними мне было проще.

 

А если честно, мне не ясен бюджет вашего проекта. По началу казалось, что вы хотели иметь компромисс качество-цена, а теперь пришли к ARM в BGA корпусах :(

Возьмите TAS1020B стоит копейки, подключить и испытать сможете и I2S, и AC'97. Микросхема имеет встроенный 51-й микроконтроллер, заточена именно для создания USB-аудио устройств. Исходники на сайте у TI можете скачать бесплатно. Имеет возможность загрузки программы по USB (никаких программаторов и эмуляторов не надо).

И если уж Terratec использует эти контроллеры (если точнее - TUSB3200) в своих устройствах, то это чего-то да стоит.

 

С Уважением!

Share this post


Link to post
Share on other sites
Есть еще AC'97. Множество достойных кодеков. Работать с ними мне было проще.

 

А если честно, мне не ясен бюджет вашего проекта. По началу казалось, что вы хотели иметь компромисс качество-цена, а теперь пришли к ARM в BGA корпусах :(

Возьмите TAS1020B стоит копейки, подключить и испытать сможете и I2S, и AC'97. Микросхема имеет встроенный 51-й микроконтроллер, заточена именно для создания USB-аудио устройств. Исходники на сайте у TI можете скачать бесплатно. Имеет возможность загрузки программы по USB (никаких программаторов и эмуляторов не надо).

И если уж Terratec использует эти контроллеры (если точнее - TUSB3200) в своих устройствах, то это чего-то да стоит.

 

С Уважением!

 

Качество превалирует =)

Хотелось дуплекс на 192КГц и 12МБит не хватает - отсюда и взялись ARMы в BGA (USB HiSpeed там)

 

TAS1020B смотрели, и правда интересно, но ограничения по скорости не радуют...

Это как со стороны USB, так и со стороны I2S.

Даже 96КГц дуплекс не пролезет, если в формате будет выравнивание до 32 бит! 96*32*2*2=12.3МБит

Если можно замутить в комп 24Б, то пролазит по USB, но сказываются ограничения по I2S.

 

Еще ОЧЕНЬ плохо для качества оцифровки что I2S не умеет быть slave! (у TAS1020)

Правда есть внешнее тактирование, но это немного не то.

Share this post


Link to post
Share on other sites
Качество превалирует =)

Хотелось дуплекс на 192КГц и 12МБит не хватает - отсюда и взялись ARMы в BGA (USB HiSpeed там)...

Для такой большой скорости данных ARM7 я Вам категорически не рекомендую - падёт он от пересылок по многим каналам, как загнанная лошадь.

Если делать на ПЛИС напрягает, лучше подыскать более подходящий процессор. На мой взгляд, лучче брать DSP - от AD или TI. Мне, например, BlackFin нравится - он как раз для такой задачи. Есть и с HS USB контроллером - ADSP-BF524 или BF525, например (правда, пока только в инженерных сэмплах, но в этом году уже выпустить в продажу обещают). В противном случАе, придётся ставить внешний.

ISP1582 не советую - сексу с ним много. От Cypress контроллеры надёжнее, и документация к ним не в пример NXP.

Share this post


Link to post
Share on other sites
Для такой большой скорости данных ARM7 я Вам категорически не рекомендую - падёт он от пересылок по многим каналам, как загнанная лошадь.

Если делать на ПЛИС напрягает, лучше подыскать более подходящий процессор. На мой взгляд, лучче брать DSP - от AD или TI. Мне, например, BlackFin нравится - он как раз для такой задачи. Есть и с HS USB контроллером - ADSP-BF524 или BF525, например (правда, пока только в инженерных сэмплах, но в этом году уже выпустить в продажу обещают). В противном случАе, придётся ставить внешний.

ISP1582 не советую - сексу с ним много. От Cypress контроллеры надёжнее, и документация к ним не в пример NXP.

 

Спасибо за отзыв.

 

А почему ARM7 не покатит? Банально скорости не хватит, или что? :05:

 

Если так дело оборачивается... То можно и на ПЛИС, только КАК?

ЧТО на нем можно/нужно реализовать?

 

Для поставленной задачи максимум USB HiSpeed необходим...

 

Разработка - хорошо, а черес сколько лет она в россии появится? :biggrin:

Внешний контроллер - плохо. Но что делать...

Edited by MAXvaLL

Share this post


Link to post
Share on other sites
А почему ARM7 не покатит? Банально скорости не хватит, или что?
Ну, типа того. Кто сказал, что у Вас будет только 2 канала? Хорошая аудиокарта имеет 2-4 канала входных и 4-6 выходных. Всё это работает на 192 квыб/с одновременно. АРМ7-му с такими объёмами пересылок справиться трудно; у выпускаемых чипов с этой архитектурой нормального DMA пока что не встречал. ARM9 ещё посмотрите, там всё не так грустно.

 

Если так дело оборачивается... То можно и на ПЛИС, только КАК?

ЧТО на нем можно/нужно реализовать?

В принципе, всё, кроме А/Ц тракта и USB PHY.

 

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

Пришлют и Вам, если закажете. :)

 

...Внешний контроллер - плохо. Но что делать...
Это - не самое трудное, дорогое и неприятное.

Сделать качественный А/Ц и Ц/А тракты - вот что самое сложное.

Share this post


Link to post
Share on other sites
Кто сказал, что у Вас будет только 2 канала? Хорошая аудиокарта имеет 2-4 канала входных и 4-6 выходных. Всё это работает на 192 квыб/с одновременно.

 

Да вот я говорил... :)

 

Наша карта задумывалась восновном для качественной стерео записи и одновременного прослушивания.

 

Коечно в далеееекой перспективе видятся эти 10 каналов, но только в далекой.

 

И потом, в каком же это формате все пойдет на комп?

 

Кстати, немаловажный вопрос - скажите, а что с ценами?

Как расставить по цене ARM7/9, ПЛИС и DSP?

А по сложности?

 

Спасибо!

 

ЗЫ Самое смешное - мы начинали с ATmega162+PDIUSB12! А вы говорите ARM7 слабоват :biggrin:

(Там было 44.1*16 стерео симплексн.)

Share this post


Link to post
Share on other sites
Наша карта задумывалась восновном для качественной стерео записи и одновременного прослушивания.

Коечно в далеееекой перспективе видятся эти 10 каналов, но только в далекой.

Лучше сразу заложиться, чтобы потом не переделывать.

 

...Кстати, немаловажный вопрос - скажите, а что с ценами?

Как расставить по цене ARM7/9, ПЛИС и DSP?

ARM-ы несколько дешевле, ПЛИС и DSP сравнимы по цене.

Для хорошего аудио нужны качественные АЦП и ЦАП, а также другие компоненты, которые стоят весьма дорого.

Например, даже конденсаторы и резисторы нужно выбирать очень тщательно.

В 5000 рублей по комплектующим, тем не менее, уложиться можно.

 

А по сложности?
Стоимость разработки для ARM и DSP примерно одинакова (лицензированные средства разработки, правда, для DSP дороже). Для ПЛИС стоимость разработки во много раз выше.

 

ЗЫ. В качестве курьёза:

http://www.ixbt.com/proaudio/lynx-two.shtml

Присмотревшись к фото, не обнаружил там ничего, что могло бы потянуть на 1500$. Кондёры - керамика и самые отстойнейшие электролиты, чипы - стандартные, за исключением, пожалуй, заказного процессора.

Фуфло, короче...

Share this post


Link to post
Share on other sites
Присмотревшись к фото, не обнаружил там ничего, что могло бы потянуть на 1500$. Кондёры - керамика и самые отстойнейшие электролиты, чипы - стандартные, за исключением, пожалуй, заказного процессора.

Фуфло, короче...

ИМХО норму прибыли определяет еще и объем продаж.

Пример (весьма грубый и аллегоричный конечно же). Можно легко продать миллион кодеков AC97 по $1.5 и иметь прибыль $500 тыс. А попробуйте продать хотя бы 1000 этих вот специфичных звуковых карт, чтобы получить такую же прибыль.

Share this post


Link to post
Share on other sites

Четыре канала на ввод и 10 на вывод никакого USB не хватит. А тем более виндовые драйвера завалятся. Я даже в полудуплексе 192/24 немного сомневаюсь, скорее всего придется какой- то сервиспак на винду ставить. И полного дуплекса никто и не обещал. Хотя прослушать себя можно- поток с АЦП отправляется в комп по USB и на DAC для самоконтроля. А вот смикшировать в винде по цифре и обратно выпихнуть по USB- уже неполучится. Хотя можно смотреть в сторону Эзернета. НАрод на аудиофорумах говорит про новые веяния скоростного пропихивания аудио через Эзернет на уровне МАК адресов карты, без всякого TCP и UDP. Но это все пока только тесты. Хотя LPC2368 и для этого годиться.

По поводу High speed USB. А виндовые драйвер поймут такое аудиоустройство?

По поводу DMA у LPC2368. Вроде оно работает, только там чудес много. Например оно работает только с RAMом USB. Даташит вообще читать почти бесполезно, лучше следить за конфой на http://groups.yahoo.com/group/lpc2000/ Зато это решение почти самое дешевое для 192/24. Cypress c FPGA выходят гораздо дороже.

А про связку ATmega162+PDIUSB12 можно подробнее? PDIUSB12 не в DMA работала? Нечто подобное тоже рисовал, но Атмега8 только конфигурила PDIUSB12 и следила за ошибками протокола. Сам трансфер был по DMA в сериалайзер на XC9572 (карта была только на выход).

Share this post


Link to post
Share on other sites

Полный дуплекс 192/24 стерео в виндюках все-таки работает. У меня такое устройство уже второй год серийно выпускается (правда, в виде блока, а не карты). Проблемы с драйверами есть, но преодолимые. Требуется только, чтобы протокол USB был полностью в руках. Мы использовали поэтому ISP1581 (можно и 1582). Возни с ними много, но, в основном, потому что описание - дерьмо. Кристаллы очень приличные. Проблемы с драйверами в том, что в Win XP (младше не работает вообще) в изохроне у мелкомягкого работает только режим, когда в фрейме задействован один микрофрейм, в котором можно передать до 3 пакетов данных, а обычно периферийные чипы при увеличении загрузки стремятся использовать несколько микрофреймов во фрейме и один пакет в микрофрейме. При воспроизведении в этом месте проще, но зато есть засада с синхронизацией. Либо надо делать очень большие буфера в периферийном устройстве, либо старательно обманывать дядю Билли, т.к. при попытке слегка увеличить или уменьшить поток виндюки делают это через неделю.

Что касается действительно хорошего АЦП, то я знаю только один - EK5394A, который и был использован в этом устройстве. От него действительно можно получить 120 дБ сигнал/шум (если Вам нужно столько).

Share this post


Link to post
Share on other sites
Четыре канала на ввод и 10 на вывод никакого USB не хватит. А тем более виндовые драйвера завалятся. Я даже в полудуплексе 192/24 немного сомневаюсь, скорее всего придется какой- то сервиспак на винду ставить. И полного дуплекса никто и не обещал. Хотя прослушать себя можно- поток с АЦП отправляется в комп по USB и на DAC для самоконтроля. А вот смикшировать в винде по цифре и обратно выпихнуть по USB- уже неполучится.
Простите, но мне кажется, что Вы обрисовали вопрос не совсем правильно.

1. Пропускной способности HS USB для передачи 10 каналов в произвольных направлениях хватит.

192к*24*10=46 080к, в то время, как реальная пропускная способность USB - около 400 000к, что почти в 10 раз больше (при отсутствии ошибок в канале, ессно).

2. Драйвера для такого чюда, скорее всего, придётся писать самому. Не уверен, что со "стандартными" вообще получится что-то путное.

3. А никто и не заставляет под виндой делать какое-либо микширование, равно как и вообще какую-либо реал-тайм обработку. Именно для этого на аудиокартах ставится DSP, который делает всё "на месте": поддерживает ввод-вывод, буферизацию данных по каналам, микширование, спецэффекты и т.д. Без данного устройства современную, даже недорогую, компьютерную аудиосистему представить себе уже трудно...

 

...По поводу High speed USB. А виндовые драйвер поймут такое аудиоустройство?
Тут дело не в HS, а в том, чтобы "прикинуться" стандартным USB устройством. Тогда поймёт. Хотя, эта затея более, чем сомнительна (не в смысле сложности реализации - протоколы обмена неплохо документированы)...

Share this post


Link to post
Share on other sites
Что касается действительно хорошего АЦП, то я знаю только один - EK5394A, который и был использован в этом устройстве. От него действительно можно получить 120 дБ сигнал/шум (если Вам нужно столько).
Может, все же AK5394A?

Share this post


Link to post
Share on other sites

Да, конечно, sorry, он у меня в каком-то старинном документе так был поименован.

Share this post


Link to post
Share on other sites
ИМХО норму прибыли определяет еще и объем продаж.
Эта карта относится к разряду "профессиональных", и, по результатам тестирования на ixbt (весьма поверхностного, кстати) действительно показывает неплохие характеристаки, во всяком случае, по сравнению с другими. Но 1300-1500$ - это явный перебор...

 

...Мы использовали поэтому ISP1581 (можно и 1582). Возни с ними много, но, в основном, потому что описание - дерьмо. Кристаллы очень приличные.
Плюс - довольно большой объём буферного ОЗУ.

Минус - параллельная шина ВВ имеет меньшую пропускную способность, чем HS USB канал, что может стать очень существеннным при организации дуплекса.

Документация NXP давно уже стала притчей во языцех...

 

...Проблемы с драйверами в том, что в Win XP (младше не работает вообще) в изохроне у мелкомягкого работает только режим, когда в фрейме задействован один микрофрейм, в котором можно передать до 3 пакетов данных, а обычно периферийные чипы при увеличении загрузки стремятся использовать несколько микрофреймов во фрейме и один пакет в микрофрейме...
Простите, не понял.

1. Зачем вообще нужен изохрон?

2. Что значит "стремятся"?

Share this post


Link to post
Share on other sites
Простите, но мне кажется, что Вы обрисовали вопрос не совсем правильно.

192к*24*10=46 080к, в то время, как реальная пропускная способность USB - около 400 000к, что почти в 10 раз больше (при отсутствии ошибок в канале, ессно).

Извините, чего пропускная способность? :07: Во первых, у АРМа (2368) USB2.0 FULL speed (а не HIGH) что дает нам на шине 12 Мб "грязными", реальных мегаБАЙТА 1.5-1.8 если спользовать фичи типа ДМА и мультиплекстрованны буферов.

А 400Мб это только в страшном сне приснится (или имеется ввиду USB3?). На специально заточенных виндах, только при определенных контроллерах USB2 high speed на материнках народ выжимал из Cypress 45МБАЙТ в одну сторону, а обычно получалось 28-35 МБ.

А ошибок в потоковых приложениях никто не исправляет- некогда, действуют по принципу "Померла так померла" (с)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this