реклама на сайте
подробности

 
 
> Вопрос по USB CDC
andrewlekar
сообщение Nov 16 2012, 08:10
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



Сейчас у нас штатно используется COM порт таким образом: софт открывает порт и общается с железом. Если железка перезапускается или просто физически выткнута из порта и воткнута обратно, то ничего страшного не происходит - обмен продолжается с момента подключения железки обратно.
Теперь хотим перетащить железку на USB, сделали USB CDC - всё работает прекрасно. Но если железку рестартануть, то она не может создать уже открытый в софте порт и обмена не происходит. Неужели USB CDC не предназначен для работы в таких условиях? Сделать что-то можно?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
=AK=
сообщение Nov 17 2012, 10:12
Сообщение #2


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(andrewlekar @ Nov 16 2012, 18:40) *
Но если железку рестартануть, то она не может создать уже открытый в софте порт и обмена не происходит. Неужели USB CDC не предназначен для работы в таких условиях? Сделать что-то можно?

CDC ни причем. Проблема в самой винде, иногда она отмечает устройство как "мертвое", после этого приходится выдернуть устройство из USB и воткнуть снова, тогда винда его заново обнюхает и воспримет.

Реальная проблема с CDC состоит в том, что в виндовом драйвере класса сидит тупой детский баг - при передаче массивов длиной более 8 кбайт данные рано или поздно испортятся. А вот драйвер Thesycon работает правильно, с его помощью можно качать массивы любой длины, я проверял.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 14:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01359 секунд с 7
ELECTRONIX ©2004-2016