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

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

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

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

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

 

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

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

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

 

С Уважением!

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


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

Есть еще 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)

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

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


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

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

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

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

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

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

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


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

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

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

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

 

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

 

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

 

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

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

 

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

 

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

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

Изменено пользователем MAXvaLL

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


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

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

 

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

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

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

 

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

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

 

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

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

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


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

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

 

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

 

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

 

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

 

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

 

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

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

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

 

Спасибо!

 

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

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

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


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

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

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

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

 

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

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

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

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

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

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

 

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

 

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

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

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

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

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


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

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

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

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

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

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


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

Четыре канала на ввод и 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 (карта была только на выход).

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


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

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

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

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


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

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

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


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

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

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


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

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

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


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

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

 

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

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

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

 

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

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

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

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


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

Простите, но мне кажется, что Вы обрисовали вопрос не совсем правильно.

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 МБ.

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

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


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

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

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

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

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

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

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

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

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

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