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

 
 
> USB bulk_out transfer кратный 64 байтам, Как определить окончание передачи, если ее размер кратен размеру EP?
ahulap
сообщение Dec 5 2011, 11:28
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 22-06-06
Из: Kharkiv, UA
Пользователь №: 18 284



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

Похоже такая же проблема была и с контроллером SAM3U, там прием осуществлялся по DMA и DMA transfer завершался только при приеме короткого пакета. Но там все разрешилось просто переходом на размер эндпоинта в 512 байт (high speed), что было гарантированно больше любой передачи, т.е. все пакеты были короткими. Хочется учесть данную особенность при разработке следующих устройств.

Заранее спасибо.
Go to the top of the page
 
+Quote Post

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


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 05:04
Рейтинг@Mail.ru


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