Контроллер - LPC1343. Программа посылает команды в устройство используя libusb: usb_bulk_write(handle, EP_OUT, buffer, size, 0);
В устройстве размер команды заренее не известен, оно собирает всю команду и только после этого отдает на обработку. Окончание передачи я определял по короткому пакету (<64 байт).
Но, как оказалось, если размер передачи например равен 64 байтам, то приходит только один пакет 64 байта и все. ZLP нет.
Возможно ли как-то разрешить данную проблему без доработки компьютерной программы? Только вычислением размера команды по ее коду и прочим параметрам, идущим в первом пакете?
Похоже такая же проблема была и с контроллером SAM3U, там прием осуществлялся по DMA и DMA transfer завершался только при приеме короткого пакета. Но там все разрешилось просто переходом на размер эндпоинта в 512 байт (high speed), что было гарантированно больше любой передачи, т.е. все пакеты были короткими. Хочется учесть данную особенность при разработке следующих устройств.
Заранее спасибо.