У нас в устройстве на LPC1768 реализован USB CDC интерфейс - для совместимости со старыми решениями, работающими через COM-порт. Со стороны ПК ставим стандартный usbser.sys от майкрософта.
Столкнулись со следующей проблемой: периодически (из-за проблем со статикой) устройство решает, что ему надо уйти в Suspend.
Команда Get Device Status при этом возвращает 0x0C - suspend + suspend change, connect = 0. Устройство ПК видит, но на запросы оно отвечать перестаёт. Пробовал "дёргать" подтяжкой D+ (висит на GPIO), результат отрицательный: ПК видит, что устройство пропало, а потом появляется новое устройство, но до запроса дескрипторов дело доходит с вероятностью около 50% - оно или остаётся в suspend, или всё-таки начинает работать. Передёргивание шнурка руками также работает аналогично.
Собственно, вопрос: как бы из этой ситуации выбраться?
--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
|