usb come outcter

qualcomm hsusb device|qualcomm hsusb device下载 _ - pc6下载站Active Posts
Recently Visited
Search Results
" data-extrabar="http://www.microchip.com/forums/ws/extrabar.aspx?mid=189607&t=true&o=m&w=true&p=true .sidebarUrlWrap">Page Extras
Forum Themes
USB Composite Device Operation
USB Composite Device Operation
Showing page 1 of 6
New Member
<span class="ratingResult" id="ratingResult
USB Composite Device Operation
As a new member, let me say thanks to all of you for all of the valuable posts.& Without the help of this forum, it would have taken me much more time to get up to speed.
I'm trying to make a composite USB device based off of the Microchip CDC firmware and the HID firmware.& I believe I've found two ways to do this since the CDC firmware was written to use two interfaces.
1. The first is to group all three endpoints under the first interface by changing CDC_DATA_INTF_ID to point to the first interface.& The device descriptor can then have the class, subclass, and protocol set to 0x00 to allow each interface to specify a different driver.& This works fine with just the CDC class in it. As soon as a second class (HID) is added to the CDC class that was working alone, Windows XP recognizes the device as a "Composite Device".& As such, the device hardware ID changes to USB\Vid_xxxx&Pid_yyyy&MI_ww format.&
2. The second way I believe is to use the Interface Association Descriptor to group the two interfaces together.& This just became available with Windows XP SP2.& This allows for a generic “Composite Device” class, subclass, and protocol to be used.& The driver can then be assigned at the associated interface level allowing mixed classes in a device. When using the IAD, the device hardware ID changes to USB\Vid_xxxx&Pid_yyyy&MI_ww format.
When using the first method, the PIC only sometimes gets data from HyperTerminal and never is able to send data to HyperTerminal from the PIC.& Using the second method I am unable to get any communication between the PIC and HyperTerminal to work.& In both cases, after modifying the driver to accept the new hardware ID, the drivers installed fine and appear to be function correctly.& Using a software USB sniffer, the PIC seems to respond to most commands during enumeration, but has issues when it polls the pic to for data.
I suspect I am just not handling the new Composite Device communications correctly or I have not merged the two demos correctly.& Unfortunately, I haven’t found much documentation on either.& I’ve ordered an ICD2 to aid with debugging, but with the fast timeouts on the USB, this may not be as useful as I’d like.&
The next thing I am going to try is to combine the Demo code with the HID code into a composite device as both of them already use a single interface and are already configured to specify the class, subclass, and protocol at the interface level.& Perhaps this will be easier as I’ve seen some postings on other forums that didn’t think that the CDC driver could easily be part of a composite device.
Has anyone else used composite device firmware for which I could see some example code?&
Where do you recommend that I could find more information about how to work with Composite Devices with the PIC? (USB Complete is already on its way.)& I’ve searched the forum, but wasn’t able to find much on Composite Devices or anything on IAD.
Thanks for any pointers you may have!
Windows XP Pro SP2
MPLAB v7.41, C18 v3.02
Homebuilt PICDEM FS USB Demo Board
18F4550 running Microchip’s USB Boot loader
humans, die, please
<span class="ratingResult" id="ratingResult
don't know if this may help, but I created a composite device just for hid, i.e. a mouse + keyboard.
done that in assembly with 16C745 and in C with 18F4550.
Was a bit of tricky but at the end it worked.
If it may help, I can send it to you.
if only every single human would die...homicide-suicide near turin!!! enjoy! :D
New Member
<span class="ratingResult" id="ratingResult
I also tried to make a USB composite device (MSD + HID), based on Microchip's MSD and HID firmware. Unfortunately, i didn't managed to get both interfaces working in the same time. Only the first interface starts up, the one that uses EP1.
It would be useful to see some example code. Thank you in advance, Zoli
New Member
<span class="ratingResult" id="ratingResult
look in the usb source. If one direction fails, then u have not changed all endpoint values correctly. Also i think the descriptor entry in interface section "number of endpoints" means not the number uf EP but the number of one endpoint descriptor, in and out. I dont know who wrote this ? it is all the same in descriptors. U will overall only need 2 EPs. (Zero excluded)
First try to get all interfaces shown in device manager, then do cange to the DCD .inf file and install it. Also increase the product id every change u made, to detect whole new device or delete all the developed devices from device manger (show hidden funktion). If not, it will detect the known devices but not the perhaps working second or third device.
regards sirnoname
Super Member
<span class="ratingResult" id="ratingResult
Just an observation really, 'cause I've never had to get a device like this working. The CDC spec requires you to define the device descriptor class/subclass/protocol as 0x02/0x00/0x00 for a comms class device. The spec then allows a CDC+HID combination in its telephone+keypad example. Unfortunately it doesn't say much more about it. & Only saif this because you said you were using 0x00/0x00/0x00.
Senior Member
<span class="ratingResult" id="ratingResult
ORIGINAL: DarioG
don't know if this may help, but I created a composite device just for hid, i.e. a mouse + keyboard. done that in assembly with 16C745 and in C with 18F4550.
Was a bit of tricky but at the end it worked. If it may help, I can send it to you.
& Hi DarioG, & I had tried for the same HID Keyboard+Mouse as a comosite one. PC is registering both the devices but the first configration only works...at atime. If both of them are working same time...then sahre the code...or mail me to
& thnaks, -rkp
humans, die, please
<span class="ratingResult" id="ratingResult
&Hi there, this is the code for 18F4550.
It has been some time, so maybe that some details have been lost in the time...!
Try taking a look: the most important thing should be the descriptors, then data are sent via the first or the second Endpoint.
There's a #define somewhere to choose whether having only one or another interface active in code.
(sent via email)
if only every single human would die...homicide-suicide near turin!!! enjoy! :D
New Member
<span class="ratingResult" id="ratingResult
Got 4xHID and 1xCDC working in one device at same time. This are: virtual comport, Mouse, Keyboard, simple HID and Consumer Audio Control (a known in any multimedia keyboard).
For descriptor (derived from CDC sample): -Make as Interface class zero in device descriptor = each interface works at its own -copy the 2 DATA-interface Endpoint to the ABSTRACT interface (eg. EP2+3IN+3OUT) -Interface class of cdc is as before 0x02, but now in the interface descriptor (leave abstract and protocol) -change the number of endpoints in CDC interface descriptor to three (as i told this are only EP descriptors not the number of EP) -add your HID interfaces with HID descriptors (eg. EP 4-x)
For USB code: -Make sure all EPs used are activated -Make sure the descriptor CDC readout is first (as number of EPs) -Make sure both, HID and CDC, readouts are activated
Hints: If one EP is not activated, only this Interface will make error. &&&&&&&& Q:Whats up with EP1 ? &&&&&&&& A:I dont know why it is not used in sample. I changed CDC EPs to 1+2.
No change needed in INF file.
Super Member
<span class="ratingResult" id="ratingResult
ORIGINAL: sirnoname
Got 4xHID and 1xCDC working in one device at same time. This are: virtual comport, Mouse, Keyboard, simple HID and Consumer Audio Control (a known in any multimedia keyboard).
& Very interesting. Thanks for the report.
New Member
Hello! & First, thanks to everyone for their posts, as they have been very helpful. Special thanks to ‘sirnoname’ who pointed me in the right direction with their post. & I am currently developing a USB Composite Device with a Serial Port (CDC) and Mass Storage Device (MSD) target for use with Windows XP. & Let me first say that “theory” would suggest that the right approach is to use the IAD as a way to associate the two interfaces a CDC requires. However after following all the information in the specs and several examples I simply could not get this to work. By everything I have read I think it “should” work, but it doesn’t. I have a current open ticket with Microsoft regarding this issue, but I am not going to hold my breath. It appears that Windows is either not handling the IAD correctly or the usbser.sys driver was not built to use it. Either case, it doesn’t work. I also tried installing the HotFix described at
but this does not help either. We’ll see if Microsoft comes up with anything. & In any case using the suggestions from ‘sirnoname’ I was able to pull this off however, but not in a way I would have expected. Below is what I needed to do to get my device to enumerate properly with Windows. & The key was to define the CDC interface as a single interface with 3 Endpoints (one interrupt endpoint for notification, 1 endpoint for bulk-in and 1 endpoint for bulk-out). EP0 is always assumed. This is contrary to what you normally see. Normally you see examples with a COMMUNICATIONS_CLASS interface with 1 endpoint (notification) and a second DATA interface with 2 end-points. So I am not sure why my configuration works, I am just happy that it does. Perhaps someone can shed some light as to why this works. & A & 1)&&&&&& Device Descriptor & You must define the device descriptor as so: & Device Descriptor
bLength &&&&&&&&&&& &&&&&&&&&&& &&&&&&&&&&& 0x12
bcdUSB &&&&&&&&&& &&&&&&&&&&& &&&&&&&&&&& 0x200
bDeviceClass &&& &&&&&&&&&&& &&&&&&&&&&& 0x0
bDeviceSubClass &&&&&&&&& &&&&&&&&&&& 0x0
bDeviceProtocol &&&&&&&&&&& &&&&&&&&&&& 0x0
bMaxPacketSize0 &&&&&&&& &&&&&&&&&&& 0x8
idVendor &&&&&&&&& &&&&&&&&&&& &&&&&&&&&&& 0xXXXX
idProduct &&&&&&&& &&&&&&&&&&& &&&&&&&&&&& 0xYYYY
bcdDevice &&&&&&& &&&&&&&&&&& &&&&&&&&&&& 0x1
iManufacturer &&& &&&&&&&&&&& &&&&&&&&&&& 0x1
iProduct &&&&&&&&&& &&&&&&&&&&& &&&&&&&&&&& 0x2
iSerialNumber && &&&&&&&&&&& &&&&&&&&&&& 0x3
bNumConfigurations &&&&& &&&&&&&&&&& 0x1
& & By setting the bDeviceClass, bDeviceSubClass, and bDeviceProtocol to zero this indicates the device will describe its functions via the interfaces. Also Windows picks this up as a “Composite Device” which is good. Normally with an IAD you would think to use the “Multi-Function” values described in the USB spec. & 2)&&&&&& Configuration Descriptor & Pretty much standard stuff you need to fill out for your own device, but the key here is the bNumInterfaces which in this case is 0x2 (1 interface for CDC, 1 interface for MSD). Normally it is 2 interfaces for CDC (1 for COMMUNICATION, second for DATA). & Configuration Descriptor
bLength &&&&&&&&&&& &&&&&&&&&&& 0x9
bDescriptorType &&&&&&&&&&& USB_CONFIGURATION_DESCRIPTOR_TYPE
wTotalLength &&& &&&&&&&&&&& 0x4C
bNumInterfaces &&&&&&&&&&& 0x2
iConfiguration &&& &&&&&&&&&&& 0x0
bmAttributes &&&& &&&&&&&&&&& 0xE0 ( Bus_Powered Self_Powered Remote_Wakeup )
MaxPower &&&&&&& &&&&&&&&&&& 0x0
& 3)&&&&&& CDC Interface and Endpoint Descriptors & This is they key. The CDC Interface Descriptor is a single interface with 3 endpoints. & Interface Descriptor
bLength &&&&&&&&&&& &&&&&&&&&&& 0x9
bInterfaceNumber &&&&&&&&& 0x0
bAlternateSetting &&&&&&&&& 0x0
bNumEndpoints &&&&&&&&&&& 0x3
bInterfaceClass &&&&&&&&&&& 0x2 (Communications and CDC Control)
bInterfaceSubClass &&&&&& 0x2 (Abstract Control Model)
bInterfaceProtocol &&&&&&&& 0x0
iInterface &&&&&&&&& &&&&&&&&&&& 0x0
& Endpoint Descriptor
bLength &&&&&&&&&&& &&&&&&&&&&& 0x7
bEndpointAddress &&&&&&&& 0x83 [IN]
bmAttributes &&&& &&&&&&&&&&& 0x3 (USB_ENDPOINT_TYPE_INTERRUPT)
wMaxPacketSize &&&&&&&&& 0x8
bInterval &&&&&&&&&& &&&&&&&&&&& 0x10
& Endpoint Descriptor
bLength &&&&&&&&&&& &&&&&&&&&&& 0x7
bEndpointAddress &&&&&&&& 0x1 [OUT]
bmAttributes &&&& &&&&&&&&&&& 0x2 (USB_ENDPOINT_TYPE_BULK)
wMaxPacketSize &&&&&&&&& 0x40
bInterval &&&&&&&&&& &&&&&&&&&&& 0x0
& Endpoint Descriptor
bLength &&&&&&&&&&& &&&&&&&&&&& 0x7
bEndpointAddress &&&&&&&& 0x82 [IN]
bmAttributes &&&& &&&&&&&&&&& 0x2 (USB_ENDPOINT_TYPE_BULK)
wMaxPacketSize &&&&&&&&& 0x40
bInterval &&&&&&&&&& &&&&&&&&&&& 0x0
& 4)&&&&&& CDC Functional Descriptors & The functional descriptors should be included as usual: & Header Abstract Control Model Call Management & Notably the Call Management Functional Descriptor has 2
a)&&&&&& The bmCapabilities field should have bit D0 clear as this indicates that Device sends/receives call management information only over the Communication Class interface (interface 0). b)&&&&&& Per the spec bDataInterface is optional, but probably good to set it to 0. & Also note that I did not include the Union Functional Descriptor as it seems unnecessary anyway with this configuration. & 5)&&&&&& MSD Interface and Endpoint Descriptors & Pretty much normal stuff here. Just that this interface is #1 & Interface Descriptor
bLength &&&&&&&&&&& &&&&&&&&&&& 0x9
bInterfaceNumber &&&&&&&&& 0x1
bAlternateSetting &&&&&&&&& 0x0
bNumEndpoints &&&&&&&&&&& 0x2
bInterfaceClass &&&&&&&&&&& 0x8 (Mass Storage)
bInterfaceSubClass &&&&&& 0x6 (SCSI Transparent Command Set)
bInterfaceProtocol &&&&&&&& 0x50 (Bulk-Only Transport)
iInterface &&&&&&&&& &&&&&&&&&&& 0x0
& Endpoint Descriptor
bLength &&&&&&&&&&& &&&&&&&&&&& 0x7
bEndpointAddress &&&&&&&& 0x4 [OUT]
bmAttributes &&&& &&&&&&&&&&& 0x2 (USB_ENDPOINT_TYPE_BULK)
wMaxPacketSize &&&&&&&&& 0x40
bInterval &&&&&&&&&& &&&&&&&&&&& 0x0
& Endpoint Descriptor
bLength &&&&&&&&&&& &&&&&&&&&&& 0x7
bEndpointAddress &&&&&&&& 0x85 [IN]
bmAttributes &&&& &&&&&&&&&&& 0x2 (USB_ENDPOINT_TYPE_BULK)
wMaxPacketSize &&&&&&&&& 0x40
bInterval &&&&&&&&&& &&&&&&&&&&& 0x0
& 6)&&&&&& INF File & The INF file you create for the serial port must contain the following: & USB\Vid_xxxx&Pid_yyyy&MI_ww & Where
xxxx, yyyy are extracted from respective device descriptor fields. ww is the CDC interface number (0 in this case). & & That’s it! & I hope this helps someone out there. & Enjoy! &
Kevin Fodor
New Member
<span class="ratingResult" id="ratingResult
I am attempting to create a usb composite device with cdc + generic Microchip usb device.&&I followed the descriptor guidelines for the unified endpoint cdc. So the device enumerates with the pc as a composite device. Good.& Then I detect two secondary devices. The cdc works as expected and creates the virtual com port on the pc, which is tested to work with hyperterminal. Good.& However, I cannot get the generic Microchip usb device to enumerate correctly.& Windows gets a device cannot start(error 10) which is essentially meaningless. All I essentially did was graft the much more simple genereic usb project onto the existing cdc framework. Something I noticed during debug is that the UOWN bit int he STAT for the generic endpoint is never turned over to the CPU on recieve, and is always set to the cpu on write.&& I am using the usbgen.h macros to determing this , #define mUSBGenRxIsBusy and #define mUSBGenTxIsBusy(), although I verified it looking at the endpoint BDT's as well.&
& I created an updated inf specifically for this to address the device with the correct interface postfix, i.e. USB\VID_04D8&PID_001A&Mi_01.& So it knows to use the mchpusb.sys driver, but apparently there is some error. I used snoopyPro to check out the traffic to the endpoint, but the sniffer doesnt pick anything up to the generic endpoint. At this point I am beginning to suspect the driver isnt talking to the device correctly, but I am not sure.
& Any Ideas? & I Have included my descriptor table for reference.
& & & & rom USB_DEV_DSC device_dsc= {&&&
&&& sizeof(USB_DEV_DSC),&&& // Size of this descriptor in bytes &&& DSC_DEV,&&&&&&&&&&&&&&& // DEVICE descriptor type &&& 0x0200,&&&&&&&&&&&&&&&& // USB Spec Release Number in BCD format &&& 0x00,&&&&&&&&&&&&&&&&&& // Class Code - not specified refer to interface &&& 0x00,&&&&&&&&&&&&&&&&&& // Subclass code &&& 0x00,&&&&&&&&&&&&&&&&&& // Protocol code &&& EP0_BUFF_SIZE,&&&&&&&&& // Max packet size for EP0, see usbcfg.h &&& 0x04D8,&&&&&&&&&&&&&&&& // Vendor ID &&& 0x001A,&&&&&&&&&&&&&&&& // Product ID: CDC RS-232 Emulation Demo &&& 0x0000,&&&&&&&&&&&&&&&& // Device release number in BCD format &&& 0x01,&&&&&&&&&&&&&&&&&& // Manufacturer string index &&& 0x02,&&&&&&&&&&&&&&&&&& // Product string index &&& 0x00,&&&&&&&&&&&&&&&&&& // Device serial number string index &&& 0x01&&&&&&&&&&&&&&&&&&& // Number of possible configurations }; & /* Configuration 1 Descriptor */ CFG01= { &&& /* Configuration Descriptor */ &&& sizeof(USB_CFG_DSC),&&& // Size of this descriptor in bytes &&& DSC_CFG,&&&&&&&&&&&&&&& // CONFIGURATION descriptor type &&& sizeof(cfg01),&&&&&&&&& // Total length of data for this cfg &&& 2,&&&&&&&&&&&&&&&&&&&&& // Number of interfaces in this cfg &&& 1,&&&&&&&&&&&&&&&&&&&&& // Index value of this configuration &&& 0,&&&&&&&&&&&&&&&&&&&&& // Configuration string index &&& _DEFAULT,&&&&&&&&&&&&&& // Attributes, see usbdefs_std_dsc.h &&& 50,&&&&&&&&&&&&&&&&&&&& // Max power consumption (2X mA) &&&
&sizeof(USB_INTF_DSC),&& // Size of this descriptor in bytes &&& DSC_INTF,&&&&&&&&&&&&&& // INTERFACE descriptor type &&& 1,&&&&&&&&&&&&&&&&&&&&& // Interface Number &&& 0,&&&&&&&&&&&&&&&&&&&&& // Alternate Setting Number &&& 2,&&&&&&&&&&&&&&&&&&&&& // Number of endpoints in this intf &&& 0x00,&&&&&&&&&&&&&&&&&& // Class code &&& 0x00,&&&&&&&&&&&&&&&&&& // Subclass code &&& 0x00,&&&&&&&&&&&&&&&&&& // Protocol code &&& 0,&&&&&&&&&&&&&&&&&&&&& // Interface string index &&&
&&& /* Endpoint Descriptors */ &&& sizeof(USB_EP_DSC),DSC_EP,_EP01_OUT,_INT,USBGEN_EP_SIZE,32, &&& sizeof(USB_EP_DSC),DSC_EP,_EP01_IN,_INT,USBGEN_EP_SIZE,32, &&
&/* Interface Descriptor */ &&& sizeof(USB_INTF_DSC),&& // Size of this descriptor in bytes &&& DSC_INTF,&&&&&&&&&&&&&& // INTERFACE descriptor type &&& 0,&&&&&&&&&&&&&&&&&&&&& // Interface Number &&& 0,&&&&&&&&&&&&&&&&&&&&& // Alternate Setting Number &&& 3,&&&&&&&&&&&&&&&&&&&&& // Number of endpoints in this intf &&& 0x2,&&&&&&&&&&&&& // Class code &&& ABSTRACT_CONTROL_MODEL, // Subclass code &&& 0,&&&&&&&&&&&&&&&& // Protocol code &&& 0,&&&&&&&&&&&&&&&&&&&&& // Interface string index &&&&& /* Endpoint Descriptor */ &&& sizeof(USB_EP_DSC),DSC_EP,_EP02_IN,_INT,CDC_INT_EP_SIZE,0x10, &&& /* Endpoint Descriptors */ &&& sizeof(USB_EP_DSC),DSC_EP,_EP03_OUT,_BULK,CDC_BULK_OUT_EP_SIZE,0x00, &&& sizeof(USB_EP_DSC),DSC_EP,_EP03_IN,_BULK,CDC_BULK_IN_EP_SIZE,0x00, &/* CDC Class-Specific Descriptors */ &&& sizeof(USB_CDC_HEADER_FN_DSC),CS_INTERFACE,DSC_FN_HEADER,0x0110, &&& sizeof(USB_CDC_ACM_FN_DSC),CS_INTERFACE,DSC_FN_ACM,0x02, &&& sizeof(USB_CDC_CALL_MGT_FN_DSC),CS_INTERFACE,DSC_FN_CALL_MGT,0x00,CDC_DATA_INTF_ID };
New Member
<span class="ratingResult" id="ratingResult
I am not familiar with the "generic microchip device", it must be some generic&interrupt based&transfer device I assume.
Anyway, I would look at the code which handles standard responses on EP0 and see if your "generic device" requires anything here. You might set a breakpoint whenever you get an interrupt on EP1_OUT (which is your generic device). Then trace the message. I bet something does not expect that there will be traffic on other endpoints (the ones for your CDC device) and so it is getting dropped.
Also technically it should not matter, but I see that your interface number for the second device is #0 and the first is #1, maybe try swapping them? USB spec says it shouldn't matter, but ya never know.
Anyway, just some things to try.
Kevin Fodor
New Member
<span class="ratingResult" id="ratingResult
sirnoname,
can you give me source code about your "4xHID and 1xCDC working in one device at same time" ??? Thank you very much in advance! Enrico
New Member
<span class="ratingResult" id="ratingResult
I'm trying with no success 1 Keyboard + 1 Joystick + 1 serial. I'm also interrested by an example
New Member
<span class="ratingResult" id="ratingResult
Got 4xHID and 1xCDC working in one device at same time. This are: virtual comport, Mouse, Keyboard, simple HID and Consumer Audio Control (a known in any multimedia keyboard).
Could I get that source too? It sounds really close to my next projects requirements!
New Member
<span class="ratingResult" id="ratingResult
Zoli, & I've been trying to do the same thing you attempted, create a composite device (HID + MSD).& Im using HIDmaker (from Trace systems) which generates PIC and PC code.&I started by creating a composite device (HID + HID) and then modified the interface for the 2nd HID to make it MSD.&
& Have you had any luck with your attempts? & Jeff
Starting Member
Creating a composite USB device that contains a CDC and another independent function can be tricky under Windows. Using a single interface for both the CDC communication and data interfaces apparently works under Windows but doesn’t comply with the USB CDC spec and thus might not work on other OS’s, including other Windows editions.
From the CDC spec, Section 3.6.2, Abstract Control Model:
The device uses both a Data Class interface and a Communication Class interface.
Here are two other options:
Option 1. Composite: CDC + independent interface
In the device descriptor: bDeviceClass = 02h.
CDC interfaces: communication interface data interface to carry application data A union functional descriptor specifies the CDC interfaces.
Additional interfaces: 1 or more independent interfaces (HID, mass storage, etc.)
Windows: Must provide an INF file for the CDC interface (not the entire device). The hardware ID in the INF file must include the interface number. In this example, the interface number is 00h (&MI_00):
USB\VID_0925&PID_1000&MI_00
Must also provide an INF file for the device to tell Windows to load the generic parent driver. The INF file must contain a needs/includes section that references usb.inf.
See: Enumeration of the Composite Parent Device
Support for the Wireless Mobile Communication Device Class (WMCDC) (The Registry Settings Section shows example INF file sections.)
Option 2. Composite: CDC + independent interface with IAD.
In the device descriptor: bDeviceClass = EFh, bDeviceSubClass = 02h, bDeviceProtocol = 01h.
CDC Interfaces: communication interface data interface to carry application data
An interface association descriptor (IAD) specifies the interfaces that belong to the CDC function. The bDeviceClass code tells the OS that the device contains an IAD and enables loading the correct drivers. A union functional descriptor also specifies the CDC interfaces.
Additional interfaces 1 or more independent interfaces (HID, mass storage, etc.)
Windows: Must provide an INF file for the CDC interface (see Option 1 above).
Works only on Windows SP2 with hotfix, Vista
More information:
The Usbser.sys driver may not load when a USB device uses an IAD
Interface Association Descriptor Engineering Change Notice (ECN)
USB Interface Association Descriptor Device Class Code and Use Model
I haven’t personally tested either of these options and would be interested to hear any reports.
Jan Axelson
Super Member
<span class="ratingResult" id="ratingResult
Hello Jan Axselson
Thanks for joining the MC forumboard
I've collected these existing ones
New Member
<span class="ratingResult" id="ratingResult
hi , & my project is using& CDC (virtual Port) and HID interface. for the moment I get a composite device but getting error on interface. 1 CFG CDC is on EP2 EP3& (interface 1 & 2) HID on EP4&&&&&&&&&&& (interface 3) I think my problem is inside those 2 files. & 1. may I rename CallRequestHandler like ex: CallRequestHandlerCDC & CallRequestHandlerHID ? & 2. then patch routine USBCtrlTrfSetupHandler ? & & thank you in advance for your help & Yves & ************************************************** inside USBctrltrf.c USBCtrlTrfSetupHandler&check sizeof &ClassRequestHandler (USBCheckCDCRequest) when using CDC. & USBCtrlTrfSetupHandler&check size of &ClassRequestHandler (USBCheckHIDRequest) when using HID. ************************************************** inside USBdsc.c && //rom pFunc ClassReqHandler[1]= { &USBCheckHIDRequest };
&&&& rom pFunc ClassReqHandler[1]= { &USBCheckCDCRequest };&
&& //rom pFunc ClassReqHandler[1]= { &USBCheckMSDRequest }; ************************************************** & & & &
New Member
<span class="ratingResult" id="ratingResult
HID& = Mouse , Keyboard CDC = Virtual Port Virtual Port is now detect , HID device still give error.
add this line in mchpcdc.inf &to load Virtual port interface 0 %DESCRIPTION%=DriverInstall, USB\VID_04D8&PID_0036&MI_00
HID interface detect and load Hid driver but give error.
Showing page 1 of 6
- - - - - - - - - -
[Development Tools]
- - - - MPLAB X IDE
- - - - MPLAB Xpress
- - - - MPLAB X IPE
- - - - MPLAB ICD4 Debugger
- - - - MPLAB PICkit 4 Debugger
- - - - MPLAB&#174; Code Configurator
- - - - MPLAB REAL ICE
- - - - MPLAB ICD In Circuit Debuggers
- - - - MPLAB Harmony
- - - - MPLAB Simulator
- - - - MPLAB 8 IDE
- - - - MPASM, MPLINK, MPLIB (assembler, linker, librarian)
- - - - MPLAB XC8
- - - - HI-TECH C Compilers
- - - - MPLAB C18 Compiler
- - - - MPLAB XC16
- - - - MPLAB C30 Compiler, ASM30, Link30 forum
- - - - MPLAB XC32
- - - - MPLAB C32 Compiler
- - - - Visual Device Initializer
- - - - Evaluation and Demonstration Boards
- - - - Programmers (MPLAB PM3, PICSTART Plus, PICkit 2, PICkit 3)
- - - - Emulators (MPLAB ICE 2000, MPLAB ICE 4000)
- - - - Microstick Development Board for dsPIC33F & PIC24H
- - - - Linux, Open Source Projects and Other Topics
- - - - MATLAB
- - - - CML
- - - - Tips and Tricks
- - - - Other Development Tool Topics
- - - - Arriba IDE for PIC MCUs
- - - - Curiosity
- - - - motorBench(TM) Development Suite
[Memory & Specialty Discussion Group]
- - - - UNI/O(TM) Serial EEPROM
- - - - Serial EEPROMS - I&#178;C
- - - - Serial EEPROMS - Microwire
- - - - Serial EEPROMS - SPI
- - - - Serial SRAM
- - - - MAC Address Chips
- - - - Serial EPROM
- - - - Parallel EPROM
- - - - Parallel EEPROM
- - - - ID Solutions and Plug N Play Products
- - - - Serial Flash
- - - - Parallel Flash
- - - - Smart Card
- - - - RFID
- - - - Literature
- - - - MCP2510 Stand-alone CAN Controller
- - - - Other Issues
[8-Bit Microcontrollers]
- - - - PIC Microcontrollers (PIC10F, PIC12F, PIC16F, PIC18F)
- - - - Legacy PIC Microcontrollers (PIC14000, PIC17, PICxxC)
- - - - Peripherals / Core Independent Peripherals
- - - - - - - - Analog (ADC, Comp, DAC, HC I/O, OPA, PRG, SlopeComp, ZCD)
- - - - - - - - Waveform Control (CCP/ECCP, PWM, PSMC, COG, CWG, NCO, DSM)
- - - - - - - - Timing and Measurements (AngTMR, HLT, PSMC, PWM, NCO, SMT, RTCC, TEMP)
- - - - - - - - Communications (EUSART/AUSART, I2C/SPI, USB, CAN, LIN, KeeLoq)
- - - - - - - - User Interface (mTouch, HCVD, LCD)
- - - - - - - - Logic / Safety & Monitoring / Low Power (CLC, MULT, MathACC, CRC/SCAN, HLT, WWDT, HEF, PPS, IDLE, DO
- - - - Documentation (Programming Specifications, Errata, Literature)
- - - - Tips & Tricks Solutions Guide & Other PIC Topics
[16 bit Microcontrollers &
Digital Signal controllers]
- - - - dsPIC30F Topics
- - - - Programming Specifications
- - - - dsPIC33F Topics
- - - - PIC24 Topics
- - - - - - - - Graphics
[32-Bit Microcontrollers]
- - - - General PIC32 Topics
- - - - PIC32 Beta Release Software (not supported)
- - - - FAQs
[Analog and Interface Devices]
- - - - Welcome
- - - - MCP250xx devices
- - - - Serial Real-Time Clocks (RTCC’s)
[Clock and Timing]
- - - - Clock Solutions
[Keeloq & Security Devices forum]
- - - - Getting Started with Keeloq
[TCP / IP]
- - - - PPP/SLIP
- - - - Ethernet
- - - - Gateway
- - - - TCP/IP Stack v6 Beta
[Mechatronics]
- - - - Tutorial Questions
[Microchip Registered Consultants Board]
- - - - Microchip Registered Consultants Forum
- - - - Main
- - - - Buy, Sell or Trade
[Smart Phone and Tablet Accessories]
- - - - [Android Accessories]
- - - - - - - - Firmware Questions
- - - - - - - - Hardware Questions
- - - - - - - - App Development Questions
[Wireless Topics]
- - - - Embedded Wireless Systems
- - - - MRF Wi-Fi
- - - - RN Wi-Fi
- - - - Bluetooth
- - - - MiWi
- - - - LoRa&#174; Technology
[Microchip.com Forum Welcome]
- - - - Welcome
- - - - Getting Started
- - - - Upcoming changes
- - - - Forum FAQs
- - - - Forum Support
[日本語フォーラム
- - - - 開発ツール
- - - - - - - - MPLAB IDE
- - - - - - - - MPLAB REAL ICE
- - - - - - - - MPLAB ICD2
- - - - - - - - MPLAB シミュレータ
- - - - - - - - MPLAB C18 コンパイラ
- - - - - - - - MPLAB C30 コンパイラ、ASM30、Link30
- - - - - - - - 評価/デモ/開発 ボード
- - - - - - - - エミュレータ(ICE2000、ICE4000)
- - - - - - - - プログラマ(MPLAB PM3、PICSTART Plus、PICkit 2、ICSPなど)
- - - - 8ビット PIC マイコン
- - - - - - - - コア (命令、リセット、WDT、仕様、???)
- - - - - - - - 周辺機能 (ADC、PWM、タイマ、UART、???)
- - - - 16ビット PIC マイコン & DSC
- - - - - - - - コア (命令、リセット、WDT、仕様、???)
- - - - - - - - 周辺機能 (ADC、PWM、タイマ、UART、DMA???)
- - - - - - - - DSP命令、機能
- - - - メモリ製品
- - - - - - - - I2C (24xxxx)
- - - - - - - - SPI (25xxxx)
- - - - - - - - MicroWire (93xxxx)
- - - - アナログ & インターフェース製品
[中文论坛]
- - - - 8位单片机产品
- - - - 16位单片机及DSC产品
- - - - 模拟及存储产品
- - - - 开发工具
- - - - C语言及RTOS
- - - - 单片机应用技术
[Careers in Microchip]
- - - - Microchip Jobs
[Training Discussion Group]
- - - - COM2109 - Introduction to I2C
- - - - COM3101 - Introduction to Full Speed USB
- - - - COM3201 - Designing a Custom USB Peripheral Application
- - - - COM3202 - Designing a USB Embedded Host Application
- - - - COM4101 - Introduction to Embedded Ethernet
- - - - COM4301 - Designing Embedded TCP/IP Monitor and Control
- - - - COM4302 - Advanced TCP/IP HTTP Applications
- - - - COM5610 - Rapid LIN Design Using a Pre-Certified Configurator
- - - - DSP0101 - Introduction to DSP Concepts
- - - - DSP0201 - Using DSP Features of the dsPIC&#174; DSC Architecture
- - - - DSP0202 - Designing with Microchip&#39;s DSP Libraries and Tools
- - - - HIF2131 - Designing with Microchip’s Graphics Library
- - - - IRF2101 - Adding IEEE 802.11/Wi-Fi&#174; To An Embedded Application
- - - - IRF2102 - Wireless Networking with the MiWi(TM) Development Environment
- - - - MCT0101 - Overview of Intelligent Motor Control Solutions
- - - - MCT3101 - BLDC Control Techniques
- - - - MCT4201 - AC Induction Motor Control using dsPICDEM MCHV development board
- - - - MCT7101 - Sensorless Field Oriented Control for PMSM Motors
- - - - MCU0101 - Getting Started with Baseline PIC&#174; MCU Architecture, Instruction Set and Peripheral Progra
- - - - MCU1121 - Mid-Range Microcontroller Family Peripheral Configuration and Usage Using the HI-TECH&#174; C C
- - - - MCU2101 - Getting Started with PIC18 Architecture and Instruction Set
- - - - MCU2121 - PIC18 Microcontroller Family Peripheral Configuration and Usage Using the C18 C Compiler
- - - - MCU3101 - Getting Started with Microchip&#39;s 16-bit MCU Architecture and Instruction Set
- - - - MCU3121 - Microchip 16-bit MCU Peripherals (Unit 1)
- - - - MCU3122 - Microchip 16-bit MCU Peripherals (Unit 2)
- - - - MCU4101 - Introduction to Microchip&#39;s PIC32 MCU
- - - - PWR3101 - Digital Power Converter Basics using dsPIC33 Digital Signal Controllers (DSC)
- - - - PWR3201 - Implementation of Digital Control Techniques for Power Converters using dsPIC&#174; SMPS Family
- - - - TLS0000 - Getting Started with Microchip Live Online
- - - - TLS0101 - Getting Started with Microchip Development Tools
- - - - TLS0999 - Transitioning to MPLAB X from MPLAB 8
- - - - TLS2101 - Introduction to the C Programming Language for Embedded Engineers
- - - - TLS2130 - Getting Started with MPLAB&#174; C for dsPIC DSCs and PIC24 MCUs
- - - - XLP0101 - Low Power System Design with nanoWatt XLP
- - - - XLP1101 - Battery Selection for Low Power Embedded Solutions
Microchip Technology Inc. All rights reserved.

我要回帖

更多关于 come 的文章

 

随机推荐