USB STM32: Virtual ComPort или Mass Storage

Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Для начала воспользуйтесь поиском форума. 2. Укажите версию ОС вместе с разрядностью. Пример: LM 19.3 x64, LM Sarah x32 3. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 4. Какое железо. (достаточно вывод inxi -Fxz в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 5. Суть. Желательно с выводом консоли, логами. 6. Скрин. Просьба указывать 2, 3 и 4 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
Закрыто
Аватара пользователя

Автор темы
WWolf
Сообщения: 3895
Зарегистрирован: 14 фев 2018, 00:51
Решено: 31
Откуда: Краснодар
Благодарил (а): 1687 раз
Поблагодарили: 1212 раз
Контактная информация:

USB STM32: Virtual ComPort или Mass Storage

#1

10 апр 2019, 19:42

Есть самописная железяка на STM32.
USB на нём может прикидываться или Virtual ComPort или Mass Storage.
В винде как оказалось летает на ура в обоих режимах, только дровину пришлось на VCP поставить.
А вот в линухе какая-то дичь твориться. С утра работает пару часов, а потом сплошные ошибки дискрипторов...

Код: Выделить всё

[ 2091.167890] usb 3-3: new full-speed USB device number 40 using ohci-pci
[ 2091.367200] usb 3-3: unable to read config index 0 descriptor/all
[ 2091.367212] usb 3-3: can't read configurations, error -71
[ 2091.556072] usb 3-3: new full-speed USB device number 41 using ohci-pci
[ 2091.715929] usb 3-3: device descriptor read/64, error 2
[ 2092.024062] usb 3-3: unable to read config index 0 descriptor/start: -71
[ 2092.024073] usb 3-3: can't read configurations, error -71
[ 2092.032069] usb usb3-port3: attempt power cycle
[ 2092.532076] usb 3-3: new full-speed USB device number 42 using ohci-pci
[ 2092.566038] usb 3-3: device descriptor read/8, error -71
[ 2092.705088] usb 3-3: device descriptor read/all, error -71
[ 2092.895982] usb 3-3: new full-speed USB device number 43 using ohci-pci
[ 2093.312108] usb 3-3: device not accepting address 43, error -62
[ 2093.312176] usb usb3-port3: unable to enumerate USB device
[ 2366.731333] usb 5-1: USB disconnect, device number 4
[ 2376.030420] usb 5-1: new full-speed USB device number 5 using ohci-pci
[ 2376.233463] usb 5-1: config index 0 descriptor too short (expected 67, got 9)
[ 2376.233472] usb 5-1: config 1 has 0 interfaces, different from the descriptor's value: 2
[ 2376.249364] usb 5-1: New USB device found, idVendor=0483, idProduct=5740
[ 2376.249371] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2376.249375] usb 5-1: Product: Љ
[ 2376.249379] usb 5-1: Manufacturer: Љ
[ 2388.313840] usb 5-1: USB disconnect, device number 5
[ 2394.059054] usb 3-3: new full-speed USB device number 44 using ohci-pci
[ 2394.630932] usb 3-3: device not accepting address 44, error -62
[ 2394.787070] usb 3-3: new full-speed USB device number 45 using ohci-pci
[ 2394.985957] usb 3-3: unable to read config index 0 descriptor/all
[ 2394.985971] usb 3-3: can't read configurations, error -71
[ 2394.991054] usb usb3-port3: attempt power cycle
[ 2395.463102] usb 3-3: new full-speed USB device number 46 using ohci-pci
[ 2395.508077] usb 3-3: config index 0 descriptor too short (expected 67, got 9)
[ 2395.508085] usb 3-3: config 1 has 0 interfaces, different from the descriptor's value: 2
[ 2395.511910] usb 3-3: string descriptor 0 read error: -71
[ 2395.511919] usb 3-3: New USB device found, idVendor=0483, idProduct=5740
[ 2395.511921] usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
как видно сбой дескрипторов и прочая нечистота, но на винде то без проблем всё...
подозреваю что если обесточу комп как это происходит на ночь, то опять всё заработает до какого-то времени...
кто-нибудь сталкивался с таким странным поведением usb устройств и как боролся?

Код: Выделить всё

$ inxi -Fxz
System:    Host: Dimansky Kernel: 4.15.0-47-generic x86_64 (64 bit gcc: 5.4.0)
           Desktop: Cinnamon 3.6.7 (Gtk 3.18.9-1ubuntu3.3) Distro: Linux Mint 18.3 Sylvia
Machine:   Mobo: Gigabyte model: GA-790FXTA-UD5 v: x.x Bios: Award v: F2 date: 12/03/2009
CPU:       Quad core AMD Phenom II X4 945 (-MCP-) cache: 2048 KB
           flags: (lm nx sse sse2 sse3 sse4a svm) bmips: 24104
           clock speeds: max: 3000 MHz 1: 2300 MHz 2: 1800 MHz 3: 800 MHz 4: 1800 MHz
Graphics:  Card: NVIDIA G92 [GeForce 9800 GT] bus-ID: 01:00.0
           Display Server: X.Org 1.18.4 drivers: nouveau (unloaded: fbdev,vesa) Resolution: 1920x1080@60.00hz
           GLX Renderer: NV92 GLX Version: 3.0 Mesa 18.0.5 Direct Rendering: Yes
Audio:     Card Advanced Micro Devices [AMD/ATI] SBx00 Azalia (Intel HDA) driver: snd_hda_intel bus-ID: 00:14.2
           Sound: Advanced Linux Sound Architecture v: k4.15.0-47-generic
Network:   Card-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
           driver: r8169 v: 2.3LK-NAPI port: ee00 bus-ID: 03:00.0
           IF: enp3s0 state: up speed: 100 Mbps duplex: full mac: <filter>
           Card-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
           driver: r8169 v: 2.3LK-NAPI port: de00 bus-ID: 04:00.0
           IF: enp4s0 state: down mac: <filter>
Drives:    HDD Total Size: 999.4GB (40.6% used) ID-1: /dev/sda model: WDC_WD5001AALS size: 500.1GB
           ID-2: /dev/sdb model: MARVELL_Raid_VD size: 499.3GB
Partition: ID-1: / size: 47G used: 13G (28%) fs: ext4 dev: /dev/sda1
           ID-2: /home size: 404G used: 185G (49%) fs: ext4 dev: /dev/sda2
           ID-3: swap-1 size: 8.19GB used: 0.00GB (0%) fs: swap dev: /dev/sda3
RAID:      No RAID devices: /proc/mdstat, md_mod kernel module present
Sensors:   System Temperatures: cpu: 44.0C mobo: 34.1C
           Fan Speeds (in rpm): cpu: 2410 fan-2: 0 fan-3: 2280 fan-4: 1412 fan-5: 0
Info:      Processes: 221 Uptime: 50 min Memory: 1634.6/7975.0MB Init: systemd runlevel: 5 Gcc sys: 5.4.0
           Client: Shell (bash 4.3.481) inxi: 2.2.35 

UPD: апнул ядро на 5.0.7 стало то работать, то не работать... но со временем думаю что заглохнет опять мёртво... мрак какой-то

Код: Выделить всё

[   69.265338] usb 5-1: new full-speed USB device number 2 using ohci-pci
[   69.474752] usb 5-1: New USB device found, idVendor=0483, idProduct=5740, bcdDevice= 2.00
[   69.474759] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[   69.474764] usb 5-1: Product: H4-14 Virtual ComPort
[   69.922827] cdc_acm 5-1:1.0: ttyACM0: USB ACM device
[   69.923627] usbcore: registered new interface driver cdc_acm
[   69.923630] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[   77.529397] usb 5-1: USB disconnect, device number 2
[   79.450021] usb 5-2: new full-speed USB device number 3 using ohci-pci
[   79.689313] usb 5-2: unable to read config index 0 descriptor/start: -71
[   79.689324] usb 5-2: can't read configurations, error -71
[   79.878204] usb 5-2: new full-speed USB device number 4 using ohci-pci
[   80.115297] usb 5-2: unable to read config index 0 descriptor/all
[   80.115308] usb 5-2: can't read configurations, error -71
[   80.122193] usb usb5-port2: attempt power cycle
[   80.606265] usb 5-2: new full-speed USB device number 5 using ohci-pci
[   80.643164] usb 5-2: device descriptor read/all, error 8
[   80.806288] usb 5-2: new full-speed USB device number 6 using ohci-pci
[   80.842286] usb 5-2: device descriptor read/all, error 8
[   80.850252] usb usb5-port2: unable to enumerate USB device
[   88.946859] usb 5-1: new full-speed USB device number 7 using ohci-pci
[   89.154993] usb 5-1: unable to read config index 0 descriptor/all
[   89.155005] usb 5-1: can't read configurations, error -71
[   89.350857] usb 5-1: new full-speed USB device number 8 using ohci-pci
[   89.582858] usb 5-1: unable to read config index 0 descriptor/all
[   89.582870] usb 5-1: can't read configurations, error -71
[   89.590860] usb usb5-port1: attempt power cycle
[   90.074789] usb 5-1: new full-speed USB device number 9 using ohci-pci
[   90.132977] usb 5-1: New USB device found, idVendor=0483, idProduct=5740, bcdDevice= 2.00
[   90.132985] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[   90.132989] usb 5-1: Product: H4-14 Virtual ComPort
[   90.132993] usb 5-1: Manufacturer: OJSC "Company "RITM"
[   90.132996] usb 5-1: SerialNumber: 316E315C3336
[   90.136433] cdc_acm 5-1:1.0: ttyACM0: USB ACM device
[   91.842029] usb 5-1: USB disconnect, device number 9
[   93.959125] usb 5-2: new full-speed USB device number 10 using ohci-pci
[   94.163182] usb 5-2: config index 0 descriptor too short (expected 67, got 9)
[   94.163190] usb 5-2: config 1 has 0 interfaces, different from the descriptor's value: 2
[   94.167160] usb 5-2: string descriptor 0 read error: -71
[   94.167166] usb 5-2: New USB device found, idVendor=0483, idProduct=5740, bcdDevice= 2.00
[   94.167168] usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[   94.169286] usb 5-2: can't set config #1, error -71
[  108.754727] usb 5-2: USB disconnect, device number 10
[  110.672075] usb 5-2: new full-speed USB device number 11 using ohci-pci
[  110.875267] usb 5-2: unable to read config index 0 descriptor/all
[  110.875278] usb 5-2: can't read configurations, error -84
[  111.067941] usb 5-2: new full-speed USB device number 12 using ohci-pci
[  111.302263] usb 5-2: config index 0 descriptor too short (expected 67, got 9)
[  111.302271] usb 5-2: config 1 has 0 interfaces, different from the descriptor's value: 2
[  111.306257] usb 5-2: string descriptor 0 read error: -84
[  111.306269] usb 5-2: New USB device found, idVendor=0483, idProduct=5740, bcdDevice= 2.00
[  111.306274] usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  111.308111] usb 5-2: can't set config #1, error -71

Решение WWolf » 11 апр 2019, 23:11
короче линукс не причём... правильно ругался...
непонятно почему на винде vcp работает стабильнее чем на линуксе, но в режиме msc обе говорят что сам дебил :)
FreeRTOS и USB_DEVICE гремучая смесь оказалась...

Перейти к ответу ➙

Аватара пользователя

Dja
Сообщения: 6875
Зарегистрирован: 27 авг 2016, 20:03
Решено: 30
Откуда: Voskresensk
Благодарил (а): 1312 раз
Поблагодарили: 724 раза
Контактная информация:

USB STM32: Virtual ComPort или Mass Storage

#2

11 апр 2019, 08:18

А чего это такое? Глянул видос. Ее там к компу подключают через USB. Это сначала ее программируют, а потом подключают еще куда-нибудь и программируют то, к чему подключили?

Аватара пользователя

Автор темы
WWolf
Сообщения: 3895
Зарегистрирован: 14 фев 2018, 00:51
Решено: 31
Откуда: Краснодар
Благодарил (а): 1687 раз
Поблагодарили: 1212 раз
Контактная информация:

USB STM32: Virtual ComPort или Mass Storage

#3

11 апр 2019, 08:51

Dja, уже готовое устройство... Для оси оно видится или как диск или как компорт... Как запрограммируешь, тем и прикинется...
А Stm32 это семейство контроллеров, уточнил в заголовке на всякий случай...

Аватара пользователя

Автор темы
WWolf
Сообщения: 3895
Зарегистрирован: 14 фев 2018, 00:51
Решено: 31
Откуда: Краснодар
Благодарил (а): 1687 раз
Поблагодарили: 1212 раз
Контактная информация:

USB STM32: Virtual ComPort или Mass Storage

#4

11 апр 2019, 15:46

в общем пока так и не разобрался и забил...
то ли линукс более трепетно относится к usb, то ли реализация usb у stm32 через одно место...
проблемы с ошибками дискрипторов и конфигураций частично победил, но дальше было веселее...
в режиме VCP посылки через раз теряются в линухе, а на винде норм летают - чудеса да и только...

Аватара пользователя

Автор темы
WWolf
Сообщения: 3895
Зарегистрирован: 14 фев 2018, 00:51
Решено: 31
Откуда: Краснодар
Благодарил (а): 1687 раз
Поблагодарили: 1212 раз
Контактная информация:

USB STM32: Virtual ComPort или Mass Storage

#5

11 апр 2019, 23:11

короче линукс не причём... правильно ругался...
непонятно почему на винде vcp работает стабильнее чем на линуксе, но в режиме msc обе говорят что сам дебил :)
FreeRTOS и USB_DEVICE гремучая смесь оказалась...

Аватара пользователя

Автор темы
WWolf
Сообщения: 3895
Зарегистрирован: 14 фев 2018, 00:51
Решено: 31
Откуда: Краснодар
Благодарил (а): 1687 раз
Поблагодарили: 1212 раз
Контактная информация:

USB STM32: Virtual ComPort или Mass Storage

#6

19 апр 2019, 18:31

всё, победил окончательно недуги девайсины с USB и в очередной раз полюбил линукс :tux: dmesg форева :dance:

Аватара пользователя

rogoznik
Сообщения: 10042
Зарегистрирован: 27 июн 2017, 13:36
Решено: 129
Откуда: Нижний Тагил
Благодарил (а): 776 раз
Поблагодарили: 1956 раз
Контактная информация:

USB STM32: Virtual ComPort или Mass Storage

#7

19 апр 2019, 18:35

WWolf, congratulations :tada:
ИзображениеИзображение

no avatar

warmcat
Сообщения: 2
Зарегистрирован: 18 фев 2021, 14:44
Контактная информация:

USB STM32: Virtual ComPort или Mass Storage

#8

18 фев 2021, 14:53

WWolf писал(а):
19 апр 2019, 18:31
всё, победил окончательно недуги девайсины с USB и в очередной раз полюбил линукс :tux: dmesg форева :dance:
WWolf, добрый день! А подробности можно? А то я на STM32H7 который день мучаюсь... Без D-Cache-а девайс определяется, а с включенным нет... Можно в личку... :smile:

Аватара пользователя

Автор темы
WWolf
Сообщения: 3895
Зарегистрирован: 14 фев 2018, 00:51
Решено: 31
Откуда: Краснодар
Благодарил (а): 1687 раз
Поблагодарили: 1212 раз
Контактная информация:

USB STM32: Virtual ComPort или Mass Storage

#9

18 фев 2021, 14:56

warmcat, у меня с частотой ядра траблы были... когда задирал, то PLL срывался рандомно, а так как обмен в режиме MS маскимальный, то на нём и ловил этот срыв... снизил до рекомендуемой по даташиту и всё стало стабильно

с H7 ещё не работал, пока F серии хватает 1хх и 4хх

no avatar

warmcat
Сообщения: 2
Зарегистрирован: 18 фев 2021, 14:44
Контактная информация:

USB STM32: Virtual ComPort или Mass Storage

#10

18 фев 2021, 16:17

Спасибо за ответ, но это не мой случай... :dash2: Пойду биться дальше...

Закрыто

Вернуться в «Прочие устройства»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя