Sen descrición

Dmitry 8c4898731f Fixed line endings %!s(int64=9) %!d(string=hai) anos
inc 8c4898731f Fixed line endings %!s(int64=9) %!d(string=hai) anos
src 8c4898731f Fixed line endings %!s(int64=9) %!d(string=hai) anos
.gitattributes e2ee6942b3 Added .gitattributes %!s(int64=9) %!d(string=hai) anos
.gitignore 9f83b1a864 Initial release %!s(int64=9) %!d(string=hai) anos
Doxyfile 9f83b1a864 Initial release %!s(int64=9) %!d(string=hai) anos
LICENSE 0940e38eb5 Initial commit %!s(int64=9) %!d(string=hai) anos
readme.md 8c4898731f Fixed line endings %!s(int64=9) %!d(string=hai) anos
usb.h 8c4898731f Fixed line endings %!s(int64=9) %!d(string=hai) anos

readme.md

Lightweight USB Device Stack

  • Lightweight and fast
  • Event-driven process workflow
  • Completely separated USB hardware driver and middleware
  • Easy to use.

Supported hardware

MCU series Driver Name Written on Endpoints (1) Internal S/N Doublebuffered transfer
STM32L052 usb_stmv0a GCC ASM 8 FNV1A 32bit ISO, BULK OUT, BULK IN (2)
STM32L052 usb_stmv0 C 8 FNV1A 32bit ISO, BULK OUT, BULK IN (2)
STM32L053(3) usb_stmv0 C 8 FNV1A 32bit ISO, BULK OUT, BULK IN (2)
STM32F042(3) usb_stmv0 C 8 FNV1A 32bit ISO, BULK OUT, BULK IN (2)
STM32F072(3) usb_stmv0 C 8 FNV1A 32bit ISO, BULK OUT, BULK IN (2)
STM32L1xx usb_stmv1a GCC ASM 8 FNV1A 32bit ISO, BULK OUT, BULK IN (2)
STM32L1xx usb_stmv1 C 8 FNV1A 32bit ISO, BULK OUT, BULK IN (2)
STM32L432(3) usb_stmv0 C 8 FNV1A 32bit ISO, BULK OUT, BULK IN (2)
STM32L433(3) usb_stmv0 C 8 FNV1A 32bit ISO, BULK OUT, BULK IN (2)
STM32L442(3) usb_stmv0 C 8 FNV1A 32bit ISO, BULK OUT, BULK IN (2)
STM32L443(3) usb_stmv0 C 8 FNV1A 32bit ISO, BULK OUT, BULK IN (2)
  1. Single physicsl endpoint can be used to implement

    • one bi-directional/single-buffer logical endpoint (CONTROL)
    • one mono-directional/double-buffer logical endpoint (BULK OR ISOCHRONOUS)
    • two mono-directional/single-buffer logical endpoints (BULK OR INTERRUPT)
  2. At this moment BULK IN endpoint can use both buffers, but it is not real doublebuffered.

  3. Not tested

Implemented definitions for classes

  1. USB HID based on Device Class Definition for Human Interface Devices (HID) Version 1.11
  2. USB DFU based on USB Device Firmware Upgrade Specification, Revision 1.1
  3. USB CDC based on Class definitions for Communication Devices 1.2

Useful Recources

  1. USB Implementers Forum official site
  2. USB Made Simple
  3. LUFA - the Lightweight USB Framework for AVRs.
  4. Open Source ARM cortex m microcontroller library