реклама на сайте
подробности

 
 
> USBAUDIO.SYS, Сколько входных каналов он поддерживает?
amw
сообщение Apr 14 2008, 14:11
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Устройство аналогового ввода-вывода.
4 ADC + 2 DAC.
То есть 4 входа и 2 выхода.
Прикидывается USB Audio.
Выходы описаны как SPEAKER, входы - MICROPHONE.
Все было хорошо пока использовался Linux.
Но понабилось и Windows.
Так вот Windows видит только 2 ADC а остальные 2 в упор не видит.
Все программы для работы со звуком знают только mono и stereo, а попытки воспользоваться звуковым WinAPI дают ошибки при указании числа входных каналов больше 2.
Для тестирования прописал в устройстве 4 выхода и вывел 2 лишних на последовательный порт.
Windows 4 выхода видит и медиаплеер играет на все 4 канала.

Так что, USBAUDIO.SYS не поддерживает 4 микрофона?
Как его заставить видеть все 4 входа?
Спецификация USB Audio Class Devices 1.00 имеет только определения для разных вариантов микрофона, типа MICROPHONE SET и никаих других вариантов для входов не остается. Во всяком случае я не нашел других типов входов. Или я не там смотрел?
Поможет ли переход на USB Audio Class Devices 2.00?
Ориентируюся на WinXP и Vista.

Дескриптор прилагается.
Прикрепленные файлы
Прикрепленный файл  desc.txt ( 7.36 килобайт ) Кол-во скачиваний: 74
 


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
galjoen
сообщение Apr 20 2008, 12:50
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(amw @ Apr 20 2008, 16:12) *
Ну во первых у меня не HID а AUDIO.

Это я понял.
Цитата(amw @ Apr 14 2008, 18:11) *
Устройство аналогового ввода-вывода.
4 ADC + 2 DAC.
То есть 4 входа и 2 выхода.
Прикидывается USB Audio.

Я вообще-то предлагал вам "прикинуться" не USB Audio, а USB HID. А чтобы обеспечить такую-же скорость передачи данных - составным HID. Из 6 интерфейсов, или 12 если скорость такая нужна. Кроме того в этом случае будет гарантироваться доставка.
Цитата(amw @ Apr 20 2008, 16:12) *
Основная проблема заключается в том, что крайне нежелательно иметь собственный драйвер. Плюс Windows, как оказалось, в этом вопросе (USB Audio) сильно ограниченная. Работают очень мало вариантов комбинаций конфигурации.

В случае HID, собственного драйвера под Win не нужно. А насчёт глюков с конфигурацией - верно. Заметил, что почему-то под Win MassStorage в составе составного устройства работет ТОЛЬКО если у его интерфейса N=0. Но с 12 интерфейсами HID работает. Хотя для этого 12 EP нужно. Если, как я сейчас понял, вы на LPC2378 делаете, то у него вроде столько нет. Хотя м.б. и можно одну (с одинаковым адресом) Interrupt In EP или Ineterrupt Out EP в нескольких интерфейсах использовать. Я не пробовал, мне EP хватало.
Go to the top of the page
 
+Quote Post
amw
сообщение Apr 20 2008, 13:13
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(galjoen @ Apr 20 2008, 15:50) *
Я вообще-то предлагал вам "прикинуться" не USB Audio, а USB HID. А чтобы обеспечить такую-же скорость передачи данных - составным HID. Из 6 интерфейсов, или 12 если скорость такая нужна. Кроме того в этом случае будет гарантироваться доставка.

Что-то я не понял идеи с HID.
Если я сделаю свои АЦП/ЦАП как HID (что конечно в принципе реализуемо, но нужно в корпусе smile.gif ), разве будет, например, Windows Media Player проигрывать на мой HID музыку? Что то я сильно сомневаюся.
Сомневаюся также что через HID можно "прокачать" 4вх + 2вых каналов по 16 бит и дискретизацией 10кГц. И это только минимальные характеристики. Сейчас прорабатываем вариант с 4вх + 4вых все по 16бит и дискретизация от 8кГц до 48кГц.
Собственно USB Audio и выбрал потому, чтоб можно было использовать существующий софт для обработки данных. Сам софт я не разрабатываю, клиенты сами решают что им больше подходит, но в большинстве случаев используются программы работы со звуком, имеющиеся в почти каждом дистре Linux. Очень желательно получить тот-же результат и с Windows.


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post
galjoen
сообщение Apr 20 2008, 14:18
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(amw @ Apr 20 2008, 17:13) *
Что-то я не понял идеи с HID.
Если я сделаю свои АЦП/ЦАП как HID (что конечно в принципе реализуемо, но нужно в корпусе smile.gif ), разве будет, например, Windows Media Player проигрывать на мой HID музыку? Что то я сильно сомневаюся.
Сомневаюся также что через HID можно "прокачать" 4вх + 2вых каналов по 16 бит и дискретизацией 10кГц. И это только минимальные характеристики. Сейчас прорабатываем вариант с 4вх + 4вых все по 16бит и дискретизация от 8кГц до 48кГц.
Собственно USB Audio и выбрал потому, чтоб можно было использовать существующий софт для обработки данных. Сам софт я не разрабатываю, клиенты сами решают что им больше подходит, но в большинстве случаев используются программы работы со звуком, имеющиеся в почти каждом дистре Linux. Очень желательно получить тот-же результат и с Windows.

1. Как музыку конечно проигрывать HID конечно никто не будет
2. Через HID "прокачать" 4вх + 2вых каналов по 16 бит и дискретизацией 10кГц можно. Для этого (4+2)*2*10=120 байт/мСек нужно будет 2 HIDа. Или вроде даже 1го хватит, но пользоваться неудобно будет.
3. HID это максимум 64 байта/мСек с гарантированной доставкой через КАЖДУЮ In In и In Out EP (контрольный канал не учитываем) в обе стороны. Т.е. для 16 бит это 32 кГц на каждую EP.
4. Составное устройство (в т.ч. HID) может иметь до 16 EP, и общую скорость передачи (в обе стороны) 16*64=1024 байт/мСек, что является максимальным для full speed. Но в этом случае ошибки будут приводить к уменьшунию скорости передачи. Если сделать меньше EP, например 12, то ошибки будут исправляться, не приводя к уменьшению скорости.
5. Случай (4вх+4вых)*2байта*48выборок/мСек=768байт/мСек. Т.е. вам нужно 12 EP 768/64=12. Из них 6 EP In In и 6 In Out. Для этого достаточно 6 HID устройств (в каждом по одной In In EP и одной In Out EP). Т.е. USB девайс с 6 HID интерфейсами. Хотя конечно распределять 4 вх/вых на 6 EP, а потом всё это собирать...

Думаю в принципе реализовать такое можно, но нужно-ли? Это от задачи зависит. Ваша, на мой взгляд, как-то не очень ложится. Тем более, что софт для компьютера придётся разрабатывать.
А вот у меня задача есть, которая отлично на 12 HIDов ложится. Если договоримся с заказчиками - так сделаю.
Go to the top of the page
 
+Quote Post
amw
сообщение Apr 20 2008, 15:03
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(galjoen @ Apr 20 2008, 17:18) *
1. Как музыку конечно проигрывать HID конечно никто не будет
2. Через HID "прокачать" 4вх + 2вых каналов по 16 бит и дискретизацией 10кГц можно. Для этого (4+2)*2*10=120 байт/мСек нужно будет 2 HIDа. Или вроде даже 1го хватит, но пользоваться неудобно будет.
3. HID это максимум 64 байта/мСек с гарантированной доставкой через КАЖДУЮ In In и In Out EP (контрольный канал не учитываем) в обе стороны. Т.е. для 16 бит это 32 кГц на каждую EP.
4. Составное устройство (в т.ч. HID) может иметь до 16 EP, и общую скорость передачи (в обе стороны) 16*64=1024 байт/мСек, что является максимальным для full speed. Но в этом случае ошибки будут приводить к уменьшунию скорости передачи. Если сделать меньше EP, например 12, то ошибки будут исправляться, не приводя к уменьшению скорости.
5. Случай (4вх+4вых)*2байта*48выборок/мСек=768байт/мСек. Т.е. вам нужно 12 EP 768/64=12. Из них 6 EP In In и 6 In Out. Для этого достаточно 6 HID устройств (в каждом по одной In In EP и одной In Out EP). Т.е. USB девайс с 6 HID интерфейсами. Хотя конечно распределять 4 вх/вых на 6 EP, а потом всё это собирать...

Думаю в принципе реализовать такое можно, но нужно-ли? Это от задачи зависит. Ваша, на мой взгляд, как-то не очень ложится. Тем более, что софт для компьютера придётся разрабатывать.
А вот у меня задача есть, которая отлично на 12 HIDов ложится. Если договоримся с заказчиками - так сделаю.

Спасибо за разъяснения.
Но, к сожалению, такой вариант мне не подходит.


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 06:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.01573 секунд с 7
ELECTRONIX ©2004-2016