Строю Embedded Host на базе Cypress SL811HS для доступа к USB Flash-кам на Full Speed. Аппаратура в порядке. Все SetUp транзакции (те, что адресованы к 0-му EndPoin) завершаются успешно. А вот с транспортным протоколом (это который "Bulk-Only") - какие-то непонятки. Выполняется любая, есс-но из числа поддерживаемых классом, SCSI команда. Выполняестя корректно и полностью - с корректным CSW. И после этого любая попытка обращения к BulkOut EndPoint приводит к Time-Out! Например, читаем сектор: - посылаю в BulkOutEP CBW (31 байт с кодом операции 28h) - получаю ACK; - посылаю 8 запросов чтения по 64 байта из BulkInEP - получаю NAK,NAK....ACK и 512 байт Boot сектора флэшки; - посылаю запрос чтения 13-ти байт из BulkInEP - получаю ACK и коррктный CSW с "Command Passed". Все! Любые попытки повторить это, или послать любую другую SCSI команду в Bulk-Only упаковке приводит к Time-Out в статусе пакета. Пробовал 5 разнотипных флэшек - результат идентичный. Может кто наступал на подобные грабли? java script:emoticon(':help:', 'smid_14')
|