[opensuse] Help Reading Serial Device /dev/bus/usb/001/010
All, I have a small ARM board that I am working with: http://processors.wiki.ti.com/index.php/LAUNCHXL2-RM46 I can build for the board using gcc-arm-none-eabi and flash the firmware with the TI UniFlash software. However I cannot figure out how to connect a serial device to it. The manual says I should be able to: Configure Baud Rate: 19200, Data Bits: 8, Stop Bits: 2 and Parity: None http://processors.wiki.ti.com/index.php/LAUNCHXL2_RM46:_Project_1 When connected there are two /dev/tty devices created: crw-rw-rw- 1 root dialout 166, 0 Oct 12 21:55 /dev/ttyACM0 crw-rw-rw- 1 root dialout 166, 1 Oct 12 21:55 /dev/ttyACM1 These are in some manner related to: /sys/devices/pci0000\:00/0000\:00\:1c.7/0000\:26\:00.0/usb1/1-1 and the character device /dev/char/189:9 I have tried minicom through /dev/ttyACM0, without success. I can find the device and query it through: # udevadm test /sys/devices/pci0000\:00/0000\:00\:1c.7/0000\:26\:00.0/usb1/1-1 calling: test version 228 This program is for debugging only, it does not run any program specified by a RUN key. It may show incorrect results, because some values may be different, or not available at a simulation run. === trie on-disk === tool version: 228 file size: 7007575 bytes header size 80 bytes strings 1743863 bytes nodes 5263632 bytes Load module index <snip> starting '/usr/lib/udev/mtp-probe /sys/devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb1/1-1 1 10' '/usr/lib/udev/mtp-probe /sys/devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb1/1-1 1 10'(out) '0' Process '/usr/lib/udev/mtp-probe /sys/devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb1/1-1 1 10' succeeded. MODE 0666 /etc/udev/rules.d/71-ti-permissions.rules:10 handling device node '/dev/bus/usb/001/010', devnum=c189:9, mode=0666, uid=0, gid=0 preserve permissions /dev/bus/usb/001/010, 020666, uid=0, gid=0 preserve already existing symlink '/dev/char/189:9' to '../bus/usb/001/010' created db file '/run/udev/data/c189:9' for '/devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb1/1-1' ACTION=add BUSNUM=001 DEVNAME=/dev/bus/usb/001/010 DEVNUM=010 DEVPATH=/devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb1/1-1 DEVTYPE=usb_device DRIVER=usb ID_BUS=usb ID_MODEL=XDS110__03.00.00.02__Embed_with_CMSIS-DAP ID_MODEL_ENC=XDS110\x20\x2803.00.00.02\x29\x20Embed\x20with\x20CMSIS-DAP ID_MODEL_ID=bef3 ID_REVISION=0100 ID_SERIAL=Texas_Instruments_XDS110__03.00.00.02__Embed_with_CMSIS-DAP_HLR46000 ID_SERIAL_SHORT=HLR46000 ID_USB_INTERFACES=:020201:0a0000:ff0000:030000: ID_VENDOR=Texas_Instruments ID_VENDOR_ENC=Texas\x20Instruments ID_VENDOR_FROM_DATABASE=Texas Instruments, Inc. ID_VENDOR_ID=0451 MAJOR=189 MINOR=9 PRODUCT=451/bef3/100 SUBSYSTEM=usb TYPE=239/2/1 USEC_INITIALIZED=120561513447 run: '/usr/lib/virtualbox/VBoxCreateUSBNode.sh 189 9 ef' Unload module index Unloaded link configuration context. This is the correct udev rule for the device, but that is where I am stuck. What I need to do is get a serial console open to it so that when I load an executable that reads/writes to stdin/stdout I can see the output and provide the input. (blinking diodes are the board are nice, but worthless for providing user authentication through) Connecting a serial console seems like a simple process, but I must be missing something stupid simple about it. Minicom can be configured for either /dev/ttyACM0 or /dev/ttyACM1 (and N82 19200) but there is nothing ever output on either (even after loading a program that generates output to stdout) Yes, the flash goes fine and I can load different executables to make the diodes respond in varying ways -- so the fact that the code is loaded and running correctly if verified, but how do I interface with the serial terminal on this thing? Anybody been down this road before? -- David C. Rankin, J.D.,P.E. -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
13.10.2019 7:56, David C. Rankin пишет:
All,
I have a small ARM board that I am working with:
http://processors.wiki.ti.com/index.php/LAUNCHXL2-RM46
I can build for the board using gcc-arm-none-eabi and flash the firmware with the TI UniFlash software. However I cannot figure out how to connect a serial device to it. The manual says I should be able to:
Configure Baud Rate: 19200, Data Bits: 8, Stop Bits: 2 and Parity: None
It is very unusual to see 2 stop bits. Did you try with 1 stop bit?
http://processors.wiki.ti.com/index.php/LAUNCHXL2_RM46:_Project_1
When connected there are two /dev/tty devices created:
crw-rw-rw- 1 root dialout 166, 0 Oct 12 21:55 /dev/ttyACM0 crw-rw-rw- 1 root dialout 166, 1 Oct 12 21:55 /dev/ttyACM1
These are in some manner related to:
Related in what manner?
/sys/devices/pci0000\:00/0000\:00\:1c.7/0000\:26\:00.0/usb1/1-1
You do not talk to USB device. You talk to USB interface which is child of USB device. Does it have child devices? USB interfaces are separated from USB device by ':'. See also http://www.linux-usb.org/FAQ.html#i6
and the character device
/dev/char/189:9
I have tried minicom through /dev/ttyACM0, without success. I can find the device and query it through:
# udevadm test /sys/devices/pci0000\:00/0000\:00\:1c.7/0000\:26\:00.0/usb1/1-1 calling: test version 228 This program is for debugging only, it does not run any program specified by a RUN key. It may show incorrect results, because some values may be different, or not available at a simulation run.
=== trie on-disk === tool version: 228 file size: 7007575 bytes header size 80 bytes strings 1743863 bytes nodes 5263632 bytes Load module index <snip> starting '/usr/lib/udev/mtp-probe /sys/devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb1/1-1 1 10' '/usr/lib/udev/mtp-probe /sys/devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb1/1-1 1 10'(out) '0' Process '/usr/lib/udev/mtp-probe /sys/devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb1/1-1 1 10' succeeded. MODE 0666 /etc/udev/rules.d/71-ti-permissions.rules:10 handling device node '/dev/bus/usb/001/010', devnum=c189:9, mode=0666, uid=0, gid=0 preserve permissions /dev/bus/usb/001/010, 020666, uid=0, gid=0 preserve already existing symlink '/dev/char/189:9' to '../bus/usb/001/010' created db file '/run/udev/data/c189:9' for '/devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb1/1-1' ACTION=add BUSNUM=001 DEVNAME=/dev/bus/usb/001/010 DEVNUM=010 DEVPATH=/devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb1/1-1 DEVTYPE=usb_device DRIVER=usb ID_BUS=usb ID_MODEL=XDS110__03.00.00.02__Embed_with_CMSIS-DAP ID_MODEL_ENC=XDS110\x20\x2803.00.00.02\x29\x20Embed\x20with\x20CMSIS-DAP ID_MODEL_ID=bef3 ID_REVISION=0100 ID_SERIAL=Texas_Instruments_XDS110__03.00.00.02__Embed_with_CMSIS-DAP_HLR46000 ID_SERIAL_SHORT=HLR46000 ID_USB_INTERFACES=:020201:0a0000:ff0000:030000: ID_VENDOR=Texas_Instruments ID_VENDOR_ENC=Texas\x20Instruments ID_VENDOR_FROM_DATABASE=Texas Instruments, Inc. ID_VENDOR_ID=0451 MAJOR=189 MINOR=9 PRODUCT=451/bef3/100 SUBSYSTEM=usb TYPE=239/2/1
Well, this just tells you that it is multi-functional device. You need to look at child device(s) to find out what this device actually supports and which drivers it needs. lsusb -v -s 1:10 may be useful.
USEC_INITIALIZED=120561513447 run: '/usr/lib/virtualbox/VBoxCreateUSBNode.sh 189 9 ef' Unload module index Unloaded link configuration context.
This is the correct udev rule for the device, but that is where I am stuck. What I need to do is get a serial console open to it so that when I load an executable that reads/writes to stdin/stdout I can see the output and provide the input. (blinking diodes are the board are nice, but worthless for providing user authentication through)
Connecting a serial console seems like a simple process, but I must be missing something stupid simple about it. Minicom can be configured for either /dev/ttyACM0 or /dev/ttyACM1 (and N82 19200) but there is nothing ever output on either (even after loading a program that generates output to stdout) Yes, the flash goes fine and I can load different executables to make the diodes respond in varying ways -- so the fact that the code is loaded and running correctly if verified, but how do I interface with the serial terminal on this thing?
Anybody been down this road before?
-- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
On 10/13/2019 02:34 AM, Andrei Borzenkov wrote:
Well, this just tells you that it is multi-functional device. You need to look at child device(s) to find out what this device actually supports and which drivers it needs.
lsusb -v -s 1:10 may be useful.
Wow, thank you Andrei, that does provide a lot more information. (it is now 1:11, since I unplugged it and plugged it back in) Before the full output, here is the output of lsusb -t lsusb -t /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M |__ Port 4: Dev 3, If 0, Class=Video, Driver=uvcvideo, 480M |__ Port 4: Dev 3, If 1, Class=Video, Driver=uvcvideo, 480M |__ Port 6: Dev 4, If 0, Class=Wireless, Driver=btusb, 12M |__ Port 6: Dev 4, If 1, Class=Wireless, Driver=btusb, 12M |__ Port 6: Dev 4, If 2, Class=Vendor Specific Class, Driver=, 12M |__ Port 6: Dev 4, If 3, Class=Application Specific Interface, Driver=, 12M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M |__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=, 12M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M |__ Port 1: Dev 10, If 0, Class=Communications, Driver=, 12M |__ Port 1: Dev 10, If 1, Class=CDC Data, Driver=, 12M |__ Port 1: Dev 10, If 2, Class=Vendor Specific Class, Driver=, 12M |__ Port 1: Dev 10, If 3, Class=Communications, Driver=cdc_acm, 12M |__ Port 1: Dev 10, If 4, Class=CDC Data, Driver=cdc_acm, 12M |__ Port 1: Dev 10, If 5, Class=Human Interface Device, Driver=, 12M |__ Port 1: Dev 10, If 6, Class=Vendor Specific Class, Driver=, 12M |__ Port 2: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M Here is the full verbose output, though I still a bit unclear what subdevice(s) I'm looking for: # lsusb -v -s 1:11 Bus 001 Device 011: ID 0451:bef3 Texas Instruments, Inc. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 239 Miscellaneous Device bDeviceSubClass 2 ? bDeviceProtocol 1 Interface Association bMaxPacketSize0 64 idVendor 0x0451 Texas Instruments, Inc. idProduct 0xbef3 bcdDevice 1.00 iManufacturer 1 Texas Instruments iProduct 2 XDS110 (03.00.00.02) Embed with CMSIS-DAP iSerial 3 HLR46000 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 219 bNumInterfaces 7 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 500mA Interface Association: bLength 8 bDescriptorType 11 bFirstInterface 0 bInterfaceCount 2 bFunctionClass 2 Communications bFunctionSubClass 2 Abstract (modem) bFunctionProtocol 1 AT-commands (v.25ter) iFunction 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 2 Communications bInterfaceSubClass 2 Abstract (modem) bInterfaceProtocol 1 AT-commands (v.25ter) iInterface 0 CDC Header: bcdCDC 1.10 CDC ACM: bmCapabilities 0x06 sends break line coding and serial state CDC Union: bMasterInterface 0 bSlaveInterface 1 CDC Call Management: bmCapabilities 0x01 call management bDataInterface 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0010 1x 16 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 10 CDC Data bInterfaceSubClass 0 Unused bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Interface Association: bLength 8 bDescriptorType 11 bFirstInterface 3 bInterfaceCount 2 bFunctionClass 2 Communications bFunctionSubClass 2 Abstract (modem) bFunctionProtocol 1 AT-commands (v.25ter) iFunction 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 2 Communications bInterfaceSubClass 2 Abstract (modem) bInterfaceProtocol 1 AT-commands (v.25ter) iInterface 0 CDC Header: bcdCDC 1.10 CDC ACM: bmCapabilities 0x06 sends break line coding and serial state CDC Union: bMasterInterface 3 bSlaveInterface 4 CDC Call Management: bmCapabilities 0x01 call management bDataInterface 4 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0010 1x 16 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 4 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 10 CDC Data bInterfaceSubClass 0 Unused bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x85 EP 5 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 5 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 No Subclass bInterfaceProtocol 0 None iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.11 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 24 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x86 EP 6 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 6 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x87 EP 7 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x05 EP 5 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Device Status: 0x0000 (Bus Powered) -- David C. Rankin, J.D.,P.E. -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
13.10.2019 12:41, David C. Rankin пишет:
On 10/13/2019 02:34 AM, Andrei Borzenkov wrote:
Well, this just tells you that it is multi-functional device. You need to look at child device(s) to find out what this device actually supports and which drivers it needs.
lsusb -v -s 1:10 may be useful.
Wow, thank you Andrei, that does provide a lot more information. (it is now 1:11, since I unplugged it and plugged it back in)
Before the full output, here is the output of lsusb -t
lsusb -t
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M |__ Port 4: Dev 3, If 0, Class=Video, Driver=uvcvideo, 480M |__ Port 4: Dev 3, If 1, Class=Video, Driver=uvcvideo, 480M |__ Port 6: Dev 4, If 0, Class=Wireless, Driver=btusb, 12M |__ Port 6: Dev 4, If 1, Class=Wireless, Driver=btusb, 12M |__ Port 6: Dev 4, If 2, Class=Vendor Specific Class, Driver=, 12M |__ Port 6: Dev 4, If 3, Class=Application Specific Interface, Driver=, 12M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M |__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=, 12M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M |__ Port 1: Dev 10, If 0, Class=Communications, Driver=, 12M |__ Port 1: Dev 10, If 1, Class=CDC Data, Driver=, 12M |__ Port 1: Dev 10, If 2, Class=Vendor Specific Class, Driver=, 12M |__ Port 1: Dev 10, If 3, Class=Communications, Driver=cdc_acm, 12M |__ Port 1: Dev 10, If 4, Class=CDC Data, Driver=cdc_acm, 12M |__ Port 1: Dev 10, If 5, Class=Human Interface Device, Driver=, 12M |__ Port 1: Dev 10, If 6, Class=Vendor Specific Class, Driver=, 12M |__ Port 2: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
Your device provides two standard communication interfaces ("modems") which likely correspond to ttyACM0 and ttyACM1 as well as some proprietor y interfaces (Vendor Specific). No idea what HID is in this case (you probably can find it by examining input devices). Do you know which of communication devices is your console? Did you try both? Note that page you mentioned originally says: "If you completed step 1 and wish to see the console output of the demo" where step 1 is installing some software. This suggests that you need special driver to be able to see console output. It is quite possible that console connection is enabled via special AT commands on one of these "modems" or even side band via one of those Vendor Specific devices. Still "udevadm info --export-db" would be interesting. -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
On 10/13/2019 10:19 AM, Andrei Borzenkov wrote:
13.10.2019 12:41, David C. Rankin пишет:
On 10/13/2019 02:34 AM, Andrei Borzenkov wrote:
Well, this just tells you that it is multi-functional device. You need to look at child device(s) to find out what this device actually supports and which drivers it needs.
lsusb -v -s 1:10 may be useful.
Wow, thank you Andrei, that does provide a lot more information. (it is now 1:11, since I unplugged it and plugged it back in)
Before the full output, here is the output of lsusb -t
lsusb -t
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M |__ Port 4: Dev 3, If 0, Class=Video, Driver=uvcvideo, 480M |__ Port 4: Dev 3, If 1, Class=Video, Driver=uvcvideo, 480M |__ Port 6: Dev 4, If 0, Class=Wireless, Driver=btusb, 12M |__ Port 6: Dev 4, If 1, Class=Wireless, Driver=btusb, 12M |__ Port 6: Dev 4, If 2, Class=Vendor Specific Class, Driver=, 12M |__ Port 6: Dev 4, If 3, Class=Application Specific Interface, Driver=, 12M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M |__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=, 12M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M |__ Port 1: Dev 10, If 0, Class=Communications, Driver=, 12M |__ Port 1: Dev 10, If 1, Class=CDC Data, Driver=, 12M |__ Port 1: Dev 10, If 2, Class=Vendor Specific Class, Driver=, 12M |__ Port 1: Dev 10, If 3, Class=Communications, Driver=cdc_acm, 12M |__ Port 1: Dev 10, If 4, Class=CDC Data, Driver=cdc_acm, 12M |__ Port 1: Dev 10, If 5, Class=Human Interface Device, Driver=, 12M |__ Port 1: Dev 10, If 6, Class=Vendor Specific Class, Driver=, 12M |__ Port 2: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
Your device provides two standard communication interfaces ("modems") which likely correspond to ttyACM0 and ttyACM1 as well as some proprietor y interfaces (Vendor Specific). No idea what HID is in this case (you probably can find it by examining input devices).
Do you know which of communication devices is your console? Did you try both?
Note that page you mentioned originally says: "If you completed step 1 and wish to see the console output of the demo" where step 1 is installing some software. This suggests that you need special driver to be able to see console output. It is quite possible that console connection is enabled via special AT commands on one of these "modems" or even side band via one of those Vendor Specific devices.
Still "udevadm info --export-db" would be interesting.
Andrei, We are making progress, we were able to connect with minicom to ttyACM0 and it really is a N82 connection. 19200 8N2 | NOR | Minicom 2.7 | VT102 | Offline | ttyACM0 The key here is I connected before I had allowed any other device operation (such as flashing) to take place. Loading a demo, and doing a power-of reset of the device I was greeted with: Welcome to minicom 2.7 OPTIONS: I18n Port /dev/ttyACM0, 23:20:25 Press CTRL-A Z for help on special keys ------------------------------------------------------------------------------------------------------ Welcome to the Hercules Launchpad demo ------------------------------------------------------------------------------------------------------ 1> Light Sensor Demo: USER LED B blinking frequency is controlled by the ambient light sensor. Vary the intensity of the light on the sensor to observe the response. 2> CCMR4F Error Forcing Fault: Press USER SWITCH B button to inject this fault.ERR LED will light up when fault is detected. 3> FLASH ECC ERROR PROFILING TEST: Each press of USER SWITCH A button inserts 1-bit ECC error in flash. Error Profiling threshhold is set to 6 and pressing USER SWITCH A for 6 times sets the ERR LED. 4> OSCILLATOR FAILURE: oscillator can be killed placing jumper JP1 in OSC KILL position to create an oscillator fault which in turn creates error in system.ERR LED is ON as a result. ------------------------------------------------------------------------------------------------------ PLEASE DO POWER ON RESET(PORRST) WHENEVER YOU SEE ERR LED ON ------------------------------------------------------------------------------------------------------ Now that is only 1/2 the battle. In order for the device to be useful, I still need to get stdin/stdout working so I can provide input to the device. While the shorted demos show a simple inclusion of stdio.h and the normal output functions (printf, puts) being able to work -- I have not had success yet. If you have additional ideas, let me know. It's a pretty cool little board, bare-metal, no OS, and there is life -- intelligent life at that. The udevadm info is as follows (it generated a LOT of output, but I think these are the relevant sections for the current usb/3-1 connection) # udevadm info --export-db P: /devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb3/3-1 N: bus/usb/003/003 E: BUSNUM=003 E: DEVNAME=/dev/bus/usb/003/003 E: DEVNUM=003 E: DEVPATH=/devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb3/3-1 E: DEVTYPE=usb_device E: DRIVER=usb E: ID_BUS=usb E: ID_MODEL=XDS110__03.00.00.05__Embed_with_CMSIS-DAP E: ID_MODEL_ENC=XDS110\x20\x2803.00.00.05\x29\x20Embed\x20with\x20CMSIS-DAP E: ID_MODEL_ID=bef3 E: ID_REVISION=0100 E: ID_SERIAL=Texas_Instruments_XDS110__03.00.00.05__Embed_with_CMSIS-DAP_HLR46000 E: ID_SERIAL_SHORT=HLR46000 E: ID_USB_INTERFACES=:020201:0a0000:ff0000:030000: E: ID_VENDOR=Texas_Instruments E: ID_VENDOR_ENC=Texas\x20Instruments E: ID_VENDOR_FROM_DATABASE=Texas Instruments, Inc. E: ID_VENDOR_ID=0451 E: MAJOR=189 E: MINOR=258 E: PRODUCT=451/bef3/100 E: SUBSYSTEM=usb E: TYPE=239/2/1 E: USEC_INITIALIZED=2113968565 P: /devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb3/3-1/3-1:1.0 E: DEVPATH=/devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb3/3-1/3-1:1.0 E: DEVTYPE=usb_interface E: DRIVER=cdc_acm E: ID_USB_CLASS_FROM_DATABASE=Miscellaneous Device E: ID_USB_PROTOCOL_FROM_DATABASE=Interface Association E: ID_VENDOR_FROM_DATABASE=Texas Instruments, Inc. E: INTERFACE=2/2/1 E: MODALIAS=usb:v0451pBEF3d0100dcEFdsc02dp01ic02isc02ip01in00 E: PRODUCT=451/bef3/100 E: SUBSYSTEM=usb E: TYPE=239/2/1 E: USEC_INITIALIZED=2113987687 P: /devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb3/3-1/3-1:1.0/tty/ttyACM0 N: ttyACM0 S: serial/by-id/usb-Texas_Instruments_XDS110__03.00.00.05__Embed_with_CMSIS-DAP_HLR46000-if00 S: serial/by-path/pci-0000:26:00.0-usb-0:1:1.0 E: DEVLINKS=/dev/serial/by-id/usb-Texas_Instruments_XDS110__03.00.00.05__Embed_with_CMSIS-DAP_HLR46000-if00 /dev/serial/by-path/pci-0000:26:00.0-usb-0:1:1.0 E: DEVNAME=/dev/ttyACM0 E: DEVPATH=/devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb3/3-1/3-1:1.0/tty/ttyACM0 E: ID_BUS=usb E: ID_MM_CANDIDATE=1 E: ID_MODEL=XDS110__03.00.00.05__Embed_with_CMSIS-DAP E: ID_MODEL_ENC=XDS110\x20\x2803.00.00.05\x29\x20Embed\x20with\x20CMSIS-DAP E: ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller E: ID_MODEL_ID=bef3 E: ID_PATH=pci-0000:26:00.0-usb-0:1:1.0 E: ID_PATH_TAG=pci-0000_26_00_0-usb-0_1_1_0 E: ID_PCI_CLASS_FROM_DATABASE=Serial bus controller E: ID_PCI_INTERFACE_FROM_DATABASE=XHCI E: ID_PCI_SUBCLASS_FROM_DATABASE=USB controller E: ID_REVISION=0100 E: ID_SERIAL=Texas_Instruments_XDS110__03.00.00.05__Embed_with_CMSIS-DAP_HLR46000 E: ID_SERIAL_SHORT=HLR46000 E: ID_TYPE=generic E: ID_USB_CLASS_FROM_DATABASE=Miscellaneous Device E: ID_USB_DRIVER=cdc_acm E: ID_USB_INTERFACES=:020201:0a0000:ff0000:030000: E: ID_USB_INTERFACE_NUM=00 E: ID_USB_PROTOCOL_FROM_DATABASE=Interface Association E: ID_VENDOR=Texas_Instruments E: ID_VENDOR_ENC=Texas\x20Instruments E: ID_VENDOR_FROM_DATABASE=Texas Instruments, Inc. E: ID_VENDOR_ID=0451 E: MAJOR=166 E: MINOR=0 E: SUBSYSTEM=tty E: TAGS=:systemd: E: USEC_INITIALIZED=2113999225 P: /devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb3/3-1/3-1:1.1 E: DEVPATH=/devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb3/3-1/3-1:1.1 E: DEVTYPE=usb_interface E: DRIVER=cdc_acm E: ID_USB_CLASS_FROM_DATABASE=Miscellaneous Device E: ID_USB_PROTOCOL_FROM_DATABASE=Interface Association E: ID_VENDOR_FROM_DATABASE=Texas Instruments, Inc. E: INTERFACE=10/0/0 E: MODALIAS=usb:v0451pBEF3d0100dcEFdsc02dp01ic0Aisc00ip00in01 E: PRODUCT=451/bef3/100 E: SUBSYSTEM=usb E: TYPE=239/2/1 E: USEC_INITIALIZED=2113987687 P: /devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb3/3-1/3-1:1.2 E: DEVPATH=/devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb3/3-1/3-1:1.2 E: DEVTYPE=usb_interface E: ID_USB_CLASS_FROM_DATABASE=Miscellaneous Device E: ID_USB_PROTOCOL_FROM_DATABASE=Interface Association E: ID_VENDOR_FROM_DATABASE=Texas Instruments, Inc. E: INTERFACE=255/0/0 E: MODALIAS=usb:v0451pBEF3d0100dcEFdsc02dp01icFFisc00ip00in02 E: PRODUCT=451/bef3/100 E: SUBSYSTEM=usb E: TYPE=239/2/1 E: USEC_INITIALIZED=2113988266 P: /devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb3/3-1/3-1:1.3 E: DEVPATH=/devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb3/3-1/3-1:1.3 E: DEVTYPE=usb_interface E: DRIVER=cdc_acm E: ID_USB_CLASS_FROM_DATABASE=Miscellaneous Device E: ID_USB_PROTOCOL_FROM_DATABASE=Interface Association E: ID_VENDOR_FROM_DATABASE=Texas Instruments, Inc. E: INTERFACE=2/2/1 E: MODALIAS=usb:v0451pBEF3d0100dcEFdsc02dp01ic02isc02ip01in03 E: PRODUCT=451/bef3/100 E: SUBSYSTEM=usb E: TYPE=239/2/1 E: USEC_INITIALIZED=2113989384 P: /devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb3/3-1/3-1:1.3/tty/ttyACM1 N: ttyACM1 S: serial/by-id/usb-Texas_Instruments_XDS110__03.00.00.05__Embed_with_CMSIS-DAP_HLR46000-if03 S: serial/by-path/pci-0000:26:00.0-usb-0:1:1.3 E: DEVLINKS=/dev/serial/by-path/pci-0000:26:00.0-usb-0:1:1.3 /dev/serial/by-id/usb-Texas_Instruments_XDS110__03.00.00.05__Embed_with_CMSIS-DAP_HLR46000-if03 E: DEVNAME=/dev/ttyACM1 E: DEVPATH=/devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb3/3-1/3-1:1.3/tty/ttyACM1 E: ID_BUS=usb E: ID_MM_CANDIDATE=1 E: ID_MODEL=XDS110__03.00.00.05__Embed_with_CMSIS-DAP E: ID_MODEL_ENC=XDS110\x20\x2803.00.00.05\x29\x20Embed\x20with\x20CMSIS-DAP E: ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller E: ID_MODEL_ID=bef3 E: ID_PATH=pci-0000:26:00.0-usb-0:1:1.3 E: ID_PATH_TAG=pci-0000_26_00_0-usb-0_1_1_3 E: ID_PCI_CLASS_FROM_DATABASE=Serial bus controller E: ID_PCI_INTERFACE_FROM_DATABASE=XHCI E: ID_PCI_SUBCLASS_FROM_DATABASE=USB controller E: ID_REVISION=0100 E: ID_SERIAL=Texas_Instruments_XDS110__03.00.00.05__Embed_with_CMSIS-DAP_HLR46000 E: ID_SERIAL_SHORT=HLR46000 E: ID_TYPE=generic E: ID_USB_CLASS_FROM_DATABASE=Miscellaneous Device E: ID_USB_DRIVER=cdc_acm E: ID_USB_INTERFACES=:020201:0a0000:ff0000:030000: E: ID_USB_INTERFACE_NUM=03 E: ID_USB_PROTOCOL_FROM_DATABASE=Interface Association E: ID_VENDOR=Texas_Instruments E: ID_VENDOR_ENC=Texas\x20Instruments E: ID_VENDOR_FROM_DATABASE=Texas Instruments, Inc. E: ID_VENDOR_ID=0451 E: MAJOR=166 E: MINOR=1 E: SUBSYSTEM=tty E: TAGS=:systemd: E: USEC_INITIALIZED=2113999206 P: /devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb3/3-1/3-1:1.4 E: DEVPATH=/devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb3/3-1/3-1:1.4 E: DEVTYPE=usb_interface E: DRIVER=cdc_acm E: ID_USB_CLASS_FROM_DATABASE=Miscellaneous Device E: ID_USB_PROTOCOL_FROM_DATABASE=Interface Association E: ID_VENDOR_FROM_DATABASE=Texas Instruments, Inc. E: INTERFACE=10/0/0 E: MODALIAS=usb:v0451pBEF3d0100dcEFdsc02dp01ic0Aisc00ip00in04 E: PRODUCT=451/bef3/100 E: SUBSYSTEM=usb E: TYPE=239/2/1 E: USEC_INITIALIZED=2113989937 P: /devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb3/3-1/3-1:1.5 E: DEVPATH=/devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb3/3-1/3-1:1.5 E: DEVTYPE=usb_interface E: DRIVER=usbhid E: ID_USB_CLASS_FROM_DATABASE=Miscellaneous Device E: ID_USB_PROTOCOL_FROM_DATABASE=Interface Association E: ID_VENDOR_FROM_DATABASE=Texas Instruments, Inc. E: INTERFACE=3/0/0 E: MODALIAS=usb:v0451pBEF3d0100dcEFdsc02dp01ic03isc00ip00in05 E: PRODUCT=451/bef3/100 E: SUBSYSTEM=usb E: TYPE=239/2/1 E: USEC_INITIALIZED=2113990148 P: /devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb3/3-1/3-1:1.5/0003:0451:BEF3.0002 E: DEVPATH=/devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb3/3-1/3-1:1.5/0003:0451:BEF3.0002 E: DRIVER=hid-generic E: HID_ID=0003:00000451:0000BEF3 E: HID_NAME=Texas Instruments XDS110 (03.00.00.05) Embed with CMSIS-DAP E: HID_PHYS=usb-0000:26:00.0-1/input5 E: HID_UNIQ=HLR46000 E: MODALIAS=hid:b0003g0001v00000451p0000BEF3 E: SUBSYSTEM=hid P: /devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb3/3-1/3-1:1.5/0003:0451:BEF3.0002/hidraw/hidraw1 N: hidraw1 E: DEVNAME=/dev/hidraw1 E: DEVPATH=/devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb3/3-1/3-1:1.5/0003:0451:BEF3.0002/hidraw/hidraw1 E: MAJOR=250 E: MINOR=1 E: SUBSYSTEM=hidraw P: /devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb3/3-1/3-1:1.5/usbmisc/hiddev0 N: usb/hiddev0 E: DEVNAME=/dev/usb/hiddev0 E: DEVPATH=/devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb3/3-1/3-1:1.5/usbmisc/hiddev0 E: MAJOR=180 E: MINOR=96 E: SUBSYSTEM=usbmisc P: /devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb3/3-1/3-1:1.6 E: DEVPATH=/devices/pci0000:00/0000:00:1c.7/0000:26:00.0/usb3/3-1/3-1:1.6 E: DEVTYPE=usb_interface E: ID_USB_CLASS_FROM_DATABASE=Miscellaneous Device E: ID_USB_PROTOCOL_FROM_DATABASE=Interface Association E: ID_VENDOR_FROM_DATABASE=Texas Instruments, Inc. E: INTERFACE=255/0/0 E: MODALIAS=usb:v0451pBEF3d0100dcEFdsc02dp01icFFisc00ip00in06 E: PRODUCT=451/bef3/100 E: SUBSYSTEM=usb E: TYPE=239/2/1 E: USEC_INITIALIZED=2113989937 -- David C. Rankin, J.D.,P.E. -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
David C. Rankin wrote:
Now that is only 1/2 the battle. In order for the device to be useful, I still need to get stdin/stdout working so I can provide input to the device.
Hi David I've also tried that once or twice, but I ended up just writing C-code for talking to the serial device directly. I use one of Peter Anderson's IOM142s : https://phanderson.com/iom142/iom142.html You're welcome to the source code, it doesn't exactly contain any masterful secrets. With the iom142, I've been monitoring temperatures since 2005. https://www.jessen.ch/rz2cooling/24hours -- Per Jessen, Zürich (11.2°C) http://www.dns24.ch/ - your free DNS host, made in Switzerland. -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
On 10/14/2019 01:36 AM, Per Jessen wrote:
David C. Rankin wrote:
Now that is only 1/2 the battle. In order for the device to be useful, I still need to get stdin/stdout working so I can provide input to the device.
Hi David
I've also tried that once or twice, but I ended up just writing C-code for talking to the serial device directly. I use one of Peter Anderson's IOM142s :
https://phanderson.com/iom142/iom142.html
You're welcome to the source code, it doesn't exactly contain any masterful secrets.
With the iom142, I've been monitoring temperatures since 2005. https://www.jessen.ch/rz2cooling/24hours
Thank per. That looks similar to the setup I'm dealing with. This is a pretty darn capable little board: http://www.ti.com/tool/LAUNCHXL2-RM46 This thing has two serial communication interfaces on chip, but since this is a freestanding system, it has no concept of stdio.h and it is up to you to write the code to write the bytes out over that interface. The TI compiler comes with an eclipse bundle that provides a lot of the pieces (for Windows) and they have a more limited Linux version. I'm trying to go with just a flash utility and arm-none-eabi-gcc rather than the GUI offering. (that thing is about 1.5G just for this tine board) There is certainly a learning curve on bare metal with No OS involved. -- David C. Rankin, J.D.,P.E. -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
David C. Rankin wrote:
Thank per. That looks similar to the setup I'm dealing with. This is a pretty darn capable little board:
http://www.ti.com/tool/LAUNCHXL2-RM46
This thing has two serial communication interfaces on chip, but since this is a freestanding system, it has no concept of stdio.h and it is up to you to write the code to write the bytes out over that interface. The TI compiler comes with an eclipse bundle that provides a lot of the pieces (for Windows) and they have a more limited Linux version. I'm trying to go with just a flash utility and arm-none-eabi-gcc rather than the GUI offering. (that thing is about 1.5G just for this tine board)
There is certainly a learning curve on bare metal with No OS involved.
It sounds like a sort of Arduino thing? no OS, just code to do whatever you want. Yeah, even my masterful serial device code won't help you with that :-) -- Per Jessen, Zürich (11.6°C) http://www.cloudsuisse.com/ - your owncloud, hosted in Switzerland. -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
On 14/10/2019 06.51, David C. Rankin wrote:
We are making progress, we were able to connect with minicom to ttyACM0 and it really is a N82 connection.
19200 8N2 | NOR | Minicom 2.7 | VT102 | Offline | ttyACM0
I wonder if it is a software emulated serial port, that would explain the 2 stop bits. -- Cheers / Saludos, Carlos E. R. (from 15.1 x86_64 at Telcontar) -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
On 10/15/2019 02:15 AM, Carlos E. R. wrote:
On 14/10/2019 06.51, David C. Rankin wrote:
We are making progress, we were able to connect with minicom to ttyACM0 and it really is a N82 connection.
19200 8N2 | NOR | Minicom 2.7 | VT102 | Offline | ttyACM0
I wonder if it is a software emulated serial port, that would explain the 2 stop bits.
Well, these little embedded devices are packing more and more hardware into the little boards. The serial ports are actual hardware ports, though they are slightly different than the old Hayes modem chips (though they do accept the Hayes command set). The primary difference is they do not use XON/XOFF or RTS/CTS signaling for "I got it, you can send more". Instead they use trickery to measure pin voltages that ultimately works in a similar manner. How those are measured by software may explain the 2 stop bits on the RM46 board. While the MSP432 board uses 1 stop bit. It may also be a chip clock-cycle thing. If I stumble on the exacts reason, I'll follow up, but with nearly 2000 page ABIs each -- it may be a while :) -- David C. Rankin, J.D.,P.E. -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
participants (4)
-
Andrei Borzenkov
-
Carlos E. R.
-
David C. Rankin
-
Per Jessen