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

 
 
> STM32f4 виртуальный COM порт подключение/отключение USB
Alex_Golubev
сообщение Dec 9 2017, 12:25
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 280
Регистрация: 18-03-17
Пользователь №: 95 877



Привет.
Как понять программно что шнурок USB отключен от device и сейчас не нужно передавать данные Host? Используется Cube. Стандартные функции приема передачи данных.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Aug 5 2018, 19:34
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Вот я нарвался... Как писал выше - определял открытие порта по SET_CONTROL_LINE_STATE. До сих пор устраивало. Теперь потребовалось определять закрытие порта и/или выдергивание кабеля. С закрытием порта никаких проблем - SET_CONTROL_LINE_STATE справляется. А вот с выдергиванием кабеля меня настигла большая ж... неожиданность. Не гененрится прерывание SEDET. Искал-искал, читал-перечитывал описание - ну вроде бы нечему там не работать, напряжение просело - получи прерывание. Ткнулся вольтметром на Vbus - а там 2 вольта...

У меня на входе USB стоит защитная сборка USBLC6. Сборка по рекомендации ее производителя подключена к D+, D- и Vbus. И вот тут начинается смешное: при появлении Vbus набортный OTG FS включает подтяжку на D+ и держит ее включенной постоянно: если он ее отключит, host воспримет это как отключение устройства. При пропадании Vbus (проседании ниже 0.8 В) OTG_FS генерит прерывание SEDET и отключает подтяжку (или в обратной последовательности, не знаю) - все должно быть красиво. Но у меня при выдергивании шнурка эта подтяжка через защитные диоды USBLC6 попадает на Vbus и не дает Vbus просесть до 0.8 В. Выпаиваю USBLC6 - все работает. Впаиваю - на Vbus зависает 2 вольта и прерывания нет. Странно, что об этой ситуации ничего не сказано в документации на USBCL6, ведь она позиционируется как защита и для self-powered device тоже. Да еще и в AN4879 от ST встречается вот такая фраза:
QUOTE
The component needs to be placed as close as possible to the receptacle to add ESD protection against high ESD surge. The USBLC6 component is recommended for such protection on VBUS and USB data lines. For OTG (on-the-go) use cases, the ID pin should also be protected against high ESD surge.
То есть вроде тоже никаких предупреждений. И только на картинках между Vbus и входом контроллера стоит делитель из резисторов 47 кОм и 68 кОм, но нигде в описании ни единого слова о его предназначении. В руководстве пользователя этого делителя тоже нет, контакт разъема подключен напрямую ко входу Vbus, но там и защиты нет, а без защиты все работает. Естетсвенно, у меня в схеме этого делителя не было. В общем не повторяйте моих ошибок.

Весь день убил. Теперь ночью придется делать то, что должен был делать днем.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Zeal0t
сообщение Aug 6 2018, 03:39
Сообщение #3


Участник
*

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



Цитата(Сергей Борщ @ Aug 5 2018, 22:34) *
... сборка USBLC6 ...
... делитель из резисторов 47 кОм и 68 кОм, но нигде в описании ни единого слова о его предназначении...


Аналогичная ситуация.
У меня на делитель заводится питание с USB разъема.
Делитель подключен к контроллеру для определения подключили/отключили разъем.
То же долго не мог понять почему при отключении разъема на делителе "висит" 2V.
В результате было сделано так:
USB VCC -> делитель -> диод -> и только потом питание от USB идет на питание USB сборки и питание схемы.
В этом случае при выдергивании шнурка процессор "не продавливает" через сборку делитель.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Alex_Golubev   STM32f4 виртуальный COM порт подключение/отключение USB   Dec 9 2017, 12:25
- - uriy   Мало что понятно. У вас на STM32F4 сделан CDC Host...   Dec 9 2017, 13:59
- - Alex_Golubev   Нет сделан CDC device (виртуальный COM порт). Надо...   Dec 9 2017, 14:22
|- - prottoss   Цитата(Alex_Golubev @ Dec 9 2017, 20:22) ...   Dec 9 2017, 14:34
- - Alex_Golubev   Можно смотреть и Vbus. Что вы думаете о такой кон...   Dec 9 2017, 14:40
|- - prottoss   Цитата(Alex_Golubev @ Dec 9 2017, 20:40) ...   Dec 9 2017, 14:46
|- - jcxz   Цитата(prottoss @ Dec 9 2017, 16:46) Ниче...   Dec 9 2017, 16:02
|- - prottoss   Цитата(jcxz @ Dec 9 2017, 22:02) Но прави...   Dec 9 2017, 16:06
- - Сергей Борщ   Какой смысл что-то слать, если на той стороне порт...   Dec 9 2017, 17:29
|- - esaulenka   Цитата(Сергей Борщ @ Dec 9 2017, 20:29) К...   Dec 11 2017, 08:01
||- - prottoss   Цитата(esaulenka @ Dec 11 2017, 14:01) По...   Dec 11 2017, 13:13
|||- - 0men   Цитата(prottoss @ Dec 11 2017, 16:13) Воп...   Dec 11 2017, 13:31
||- - Сергей Борщ   QUOTE (esaulenka @ Dec 11 2017, 10:01) Па...   Dec 11 2017, 13:22
|- - jcxz   Цитата(Сергей Борщ @ Dec 9 2017, 19:29) П...   Dec 11 2017, 13:22
- - Alex_Golubev   ЦитатаПосле прихода в CDC запроса setup request с ...   Dec 10 2017, 06:24
|- - prottoss   Цитата(Alex_Golubev @ Dec 10 2017, 12:24)...   Dec 10 2017, 07:41
|- - jcxz   Цитата(prottoss @ Dec 10 2017, 09:41) Но ...   Dec 11 2017, 13:40
|- - 0men   Цитата(jcxz @ Dec 11 2017, 16:40) Ваш - н...   Dec 11 2017, 13:44
||- - jcxz   Цитата(0men @ Dec 11 2017, 15:44) у меня ...   Dec 11 2017, 13:47
||- - 0men   Цитата(jcxz @ Dec 11 2017, 16:47) Куб уже...   Dec 11 2017, 14:43
||- - prottoss   Цитата(0men @ Dec 11 2017, 20:43) у него ...   Dec 11 2017, 15:15
||- - 0men   Цитата(prottoss @ Dec 11 2017, 18:15) Да....   Dec 11 2017, 15:23
||- - prottoss   Цитата(0men @ Dec 11 2017, 21:23) там, ви...   Dec 11 2017, 15:28
||- - 0men   Цитата(prottoss @ Dec 11 2017, 18:28) В п...   Dec 11 2017, 15:42
||- - prottoss   Цитата(0men @ Dec 11 2017, 21:42) USB_OTG...   Dec 11 2017, 15:47
|- - prottoss   Цитата(jcxz @ Dec 11 2017, 19:40) Не обяз...   Dec 11 2017, 13:47
|- - jcxz   Цитата(prottoss @ Dec 11 2017, 15:47) да,...   Dec 11 2017, 13:51
- - Alex_Golubev   prottoss все работает я конечно еще протестирую, н...   Dec 10 2017, 13:22
|- - prottoss   Цитата(Alex_Golubev @ Dec 10 2017, 19:22)...   Dec 10 2017, 14:15
- - 0men   if (hUsbDevice_0 == 0) то шнурок отключен   Dec 11 2017, 11:08
|- - prottoss   Цитата(0men @ Dec 11 2017, 17:08) if (hUs...   Dec 11 2017, 13:56
- - Alex_Golubev   Vbus я опрашиваю. Цитатаif (hUsbDevice_0 == 0) то...   Dec 12 2017, 01:13
- - Alex_Golubev   Столкнулся с еще одной проблемой USB. Когда подкл...   Jan 24 2018, 08:25
|- - golf2109   Цитата(Alex_Golubev @ Jan 24 2018, 10:25)...   Jan 25 2018, 02:19
- - Alex_Golubev   Цитатаа что посылает терминал при нажатии connec? ...   Jan 25 2018, 05:59
|- - VladislavS   Цитата(Alex_Golubev @ Jan 25 2018, 08:59)...   Jan 29 2018, 15:10
- - SanvaldYV   #define USBD_STATE_DEFAULT 1 - это исходное состоя...   Jan 29 2018, 09:30
|- - Сергей Борщ   QUOTE (Zeal0t @ Aug 6 2018, 06:39) USB VC...   Aug 6 2018, 05:31
|- - Zeal0t   Цитата(Сергей Борщ @ Aug 6 2018, 08:31) ....   Aug 6 2018, 07:27
|- - Сергей Борщ   QUOTE (Zeal0t @ Aug 6 2018, 10:27) Не сов...   Aug 6 2018, 13:17
- - Vasily_   Цитата(Сергей Борщ @ Aug 5 2018, 22:34) У...   Aug 6 2018, 07:53


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

 


RSS Текстовая версия Сейчас: 16th July 2025 - 18:40
Рейтинг@Mail.ru


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