Без опису

Max Chan 8768f13323 Removing a missed mention of V1 in F303 (V3) driver. 8 роки тому
demo 5558726719 Added batterry charging detection support 9 роки тому
inc b89ff495bb Documentation revised 8 роки тому
src 8768f13323 Removing a missed mention of V1 in F303 (V3) driver. 8 роки тому
.gitattributes e2ee6942b3 Added .gitattributes 9 роки тому
.gitignore d80f9e73ec Ignore the macOS junk. 8 роки тому
Doxyfile 68dfeea293 Renamed request completed callback function, revised doxygen docs 9 роки тому
LICENSE 0940e38eb5 Initial commit 9 роки тому
Makefile cd35d0f397 CMSIS path fixed 8 роки тому
readme.md 8497ebb5ca Added STM32F303 into README 8 роки тому
usb.h 433c5effa2 Adding the STM32F303 driver into usb.h 8 роки тому

readme.md

Lightweight USB Device Stack

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

Supported hardware

HW driver Written on Endpoints Features MCU series
usb_stmv0 GCC C 8 Internal S/N, Doublebuffered, BC1.2 STM32L0x2 STM32L0x3 STM32L4x2 STM32L4x3 STM32F0x2 STM32F0x8
usb_stmv0a GCC ASM 8 Internal S/N, Doublebuffered, BC1.2 STM32L0x2 STM32L0x3 STM32L4x2 STM32L4x3 STM32F0x2 STM32F0x8
usb_stmv1 GCC C 8 Internal S/N, Doublebuffered STM32L1xx
usb_stmv1a GCC ASM 8 Internal S/N, Doublebuffered STM32L1xx
usb_stmv2 GCC C 6 Internal S/N, Doublebuffered, BC1.2 STM32L4x5 STM32L4x6 (OTG FS (Device mode))
usb_stmv3 GCC C 8 Internal S/N, Doublebuffered STM32F303
  1. Single physical 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. Tested with STM32L052, STM31L100, STM32L476RG, STM32F303CC

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

Using makefile

  • to build library module

    make module MODULE=path/module.a DEFINES="mcu spcified defines" CFLAGS="cpu cpecified compiler flags"
    
  • to build demo

    make demo MCU=stm32l100xc
    make demo MCU=stm32l052x8
    make demo MCU=stm32l476rg
    
  • to flash demo using st-flash

    make program
    

Default values:

Variable Default Value Means
CMSIS ../../cmsis path to CMSIS root folder
MCU stm32l100xc MCU selection for demo project
CFLAGS -mcpu=cortex-m3 -mfloat-abi=soft MCU specified compiler flags
DEFINES STM32L1 STM32L100xC MCU specified defines
INCLUDES $(CMSIS)/device/ST $(CMSIS)/include path to ST CMSIS includes

Useful Resources

  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