STM32 Virtual COM Port device not work then linux start - linux

I have a device(STM32 Virtual COM Port).In Linux it is detected normally /dev/ttyACM0. After starting the operating system, I do not receive data from the device. If turn it off and back on it works fine. The problem appears only when I reboot the operating system. Can you tell me how to make it work after restarting the OS.
Its my dmesg
[ 1.077892] usb 1-5: new full-speed USB device number 2 using xhci_hcd
[ 1.228321] usb 1-5: New USB device found, idVendor=0483, idProduct=5740, bcdDevice= 2.00
[ 1.228335] usb 1-5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1.228341] usb 1-5: Product: STM32 Virtual COM Port
[ 1.228345] usb 1-5: Manufacturer: STMicroelectronics
[ 1.228349] usb 1-5: SerialNumber: 5CF862553730

Related

USB_OTG_FS for stm device not working on linux

I am using a adafruit STM32F405 feather, and have written a program for it in the stm32cubeide. I have enabled USB_OTG_FS and also selected VCP under USB_DEVICE under middleware. I sent a simple message using CDC_Transmit_FS() within my main.c file. I wanted to then display the message using minicom but the stm32f405 is not recognized as a virtual com port when i plug it in. Please can anyone help with this problem?
This what i get from dmesg
[13875.812682] CPU4: Package temperature/speed normal
[13875.812714] CPU7: Package temperature/speed normal
[13875.812714] CPU3: Package temperature/speed normal
[13991.385412] usb 1-1: new full-speed USB device number 7 using xhci_hcd
[13991.535289] usb 1-1: New USB device found, idVendor=0483, idProduct=5740, bcdDevice= 2.00
[13991.535296] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[13991.535299] usb 1-1: Product: STM32 Virtual ComPort
[13991.535302] usb 1-1: Manufacturer: STMicroelectronics
[13991.535305] usb 1-1: SerialNumber: 2052368B424D
[13991.537315] cdc_acm 1-1:1.0: ttyACM1: USB ACM device
[14011.512953] usb 1-1: USB disconnect, device number 7
[14011.965421] usb 1-1: new full-speed USB device number 8 using xhci_hcd
[14012.115098] usb 1-1: New USB device found, idVendor=0483, idProduct=df11, bcdDevice=22.00
[14012.115101] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[14012.115103] usb 1-1: Product: STM32 BOOTLOADER
[14012.115105] usb 1-1: Manufacturer: STMicroelectronics
[14012.115106] usb 1-1: SerialNumber: 2052368B424D
[14062.597167] usb 1-1: USB disconnect, device number 8
[14062.905188] usb 1-1: new full-speed USB device number 9 using xhci_hcd
[14078.380920] usb 1-1: device descriptor read/64, error -110
[14093.996841] usb 1-1: device descriptor read/64, error -110
[14094.232811] usb 1-1: new full-speed USB device number 10 using xhci_hcd
[14109.616762] usb 1-1: device descriptor read/64, error -110
[14125.228684] usb 1-1: device descriptor read/64, error -110
[14125.336733] usb usb1-port1: attempt power cycle
[14125.752659] usb 1-1: new full-speed USB device number 11 using xhci_hcd
[14130.988679] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[14132.495127] usb 1-1: Device not responding to setup address.
[14132.700624] usb 1-1: device not accepting address 11, error -71
[14142.916583] usb 1-1: new full-speed USB device number 13 using xhci_hcd
[14158.508419] usb 1-1: device descriptor read/64, error -110
It appears that there is an error when reading the usb device descripter, any ideas how i can solve this?
HAL_PWREx_EnableUSBVoltageDetector() at end of MX_USB_DEVICE_Init for older Firmware it appears.
I updated from Jan to July release of IDE, MX and STM32CubeF4 releases and my USB_OTG_FS started working (the call above is not present in the latest).

How to configure driver in Buildroot for Moxa UPort 1110 USB serial converter?

I have a board with an embedded system that is buildroot based. In "make linux-menuconfig" I would like to add the appropriate drivers for the USB-RS232 adapter "Moxa UPORT 1110". I marked in "make linux-menuconfig":
Device Drivers-> USB support -> USB Serial Converter support-> USB MoxaUPORT Serial Driver
after connecting the adapter with the device, linux will not recognize the device.
When I check "lsusb" I get:
lsusb
Bus 001 Device 006: ID 110a:1110
Bus 001 Device 001: ID 1d6b:0002
The board does not see the producer's name etc. On my Ubuntu computer I get after plugging in usb and typing "lsusb ::
Bus 001 Device 036: ID 110a:1110 Moxa Technologies Co., Ltd.
When I check dmesg after plugging in the USB and see:
[ 9752.822985] usb 1-1: USB disconnect, device number 5
[ 9754.605939] usb 1-1: new full-speed USB device number 6 using musb-hdrc
[ 9754.768212] usb 1-1: New USB device found, idVendor=110a, idProduct=1110
[ 9754.775263] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 9754.782783] usb 1-1: Product: UPort 1110
[ 9754.786903] usb 1-1: Manufacturer: Moxa Technologies Co., Ltd.
should I check any additional settings / drivers in "make linux-menuconfig" to see the USB-R232 adapter?
From looking at the Linux source code, I understand that you enabled the mxuport driver which does not cover the UPORT 1110. However, it looks like the ti_usb_3410_5052 driver does. You can enable it by setting CONFIG_USB_SERIAL_TI.
In the Buildroot sources I see that you must make sure that BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI is set in order to include the firmware file (moxa-1110.fw).
So, in make menuconfig enable USB TI 3410/5052 Serial Firmware under Target packages > Hardware handling > Firmware > linux-firmware > USB to Serial Firmware

OpenOCD cannot open connection to STM32L4 board (STEVAL STWINCSV1)

I have a STEVAL STWINCSV1 board with an STM32L4R9 chip connected to my computer via USB. I am trying to use OpenOCD to flash a new image. I am using the command openocd -d -f board/stm32l4discovery.cfg to try to open a connection to the board. Here are the contents of the cfg file
# Explicitly for the STM32L476 discovery board:
# http://www.st.com/web/en/catalog/tools/PF261635
# but perfectly functional for any other STM32L4 board connected via
# an stlink-v2-1 interface.
# This is for STM32L4 boards that are connected via stlink-v2-1.
source [find interface/stlink.cfg]
transport select hla_swd
source [find target/stm32l4x.cfg]
reset_config srst_only
When I plug in the board via USB and check the output of dmesg | grep usb, here is what I get (I plugged the board in multiple times):
[15316.981696] usb 1-1.3: new full-speed USB device number 7 using xhci_hcd
[15317.119120] usb 1-1.3: New USB device found, idVendor=0483, idProduct=5740, bcdDevice= 2.00
[15317.119121] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[15317.119122] usb 1-1.3: Product: STM32 Virtual ComPort in FS Mode
[15317.119123] usb 1-1.3: Manufacturer: STMicroelectronics
[15317.119123] usb 1-1.3: SerialNumber: FFFFFFFEFFFF
[15317.169176] usbcore: registered new interface driver cdc_acm
[15726.366247] usb 1-1.3: USB disconnect, device number 7
[15733.238286] usb 1-1.3: new full-speed USB device number 8 using xhci_hcd
[15733.363181] usb 1-1.3: New USB device found, idVendor=0483, idProduct=5740, bcdDevice= 2.00
[15733.363182] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[15733.363183] usb 1-1.3: Product: STM32 Virtual ComPort in FS Mode
[15733.363184] usb 1-1.3: Manufacturer: STMicroelectronics
[15733.363184] usb 1-1.3: SerialNumber: FFFFFFFEFFFF
[15822.875489] usb 1-1.3: USB disconnect, device number 8
[15861.278256] usb 1-3.4: new full-speed USB device number 9 using xhci_hcd
[15861.400511] usb 1-3.4: New USB device found, idVendor=0483, idProduct=5740, bcdDevice= 2.00
[15861.400512] usb 1-3.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[15861.400513] usb 1-3.4: Product: STM32 Virtual ComPort in FS Mode
[15861.400514] usb 1-3.4: Manufacturer: STMicroelectronics
[15861.400514] usb 1-3.4: SerialNumber: FFFFFFFEFFFF
[16196.113834] usb 1-3.4: USB disconnect, device number 9
[16251.868195] usb 1-1.3: new full-speed USB device number 10 using xhci_hcd
[16252.006377] usb 1-1.3: New USB device found, idVendor=0483, idProduct=5740, bcdDevice= 2.00
[16252.006378] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[16252.006379] usb 1-1.3: Product: STM32 Virtual ComPort in FS Mode
[16252.006380] usb 1-1.3: Manufacturer: STMicroelectronics
[16252.006380] usb 1-1.3: SerialNumber: FFFFFFFEFFFF
When I run openocd -d -f board/stm32l4discovery.cfg, here is the output (pastebinned since it was a bit long): https://pastebin.com/biVLuf7U
Does anyone know what might be going wrong here?
I figured out the issue. First of all, the eval board I was using does not support stlink over its usb port, so I had to use a stlink/v3 mini external programmer instead. Also, the latest OpenOCD release on my distro did not support stlink/v3, so I had to compile OpenOCD from source. That fixed my issue.

TIUSB3410 Linux Driver

I am trying desperately to communicate from Linux (Raspbian kernel 4.4.12-v7+) with a device that uses the TIUSB3410 USB part.
Here is the output from dmesg:
[ 2730.016013] usb 1-1.4: new full-speed USB device number 5 using dwc_otg
[ 2730.161030] usb 1-1.4: New USB device found, idVendor=0451, idProduct=3410
[ 2730.161049] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2730.161062] usb 1-1.4: Product: TUSB3410 Boot Device
[ 2730.161074] usb 1-1.4: Manufacturer: Texas Instruments
[ 2730.161087] usb 1-1.4: SerialNumber: TUSB3410
[ 2730.164670] ti_usb_3410_5052 1-1.4:1.0: TI USB 3410 1 port adapter converter detected
[ 2730.164793] usb 1-1.4: Direct firmware load for ti_usb-v0451-p3410.fw failed with error -2
[ 2730.164934] usb 1-1.4: ti_download_firmware - firmware too large 37874
[ 2730.164986] ti_usb_3410_5052: probe of 1-1.4:1.0 failed with error -5
I have searched high and low for information and nothing works. Any assistance would be greatly appreciated.
I am using the latest Raspbian kernel 4.4.12-v7+
Answered my own question:
I am running a raspberry pi model 3 with the latest debian kernel 4.4.13.
I downloaded the latest source, ran make menuconfig, and most importantly enabled USB TI 3410/5052 Serial Driver located here:
Device Driver --->
[*] USB support --->
[*] USB Serial Converter support --->
<*> USB TI 3410/5052 Serial Driver
It is important to enable each level above by pressing Y to include in the kernel. In my example having the feature modularized M did NOT work.
I followed the instructions here to configure and build the kernel:
https://www.raspberrypi.org/documentation/linux/kernel/building.md

Smart card reader detection on Linux

I have a smart card reader called SK-284. It support two communication methods, RS232 and USB.
In my case only USB is enable. When I connect this device to my Linux laptop, via USB, It wont get detected. I run '$dmesg' command to check on which ttyUSB port it get detected, I got following output,
[ 2321.208330] usb 2-1.2: new full-speed USB device number 7 using ehci_hcd
[ 2321.384628] generic-usb 0003:8203:8288.0003: hiddev0,hidraw1: USB HID v1.10 Device [\xffffffe6\xffffffb7\xffffffb1\xffffffb7\xffffffb1\xffffffe5\xffffff9c\xffffffb3\xffffff9c\xffffffb3\xffffffe5\xffffff88\xffffff9b\xffffff88\xffffff9b\xffffffe8\xffffff87\xffffffaa\xffffff87\xffffffaa\xffffffe6\xffffff8a\xffffff80\xffffff8a\xffffff80\xffffffe6\xffffff9c\xffffffaf\xffffff9c\xffffffaf\xffffffe6\xffffff9c\xffffff89\xffffff9c\xffffff89\xffffffe9\xffffff99\xffffff90\xffffff99\xffffff90\xffffffe5\xffffff85\xffffffac\xffffff85\xffffffac\xffffffe5\xffffff8f\xffffffb8\xffffff8f\xffffffb8 CRT450 USB 1.1] on usb-0000:00:1d.0-1.2/input0
[ 2326.634925] usb 2-1.2: USB disconnect, device number 7
[ 2326.855479] usb 2-1.2: new full-speed USB device number 8 using ehci_hcd
[ 2326.954303] usb 2-1.2: config index 0 descriptor too short (expected 9, got 0)
[ 2326.954310] usb 2-1.2: can't read configurations, error -22
[ 2327.027211] usb 2-1.2: new full-speed USB device number 9 using ehci_hcd
[ 2327.171371] generic-usb 0003:CEA0:2840.0004: hiddev0,hidraw1: USB HID v1.10 Device [\xffffffe6\xffffffb7\xffffffb1\xffffffb7\xffffffb1\xffffffe5\xffffff9c\xffffffb3\xffffff9c\xffffffb3\xffffffe5\xffffff88\xffffff9b\xffffff88\xffffff9b\xffffffe8\xffffff87\xffffffaa\xffffff87\xffffffaa\xffffffe6\xffffff8a\xffffff80\xffffff8a\xffffff80\xffffffe6\xffffff9c\xffffffaf\xffffff9c\xffffffaf\xffffffe6\xffffff9c\xffffff89\xffffff9c\xffffff89\xffffffe9\xffffff99\xffffff90\xffffff99\xffffff90\xffffffe5\xffffff85\xffffffac\xffffff85\xffffffac\xffffffe5\xffffff8f\xffffffb8\xffffff8f\xffffffb8 CRT284 USB 1.1] on usb-0000:00:1d.0-1.2/input0
My laptop specification:
OS: Ubuntu 12.04
Kernel: 3.2.0-54-generic-pae
When I connect same device to Windows 7 and run device manager, It got detected under Human Interface Device (HID). and some test applications are running fine.
My task is to write a small code on Linux to detect the smart card by device.
So where do I get to know on which ttyUSB port is used by this device, or any other method to get connected to this device.
Thanks in advance.
You may try to change some parameter in usbcore module:
echo y > /sys/module/usbcore/parameters/old_scheme_first
and then replug you usb-device.
As it is full-speed device (not hi-speed) you may also do such thing:
rmmod ehci-hcd
insmod uhci-hcd
insmod ohci-hcd
It seems like there is problem in usb communication. Probably on the usb-device side, because usb-host expects 9 bytes but usb-device sends 0 bytes.

Resources