Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: нестабильность работы с флешкой
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
mantech
Приветствую.
При тестировании усб стека выявилась одна интересная деталь - пара флешек, при чтении средних и больших файлов, не постоянно, но частенько обрывает процесс чтения, помогает только повторная энумерация. Это проявляется только на 2х флешках одного китайского нонейма. Сначала подумал, что просто фуфло, да и хрен с ним, но на компе работает, не прерывается на энумерацию. Что тут может быть, ваши варианты. С другими флешками все ок. Может-ли влиять частота тактировки усб контроллера?
GetSmart
Цитата(mantech)
помогает только повторная энумерация.

Сделайте анализы лог запросов и возвращаемых ошибок на уровне эндпоинтов. Хотя, т.к. это EHCI контроллер, то на уровне его транзакций, с возвращаемыми ошибками. Теоретически может быть что-то с таймаутами или другими настройками EHCI. Могут быть ошибки ЦРЦ. Кривая схема/разводка. Намного яснее будет с логгером линий D+D-, если конечно скорость 12 МГц.

Смутно припоминаю, встречал зависание флэшек на USB2.0 при нарушении последовательности типов пакетов на нулевом эндпоинте. Что-то вроде Host::Setup - Dev::ACK - Host::Setup (вместо Data1) не распознав ACK.
mantech
Цитата(GetSmart @ Aug 10 2016, 02:48) *
Сделайте анализы


Спасибо, надо проверить, пока времени нема совсем. Скоро добавлю поддержку хабов, проверю через хаб - если будет работать - значит в самом контроллере дело или в железе...
aaarrr
На i.MX287 когда-то встретился с оригинальным глюком в работе EHCI: USB-UART адаптеры теряли данные на высоких скоростях передачи. Выяснилось, что контроллер просто переставал в какой-то момент выдавать прерывания. В линуксовых драйверах встроен своеобразный вотчдог, но с достаточно большим временем срабатывания (10мс, кажется), в результате флешки-то работали, а в преобразователе кончался входной буфер. Установить причину такого поведения не удалось, в еррате тоже пусто, поэтому проблему пришлось обойти разгоном вотчдога.
mantech
Цитата(aaarrr @ Aug 18 2016, 12:51) *
На i.MX287 когда-то встретился с оригинальным глюком в работе EHCI: USB-UART адаптеры теряли данные на высоких скоростях передачи. Выяснилось, что контроллер просто переставал в какой-то момент выдавать прерывания.


У меня тоже были проблемы с прерываниями, в смысле,контроллера усб, поэтому их не использую вообще, благо контроллер "умный" и обмен в режиме "interrupt" разруливает сам. Изохронку не использую.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.