Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: USB STR912 Virtual COM Port Прекращается опрос EP
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
anton_1265
Добрый день, прошу совета.

Ситуация следующая:
Устройство STR912FAW44x6 , в нем работает некоторая прикладная программа (в User Mode), кроме этого
работает USB (VCP и Mass Storage) USB запросы обрабатываются в IRQ.
Периодически прикладная программа запрещает на короткие промежутки времяни (30 мс) прерывания от USB, в результате, в процессе работы возникает USB Reset (порождаемый хостом), но на момент прихода Reset
регистры всех конченых точек EP оказываются зануленными, сброшенными.

При этом проверено, что если прерывания блокируются редко, пусть и надолго (до 6 секунд), сброса не происходит.

Прошу дать совет в чем может быть дело?
Почему вообще могут сбрасываться регистры EP?
Если у кого то была подобная проблема, отпишите пожалуйста.

P.S.
Модулем USB управляю по средством стандартных ST библиотек.
anton_1265
Уже не удобно заводить топики на эту тему, потому что я копаюсь с USB VCP+Mass Storage уже почти год(!),
периодически кажется что всё работает как надо, но каждый раз вылезает новая проблема.

Суть в следующем: VCP работает некоторое время. Т.е. программа на стороне ПК открывает порт, засылает данные, получает
ответ, и закрывает порт. Но через некоторое кол-во таких транзакций - обмен прекращается. ПК перестает забирать данные из
End Point (EP) устройства. При этом регистры USB устройства находятся в правильном состоянии (EP_TX_Status=VALID и EP_TX_Count>0 в ),
т.е. устройство хочет передать данные, а Windows не хочет почему-то их забирать. При этом порт продолжает нормально открываться и закрываться. Данные уходят в VCP,
их видит USB сниффер, данные уходят в устройство, но конечная точка устройства не опрашивается. После программного перезапуска устройства (перезапуска драйвера устройства на стороне ПК), - не принятые данные дочитываются хостом (USB сниффер показывает что от устройства приняты данные, которые должны были придти в ответ на запрос, до перезапуска).

В устройстве есть следующие особенности :
1. Асинхронно с операциями USB, в устройстве выполняются другие задачи
на время активности которых прерывания от USB отключаются.
2. Как написано выше - в устройстве кроме интерфейса VCP есть интерфейс MASS STORAGE. ( Есть ощущение, что сбои возникают чаще, кода Mass Srorage находится в
состоянии "Диск откючен/NO Media In Device", но это не подтверждено).

Не сталкивался ли кто либо с ситуацией, что драйвер перестаёт опрашивать конечные точки, которые казалось бы должен опрашивать?
Знает ли кто либо какие времена задержек допустимы для VCP и Mass Srorage, т.е. на какое кол-во времени программа в контроллере может
задерживать обработку запросов от Хоста, чтобы не провоцировать тем самым какие либо Soft Reset?
Седой
Цитата(anton_1265 @ Jan 14 2010, 17:51) *
...
Не сталкивался ли кто либо с ситуацией, что драйвер перестаёт опрашивать конечные точки, которые казалось бы должен опрашивать?
...


Сталкивался раньше и очень даже часто. После того как казаться перестало, проблем ни одного раза не было.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.