У уже присал, high speed usb - на нем stereo 32/192000 - через ASIO4ALL в HDSDR работает. Проверял в W10.
У уже присал, high speed usb - на нем stereo 32/192000 - через ASIO4ALL в HDSDR работает. Проверял в W10.
Последний раз редактировалось Genadi Zawidowski; 13.03.2018 в 20:15.
Всем привет, посмотрите, вот на сайте, человек сам собирает разную акустику, в том числе и usb bluetooth колонки, и довольно качественный звук получается при минимальных затратах, и нормальную мощность выдаёт. Довольно таки интересно, причём собирает на бюджетных усилках, с али.
Проверил UAC2 аудиоустройство с W10.
Получил трески рассинхронизации звука при передаче из радио в компьютер. Обратно все идет нормально (есть проблемы при попытке использования feature unit, но это не сейчас). Я пытаюсь без выделенной feedback EP решить - в UAC1 нормально. На OUT направлении работает ресэмплинг.
ВОПРОС...
В UAC1 можно было сказать о двух допустимых форматах передачи (16/48000/стерео или 24/96000/стерео). Тут же можно задать отдельно допустимые сэмпл рейт и формат. В результате получаю в windows выбор из трех опций - 16/48000/стерео, 24/48000/стерео или 24/96000/стерео. Вторая не нужна. Как быть? Топология аудиоустройства во всех альтернативных конфигурациях только одна на всех.
Последний раз редактировалось Genadi Zawidowski; 29.09.2019 в 14:19.
У in конечной точки атрибут есть, емнип, что она неявную синхронизацию выдаёт. Т.е. сколько получили отсчётов с радио между кадрами, столько и выдаём в буфер.
В UAC1 так и работало. В UAC2 нет:
А вот и картинка про лишний формат.Код:// Мой вариант static const uint_fast8_t USBD_UAC1_IN_EP_ATTRIBUTES = USB_ENDPOINT_USAGE_IMPLICIT_FEEDBACK | //USB_ENDPOINT_USAGE_DATA | USB_ENDPOINT_SYNC_ASYNCHRONOUS | USB_ENDPOINT_TYPE_ISOCHRONOUS; // UAC2 Windows 10 // For the Adaptive IN case the driver does not support a feedforward endpoint. static const uint_fast8_t USBD_UAC2_IN_EP_ATTRIBUTES = USB_ENDPOINT_USAGE_IMPLICIT_FEEDBACK | //USB_ENDPOINT_USAGE_DATA | USB_ENDPOINT_SYNC_ASYNCHRONOUS | USB_ENDPOINT_TYPE_ISOCHRONOUS;
https://docs.microsoft.com/en-us/win...-audio-drivers я не настолько силён в топологии uac2, но, кажется, приплыли
For the asynchronous OUT case the driver supports explicit feedback only. A feedback endpoint must be implemented in the respective alternate setting of the AS interface. The driver does not support implicit feedback.
There is currently limited support for devices using a shared clock for multiple endpoints.
For the Adaptive IN case the driver does not support a feedforward endpoint. If such an endpoint is present in the alternate setting, it will be ignored. The driver handles the Adaptive IN stream in the same way as an Asynchronous IN stream.
The size of isochronous packets created by the device must be within the limits specified in FMT-2.0 section 2.3.1.1. This means that the deviation of actual packet size from nominal size must not exceed +/- one audio slot (audio slot = channel count samples).
Так с OUT вообще никаких проблем... Компютер выдает, трансивер ресэмплит как может.
Кстати, странно. Все примеры - без shared clock.
ps: и зачем оно мне... Просто решил посмотреть, а не будет ли каких-то приятных плюшек, каких нет в UAC1. А тут пока сплошные занозы…
upd: а вот тут много приятного пишут...
Последний раз редактировалось Genadi Zawidowski; 29.09.2019 в 20:24.
Двунаправленное устройство с общим clock_source для всех блоков в топологии и такими как в цитате ниже атрибутами ендпоинтов не стало нормально звук в компютер передавать. Даже при наличии потока в трансивер.
Код:// UAC2 Windows 10 // For the Adaptive IN case the driver does not support a feedforward endpoint. static const uint_fast8_t USBD_UAC2_IN_EP_ATTRIBUTES = USB_ENDPOINT_USAGE_IMPLICIT_FEEDBACK | USB_ENDPOINT_SYNC_ASYNCHRONOUS | USB_ENDPOINT_TYPE_ISOCHRONOUS; // UAC2 Windows 10 // For the asynchronous OUT case the driver supports explicit feedback only. static const uint_fast8_t USBD_UAC2_OUT_EP_ATTRIBUTES = USB_ENDPOINT_USAGE_IMPLICIT_FEEDBACK | USB_ENDPOINT_SYNC_SYNCHRONOUS | USB_ENDPOINT_TYPE_ISOCHRONOUS;
Последний раз редактировалось Genadi Zawidowski; 30.09.2019 в 01:49.
Прогнал своё устройство через USB тест на совместимость.
https://www.usb.org/sites/default/fi...%20Release.exe
После устранения некоторых шероховатостей тест прошел.
Поскольку у устройств на renesas после переделки USB стека на использование структуры от ST Cube появились проблемы с передачей звука в и из компьютера, решил проверить опять...
Сейчас на моём компьютере W10 x64 одинаково хорошо работает UAC1 и UAC2 в оба направления. UAC2 тестировался в топологии без совмещения источников синхронизации в трактах приема и передачи.
Вопросы, вернее размышления сформулированные как вопросы:
1.
Почему на некоторых windows (к примеру, W10 и ранее на этой же машине) передача по прежнему щелкает (в сторону компьютера – не работает resampling в windows, в трансивер – компьютер перелает с перерывами, что мой resampler не справляется).
2.
Что может быть у меня не так, трансивер вклбченный во внешний USB HUB (с поддержкой USB3) работает «частично» – только функции работающие через EP0 и ни компорты ни аудио ничего не передают. При этом, например, DFU – через EP0 – передает мегабайты без проблем.
Тест качать отсюда:
https://www.usb.org/documents?search...ms_per_page=50
Последний раз редактировалось Genadi Zawidowski; 14.11.2019 в 00:30.
А под линуксом оно же работает? Wireshark URB показывает в сторону устройства и от него при передаче звука/работы CDC?
Ну и самая печальная новость - для отладки таких багов "и окончательного решения шинного вопроса" нужен аппаратный анализатор с HS USB. Потому что NAK или STALL иначе увидеть не получается.
Добавлено через 57 минут(ы):
И ещё, если порт usb3 подключить usb2 кабелем, без хаба - работает нормально? И как работает, если подключить через usb2 хаб?
Последний раз редактировалось romanetz; 14.11.2019 в 07:32.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)