LINUX.ORG.RU

Команды с USB хоста на STM32

 , ,


0

1

STM32 c USB VCP на борту в режиме CDC девайса коннектится к Linux хосту. В USB стеке и в логике работы драйвера разбираться совершенно некогда, поэтому приветствуются ответы сугубо по существу. При подключении/ресете STMки с приемного кольцевого буфера вижу следующие данные (в gdb на точке останова стоит команда printf «%c», c, '\n' написал намеренно для читаемости): AT\nAT\nAT\n~\nx\n~~\nx\n~

Пока вся эта последовательность не примется, не могу открыть дескриптор /dev/ttyACM0.

Вопросы: Что это вообще за команды ?

Если кто имел дело с USB VCP, будет отлично, если ты отзовешься. Мне нужно знать, как девайсу понять, что он хост может с ним общаться и дальше пойдут интересующие меня данные, а не то, что выше.

Спасибо.

Работал с USB VCP, юзая HAL. Всё заработало сразу, без единой проблемки. Работало тоже идеально.

Как ты реализовал это?

SL_RU ★★★★
()
Последнее исправление: SL_RU (всего исправлений: 1)
Ответ на: комментарий от SL_RU

Взял пример с STM32, внутри STM32_USB_Device_Library и USB_OTG_Driver, и оттуда же кастомный драйвер VCP, где нужно только выкинуть дисплей и работу с UART. Ну свой кольцевой буфер на прием закинул. Кинешь ссыль на HAL, который юзал ? Из коробки заработало ?

markontheboard
() автор топика
Ответ на: комментарий от SL_RU

И да, зависит ли это от реализации ? Ведь девайс нормально представляется хосте и после описанного я уже нормально отправляю данные с хоста и обратно без проблем.

markontheboard
() автор топика
Ответ на: комментарий от markontheboard

Вот в этой статье есть как работает VCP с HAL. https://habrahabr.ru/post/249395/

Да, из коробки. Пару кликов в CubeMx и две строчки в коде.

И да, зависит ли это от реализации ?

Если все стандарты юсб соблюдены, то не зависит. По практики могу сказать, что факт того, что устройство видно на компе - не значит что обмен будет проходить нормально - главное чтобы дорожки DP и DM были одинаковой длинны - и будет всё шикарно.

Юзал с freertos

SL_RU ★★★★
()
Ответ на: комментарий от SL_RU

Спасибо.

Девайс STM32H107 от Olimex.

Если все стандарты юсб соблюдены, то не зависит.

Я о том же.

Юзал с freertos

Нене, freertos-то у меня тоже. На PC что крутилось ?

markontheboard
() автор топика
Ответ на: комментарий от markontheboard

И на лине и на винде норм было - там стандартный драйвер юзаеца.

SL_RU ★★★★
()

какой-нибудь modem-manager ищет модем, блокируя дескриптор: посылает AT - ожидает OK. Не находит, отпускает дескриптор.

Если дать ему в обратку ОК. Видимо он еще чего-то пришлет и дескриптор сразу не отдаст;)

zudwa
()

Сталкивался с подобной проблемой. Останови демон ModemManager.

KivApple ★★★★★
()
Ответ на: комментарий от zudwa

И это правильный ответ ! Спасибо, как раз выяснил именно это, но почему-то при получении OK он не глохнет. Может быть, я чего-то не учел.

markontheboard
() автор топика
Ответ на: комментарий от markontheboard

при получении ОК (модем присутствует) он как раз наоборот будет пытаться слать другие команды инициализации по списку

zudwa
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.