Espressif TinyUSB fork with DFU runtime
Go to file
hathach 70c6ca7a48 update doxygen setting to have search and version 2014-03-27 17:51:52 +07:00
boards clean up 2014-03-26 16:20:57 +07:00
demos update doxygen setting to have search and version 2014-03-27 17:51:52 +07:00
docs/images resize diagram 2013-05-08 12:45:20 +07:00
mcu markdown documenting 2014-03-26 00:00:53 +07:00
tests markdown work for TDD page 2014-03-26 12:35:19 +07:00
tinyusb iar naming folder 2014-03-26 16:23:37 +07:00
tools refractor hid device driver 2013-12-02 14:17:51 +07:00
vendor clean up 2014-03-26 16:20:57 +07:00
.travis.yml update ,travis.yml 2013-06-29 16:18:36 +07:00
changelog.md markdown work for TDD page 2014-03-26 12:35:19 +07:00
readme.markdown documenting with markdown 2014-03-26 15:42:34 +07:00
tinyusb.Doxyfile update doxygen setting to have search and version 2014-03-27 17:51:52 +07:00

readme.markdown

tinyusb

What Is tinyusb

tinyusb is an open-source (BSD-licensed) USB Host/Device/OTG stack for embedded micro-controller. It is developed using Test-Driven Development (TDD) approach to eliminate bugs as soon as possible.

tinyusb diagram

Features

designed to run out-of-the-box and easy to configure.

Host

  • HID Mouse
  • HID Keyboard
  • HID Generic (comming soon)
  • Communication Device Class (CDC)
  • Mass Storage Class (MSC)
  • Hub
    • Only support 1 level of hub (due to my laziness)

Device

  • HID Mouse
  • HID Keyboard
  • HID Generic (comming soon)
  • Communication Class (CDC)
  • Mass Storage Class (MSC)

RTOS

tinyusb is designed to be OS-ware and run across RTOS vendors, thanks to its OS Abstraction Layer (OSAL). However, it can also run without an RTOS (OSAL will be expanded to be a state machine in this case). Currently the following OS can be run with tinyusb (out of the box).

  • None OS
  • FreeRTOS
  • CMSIS RTX

Supported Platforms

The stack supports the following MCUs

NXP

  • LPC11uxx
  • LPC13uxx (12 bit ADC)
  • LPC175x_6x
  • LPC43xx

Here is the list of supported Boards in the code base

Toolchains

You can compile with any of following toolchains

  • lpcxpresso/redsuite
  • Keil MDK
  • IAR Workbench

Getting Started

Here is the details for getting started with the stack

Known Issues

  • LPC11uxx & LPC13uxx cannot able to STALL Control OUT endpoint !!! --> unsupported with data out request may cause host stuck with control transfer forever. (reproduce: enable keyboard + mouse, return error in set report of hid_device)

How Can I Help

If you find my little USB stack is useful, please take some time to file any issues that you encountered. It is not necessary to be a software bug, it can be a question, request, suggestion etc. We can consider each github's issue as a forum's topic. Alternatively, you can buy me a cup of coffee if you happen to be in Hochiminh city.

License

BSD license for most of the code base, but each file is individually licensed especially those in /vendor folder. Please make sure you understand all the license term for files you use in your project. Full license here