Доброго времени суток!
Помогите отладить USB для AT91SAM7X-EK!
Суть проблемы. Устройство должно работать с конечными точками Interrupt, BULK-OUT, BULK-IN (соответственно эндпоинты 1,2,3). Устройство определяется, устанавливается конфигурация, но посылки, отправляемые хостом, не доходят. При этом в регистре статуса точки BULK-OUT появляется мусор. Для эксперимента в качестве BULK-OUT использована нулевая точка - обмен идет нормально. Тот же код для ненулевой точки оказывается нерабочим. Код: ~ if (*AT91C_UDP_ISR & 1) usbread(); ~ char a[8]; void usbread(void) { for (i=0;i<8;i++) /* присылается по 8 байт, поэтому AT91C_UDP_RXBYTECNT не считывается */ { a[i]=*AT91C_UDP_FDR; } *AT91C_UDP_CSR &= ~(1<<1); }
Что сделано не верно?
|