/mcux-sdk-middleware-usb

MCUXpresso SDK USB stack Middleware

Primary LanguageCOtherNOASSERTION

NXP Middleware USB stack

The USB stack provides USB device and USB host APIs that are targeted to support the application based on NXP's micro-controller.

USB stack license

This project is under BSD-3-Clause license, license copy please check COPYING_BSD-3.

Middleware USB subfolders description

The middleware USB folder contains six subfolders totally.

device

This subfolder includes the device controller driver and common device driver for the USB device. The device controller driver includes KHCI, EHCI, IP3511(FS/HS).

Note that the device class driver and the USB framework (chapter 9) to handle the standard enumeration and request defined by USB specification 2.0 are moved to the application layer, which are located in the folder examples/${boards}/usb_examples/. The aim is to implement two types of USB device examples (lite and non-lite). In this case, the lite version device examples have no device class driver and class-specific codes are processed in application directly so that lite version has less footprint.

host

This subfolder includes the host controller driver, USB host class driver and common host driver for the USB host. The host controller driver includes KHCI, EHCI, IP3516(FS/HS).

include

This subfolder includes the definitions and structures for the USB stack. The miscellaneous content is also here.

output

This subfolder includes the files that are specially used by the New Project Wizard(NPW) of MCUXpresso IDE.

phy

This subfolder includes the USB PHY driver. The USB PHY driver is only used for USB high speed port of some Socs that expose the PHY interface.

dcd

This subfolder includes the files that are specially used by the device charger detect.

Note that only usb_device_hid_mouse demo and usb_host_hid_mouse demo supported device charger detect.

Supported USB classes

  • AUDIO
  • CCID
  • CDC
  • DFU
  • HID
  • MSC
  • MTP
  • PHDC
  • PTINTER
  • VIDEO

USB Examples

The following USB examples are provided to meet different requirements. USB examples are located in examples/${boards}/usb_examples/ folder. Different board may have different set of USB examples.

  • usb_device_audio_generator
  • usb_device_audio_speaker
  • usb_device_cdc_vcom
  • usb_device_cdc_vnic
  • usb_device_composite_audio_multi_ch_unified
  • usb_device_composite_cdc_audio_unified
  • usb_device_composite_cdc_hid_audio_unified
  • usb_device_composite_cdc_msc
  • usb_device_composite_cdc_msc_disk
  • usb_device_composite_cdc_vcom_cdc_vcom
  • usb_device_composite_hid_audio
  • usb_device_composite_hid_audio_unified
  • usb_device_composite_hid_mouse_hid_keyboard
  • usb_device_dfu
  • usb_device_hid_generic
  • usb_device_hid_mouse
  • usb_device_msc_disk
  • usb_device_msc_ramdisk
  • usb_device_mtp
  • usb_device_phdc_weighscale
  • usb_device_printer_virtual_plain_text
  • usb_device_video_virtual_camera
  • usb_host_audio_recorder
  • usb_host_audio_speaker
  • usb_host_cdc
  • usb_host_hid_generic
  • usb_host_hid_mouse
  • usb_host_hid_mouse_dual
  • usb_host_hid_mouse_keyboard
  • usb_host_msd_command
  • usb_host_msd_fatfs
  • usb_host_phdc_manager
  • usb_host_printer_plain_text
  • usb_host_video_camera
  • usb_keyboard2mouse
  • usb_lpm_device_hid_mouse
  • usb_lpm_host_hid_mouse
  • usb_otg_hid_mouse
  • usb_pin_detect_hid_mouse
  • usb_pin_detect_hid_msd
  • usb_suspend_resume_device_hid_mouse
  • usb_suspend_resume_host_hid_mouse

USB related guide

Some documents are provided to introduce more details of the USB stack or guide users to implement some new requirements.

  1. MCUXpresso SDK USB Stack User's Guide.pdf
  2. MCUXpresso SDK USB Stack Device Reference Manual.pdf
  3. MCUXpresso SDK USB Stack Host Reference Manual.pdf
  4. Enable More USB Examples on M4 Core for RT1170.pdf
  5. MCUXpresso SDK USB Stack Composite Device User's Guide.pdf
  6. MCUXpresso SDK USB Stack Composite Host User's Guide.pdf