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

Почему драйвер USB не исправляет ошибки CRC?

Используется USB контроллер Cypress (FX2), их драйвер CyUSB.sys и их же библиотека CyAPI.lib.

Проблема:

При передаче по плохому USB кабелю функция XferData часто возвращает ошибку и передача прекращается. Если детализировать состояние – оказывается status=USBD_STATUS_CRC.

Кто-нибудь уже сталкивался с этим? Почему драйвер не исправляет ошибку? Можно ли что-то с этим сделать?

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


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

Ну да, в идеале, получив пакет с неправильны CRC драйвер хоста просит девайс повторить отправку. Но вместо этого, драйвер возвращает ошибку и передача обрывается. (при этом теряются уже полученные данные, находящиеся в USB driver stack=16Кб )

 

Стоит ли на хосте ограничение на кол-во повторов?

Можно ли это ограничение снять или увиличить?

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


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

...Стоит ли на хосте ограничение на кол-во повторов?

Для Windows™ в книге: USB Complete - 3. edition by Jan Axelson:

page 71

(Bulk Transfers) Detecting and Handling Errors

Bulk transfers use error detecting. If a device doesn’t return an expected

handshake packet, the host tries up to twice more...

page 75

(Interrupt Transfers) Detecting and Handling Errors

If a device doesn’t return an expected handshake packet, host controllers in

PCs will retry up to twice more...

 

Можно ли это ограничение снять или увиличить?

Для Windows™ вряд ли.

 

При передаче по плохому USB кабелю...

Все таки, лучше использовать кабели USB с маркировкой USB High Speed Certified.

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


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

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

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

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

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

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

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

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

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

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