Ответ:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено PicoDev2 25 сентября 2004 г. 02:27
В ответ на: Коллеги! Кто сталкивался с подобным явлением по USB (+). отправлено Алга 24 сентября 2004 г. 19:16

Я, конечно, не Кашперовский - :-))
могу дать только общие рекомендации.
1. У вас в драйвере используется timeout при обращении DeviceIoControl?
2. Доступ к endpointam идет ли через CreateFile или используете тот же DeviceIoControl?
BOOL DeviceIoControl(
HANDLE hDevice,
DWORD dwIoControlCode,
LPVOID lpInBuffer,
DWORD nInBufferSize,
LPVOID lpOutBuffer,
DWORD nOutBufferSize,
LPDWORD lpBytesReturned,
LPOVERLAPPED lpOverlapped - тут для timeout
);
3. Как у вас выполнена схема источника? Насколько запас есть от перепадов (spikes) входного напряжения?

Защитные диоды используются только для защиты от перенапряжения (например, статика) - они тебе не помогут.
Скорее всего вылетает процессор.
Потеря информации в Bulk передаче не является катастрофой - это предусмотрено спецификацией.

Теперь смотри мои комментарии по тексту:

--------------------------------------------------------------
1. В какие то моменты, как фоновая задача, идут команды по изменению
режимов, настроек, получению статусов. Вот так все крутится.
Однако редко происходят сбои и сбор с передачей зависает.
Надо выключать прибор и снова включать. Процесс сбора может
непрерывно продолжаться и час и два и три.

2. Также практически сразу
вырубает сбор включение/выключение рядом других измерительных
приборов.
-----------------------------------------------------------------
В первом и во втором случае причина может быть зависание процессора.

Допустим, что процессор сбойнул, и остался ждать управления по Endpoin0 (Control)
Допустим, что процессор сбойнул и по каким-то причинам не может продолжить передачу Bulk.
Если драйвер не имеет TimeOut и использует тот же вход DeviceIoControl, то будете ждать вечно!
Так как, произойдет блокировка запросов на уровне драйвера.

Чтобы ответить квалифицорованно мне нужна информация как выполнен драйвер в указанном контексте.
Тогда можно будет предложить workarond от сбоев.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru