Based on USBKeyboardMouse example. I added USB String Descriptor so mbed reports itself to host not only with VID & PID but also with name of manufacturer, product name, serial number, configuration number and interface name. These can be changed to matching Yours in USBhid.cpp file on lines 88 - 122.

Dependencies:   mbed

Committer:
llumpu
Date:
Thu Sep 08 15:01:33 2011 +0000
Revision:
0:f97b1f255167
Added USB String Descriptor

Who changed what in which revision?

UserRevisionLine numberNew contents of line
llumpu 0:f97b1f255167 1 /* usbdc.h */
llumpu 0:f97b1f255167 2 /* USB device controller */
llumpu 0:f97b1f255167 3 /* Copyright (c) Phil Wright 2008 */
llumpu 0:f97b1f255167 4
llumpu 0:f97b1f255167 5 #ifndef USBDC_H
llumpu 0:f97b1f255167 6 #define USBDC_H
llumpu 0:f97b1f255167 7
llumpu 0:f97b1f255167 8 /* Endpoints */
llumpu 0:f97b1f255167 9 #define EP0OUT (0) /* Control */
llumpu 0:f97b1f255167 10 #define EP0IN (1) /* Control */
llumpu 0:f97b1f255167 11 #define EP1OUT (2) /* Interrupt */
llumpu 0:f97b1f255167 12 #define EP1IN (3) /* Interrupt */
llumpu 0:f97b1f255167 13 #define EP2OUT (4) /* Bulk */
llumpu 0:f97b1f255167 14 #define EP2IN (5) /* Bulk */
llumpu 0:f97b1f255167 15
llumpu 0:f97b1f255167 16 #include "mbed.h"
llumpu 0:f97b1f255167 17
llumpu 0:f97b1f255167 18 class usbdc : public Base
llumpu 0:f97b1f255167 19 {
llumpu 0:f97b1f255167 20 public:
llumpu 0:f97b1f255167 21 usbdc();
llumpu 0:f97b1f255167 22 void connect(void);
llumpu 0:f97b1f255167 23 void disconnect(void);
llumpu 0:f97b1f255167 24 protected:
llumpu 0:f97b1f255167 25 void setAddress(unsigned char address);
llumpu 0:f97b1f255167 26 void realiseEndpoint(unsigned char endpoint, unsigned long maxPacket);
llumpu 0:f97b1f255167 27 void enableEndpointEvent(unsigned char endpoint);
llumpu 0:f97b1f255167 28 void disableEndpointEvent(unsigned char endpoint);
llumpu 0:f97b1f255167 29 void stallEndpoint(unsigned char endpoint);
llumpu 0:f97b1f255167 30 void unstallEndpoint(unsigned char endpoint);
llumpu 0:f97b1f255167 31 bool getEndpointStallState(unsigned char endpoint);
llumpu 0:f97b1f255167 32 void configureDevice(void);
llumpu 0:f97b1f255167 33 void unconfigureDevice(void);
llumpu 0:f97b1f255167 34 unsigned long endpointRead(unsigned char endpoint, unsigned char *buffer);
llumpu 0:f97b1f255167 35 void endpointWrite(unsigned char endpoint, unsigned char *buffer, unsigned long size);
llumpu 0:f97b1f255167 36 void enableEvents(void);
llumpu 0:f97b1f255167 37 void disableEvents(void);
llumpu 0:f97b1f255167 38 virtual void deviceEventReset(void);
llumpu 0:f97b1f255167 39 virtual void deviceEventFrame(void);
llumpu 0:f97b1f255167 40 virtual void endpointEventEP0Setup(void);
llumpu 0:f97b1f255167 41 virtual void endpointEventEP0In(void);
llumpu 0:f97b1f255167 42 virtual void endpointEventEP0Out(void);
llumpu 0:f97b1f255167 43 virtual void endpointEventEP1In(void);
llumpu 0:f97b1f255167 44 virtual void endpointEventEP1Out(void);
llumpu 0:f97b1f255167 45 virtual void endpointEventEP2In(void);
llumpu 0:f97b1f255167 46 virtual void endpointEventEP2Out(void);
llumpu 0:f97b1f255167 47 private:
llumpu 0:f97b1f255167 48 void SIECommand(unsigned long command);
llumpu 0:f97b1f255167 49 void SIEWriteData(unsigned char data);
llumpu 0:f97b1f255167 50 unsigned char SIEReadData(unsigned long command);
llumpu 0:f97b1f255167 51 void setDeviceStatus(unsigned char status);
llumpu 0:f97b1f255167 52 void setEndpointStatus(unsigned char endpoint, unsigned char status);
llumpu 0:f97b1f255167 53 unsigned char getDeviceStatus(void);
llumpu 0:f97b1f255167 54 unsigned char selectEndpoint(unsigned char endpoint);
llumpu 0:f97b1f255167 55 unsigned char selectEndpointClearInterrupt(unsigned char endpoint);
llumpu 0:f97b1f255167 56 unsigned char clearBuffer(void);
llumpu 0:f97b1f255167 57 void validateBuffer(void);
llumpu 0:f97b1f255167 58 void usbisr(void);
llumpu 0:f97b1f255167 59 unsigned long endpointStallState;
llumpu 0:f97b1f255167 60 static void _usbisr(void);
llumpu 0:f97b1f255167 61 static usbdc *instance;
llumpu 0:f97b1f255167 62 };
llumpu 0:f97b1f255167 63
llumpu 0:f97b1f255167 64
llumpu 0:f97b1f255167 65 #endif