sergik_vrn 0 4 мая, 2007 Опубликовано 4 мая, 2007 · Жалоба Нужна помощь в следующем вопросе. Пишу драйвер USB-host для philips isp1161A, на не-intel архитектуре, планирую читать USB-flash. С микросхемой разобрался, документацию с usb.org и t10.org прочел, с протоколами тоже вроде разобрался, флешки опознаю, дескрипторы читаю. Столкнулся с неожиданной проблемой - на стадии bulk only transfer нормально не проходит больше одной транзакции (то есть CBW - данные - CSW). При попытке следующей запись в out_endpoint проходит нормально, а чтение из in_endpoint - все время NAK. на одной из флешей, с которыми экспериментировал, помогает постоянная (после каждой транзакции) разблокировка out_endpoint(!) с помощью clear_feature(halt), на других и это не помогает. форматы всех пакетов проверял сто раз, вроде все правильно, никаких замечаний, все поля соответствуют - но отакое ощущение, что где-то чего-то не хватает. Анализатора пакетов под рукой (и вообще где-бы то ни было) нету Может у кого-то есть идеи на этот счет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
misyachniy 0 8 мая, 2007 Опубликовано 8 мая, 2007 · Жалоба DAT0/DATA1 корректно обрабатываете? 8.5.1 Bulk Transactions стандарта ревизии 1.1. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
galjoen 0 10 мая, 2007 Опубликовано 10 мая, 2007 · Жалоба Если флеш отвечает NAK - значит не DATA1/0 попутаны. Тогда бы ACK ответила, а данные проигнорировала (ну или STALL). Больше на ошибку в CBW или в команде похоже. А какие какие команды посылаете? Данные во флеш или из неё? На форум выложите. Попробуйте данные во флеш послать. Write(10) 0x2A код (всё равно делать надо будет). Только не в начало, а то флеш так запороть можно, что и не отформатируешь потом. А ещё м.б. флешкам SOF каждую милисекунду для работы нужен - кто их знает этих китайцев? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться