ЮСБ девайс постоянно обменивается парой сотен байт, размер приема и передачи всегда одинаковый.
Период такого обмена выходит от 1мс. Для теста контроллер вообще ничего кроме этого не делает (программа на ПК кстати тоже=) ). Через рендомные промежутки времени (от получаса до 20 часов) передача прекращается и контроллер ждет в функции Write
Код
// Wait for the the first bank to be sent
while ( !(pUdp->UDP_CSR[AT91C_EP_IN] & AT91C_UDP_TXCOMP) );
а ПК, в свою очередь, где=то внутри функции Read(обмен синхронный). Так продолжается от 5 до 30 секунд, после чего
передача чудесным образом возобновляется. Пробовал таймауты на стороне контроллера.
Слал пакеты неправильной длинны (больше или меньше ожидаемого), все синхронизхируется и возобновляется нормально, но проблема остается.
Пробовал bulkusb.sys+basicUSB чуть доделанный, CDC+ЦДЦ пример из ЮСБ фреймворк(типа на прерываниях), симптомы одни и те же.
Что делать?