Всем доброго времени! Прошу подскажите куда копать уже несколько дней и бессонных ночей

никак не поедут лыжи

В общем пытаюсь запустить аудио поток по 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), пробовал сделать обработку прерывания как там написано, но толку с этого ноль

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

Буду рад за любую подсказку, спасибо!
Сообщение отредактировал Left Radio - Sep 29 2014, 01:21