Перейти к содержанию
    

нестабильность работы с флешкой

Приветствую.

При тестировании усб стека выявилась одна интересная деталь - пара флешек, при чтении средних и больших файлов, не постоянно, но частенько обрывает процесс чтения, помогает только повторная энумерация. Это проявляется только на 2х флешках одного китайского нонейма. Сначала подумал, что просто фуфло, да и хрен с ним, но на компе работает, не прерывается на энумерацию. Что тут может быть, ваши варианты. С другими флешками все ок. Может-ли влиять частота тактировки усб контроллера?

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

помогает только повторная энумерация.

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

 

Смутно припоминаю, встречал зависание флэшек на USB2.0 при нарушении последовательности типов пакетов на нулевом эндпоинте. Что-то вроде Host::Setup - Dev::ACK - Host::Setup (вместо Data1) не распознав ACK.

Изменено пользователем GetSmart

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сделайте анализы

 

Спасибо, надо проверить, пока времени нема совсем. Скоро добавлю поддержку хабов, проверю через хаб - если будет работать - значит в самом контроллере дело или в железе...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На i.MX287 когда-то встретился с оригинальным глюком в работе EHCI: USB-UART адаптеры теряли данные на высоких скоростях передачи. Выяснилось, что контроллер просто переставал в какой-то момент выдавать прерывания.

 

У меня тоже были проблемы с прерываниями, в смысле,контроллера усб, поэтому их не использую вообще, благо контроллер "умный" и обмен в режиме "interrupt" разруливает сам. Изохронку не использую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...