A USB stack for embedded applications using TinyOS.
TinyUSB is a usb stack for embedded applications using TinyOS. It aims at efficiency and ease of use without compromising much on the features of usb. It currently implements bulk and interrupt pipes in addition to the default message pipe on full-speed devices according to the usb 2.0 specification (see http://
For an example of the efficiency of the stack, the bulkecho example in the tutorial creates a binary that is 3910 bytes and uses 366 bytes of RAM. Speed tests included in the project show that on the rzusbstick platform, running at 8MHz, it can transmit data on the usb bus in excess of 700kB/s. On the 1287on600 platform, which runs at 16MHz, it saturates the full-speed usb bus at just above 1MB/s.
A tutorial can be found here (it is not really done yet, but contains quite a lot of information):
http://
Nesdoc documentation:
http://
To develop the transfer system, I used a theoretical approach based upon petri nets. The petri nets give a graphical means to verify that the transfer system is correct. These petri nets and how they are connected to the implementation is described here:
http://
Just a quick note: The usb 2.0 specification defines three speeds: low-speed, full-speed and high-speed. The maximum speed on a "full-speed" usb device is thus 12Mbaud.
Project information
- Maintainer:
- Harald Landro
- Driver:
- Not yet selected
- Licence:
- Simplified BSD Licence
View full history Series and milestones
trunk series is the current focus of development.