Files
Last update 1 year 6 months
by
Vojtech Bocek
Filesfwrbcx-coprocessorliblibusb_stm32 | |
---|---|
.. | |
include | |
src | |
LICENSE | |
readme.md |
readme.mdLightweight USB Device Stack
- Lightweight and fast
- Event-driven process workflow
- Completely separated USB hardware driver and usb core
- Easy to use.
Requirements
- CMSIS V4 or CMSIS V5 .
- Device peripheral access layer header files for STM32. See Vendor Template for details.
- stm32.h STM32 universal header
Supported hardware
MCU Series | Features | Driver | File |
---|---|---|---|
STM32L0x2 STM32L0x3 STM32F070 STM32F0x2 STM32F0x8 | Doublebuffered[2]8[1] endpoints BC1.2 | usbd_devfs | usbd_stm32l052_devfs.c |
usbd_devfs_asm | usbd_stm32l052_devfs_asm.S | ||
STM32L4x2 STM32L4x3 STM32G4 series | Doublebuffered[2]8[1] endpoints BC1.2 | usbd_devfs | usbd_stm32l433_devfs.c |
usbd_devfs_asm | usbd_stm32l052_devfs_asm.S | ||
STM32L1xx | Doublebuffered[2]8[1] endpoints | usbd_devfs | usbd_stm32l100_devfs.c |
usbd_devfs_asm | usbd_stm32l100_devfs_asm.S | ||
STM32F102 STM32F103 STM32F302 STM32F303 STM32F373 | Doublebuffered[2]External DP pullup8[1] endpoints | usbd_devfs | usbd_stm32f103_devfs.c |
usbd_devfs_asm | usbd_stm32f103_devfs_asm.S | ||
STM32L4x5 STM32L4x6 | Doublebuffered6 endpoints BC1.2VBUS detection | usbd_otgfs | usbd_stm32l476_otgfs.c |
STM32F4x5 STM32F4x7 STM32F4x9 | Doublebuffered4 endpointsVBUS detectionSOF output | usbd_otgfs | usbd_stm32f429_otgfs.c |
Doublebuffered6 endpointsVBUS detectionSOF output | usbd_otghs | usbd_stm32f429_otghs.c | |
STM32F105 STM32F107 | Doublebuffered4 endpointsVBUS detectionSOF output | usbd_otgfs | usbd_stm32f105_otgfs.c |
Single physical endpoint can be used to implement
- one bi-directional/single-buffer logical endpoint (CONTROL)
- one uni-directional/double-buffer logical endpoint (BULK OR ISOCHRONOUS)
- two uni-directional/single-buffer logical endpoints (BULK OR INTERRUPT)
At this moment BULK IN endpoint can use both buffers, but it is not real doublebuffered.
Tested with STM32L052K8, STM32L100RC, STM32L476RG, STM32F072C8, STM32F103C8, STM32F103CB, STM32F303CC, STM32F303RE, STM32F429ZI, STM32F105RBT6, STM32F107VCT6, STM32L433CCT6, STM32F070CBT6, STM32G431RB, STM32F411CEUx
Implemented definitions for classes
- USB HID based on Device Class Definition for Human Interface Devices (HID) Version 1.11
- USB DFU based on USB Device Firmware Upgrade Specification, Revision 1.1
- 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 bluepill program
make stm32l052x8
- to get a help
make help
Default values:
Variable | Default Value | Means |
---|---|---|
CMSIS | ../../CMSIS | path to CMSIS root folder |
CMSISDEV | $(CMSIS)/Device | path to CMSIS device folder |
CMSISCORE | $(CMSIS)/CMSIS/Include $(CMSIS)/CMSIS/Core/Include | path to CMSIS core headers |
MCU | stm32l100xc | MCU selection for demo project |
CFLAGS | -mcpu=cortex-m3 -mfloat-abi=soft | MCU specified compiler flags |
DEFINES | STM32L1 STM32L100xC | MCU specified defines |
STPROG_CLI | ~/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin/STM32_Programmer_CLI | Path to the ST Cube Programmer CLI |
OPTFLAFS | -Os | Code optimization flags |