Connecting an Atmel AT91SAM7X microcontroller
Frank J. Beckmann
frank at barda.agala.net
Wed Jun 30 21:11:09 UTC 2010
Hello,
I'm trying to connect an Atmel AT91SAM7X microcontroller to my system running
FreeBSD 8.1-PRERELEASE. The Linux instructions tell me to use the usbserial
module via
modprobe usbserial vendor=0x03eb product=0x6124
So I added
product ATMEL AT91 0x6124 AT91 Microcontroller
to
/usr/src/sys/dev/usb/usbdevs
and
{USB_VPI(USB_VENDOR_ATMEL, USB_PRODUCT_ATMEL_AT91, 0)},
to
/usr/src/sys/dev/usb/serial/ugensa.c
The microcontroller now gets recognized but attaching it fails:
ugen1.2: <vendor 0x03eb> at usbus1
ugensa0: <vendor 0x03eb product 0x6124, class 2/0, rev 1.10/1.10, addr 2> on
usbus1
ugensa0: No interfaces
device_attach: ugensa0 attach returned 6
ugensa0: <vendor 0x03eb product 0x6124, class 2/0, rev 1.10/1.10, addr 2> on
usbus1
ugensa0: No interfaces
device_attach: ugensa0 attach returned 6
usbconfig -d ugen1.2 dump_all_config_desc
gives:
ugen1.2: <product 0x6124 vendor 0x03eb> at usbus1, cfg=0 md=HOST spd=FULL
(12Mbps) pwr=ON
Configuration index 0
bLength = 0x0009
bDescriptorType = 0x0002
wTotalLength = 0x0043
bNumInterfaces = 0x0002
bConfigurationValue = 0x0001
iConfiguration = 0x0000 <no string>
bmAttributes = 0x00c0
bMaxPower = 0x0000
Interface 0
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0000
bAlternateSetting = 0x0000
bNumEndpoints = 0x0001
bInterfaceClass = 0x0002
bInterfaceSubClass = 0x0002
bInterfaceProtocol = 0x0000
iInterface = 0x0000 <no string>
Additional Descriptor
bLength = 0x05
bDescriptorType = 0x24
bDescriptorSubType = 0x00
RAW dump:
0x00 | 0x05, 0x24, 0x00, 0x10, 0x01
Additional Descriptor
bLength = 0x04
bDescriptorType = 0x24
bDescriptorSubType = 0x02
RAW dump:
0x00 | 0x04, 0x24, 0x02, 0x00
Additional Descriptor
bLength = 0x05
bDescriptorType = 0x24
bDescriptorSubType = 0x06
RAW dump:
0x00 | 0x05, 0x24, 0x06, 0x00, 0x01
Additional Descriptor
bLength = 0x05
bDescriptorType = 0x24
bDescriptorSubType = 0x01
RAW dump:
0x00 | 0x05, 0x24, 0x01, 0x00, 0x01
Endpoint 0
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0083 <IN>
bmAttributes = 0x0003 <INTERRUPT>
wMaxPacketSize = 0x0008
bInterval = 0x00ff
bRefresh = 0x0000
bSynchAddress = 0x0000
Interface 1
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0001
bAlternateSetting = 0x0000
bNumEndpoints = 0x0002
bInterfaceClass = 0x000a
bInterfaceSubClass = 0x0000
bInterfaceProtocol = 0x0000
iInterface = 0x0000 <no string>
Endpoint 0
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0001 <OUT>
bmAttributes = 0x0002 <BULK>
wMaxPacketSize = 0x0040
bInterval = 0x0000
bRefresh = 0x0000
bSynchAddress = 0x0000
Endpoint 1
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0082 <IN>
bmAttributes = 0x0002 <BULK>
wMaxPacketSize = 0x0040
bInterval = 0x0000
bRefresh = 0x0000
bSynchAddress = 0x0000
What do I have to do to connect that microcontroller?
Bye
Frank
More information about the freebsd-usb
mailing list