Цитата(Kruftin @ Jul 25 2013, 15:38)

Я Агурова итак читаю. В процессоре имеется регистр передачи конечной точки, который вмещает один байт и глубиной 64 байта. Т.е. под пакетом как я понимаю и подразумевается посылка одного байта. Все данные передаются через нулевую конечную точку. И ещё вопрос должен ли USB сниффер ловить все передачи с устройства?
Распишу подробнее алгоритм:
1)включил usb контроллер
2)выставил в каждой конечной точке включение и готовность конечной точки к ответу на запрос
3)глобально разрешил работы конечных точек, задал скорость 1,5 Мбит/с
4)дождался выставления бита завершения транзакции, считал последовательно байты от хоста после каждого чтения дожидаясь выставления бита завершения транзакции.
5)после получения запроса - конфигурационного пакета начинаю посылать данные к хосту, пробовал послать и по 1 байту и несколько - безрезультатно.
Подскажите кто пользовался процессорами с USB какой там порядок посылки ответного дескриптора.
Для начала в каком "процессоре" имеется регистр передачи конечной точки? Нулевой эндпойнт размером от 8/64 байта обычно. Загрузка данных в очередь может происходить последовательно, но вот выдаются они на шину USB все разом.
По снифферу - они разные есть. Обычно ловят далеко не всё. Если много возни с USB устройствами желательно иметь аппаратный анализатор - включается в разрыв шины и ловит всё.
По алгоритму - данные хосту передаются только с запроса самого хоста. Хост всегда мастер (on the go и прочие надстройки не рассматриваем). Сначала, в процеесе энумерации, нужно правильно передать хосту все дескрипторы, а потом уже хостом требовать или посылать данные устройству. Причем посылать устройством нужно определенный размер данных (всё прописывается на этапе энумерации), иначе хост их проигнорирует.