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