Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
 
845 / 518 / 169
Регистрация: 30.07.2015
Сообщений: 1,682
1

STM32 USB VCP данные не приходят на хост

17.02.2021, 23:11. Просмотров 284. Ответов 5
Метки нет (Все метки)

Всем привет! Для небольшой поделки решил сделать "эмуляцию" Modbus RTU через USB VCP. Использовал струю либу от ST: STM32_USB-FS-Device_Lib_V4.1.0.
VCP поднял, Modbus RTU в потоке поднял. Решил проверить и получил странную квртину. Если я проверяю через простой терминал, где я забиваю обычную команду чтения то нормально получаю ответ, на каждый запрос.
STM32 USB VCP данные не приходят на хост

Сниффер также видит эти пакеты
STM32 USB VCP данные не приходят на хост

Затем я решил попробовать mbpoll, прогу для отправки/према запросов и получил странную картину: если устройство только подключили к ПК и апнули соединение в mbpoll, то устройство отвечает на запрос, ровно один раз, а дальше идут таймауты:
STM32 USB VCP данные не приходят на хост

Сниффер подтверждает
STM32 USB VCP данные не приходят на хост


При этом устройство не зависает и также продолжает работать, пакет приходит на приемную контрольную точку, отрабатывается таймаут, парсится ответ, активируется контрольная точка на отправку. Но на хочт по всей видимости ничего не приходит.
Если не отключая девайса, сделать дисконнект в mbpoll и перейти в терминал, то всё работает. И если затем сделать дисконнект в терминале и перейти в mbpoll то первый пакет опять примется и дальше приемов не будет.
Запросы короткие, поэтому помещаются в один пакет, поэтому таймаут между байтами не должен быть проблемой.
Никто не сталкивался с подобным поведением?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.02.2021, 23:11
Ответы с готовыми решениями:

USB VCP на STM32
Был реализован режим эха: всё, приходящее в порт, немедленно отправляется обратно. В файл...

Драйвер (не VCP) для встроенного USB STM32
Всем привет ! На сайте STM нашел только VCP драйвер ( STSW-STM32102 STM32 Virtual COM Port Dryver...

USB VCP stm32f303vc
Всем привет. Избавился в проекте от UART-USB драйвера посредством аппаратного USB с эмуляцией ком...

Прерывания и USB(VCP)
Добрый день, возникла следующая проблема, есть некая функция, которая собирает данные в массив и...

5
845 / 518 / 169
Регистрация: 30.07.2015
Сообщений: 1,682
17.02.2021, 23:40  [ТС] 2
Мда, пока писал, нашел косяк, в итоге он оказался в таймингах, только не между байтами, а в целом таймаут ответа была превышен. Глаз замылился, в ARR таймера залез лишний 0 в итоге, девайс ждал таймаут после последнего приянтого пакета 0.2 с, вместо 2 мс.
1
1854 / 1179 / 114
Регистрация: 04.01.2010
Сообщений: 4,192
19.02.2021, 09:16 3
Цитата Сообщение от _SayHello Посмотреть сообщение
в итоге
[я уж подумал, действительно, какие-то непредвиденные проблемы в библиотеке].

Не по теме:

По факту, я пользовался и FS и HS, на SPL и HAL, и с разной периферией (на разных STM32F10x они разные). И везде могли быть свои сложности, но подобных проблем не встречал ).

0
845 / 518 / 169
Регистрация: 30.07.2015
Сообщений: 1,682
19.02.2021, 10:15  [ТС] 4
Voland_,
Цитата Сообщение от Voland_ Посмотреть сообщение
[я уж подумал, действительно, какие-то непредвиденные проблемы в библиотеке].
Меня смутило что сниффер ответа не показывал вообще. Я думал, что даже если с опазданием, то ответ должен придти, поэтому на таймаут не подумал сначала.
0
2740 / 1689 / 349
Регистрация: 09.09.2017
Сообщений: 7,052
23.02.2021, 10:56 5
Цитата Сообщение от Voland_ Посмотреть сообщение
По факту, я пользовался и FS и HS
Можно поподробнее рассказать чем они отличаются?
Я так понял, что они должны отличаться скоростью обмена (480 МГц вместо 12 МГц, что контроллеры все равно не поддерживают) и размерами конечных точек. А переключаться должны по запросу QUALIFIER_DESCRIPTOR (0x06). Но в нем ничего нового относительно DEVICE_DESCRIPTOR (0x01) вроде как нет, кроме размера конечных точек. И после запроса хост новых запросов не делает.
Может, надо было разные размеры конечных точек задать? Или в CONFIGURATION_DESCRIPTOR (0x02) указать какие-то альтернативы? Или особого преимущества все равно не будет и не стоит возиться?
0
1854 / 1179 / 114
Регистрация: 04.01.2010
Сообщений: 4,192
23.02.2021, 11:41 6
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Можно поподробнее рассказать чем они отличаются?
для меня они отличались просто периферией - для HS требуется дополнительный "чип ULPI", который не нужен для FS. Все остальное делалось HAL'ом, но работает нормально. Как переключаться в этой схемотехнике - не знаю . Я так понимаю, протокол определяется на этапе подключения, и когда приходит событие коннекта - все уже "подключено".

PS: я имел ввиду, что периферия разнообразная - для этих МК, и вроде бы все режимы и вариации работают равнозначно. Различие, в частности, было в том, что при переносе проекта с stm32f103 на stm32f105 (которые и в одной линейке, и вообще - pin2pin) - пришлось адаптировать проект под другую библиотеку SPL под другой модуль USB. то есть по описанию эти чипы вроде и одинаковые, но библиотеки USB для них не совместимы.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.02.2021, 11:41

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

STM32F407VET6 USB VCP
Привет. Столкнулся с проблемой USB VCP на STM32F407VET6. Подняли USB VCP (и всю остальную...

smr32f103 usb VCP не поднимается
Ребята, помогите пожалуйста, 2 дня без сна (( Взялся изучать smt32. Намигался диодами, попробовал...

STM32f4 + USB (VCP) +DMA
Прикручен пример из стандартной библиотеки stm32_f105-07_f2_f4_usb-host-divice_lib... У меня на...

stm32f2 usb cdc (vcp)
Не получается запустить usb на stm32f2. Пробовал генерировать проект в stm32cube. При подключении...

STM32F105 Cube USB VCP Unknown device
День добрый! Была платка с STM32F103, посадил на нее STM32F105 камень. Разведены только линии DP...

STM32F4 USB VCP проблема TimeOut-а при передачи данных от PC
Здравствуйте. Использую пример VCP (Virtual COM Port) от ST. Работаю под WinXP с виртуальным COM...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.