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

 
 
> LPC17xx, USB device отваливается
esaulenka
сообщение Mar 13 2012, 13:39
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



У нас в устройстве на LPC1768 реализован USB CDC интерфейс - для совместимости со старыми решениями, работающими через COM-порт.
Со стороны ПК ставим стандартный usbser.sys от майкрософта.

Столкнулись со следующей проблемой: периодически (из-за проблем со статикой) устройство решает, что ему надо уйти в Suspend.

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

Собственно, вопрос: как бы из этой ситуации выбраться?


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
esaulenka
сообщение Jun 1 2012, 13:30
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Мда. Плохо победили...
Периодически оно таки отваливается...

"Дёргать" connect неинтересно - возникают проблемы у софта на ПК, хотелось бы не перезапускать тамошний драйвер.

Собственно, что я вижу:
по какой-то проблеме (разряд статики вблизи кабеля, или, например, просто кратковременное замыкание D+ и D-) в регистре Device Status появляется значение 0x0D - выставлены биты connect, suspend, suspend change.
Попытка сделать remote wakeup - сделать Set Device Status без бита suspend не работает - сначала из регистра статуса читается 0x09 - без бита suspend, а потом сразу же после - с этим битом.


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
kovigor
сообщение Jun 2 2012, 18:28
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(esaulenka @ Jun 1 2012, 16:30) *
Мда. Плохо победили...
Периодически оно таки отваливается...


Причин тысяча - от негодного кабеля до чисто программной ошибки. Примерный план действий:

- Смените машину. Например, что будет, если взять ноутбук ?
- Попробуйте взять качественный и заведомо рабочий кабель, или вообще обойдитесь без него, втыкая дивайс (как флэшку) в разъем на задней панели машины (не на передней - к ней часто идет никуда не годный кабельный "отросток").
- Запитайте дивайс от аккумулятора (или иным способом полностью отвяжите дивайс и(или) машину от силовой сети).
- Купите отладочную плату на этом МК и поэкспериментируйте с ней. Она тоже отваливается ?
- Попробуйте прошить в плату проекты, поставляемые с ИАРом и КЕЙЛом. Как они себя ведут ?
- Воспользуйтесь аппаратным USB - сниффером.
- ...
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 20:45
Рейтинг@Mail.ru


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