yashok 0 7 февраля, 2014 Опубликовано 7 февраля, 2014 · Жалоба Всем добрый день. Ситуация следующая. Пытаюсь запустить в своем проекте usb mass storage device. Использую библиотеку nxpusblib. Ранее был опыт работы с USB CDC и USB RNDIS, так же пользовался этой библиотекой. Все сделал на основе примера из этой библиотеке, дискрипторы взял из радного примера от LUFA. Вообщем при передачи, парой передаються не все данные, не передается последняя часть данных равная размеру точки. Менял размер точек и в usb анализаторе видел, что всегда не хватает количества данных, которое равняеться размеру точки. Причем все может работать долго (пару минут) не наступит такая ситуация, а бывает и 10 секунд не проработает. Может кто-нибудь сталкивался с таким. Испульзую IAR. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 7 февраля, 2014 Опубликовано 7 февраля, 2014 · Жалоба поглядите во внутрях библиотеки при передаче последнего пакета длинной в буфер конечной точки, передается еще один пустой пакет следом? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yashok 0 7 февраля, 2014 Опубликовано 7 февраля, 2014 · Жалоба Передаеться пакет 512 байт, потом ответ на команду 13 байт. РАзмер точки 64. Так вот иногда вместо передачи 512 байт передается 461. Т.е. пердаеться 448 байт данных и 13 байт ответа на команду. Уже все прошерстил, ничего не понимаю. В статусе dma все правильно, и нужное количество байт перегнал, и адрес последнего переданного байта правильный (именно когда передаеться не полный 512 байтовый пакет). В проверках свободна ли точка контролировал и первый и второй буфер точки. НИЧЕГО НЕ ПОМОГАЕТ!!! На счет того что не передаються именно последнии данные это я написал неверно. Из эксперементов стало видно, что могут не передоваться обсолютно любые 64 байта внутри 512-ти байтового пакета. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Axel 1 8 февраля, 2014 Опубликовано 8 февраля, 2014 · Жалоба ...НИЧЕГО НЕ ПОМОГАЕТ!!! А может проблема с другой стороны? Попробуйте поставить какой-нибудь сниффер (напр. Bus Hound) и посмотреть - не передается или не принимается.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться