cancel
Showing results for 
Search instead for 
Did you mean: 

USB / Run-Time DFU Interface Descriptor

tkindler
Associate II
Posted on December 23, 2009 at 09:57

USB / Run-Time DFU Interface Descriptor

#usb-run-time-dfu-interface-descr
5 REPLIES 5
tkindler
Associate II
Posted on May 17, 2011 at 13:34

Hi!

After cleaning up the code (ahem), I'm making progress with my USB functions.. currently, I'm trying to add DFU support to my device.

As I understand, the DfuSe Demo application should support the detach request, as lined out in the DFU specification. So I added a DFU Run-Time descriptor after the normal CDC/ACM descriptors:

// Run-Time DFU Interface Descriptor taken from the

// USB Device Firmware Upgrade Specification, Rev. 1.1

//

9, // bLength

DESC_INTERFACE, // bDescriptorType

0x02, // bInterfaceNumber

0x00, // bAlternateSetting

0x00, // bNumEndpoints

0xFE, // bInterfaceClass: Application Specific Class

0x01, // bInterfaceSubClass: Device Firmware Update

0x01, // bInterfaceProtocol: Runtime protocol

0x00, // iInterface

9, // bLength

0x21, // bDescriptorType: DFU_FUNCTIONAL

0x0B, // bmAttributes: WillDetach, CanUpload, bitCanDownload

0xff, 0x00, // wDetachTimeOut: 255 ms

0x00, 0x04, // wTransferSize: 1024 byte

0x00, 0x01, // bcdDFUVersion

But still, the DfuSe Demo won't list my devices in the drop-down box. The device enumerates correctly, and the descriptor shows up in the USB analyzer (USBlyzer).

What do I have to do to make my device recognized by DfuSe?

chikos33
Associate II
Posted on May 17, 2011 at 13:34

Hi tkindler,

I faced exactly the same issue as you! :|

But when I open the DfuSe application on my PC, I see that the detach command is relative to the HID mode (the label on the detach button)???????

Does it mean that the only run time mode supported by the DFuse application is the HID?? :o :o :o

Someone has an answer please?

Meanwhile, I will try to do the same thing with an HID application.

ke
Associate
Posted on January 19, 2012 at 01:21

Hi Chikos and Tkindler

I am troubled by the same question for weeks, only I am one step behind your guys.

I added the DFU run-time descriptors to my Mass Storage Device. The VID/PID used for the MSD device was not included in the DFU driver INF file. So I modified the INF and added one line :

 %USB\VID_0483&PID_5742_DeviceDesc%=STTub30.Device,USB\VID_0483&PID_5742&MI_01

When the device is connected to the PC, it enumerates itself as a composite device as expected. The MSD interface is functional. All read/write to the storage media work as expected. 

As for the DFU interface, the PC recognizes the DFU interface and pops up the Driver Installation Wizard. I manually installed the driver STtub30.sys (version 3.0.1.0 ) by pointing to the INF file I modified. The driver is being installed successfully. After the installation completes, the Wizard reports ''this device cannot start. (Code 10)''. I checked under Device Manager, the DFU device is shown with a yellow extension mark on it. 

Could someone please shed some light on the problem? Any pointer will be greatly appreciated. 

Regards

Frank

gregoire
Associate II
Posted on April 18, 2012 at 10:37

Hi,

I am also trying to add the DFU run-time descriptors to my Mass Storage Device.

Did you succeed ?

Don't you have to change the other line, in the inf file, to add the InterfaceNumber of DFU?

VID_0483&PID_DF11&MI_02

Regards,

Greg

gregoire
Associate II
Posted on May 09, 2012 at 17:46

Hi Frank,

Did you succeed doing it?

I m not able to do it yet...

Any help would be appreciate.

Thanks,

Greg