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

 
 
> 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
Ответов
Alex_Golubev
сообщение Dec 10 2017, 06:24
Сообщение #2


Местный
***

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



Цитата
После прихода в CDC запроса setup request с типа SET_CONTROL_LINE_STATE с параметром 3 порт открыт, можно слать привествие. После прихота этого же запроса с другим значением параметра или после установки конфигурации 0 - порт закрыт
Вот я также думаю, но можно подстраховаться Vbus еще. В Cube есть:
/* Device Status */
#define USBD_STATE_DEFAULT 1
#define USBD_STATE_ADDRESSED 2
#define USBD_STATE_CONFIGURED 3
#define USBD_STATE_SUSPENDED 4

Написал вот так:
if( (hUsbDeviceHS.dev_state==USBD_STATE_CONFIGURED) ){
CDC_Transmit_HS(p ,strlen (text));
}

Сообщение отредактировал Alex_Golubev - Dec 10 2017, 06:24
Go to the top of the page
 
+Quote Post
prottoss
сообщение Dec 10 2017, 07:41
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(Alex_Golubev @ Dec 10 2017, 12:24) *
Вот я также думаю, но можно подстраховаться Vbus еще. В Cube есть:
/* Device Status */
#define USBD_STATE_DEFAULT 1
#define USBD_STATE_ADDRESSED 2
#define USBD_STATE_CONFIGURED 3
#define USBD_STATE_SUSPENDED 4

Написал вот так:
if( (hUsbDeviceHS.dev_state==USBD_STATE_CONFIGURED) ){
CDC_Transmit_HS(p ,strlen (text));
}

Устройство будет сконфигурировано хостом, и тут, бац, выдернули шнур. Устройтство осталось сконфигурировано, потому как от хоста не получало пакета SET_CONFIGURATION = 0. Что дальше?
Выдернуть могут на любом состоянии. Но узаете о том, что не подключены только через VBUS. В STM32F4 есть регистры/биты, которые могут сигнализировать об отключении (некогда копаться в даташите чтобы указать точно). Но, естественно сама линия VBUS должна быть заведена в МК.


--------------------
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 11 2017, 13:40
Сообщение #4


Гуру
******

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



Цитата(prottoss @ Dec 10 2017, 09:41) *
Но узаете о том, что не подключены только через VBUS.

Не обязательно. Я уже писал. VBUS элементарно может быть не подключен, при этом USB вполне себе нормально будет работать. В этом случае нужно использовать SOF.

Цитата(0men @ Dec 11 2017, 15:31) *
мой вариант прекрасно работает sm.gif

Ваш - находится у вас, а у автора может быть другая схема.
Go to the top of the page
 
+Quote Post
0men
сообщение Dec 11 2017, 13:44
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 84
Регистрация: 7-05-05
Пользователь №: 4 819



Цитата(jcxz @ Dec 11 2017, 16:40) *
Ваш - находится у вас, а у автора может быть другая схема.


у меня тоже через куб, как и у автора. Это штатная переменная в кубе

Сообщение отредактировал 0men - Dec 11 2017, 13:44
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 11 2017, 13:47
Сообщение #6


Гуру
******

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



Цитата(0men @ Dec 11 2017, 15:44) *
у меня тоже через куб, как и у автора. Это штатная переменная в кубе

Куб уже научился и провода подпаивать? biggrin.gif
Go to the top of the page
 
+Quote Post
0men
сообщение Dec 11 2017, 14:43
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 84
Регистрация: 7-05-05
Пользователь №: 4 819



Цитата(jcxz @ Dec 11 2017, 16:47) *
Куб уже научился и провода подпаивать? biggrin.gif


у него все уже подпаяно, если внимательно почитать.

куб определяет при вхождении в прерывание OTG_FS_IRQHandler через флаг USB_OTG_GOTGINT_SEDET

Сообщение отредактировал 0men - Dec 11 2017, 14:48
Go to the top of the page
 
+Quote Post
prottoss
сообщение Dec 11 2017, 15:15
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(0men @ Dec 11 2017, 20:43) *
у него все уже подпаяно, если внимательно почитать.

куб определяет при вхождении в прерывание OTG_FS_IRQHandler через флаг USB_OTG_GOTGINT_SEDET

Да. Но VBUS должен быть подключен, иначе Вы постоянно будете висеть в этом прерывании.
И как решить вопрос с МК, у которых нет OTG? Например STM32F103? ...Хотя ТС озвучил F4xx серию, тем не менее, пускай вопрос будет риторический.


--------------------
Go to the top of the page
 
+Quote Post
0men
сообщение Dec 11 2017, 15:23
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 84
Регистрация: 7-05-05
Пользователь №: 4 819



Цитата(prottoss @ Dec 11 2017, 18:15) *
Да. Но VBUS должен быть подключен, иначе Вы постоянно будете висеть в этом прерывании.
И как решить вопрос с МК, у которых нет OTG? Например STM32F103? ...Хотя ТС озвучил F4xx серию, тем не менее, пускай вопрос будет риторический.


там, видимо, как то иначе, не работал с первой серией
Go to the top of the page
 
+Quote Post
prottoss
сообщение Dec 11 2017, 15:28
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(0men @ Dec 11 2017, 21:23) *
там, видимо, как то иначе, не работал с первой серией
В первой серии даже встроенного pull-up нет. Но, тем не менее, повторюсь не в первый раз - для точного и быстрого определения отключения шнурка - VBUS.


--------------------
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
||- - 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
- - Сергей Борщ   Вот я нарвался... Как писал выше - определял откры...   Aug 5 2018, 19:34
- - Zeal0t   Цитата(Сергей Борщ @ Aug 5 2018, 22:34) ....   Aug 6 2018, 03:39
|- - Сергей Борщ   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 Текстовая версия Сейчас: 23rd July 2025 - 07:14
Рейтинг@Mail.ru


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