Hello list!
I'm using a http://www.septentrio.com/products/receivers/asterx2i-oem
INS/GNSS receiver. When connected via USB to a windows-host, there's two
(or even three, don't remember exactly) virtual serial ports to talk to it.
When connected to a 3.8.0-19-generic #30-Ubuntu SMP i686 GNU/Linux
system, I only see /dev/ttyACM0. I'd really like to get access to the
second virtual com port, so I tried setting
options usbserial vendor=0x152a product=0x8230
in /etc/modprobe.d/septentrio.conf. Doing this, I get /dev/ttyUSB0 -
dmesg says:
usbcore: registered new interface driver usbserial
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial support registered for generic
usbserial_generic 3-2:1.0: Generic device with no bulk out, not allowed.
usbserial_generic: probe of 3-2:1.0 failed with error -5
usbserial_generic 3-2:1.1: The "generic" usb-serial driver is only for
testing and one-off prototypes.
usbserial_generic 3-2:1.1: Tell linux-usb@xxxxxxxxxxxxxxx to add your
device to a proper driver.
usbserial_generic 3-2:1.1: generic converter detected
usb 3-2: generic converter now attached to ttyUSB0
ttyUSB0 does work for communicating with the device, but there's no
second port (this trick did work with some NovAtel receivers).
Is there a way to make the other virtual COM port appear?
# lsusb -d 152a:8230 -v
Bus 003 Device 002: ID 152a:8230
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 2 Communications
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x152a
idProduct 0x8230
bcdDevice 1.10
iManufacturer 1 Septentrio
iProduct 2 Septentrio USB Device
iSerial 0
bNumConfigurations 2
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 91
bNumInterfaces 4
bConfigurationValue 2
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 2mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 2 Communications
bInterfaceSubClass 2 Abstract (modem)
bInterfaceProtocol 255 Vendor Specific (MSFT RNDIS?)
iInterface 0
CDC Header:
bcdCDC 1.01
CDC ACM:
bmCapabilities 0x0e
connection notifications
sends break
line coding and serial state
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0 Unused
bInterfaceProtocol 255 Vendor specific
iInterface 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
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
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 2 Communications
bInterfaceSubClass 2 Abstract (modem)
bInterfaceProtocol 255 Vendor Specific (MSFT RNDIS?)
iInterface 0
CDC Header:
bcdCDC 1.01
CDC ACM:
bmCapabilities 0x0e
connection notifications
sends break
line coding and serial state
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0 Unused
bInterfaceProtocol 255 Vendor specific
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
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 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 62
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 2mA
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 Union:
bMasterInterface 0
bSlaveInterface 1
CDC Header:
bcdCDC 1.01
CDC ACM:
bmCapabilities 0x0e
connection notifications
sends break
line coding and serial state
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
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 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0
iInterface 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 1
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 1
Device Status: 0x0001
Self Powered
Even though I don't really understand the interfaces and endpoints, I
get the impression there's multiple CDC-Data interfaces.
How can I use them?
Also, is there a way to influence the latency? As I'm using the
receiver's data for flight control, I'd prefer to achieve low latency in
data transfer from receiver->host on at least one port. I see the
Transfer Type for most endpoints is bulk, not interrupt, but maybe
there's a few tricks to make bulk-transfers faster? Right now I'm seeing
latencies between 5 and 70ms.
thanks!
ben
--
Ben Adler
Universität Hamburg
MIN-Fakultät
FB Informatik, AB TAMS
Vogt-Kölln-Strasse 30
22527 Hamburg
Tel +49 40 42883 2504
Fax +49 40 42883 2397
Mob +49 160 858 0660
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html