Skip navigation

emUSB-Host — Leading USB host stack for Embedded Systems

  • Professional USB-Host stack for embedded systems
  • 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

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.

Extend your Embedded Systems with USB Peripherals and Devices!

The emUSB-Host stack complies with the USB standard specifications as set by the USB Implementors Forum. 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. Sophisticated test procedures ensure the reliability and quality of the USB host stack.

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

emUSB-Host can handle multiple devices as well as hubs simultaneously and fully supports hot plugging of devices and hubs. The programming interface supports dynamic device enumeration and identification.

HID

Human Interface Device class.

The Human Interface Device class (HID) supports the handling of devices which are used by humans to control the operation of computer systems. The class enables the use of input devices such as keyboards, mice, trackballs, touch-controllers, barcode scanners, joysticks, game controllers, RFID readers. And even devices which do not require direct human control such as digital thermometers, software protection dongles, uninterruptible power supplies.

Application Samples for emUSB-Host HID

Keyboard & Mouse
keyboard-mouse-500x.png

 

 

Touch Screen
Touchscreen.png
Joystick
industrie-joystick-500x.png

 

 

Fingerprint Sensor
fingerprint-sensor-500x.png

 

 

RFID Reader
rfid-reader.png
3D Mouse
3d-tracker.png
Trackball
Trackball_500x.png
Uninterruptible Power Supply
USV_500x.png

CDC

Communication Device Class

The USB Communications Device Class (CDC) provides access to COM port devices via USB. This enables communication via modems for mobile networks such as GSM/3G/LTE or cable based network modems. Any device which uses CDC for configuration and data transmission, such as a point-of-sale terminal, can be accessed via the CDC class driver as well.

Application Samples for emUSB-Host CDC

MSD

Mass Storage Device Class

The Mass Storage Device class (MSD) is used to get access to external storage media such as USB-sticks, external hard disk drives and memory card readers.

Application Samples for emUSB-Host MSD

Memory Stick
memory-stick-500x.png
USB Hard Disk Drive
hard-disk-500x.png
Cardreader
cardreader_500x.png

LAN

Ethernet-over-USB adapter support

emUSB-Host LAN provides support for a multitude of Ethernet-over-USB adapters which can easily enable network access for any embedded system with USB host. 

FT232

FTDI FT232 Device Driver

Many devices formerly connected via UART have been equipped with USB interfaces using serial to UART converters such as the FTDI UART and FT-X devices from FTDI. emUSB-Host is capable of easily addressing such devices.

Application Samples for emUSB-Host FTDI UART

USB to RS232 Converter
rs232-Adapter-500x.png

MTP

Media Transfer Protocol

The Media Transfer Protocol (MTP) can be used to transfer files to and from storage devices like digital cameras or smartphones.

Application Samples for emUSB-Host MTP

Smartphone
smartphone-500x.png
Camera
camera-500x.png

Printer

Printer class

The USB class protocol for printers is used for the handling of output devices, like printers and plotters.

Application Samples for emUSB-Host Printer

Printer
printer-500x.png

Vendor

Vendor class

SEGGER's emUSB-Host Vendor Class provides an easy-to-use interface to devices running custom or proprietary protocols.

Application Samples for emUSB-Host Vendor Class

SEGGER Debug Probe J-Link
J-Link-PLUS-500x.png
Temperature Logger
thermostat.png
Software Protection Dongle
copy-protection-dongle.png

Advantages of adding USB host to your hardware

  • Low cost: The USB connector and the corresponding components are normally cheaper than alternative communication interfaces.
  • Reliable: The USB protocol contains measures to ensure data integrity. Errors are detected by the sender and data can be retransmitted.
  • Versatile: USB host allows to connect with virtually any other technology. Using a USB host port network connectivity can be added by connecting an Ethernet-over-USB adapter. User input can be added by connecting an external USB display, USB keyboard and USB mouse. Storage capacity can be extended by connecting an MSD stick or hard drive.
  • Fast: Multiple speed modes are provided by the USB protocol to accommodate the application's needs.
  • Expandable: USB hubs can be used to connect multiple devices to a USB host.
  • Easy to use: The end user only has to connect a cable, a USB device is enumerated without the need for user configuration.

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.

emUSB-Host consists of three layers. These layers are a driver for hardware access, the emUSB-Host core, and at least one USB protocol layer.

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.
VendoremUSB-Host Vendor class component
LANemUSB-Host LAN component.
Core layer
emUSB Core The emUSB-Host core is the intrinsic USB stack
Hardware layer
DriverUSB controller driver

emUSB-Host Drivers

emUSB-Host does not contain any hardware dependencies. These are encapsulated through a hardware abstraction layer, called a driver. In order to manage the number of required drivers, emUSB-Host has a flexible driver concept, that supports almost all host controllers in the market. For a complete list of currently supported controllers, press the button below. If a controller is not listed, please feel free to contact us about adding support.

Buyer's Guide

SEGGER recommends to purchase emUSB-Host as a complete package by selecting the emUSB-Host PRO package. It includes support for the most common use cases, such as handling human interface devices for user interaction, handling USB sticks to export and import data, printer support and serial communication support. The following table shows, which modules are part of the PRO package and which are optionally available.

Included

One item included

Optional