µC/USB-Device Drivers
You are here : Micrium
: Products : µC/USB Device :
Drivers
µ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 |
|