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

 
 
> STM32F407+USB3300 потеря пакетов isochronous, бесконечное прерывание incomplite OUT
Left Radio
сообщение Sep 28 2014, 22:06
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 4-11-08
Пользователь №: 41 361



Всем доброго времени! Прошу подскажите куда копать уже несколько дней и бессонных ночей sm.gif никак не поедут лыжи sad.gif В общем пытаюсь запустить аудио поток по HS USB используя PHY USB3300 и STM32F407VE на своей плате, устройство определяется правильно, драйвера устанавливаются для UAC1 в Win7, и нормально видится в linux в UAC1 и UAC2, но как только устройство правильно приконектилось и пошли SOF-ы начинает вызваться прерывание Incomplete isochronous OUT (INCOMPISOOUT в регистре OTG_HS_GINTSTS), причем получаю их постоянно, одно за другим, данные по EP1 естественно при этом не идут, а по EP0 обмен с компом идет нормально (иначе бы ОС не увидело бы девайса, да и перепроверил).

Я использую OTG драйвер от ST и там в обработчике DCD_IsoOUTIncomplete_ISR только сбрасывается прерывание и все, что явно в противоречии с процедурой описанной в доке (Incomplete isochronous OUT data transfers, стр. 1205), пробовал сделать обработку прерывания как там написано, но толку с этого ноль sad.gif Никак не могу понять почему происходит потеря пакетов, код рабочий, с встроенным FS PHY все работает отлично на другой плате(естественно с реконфигурацией проекта под FS).
Железо скорее всего ни причем, так как идет нормальный обмен по EP0, корректно обрабатываются запросы на дескрипторы и на установку AltSettings 0/1. В качестве проверки запускал VCP HS на устройстве с тем же драйвером OTG от ST, правда там bulk а не isochronous, но главное что работает и работает стабильно.
Дескрипторы если нужно выложу, но мне кажется скорее всего проблема не там, и еще подскажите пожалуйста по встроенному DMA под USB HS, как его настроить и куда оно будет ложить данные? Про выравнивание при его использовании знаю, в лоб включение DMA ничего не решает, все также девайс определяется правильно но и по прежнему теряются пакеты sad.gif

Буду рад за любую подсказку, спасибо!

Сообщение отредактировал Left Radio - Sep 29 2014, 01:21
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Left Radio
сообщение Oct 4 2014, 12:30
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 4-11-08
Пользователь №: 41 361



Вижу я тут сам себе пейсатель laughing.gif sm.gif, ну да ладно разбираюсь дальше, как определить все ли приняли по EOPF разобрался, элементарно отслеживать xfer_cnt, но мне это бестолку причина как мне становится ясным не в том, предположения сейчас два, первое - ошибки заголовка пакетов/самих пакетов данных, второе - у ядра HS USB STM нет нативной аппаратной поддержки HS Isochronous EP и возможно ли эту проблему обойти неясно.
USBLyzer, BusHound никаких ошибок или аномального поведения не позволяют выявить, а аппаратного инструментария для мониторинга USB нет, как и нет лог. анализатора на 60МГц sad.gif. Осциллограф на 100МГц есть, но в данном случае не очень помогает, разве что посмотрел форму сигналов ULPI, там вроде бы все нормально.
Отписался на офф. форуме ST, но пока тишина и там, начинаю подумывать над своими драйверами и тогда можно перейти на bulk вместо isochronous, но блин не очень хочется углубятся в это все, да и уйму времени займет sad.gif.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 25th July 2025 - 21:03
Рейтинг@Mail.ru


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