STM32 bluepill как заставить чувствовать коннект по usb?

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Nikita_Presnov
Родился
Сообщения: 1
Зарегистрирован: Вт июл 27, 2021 18:39:21

STM32 bluepill как заставить чувствовать коннект по usb?

Сообщение Nikita_Presnov »

При подключении к каком нибудь терминалу(cutecom, putty, terminal 1b, termit) устройства часто умеют понимать, есть ли у них коннект с компом(когда соединён юсб). То есть воткнул юсб-загорелся светодиод с питанием, запустил программу, нажал коннект-загорелся второй, нажал дисконнект-погас второй. Как реализовать такую штуку в блюпиле?

Должно работать как в линуксе так и винде.
Реклама
Аватара пользователя
240265
Электрический кот
Сообщения: 1029
Зарегистрирован: Сб мар 09, 2013 11:29:22
Откуда: 40RUS, Жуков

Re: STM32 bluepill как заставить чувствовать коннект по usb?

Сообщение 240265 »

нужно писать программу....
IVL ex UA6PJ
Реклама
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: STM32 bluepill как заставить чувствовать коннект по usb?

Сообщение Eddy_Em »

Ты зачем на ЛОРе запретил анонимам комментировать? Я бы уже давно тебе написал там.
Поясняю: сам этим делом интересовался какое-то время назад. Никакого механизма, позволяющего определять, что у тебя на линии кто-то сидит, если он никаких сигналов не шлет, не существует. Однако, при коннекте тебе приходит SET_CONTROL_LINE_STATE (DTR или RTS), так что можно выставлять флаг подсоединения (как здесь у меня). Однако, аналогичный запрос ты получаешь, как только активируется модуль ядра, обслуживающий твою CDC. Поэтому нужно еще проверять при отправлении сообщений: если получаешь ошибку, сбрасываешь флаг коннекта в нуль. Еще некоторые терминалы могут послать SEND_BREAK при отключении, на него тоже сбрасываешь флаг (как и на состояние USB suspend).

Как вообще ты мог разрабатывать USB CDC, если не столкнулся с необходимостью реакции на базовые запросы хоста?

P.S. Да, в "блюпиле" жесткая подтяжка USB DP (да еще и резистор 10кОм вместо положенного 1.5кОм), поэтому нужно немного переделать.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Ответить

Вернуться в «ARM»