Skip to content

A playground to learn USB Protocol by developing USB firmware from scratch.

License

Notifications You must be signed in to change notification settings

pran005/USB-Development

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

USB-Development

Overview

A playground to learn USB 2.0 Protocol by trying to implement a USB Stack for Microcontrollers from scratch.

The approach would be modularized, i.e. driver-library (hardware-specific), middleware and class-specific implementations will form the stack to ease porting to different hardware.

Progress

The current implementation is built over Texas Instuments' TM4C123GH6PM (Tiva C) MCU based on Arm-Cortex M4. The MCU enumerates successfully as a USB Device of the CDC Class. The device doesn't handle the SET_CONFIGURATION request as for now.

Learn USB

The following are a few good resources to learn about USB:

Contribute

If you are interested to contribute on USB for your own learning or otherwise, please drop an e-mail @ - [email protected] , we'd love a healthy collaboration. We'd love to collaborate on USB classes or USB Device/Host implementations be it baremetal or on some OS (Windows/Linux).

If you are willing to contribute-

  1. Find the suitable contribution
  2. Fork the project.
  3. Clone.
  4. Create a branch.
  5. Make your additions/changes.
  6. Commit & push your changes.
  7. Create a pull request.

Note

This project uses USB descriptors as samples to depict functioning. If you are planning to re-use the same descriptors, please change the Vendor & Product IDs. We are not responsible for any legal actions in case of any misuse. The project's main aim is learning and contributing freely & legally to USB firmware/software development.

About

A playground to learn USB Protocol by developing USB firmware from scratch.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages