DASM 0 26 декабря, 2019 Опубликовано 26 декабря, 2019 · Жалоба Не могу понять даже как подступиться. По Wirehark смотрю - выдает абсолютно те же самые дескрипторы, что и образцовая плата USB-I2S конверетера, что я брал за образец (есть сурцы). Но при попытке выдать звук - вижу три isochronous out пакета и молчок. Причем пакеты "без ответа" внутри Wirehark/ Я так понял, что, хотя изохронн не подразуемевает никаких ответов - это Wireshark пишет ответ от драйвера , мол "отправил". Соответвенно драйвер видать , такого не говорит. Ютуб тут же притормаживает и стопорит ролик. Не идет звук и данные вообще никак. Под Линуксом ситуация иная. Драйвер пакеты isochronous out выдает явно, мой процессор их ловит, но они все не более 24 байт длиной, вместо 1500 байт почти ожидаемых. По dmesg никаких проблем с этим самописным audio device не видно. Вот что такое можно сделать, если дескрипторы правильные, но данные не идут, и это на изохронную точку, которой ничего подтверждать не надо? Неделю бьюсь уже, хоть сниффер хардварный делай. Чую проблема какой-нибудь один несчастный битик, но вот где он.. Может есть идеи какие? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 26 декабря, 2019 Опубликовано 26 декабря, 2019 · Жалоба Со стороны устройства ендпоинт получать данные готов? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 26 декабря, 2019 Опубликовано 26 декабря, 2019 · Жалоба 41 minutes ago, GenaSPB said: Со стороны устройства ендпоинт получать данные готов? endpoint то да, подготовлена, от линуксового то драйвера ловит обрывки какие-то пакетов изохрона. Да и что значит "готов" применительно к изохрону? Изохрон не может сказать "не готов" или "подожди". Повалятся так повалятся, если я все правильно понимаю. Обратных связей по другим эндпойтам в моем варианте нет, "синхронный" режим с одной out точкой, девайс сам подстраивает своей кварец под поток. Такое чувство, что после энумерации виндовый драйвер остался чем-то недоволен и слать данные не хочет. Но ничего не сообщает. Линуксовый то ли менее строгий, то ли более сообразительный, то ли пофигист, но что-то шлет, но это что-то (хотя это и явно аудиопоток, по байтам вижу) - мелкими пакетами, а совсем не теми, что положено. Да и мне под винду надо в любом случае. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex11 5 26 декабря, 2019 Опубликовано 26 декабря, 2019 · Жалоба С пакетами 1500 будут большие проблемы. У Вас режим HS или FS? Для FS это просто не реально, для HS тоже будут сложности. Винда не работает с большими потоками по USB в изохроне. Мы в свое время пытались заставить, но не вышло ничего. Максимум, что она может - 3 пакета в одном микрофрейме за фрейм, все остальные режимы не работают, если нужно больше одного пакета в микрофрейме. Запихнуть пакеты в каждый микрофрейм тоже не получалось, даже по одному. Попробуйте уменьшить поток, может быть поможет понять проблему. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 26 декабря, 2019 Опубликовано 26 декабря, 2019 · Жалоба 35 minutes ago, Alex11 said: С пакетами 1500 будут большие проблемы. У Вас режим HS или FS? Для FS это просто не реально, для HS тоже будут сложности. Винда не работает с большими потоками по USB в изохроне. Мы в свое время пытались заставить, но не вышло ничего. Максимум, что она может - 3 пакета в одном микрофрейме за фрейм, все остальные режимы не работают, если нужно больше одного пакета в микрофрейме. Запихнуть пакеты в каждый микрофрейм тоже не получалось, даже по одному. Попробуйте уменьшить поток, может быть поможет понять проблему. до винды дело вообще не доходит - она совсем ничего не шлет. А девайсу с такими же дескрипторами - шлет. Не 1500, вроде около 500, ошибся. Суть не в этом увы Пока что на FS ставлю только дескрипторы, мороку с HS оставлю на потом Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 26 декабря, 2019 Опубликовано 26 декабря, 2019 · Жалоба 2 hours ago, DASM said: Пока что на FS ставлю только дескрипторы, мороку с HS оставлю на потом Оригинал-то HS-ный? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ig_z 0 27 декабря, 2019 Опубликовано 27 декабря, 2019 · Жалоба 16 hours ago, DASM said: Не могу понять даже как подступиться. По Wirehark смотрю - выдает абсолютно те же самые дескрипторы, что и образцовая плата USB-I2S конверетера, что я брал за образец (есть сурцы). Но при попытке выдать звук - вижу три isochronous out пакета и молчок. Причем пакеты "без ответа" внутри Wirehark/ Я так понял, что, хотя изохронн не подразуемевает никаких ответов - это Wireshark пишет ответ от драйвера , мол "отправил". Соответвенно драйвер видать , такого не говорит. Ютуб тут же притормаживает и стопорит ролик. Не идет звук и данные вообще никак. Какой тип синхронизации устройства? Как вариант, если это дуплексный юсб девайс с имплисит синхронизацией, то такое поведение вполне возможно (на винде в фул спид видел подобное поведение с плойтековским и мбокс драйверами). Можно посмотреть на сурцы образца? И какой драйвер под виндой? Они вроде в 10 добавили поддержку юсб аудио 2. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 27 декабря, 2019 Опубликовано 27 декабря, 2019 · Жалоба Девайс этот https://www.chipdip.ru/product0/9000569733?from=suggest_product , там и исходники, сделано на базе референса STM похоже. Доберусь до работы - приведу их дискрипторы. Работет их как часики. Синхронизация - первое что думал. Но у них в дескрипторах есть через #ifdef вариант без обратной связи и только одной изохронной pipe - так и перекомрилировал, работает. После энумерации и перед play идут только две посылки специфичных для аудио, get_mute и вроде set-cur . По одной mute проверяет, по другой частоту семплирования задает. Я в своем девайсе отвечаю на эти запросы точно также. И вот после этих двух запросов в чип и диповский начинается поток, а в мой - ничего, драйвер висит. У линуксовоги это тоже не работа, просто глючит иначе. Драйвер винды хз какой, винда 10, последние паки. Но чудеса то не в драйвере, а почему разное поведение устройств, которые согласно Wireshark выглядят идентично. Вероятно он что-то не видит на самом низком уровне 9 hours ago, esaulenka said: Оригинал-то HS-ный? FS, у того чипа нет HS PHY. Правда в исходниках они 200 версию юсб почему-то оставили и отвечают на специфичные HS запросы. Я это пофиксил, отдаю 110 версию юсб, на работу их варианта не повлияло, избавился от лишних запросов только Мой девайс - на АМ3352 с мутной менторовской коркой, но более менее с ней понятно, и, главное, обмен то она дает такой же в итоге, как и оригинал. До начала потока... Заказал USB3300 - буду сниффер делать, другого выхода не вижу. Дело принципа разобраться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
asnoeuh 0 27 декабря, 2019 Опубликовано 27 декабря, 2019 · Жалоба Столкнулся с точно такой же проблемой но на F103, только бьюсь уже два месяца :) Удалось немного продвинуться только когда на ISO endopoint началь переключать биты DTOG_RX/DTOG_TX для работы double buffering. Какие-то данные под линуксом стали приходить, но под виндой ничего не изменилось... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 27 декабря, 2019 Опубликовано 27 декабря, 2019 · Жалоба 57 minutes ago, asnoeuh said: Столкнулся с точно такой же проблемой но на F103, только бьюсь уже два месяца :) Удалось немного продвинуться только когда на ISO endopoint началь переключать биты DTOG_RX/DTOG_TX для работы double buffering. Какие-то данные под линуксом стали приходить, но под виндой ничего не изменилось... чет вообще связи не вижу, это же винда пакетов вообще не дает на выход в endpoint ... ну радует , что не я один. А у вас STM - попробуйте адаптировать тот код от Чипа Дипа. У меня сложнее, ибо окромя таких проблем есть еще полная неуверенность что mentor MUSB кора работает так, как представляю по разрозненным докам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 27 декабря, 2019 Опубликовано 27 декабря, 2019 · Жалоба 5 hours ago, DASM said: буду сниффер делать Я, кстати, искал косяк в USB с помощью Saleae. Для фулл-спид его вполне хватает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 27 декабря, 2019 Опубликовано 27 декабря, 2019 · Жалоба 36 minutes ago, esaulenka said: Я, кстати, искал косяк в USB с помощью Saleae. Для фулл-спид его вполне хватает. а там есть какой плагин для этого или визуально? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 27 декабря, 2019 Опубликовано 27 декабря, 2019 · Жалоба 1 minute ago, DASM said: а там есть какой плагин для этого или визуально? Самый низкий уровень оно умеет: показывает PID-адрес-данные-контролька. А дальше - беда, пришлось USB in Nutshell вспоминать. Правда, у меня этот самый низкий уровень и глючил... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex11 5 27 декабря, 2019 Опубликовано 27 декабря, 2019 · Жалоба Quote буду сниффер делать DASM, Если хотите - заходите в понедельник вечерком в гости - у меня есть готовый сниффер. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 27 декабря, 2019 Опубликовано 27 декабря, 2019 · Жалоба 2 hours ago, Alex11 said: DASM, Если хотите - заходите в понедельник вечерком в гости - у меня есть готовый сниффер. а в файл можно будет обмен скинуть, чтобы дома потом спокойно изучить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться