ACM interface on TI Launchpad
Peter Jeremy
peterjeremy at acm.org
Sun Jan 30 02:22:57 UTC 2011
I recently acquired a TI LaunchPad[1] and want to use FreeBSD as my
development enviroment (for anyone else who is interested in this, at
some stage I intend to post my experiences with the various ports to
-ports or feel free to contact me off-list). It provides a FET430UIF
USB interface to the host computer and some googling shows that this
is a Communication Device Class (CDC), Abstract Control Model (ACM)
sub-class which is supported in Linux via the cdc_acm driver.
On FreeBSD 8.1, umodem(4) reports:
ugen0.2: <Texas Instruments> at usbus0
umodem0: <MSP430 Application UART> on usbus0
umodem0: data interface 0, has no CM over data, has no break
and creates /dev/ttyU0 (and friends) but mspdebug reports that it
cannot access the UIF (so it is presumably talking to the device
UART, rather than the control interface).
I have tried adding the device id to usbdevs and
{USB_VPI(USB_VENDOR_TI, USB_PRODUCT_TI_FET430UIF, 1)},
to sys/dev/usb/serial/umodem.c:umodem_devs[] and this changes the
probe to:
ugen4.2: <Texas Instruments> at usbus4
umodem0: <MSP430 Application UART> on usbus4
umodem0: data interface 0, has no CM over data, has no break
umodem1: <MSP430 Debug-Interface> on usbus4
umodem1: Missing descriptor. Assuming data interface is next.
umodem1: data interface 2, has CM over data, has no break
umodem1: no data interface
device_attach: umodem1 attach returned 6
umodem1: <MSP430 Debug-Interface> on usbus4
umodem1: Missing descriptor. Assuming data interface is next.
umodem1: data interface 2, has CM over data, has no break
umodem1: no data interface
device_attach: umodem1 attach returned 6
but there's no change to the accessibility.
Looking at the Linux driver sources, there are no quirks for this on
Linux. How do I go about getting umodem(4) (or some other driver) to
detect the debug interfaces on FreeBSD?
The output from "usbconfig dump_device_desc" is:
ugen4.2: <Texas Instruments MSP-FET430UIF Texas Instruments> at usbus4, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0110
bDeviceClass = 0x0000
bDeviceSubClass = 0x0000
bDeviceProtocol = 0x0000
bMaxPacketSize0 = 0x0008
idVendor = 0x0451
idProduct = 0xf432
bcdDevice = 0x0100
iManufacturer = 0x0001 <Texas Instruments>
iProduct = 0x0002 <Texas Instruments MSP-FET430UIF>
iSerialNumber = 0x0003 <1EFF426C50172852>
bNumConfigurations = 0x0001
The output from "usbconfig dump_curr_config_desc" is:
ugen4.2: <Texas Instruments MSP-FET430UIF Texas Instruments> at usbus4, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
Configuration index 0
bLength = 0x0009
bDescriptorType = 0x0002
wTotalLength = 0x0055
bNumInterfaces = 0x0002
bConfigurationValue = 0x0001
iConfiguration = 0x0000 <no string>
bmAttributes = 0x0080
bMaxPower = 0x0032
Interface 0
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0000
bAlternateSetting = 0x0000
bNumEndpoints = 0x0003
bInterfaceClass = 0x0002
bInterfaceSubClass = 0x0002
bInterfaceProtocol = 0x0001
iInterface = 0x0005 <MSP430 Application UART>
Additional Descriptor
bLength = 0x05
bDescriptorType = 0x24
bDescriptorSubType = 0x00
RAW dump:
0x00 | 0x05, 0x24, 0x00, 0x10, 0x01
Additional Descriptor
bLength = 0x05
bDescriptorType = 0x24
bDescriptorSubType = 0x01
RAW dump:
0x00 | 0x05, 0x24, 0x01, 0x00, 0x00
Additional Descriptor
bLength = 0x04
bDescriptorType = 0x24
bDescriptorSubType = 0x02
RAW dump:
0x00 | 0x04, 0x24, 0x02, 0x02
Endpoint 0
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0082 <IN>
bmAttributes = 0x0003 <INTERRUPT>
wMaxPacketSize = 0x0040
bInterval = 0x00ff
bRefresh = 0x0000
bSynchAddress = 0x0000
Endpoint 1
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0003 <OUT>
bmAttributes = 0x0002 <BULK>
wMaxPacketSize = 0x0040
bInterval = 0x00ff
bRefresh = 0x0000
bSynchAddress = 0x0000
Endpoint 2
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0083 <IN>
bmAttributes = 0x0002 <BULK>
wMaxPacketSize = 0x0040
bInterval = 0x00ff
bRefresh = 0x0000
bSynchAddress = 0x0000
Interface 1
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0001
bAlternateSetting = 0x0000
bNumEndpoints = 0x0002
bInterfaceClass = 0x0003
bInterfaceSubClass = 0x0000
bInterfaceProtocol = 0x0000
iInterface = 0x0004 <MSP430 Debug-Interface>
Additional Descriptor
bLength = 0x09
bDescriptorType = 0x21
bDescriptorSubType = 0x01
RAW dump:
0x00 | 0x09, 0x21, 0x01, 0x01, 0x00, 0x01, 0x22, 0xb6,
0x08 | 0x02
Endpoint 0
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0081 <IN>
bmAttributes = 0x0003 <INTERRUPT>
wMaxPacketSize = 0x0040
bInterval = 0x0001
bRefresh = 0x0000
bSynchAddress = 0x0000
Endpoint 1
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0001 <OUT>
bmAttributes = 0x0003 <INTERRUPT>
wMaxPacketSize = 0x0040
bInterval = 0x0001
bRefresh = 0x0000
bSynchAddress = 0x0000
[1] http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_%28MSP-EXP430G2%29
--
Peter Jeremy
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-usb/attachments/20110130/cf6ac9e9/attachment.pgp
More information about the freebsd-usb
mailing list