Micrium

µC/USB-Device Drivers

Overview

Bulk

Mass Storage Class (MSC)

Communication Device Class (CDC)

Licensing

Pricing Information

µC/USB-Device does not contain any hardware dependencies. These are encaspulated in a hardware abstraction layer, which consists of the implementation of interface functions. All of these functions for a particular USB controller are typically located in a single file, the USB driver. Drivers for hardware which has already been tested with the stack are provided.

SUPPORTED HARDWARE

The interface has been designed in such a way that it should be possible to use most common USB device controllers. This includes USB 1.1 (full speed) controllers, USB 2.0 (high speed) controllers, both as external chips and peripherals integrated into microcontrollers.

If your USB controller is one listed in the follwing table, there is a driver for it. If your USB controller is not in the following list, you can develop it with the guidelinees we provide or we can also develop it for you. Please contact us at sales@micrium.com

Manufacturer Driver


ATMEL

AT91SAM7A3
AT91SAM7S
AT91SAM7SE
AT91SAM7X
AT91SAM9260
AT91SAM9261
AT91SAM9263
AT91SAM9RL
AT91RM9200

Luminary Micro

LM3S3xxx

NXP

LPC214X
LPC23XX
LPC24XX
LPC2888
LPC318x

Renesas

H8S2215R
H8S2218
H8S2472
H8SX1664

Sharp
LH79524
ST Microelectronics

STR71X
STR91X
STM32

HARDWARE DEPENDENT FUNCTIONS

The functions that you must write in order to adapt µC/USB-Device to a particular USB controller are described here. Although some of these fucntions may not be needed for a specific USB controller, all of the functions must at least be declared (and left empty if not needed) because they are all called by the µC/USB-Device hardware independent code. The table below lists the functions within their respective categories.

Function Description
USB initialization functions
USB_HW_Init() USB controller initialization
USB buffer control functions
USB_HW_FreeBuffer() Free buffer after read
USB_HW_BufferAvailable() Check for endpoint readiness to receive data
Direct input/output functions
USB_HW_SendData() USB bulk write
USB_HW_Read() USB bulk read
USB controller setup functions

USB_HW_Attach()

Indicate device attachment
USB_HW_UnloadEP0() Setup packet has been evaluated
USB_HW_StallEP0() Stall Endpoint 0
USB_HW_SetAddress() Notify the USB controller of the new address set by the host for it.
USB_HW_EnableEP1() Enable Endpoint 1 to send and receive bulk data
USB_HW_EP0_Send() Sends data over Endpoint 0
USB_HW_ClearOutPacketReady() Prepare the controller to move from the Setup stage of a Control transfer to the Data stage
USB_HW_ClrSetupEnd() Clear Setup packet received flag
USB controller interrupt functions
USB_ISR_Function() Bulk data sent or received
USB_ISR_EP0() Endpoint 0 (Control transfer) interrupts
USB_ISR_Reset() Reset interrupts
USB_ISR_DetectInterrupt() Detects when the USB cable is plugged in
USB_ISR_SOF() Start-of-Frame packet is received
USB_ISR_Suspend() Bus has been idle for a protracted period of time
USB_ISR_Resume() Device should resume activity