usb ACM device doesn't work

Ian FREISLICH ianf at clue.co.za
Sun Jun 23 14:17:43 UTC 2013


Hans Petter Selasky wrote:
> On 06/23/13 10:33, Ian FREISLICH wrote:
> >   status 0xea1a1 <OPEN|STARTED|CONTROL_XFR|CONTROL_HDR|BDMA_ENABLE|BDMA_SET
UP|CURR_DMA_SET|CAN_CANCEL_IMMED|DOING_CALLBACK|0>
> > 10:29:19.904434 usbus0.2 SUBM-BULK-EP=00000002,SPD=FULL,NFR=1,SLEN=4,IVAL=0
> >   frame[0] WRITE 1 bytes
> >   0000  6F -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |o               
|
> >   flags 0x9 <FORCE_SHORT_XFER|PIPE_BOF|0>
> >   status 0x4a023 <OPEN|TRANSFERRING|STARTED|BDMA_ENABLE|BDMA_SETUP|CAN_CANC
EL_IMMED|0>
> 
> If you don't get a DONE-BULK-EP=00000002, then the device does not 
> receive the data. It is blocking the write. Did you set the correct baud 
> rate?

I did.  It's 9600.

> Also, what does usbconfig -d X.Y dump_device_desc dump_curr_config_desc 
> say ?

[zen] ~ # usbconfig -d ugen0.2 dump_device_desc 
ugen0.2: <USB CDC COM KMT> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (0mA)

  bLength = 0x0012 
  bDescriptorType = 0x0001 
  bcdUSB = 0x0110 
  bDeviceClass = 0x0002 
  bDeviceSubClass = 0x0000 
  bDeviceProtocol = 0x0000 
  bMaxPacketSize0 = 0x0008 
  idVendor = 0x04d8 
  idProduct = 0xfef9 
  bcdDevice = 0x0100 
  iManufacturer = 0x0001  <KMT>
  iProduct = 0x0002  <USB CDC COM>
  iSerialNumber = 0x0000  <no string>
  bNumConfigurations = 0x0001 


[zen] ~ # usbconfig -d ugen0.2 dump_curr_config_desc
ugen0.2: <USB CDC COM KMT> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (0mA)


 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 = 0x0001 
      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, 0x02


      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 = 0x0081  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0008 
        bInterval = 0x00fa 
        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 = 0x0002  <OUT>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0040 
        bInterval = 0x0001 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

     Endpoint 1
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0082  <IN>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0040 
        bInterval = 0x0001 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 



-- 
Ian Freislich


More information about the freebsd-current mailing list