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

 
 
 
Reply to this topicStart new topic
> USB и статический разряд, USB и статический разряд на LM3S5R31
ocv997
сообщение Sep 18 2013, 10:23
Сообщение #1





Группа: Новичок
Сообщений: 2
Регистрация: 18-09-13
Пользователь №: 78 374



Проводя тесты со статическим электричеством столкнулись с проблемой, что USB на контроллере вылетает и не восстанавливается, помогает только RESET контроллера. После удара статикой стабильной приходит SUSPEND и мы пытались зацепиться за него, чтобы перезагружать USB, таким образом соединение восстанавливается только через 5-15 с. Возникает вопрос есть ли какие-нибудь еще способы вылечить контроллер? Используем стандартную библиотеку USB от StellarisWare с перехватом прерываний. Работаем в режиме USB -> serial.
Go to the top of the page
 
+Quote Post
kovigor
сообщение Sep 18 2013, 10:37
Сообщение #2


Гуру
******

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



Цитата(ocv997 @ Sep 18 2013, 13:23) *
Возникает вопрос есть ли какие-нибудь еще способы вылечить контроллер?

Интересно, если взять тысячу брендовых устройств, хоть одно из них переживет без описанного вами или любого другого сбоя подобный эксперимент ? Сомневаюсь, и очень.Не стоит, наверное, использовать USB в критических применениях, и все.
А от необходимости корректной разводки платы никто никого не освобождает в любом случае. Как минимум, прочтите вот это:

http://caxapa.ru/lib/emc_immunity.html
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Sep 18 2013, 11:06
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



5-15 секунд
у меня есть коммерческий оптически развязанный рс485-усб, так он когда рядом с ним запускают частотный регулятор двигателя виснет насмерть вместе с системой...

так что 5-15 секунд это не плохо, особенно если вы их детектите и можете все починить.

Быстрее можно при помощи пинга, заведите контрольную точку по которой шлите 1 байт переодически, теоретически можно миллисекунды простоя отловить...
кстати еще есть изохронный обмен который имеет четкий интервал 1 мСек, можно на его основе сделать все тот-же пинг...
Go to the top of the page
 
+Quote Post
controller_m30
сообщение Sep 18 2013, 12:53
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309



ocv997, а статика наводится от чего, и в какой ситуации? При подключении USB девайса к компу, или при подключении дополнительных устройств к УЖЕ подключенному USB девайсу?
Go to the top of the page
 
+Quote Post
_3m
сообщение Sep 18 2013, 14:13
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(ocv997 @ Sep 18 2013, 14:23) *
Проводя тесты со статическим электричеством столкнулись с проблемой, что USB на контроллере вылетает и не восстанавливается, помогает только RESET контроллера

Для USB такая работа является нормальной. Спецификация USB не предусматривает работу в условиях помех. Если ваше изделие должно функционировать в условиях помех применяйте индустриальные интерфейсы.
Go to the top of the page
 
+Quote Post
ar__systems
сообщение Sep 18 2013, 14:28
Сообщение #6


self made
****

Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795



Цитата(ocv997 @ Sep 18 2013, 05:23) *
Проводя тесты со статическим электричеством столкнулись с проблемой, что USB на контроллере вылетает и не восстанавливается, помогает только RESET контроллера. После удара статикой стабильной приходит SUSPEND и мы пытались зацепиться за него, чтобы перезагружать USB, таким образом соединение восстанавливается только через 5-15 с. Возникает вопрос есть ли какие-нибудь еще способы вылечить контроллер? Используем стандартную библиотеку USB от StellarisWare с перехватом прерываний. Работаем в режиме USB -> serial.

Вы делаете девайс, я так понимаю? Вам пришел suspend от хоста? От компьютера? Это было бы странно. Скорее всего вам пришло только прерывание, потому что ваш контроллер заглючил. Я бы настоятельно порекомендовал посмотреть логическим анализатором что происходит на шине непосредственно после разряда.

5 секунд на восстановление представляется нормальным при условии полного нарушения связи. 15 никуда не годится.
Если вы перегружаете свой девайс и отключаетесь от шины, делайте задержку минимум пару секунд, иначе комп может не заметить, что девайс был отключен и будет считать, что он продолжает быть подключен, девайс же при этом ждет, когда хост начнет энумерацию.
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Sep 18 2013, 15:28
Сообщение #7


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

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



Цитата(ar__systems @ Sep 18 2013, 18:28) *
Вы делаете девайс, я так понимаю? Вам пришел suspend от хоста? От компьютера? Это было бы странно.

У меня именно так и проявлялось. Контроллер - LPC176x, хост - WinXP, Win7.
Как сделать remote wakeup, не разобрался, при попытках сделать от хоста тут же приходил повторный suspend.


Цитата(ar__systems @ Sep 18 2013, 18:28) *
Если вы перегружаете свой девайс и отключаетесь от шины, делайте задержку минимум пару секунд, иначе комп может не заметить, что девайс был отключен

Собственно, так и лечил. Перезагружать ничего не надо было, только коннект - дисконнект. Только вполне хватало задержки в долю секунды.


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
ar__systems
сообщение Sep 18 2013, 17:37
Сообщение #8


self made
****

Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795



Цитата(esaulenka @ Sep 18 2013, 10:28) *
У меня именно так и проявлялось. Контроллер - LPC176x, хост - WinXP, Win7.
Как сделать remote wakeup, не разобрался, при попытках сделать от хоста тут же приходил повторный suspend.

А что на шине происходило? Настоящий саспенд? Скорее всего никакого саспенда там не было, прерывание было левое и вызвано разрядом. Вообще мне думается вы самостоятельно не можете на компе активировать wakeup. эти режимы операционка контролирует.


Цитата(esaulenka @ Sep 18 2013, 10:28) *
Собственно, так и лечил. Перезагружать ничего не надо было, только коннект - дисконнект. Только вполне хватало задержки в долю секунды.

Возможно, я уже не помню точную величину, просто запомнил что при быстром отключении-включении хост этого не замечал.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Sep 19 2013, 02:49
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Golikov A. @ Sep 18 2013, 17:06) *
Быстрее можно при помощи пинга, заведите контрольную точку по которой шлите 1 байт переодически, теоретически можно миллисекунды простоя отловить...
кстати еще есть изохронный обмен который имеет четкий интервал 1 мСек, можно на его основе сделать все тот-же пинг...

Зачем? Чем не устраивает обычный SOF (start-of-frame) событие, которое приходит с частотой 1 или 8 кГц без всяких доп. усилий?
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Sep 19 2013, 11:25
Сообщение #10


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

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



Цитата(ar__systems @ Sep 18 2013, 21:37) *
А что на шине происходило? Настоящий саспенд? Скорее всего никакого саспенда там не было, прерывание было левое и вызвано разрядом.

Точно утверждать не буду, т.к. нормального аппаратного анализатора нет. Осциллографом я в шине разобраться не смог...

Но повторяемость 100%: разряд -> suspend ->попытка wakeup -> suspend -> ...


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
ocv997
сообщение Sep 28 2013, 07:38
Сообщение #11





Группа: Новичок
Сообщений: 2
Регистрация: 18-09-13
Пользователь №: 78 374



В итоге остановились на описанном выше методе, но "полезными" считаются только прерывания от endpoint-тов. А время между перезагрузками в случае не удачной перезагрузки(usb так и не получил прерываний) экспоненциально растет, начиная от 400мс. В итоге usb стабильно перезапускается через 1- 10 секунд
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 17th June 2025 - 07:41
Рейтинг@Mail.ru


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