Skip navigation
 180125-stamp-free-for-white.svg

emUSB-Host—The Leading USB host stack for Embedded Systems

  • Professional USB-Host stack for embedded devices
  • Direct support from the product developers
  • Highly portable and uniform API for all supported controllers
  • High performance, small memory footprint in RAM and ROM
  • Simple to integrate into your embedded environment

emUSB-Host—Efficient USB host stack

SEGGER's emUSB-Host is a USB host stack specifically designed for embedded systems. It implements full USB host functionality, including external hub support and optionally provides device class drivers. It enables developers to easily add USB host functionality to embedded systems.

The emUSB-Host stack complies with the USB v1.1 and USB v2.0 specifications. It supports all transfer modes (control, bulk, interrupt, isochronous) at all speeds. USB pipe management and extended error recovery mechanisms required for reliable operation are implemented internally.   

emUSB-Host's modular design enables applications to either access the USB host programming interface directly or to use APIs exposed by class drivers. 

The USB stack can handle multiple devices as well as hubs simultaneously and fully supports hot plugging of devices and hubs. The programming interface supports dynamic embedded device enumeration and identification.

MTP

Media Transfer Protocol.

MSD

Mass Storage Device class.

HID

Human Interface Device class.

FT232

FTDI FT232 Device Driver.

CDC

Communications Device Class.

Printer

Printer class

emUSB-Host Components

SEGGER's USB host stack designed to work on any embedded system with a USB host controller. Bulk communication along with all other transfer modes is supported. All commonly used standard device classes are supported. USB trees with multiple hubs are supported as well.

Component Description
USB protocol layer
CDCemUSB-Host Communication Device Class component
HIDemUSB-Host Human Interface Device Class component
MSDemUSB-Host Mass Storage Device Class component.
PrinteremUSB-Host Printer component.
FT232emUSB-Host FTDI UART component.
MTPemUSB-Host Media Transfer Protocol component.
Core layer
emUSB Core The emUSB-Host core is the intrinsic USB stack
Hardware layer
DriverUSB controller driver

Buyer's Guide

Additional modules emUSB-Host BASE emUSB-Host PRO
emUSB-Host Stack

 

 

emUSB-Host MSD component

 

 

emUSB-Host HID component

 

 

emUSB-Host Printer component

 

 

emUSB-Host CDC component

 

 

emUSB-Host FTDI UART component

 

 

emUSB-Host MTP component

 

 

emUSB-Host-Controller driver

 

 

Included

One item included

Optional

Supported Devices

emUSB-Host does not contain any hardware dependencies. These are encapsulated through a hardware abstraction layer, which consists of interface functions. All of these functions for a particular USB host controller are typically located in the USB host driver. More information about these functions can be found in the emUSB-Host manual.

Range of Supported USB Hardware

The interface has been designed in such a way that it should be possible to use the most common USB host controllers. This includes USB 1.1 controllers and USB 2.0 controllers.

The following device drivers are available for emUSB-Host

Device Driver Part #
Atmel
AT32UC3A AVR32 Driver 9.40.04
AT91SAM9260 OHCI Driver 9.40.00
AT91SAM9261 OHCI Driver 9.40.00
AT91SAM9263 OHCI Driver 9.40.00
AT91SAM92G10 OHCI Driver 9.40.00
AT91SAM92G20 OHCI Driver 9.40.00
AT91SAM9G15 OHCI Driver 9.40.00
AT91SAM9G45 OHCI Driver 9.40.00
AT91SAM9XE OHCI Driver 9.40.00
AT91SAM92G45/M10 OHCI Driver 9.40.00
AT91SAMA5D2x OHCI Driver 9.40.00
AT91SAMA5D2x EHCI Driver 9.40.03
AT91SAMA5D3x OHCI Driver 9.40.00
AT91SAMA5D3x EHCI Driver 9.40.03
Infineon
XMC45xx Synopsys DWC2 Full Speed Driver 9.40.05
NXP
Kinetis K20 Kinetis Full Speed Driver1 9.40.07
Kinetis K40 Kinetis Full Speed Driver1 9.40.07
Kinetis K60 Kinetis Full Speed Driver1 9.40.07
Kinetis K70 Kinetis Full Speed Driver1 9.40.07
Kinetis KL20 Kinetis Full Speed Driver1 9.40.07
Kinetis KW22 Kinetis Full Speed Driver1 9.40.07
LPC1754 OHCI Driver 9.40.00
LPC1756 OHCI Driver 9.40.00
LPC1758 OHCI Driver 9.40.00
LPC1759 OHCI Driver 9.40.00
LPC1765 OHCI Driver 9.40.00
LPC1766 OHCI Driver 9.40.00
LPC1768 OHCI Driver 9.40.00
LPC1776 OHCI Driver 9.40.00
LPC1777 OHCI Driver 9.40.00
LPC1778 OHCI Driver 9.40.00
LPC1785 OHCI Driver 9.40.00
LPC1786 OHCI Driver 9.40.00
LPC1787 OHCI Driver 9.40.00
LPC1788 OHCI Driver 9.40.00
LPC2387 OHCI Driver 9.40.00
LPC2388 OHCI Driver 9.40.00
LPC2420 OHCI Driver 9.40.00
LPC2458 OHCI Driver 9.40.00
LPC2460 OHCI Driver 9.40.00
LPC2468 OHCI Driver 9.40.00
LPC2470 OHCI Driver 9.40.00
LPC2478 OHCI Driver 9.40.00
LPC3180 OHCI Driver 9.40.00
LPC3220 OHCI Driver 9.40.00
LPC3230 OHCI Driver 9.40.00
LPC3240 OHCI Driver 9.40.00
LPC3250 OHCI Driver 9.40.00
LPC4088 OHCI Driver 9.40.00
LH7A400 OHCI Driver 9.40.00
LH7A404 OHCI Driver 9.40.00
LPC18xx (except LPC181x) EHCI Driver 9.40.07
LPC18Sxx (except LPC181Sx) EHCI Driver 9.40.07
LPC43xx (except LPC431x) EHCI Driver 9.40.07
LPC43Sxx (except LPC431Sx) EHCI Driver 9.40.07
Renesas
NECV850ES Jx(G/H)3-U OHCI Driver 9.40.00
RX11x
(RX113)
Renesas Driver 9.40.02
RX23x
(RX231)
Renesas Driver 9.40.02
RX62x
(RX621, RX62N)
Renesas Driver 9.40.02
RX63x
(RX631, RX63N)
Renesas Driver 9.40.02
RX64x
(RX64M)
Renesas Driver 9.40.02
RX65x
(RX65M)
Renesas Driver 9.40.02
RX71x
(RX71M)
Renesas Driver 9.40.02
RZ/A1x
(RZ/A1H - R7S72100x
RZ/A1M - R7S72101x
RZ/A1L  - R7S72102x)
Renesas Driver 9.40.02
Synergy
(S3A3, S3A7, S5D5, S5D9, S7G2)
Renesas Driver 9.40.02
ST Microelectronics
STM32F105 Synopsys DWC2 Full Speed Driver 9.40.05
STM32F107 Synopsys DWC2 Full Speed Driver 9.40.05
STM32F205 Synopsys DWC2 Full Speed Driver2 9.40.05
STM32F205 Synopsys DWC2 High Speed Driver 9.40.06
STM32F207 Synopsys DWC2 Full Speed Driver2 9.40.05
STM32F207 Synopsys DWC2 High Speed Driver 9.40.06
STM32F215 Synopsys DWC2 Full Speed Driver2 9.40.05
STM32F215 Synopsys DWC2 High Speed Driver 9.40.06
STM32F217 Synopsys DWC2 Full Speed Driver2 9.40.05
STM32F217 Synopsys DWC2 High Speed Driver 9.40.06
STM32F401 Synopsys DWC2 Full Speed Driver2 9.40.05
STM32F405 Synopsys DWC2 Full Speed Driver2 9.40.05
STM32F405 Synopsys DWC2 High Speed Driver 9.40.06
STM32F407 Synopsys DWC2 Full Speed Driver2 9.40.05
STM32F407 Synopsys DWC2 High Speed Driver 9.40.06
STM32F415 Synopsys DWC2 Full Speed Driver2 9.40.05
STM32F415 Synopsys DWC2 High Speed Driver 9.40.06
STM32F417 Synopsys DWC2 Full Speed Driver2 9.40.05
STM32F417 Synopsys DWC2 High Speed Driver 9.40.06
STM32F427 Synopsys DWC2 Full Speed Driver2 9.40.05
STM32F427 Synopsys DWC2 High Speed Driver 9.40.06
STM32F429 Synopsys DWC2 Full Speed Driver2 9.40.05
STM32F429 Synopsys DWC2 High Speed Driver 9.40.06
STM32F437 Synopsys DWC2 Full Speed Driver2 9.40.05
STM32F437 Synopsys DWC2 High Speed Driver 9.40.06
STM32F439 Synopsys DWC2 Full Speed Driver2 9.40.05
STM32F439 Synopsys DWC2 High Speed Driver 9.40.06
STM32F7xx Synopsys DWC2 Full Speed Driver2 9.40.05
STM32F7xx Synopsys DWC2 High Speed Driver 9.40.06
STM32H7xx Synopsys DWC2 High Speed Driver 9.40.06

Due to hardware limitation, only one transfer with one device can be queued at once.

Current limitation: Low-Speed Devices connected via a USB hub do not enumerate properly due to a hardware limitation.