All Projects → Erlkoenig90 → f1usb

Erlkoenig90 / f1usb

Licence: BSD-2-Clause license
Einfaches Beispiel für die Entwicklung eines USB FullSpeed Device auf Basis des STM32F103 ohne die Verwendung externer Bibliotheken

Programming Languages

c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language
assembly
5116 projects

Projects that are alternatives of or similar to f1usb

Usbdevice
Highly flexible Composite USB Device Library
Stars: ✭ 144 (+433.33%)
Mutual labels:  usb, stm32, usb-devices
Stm32f103 Usb Cdc Cmsis
STM32F103 USB CDC CMSIS
Stars: ✭ 40 (+48.15%)
Mutual labels:  usb, stm32
Lsusb
Most popular USB devices and lsusb reports
Stars: ✭ 19 (-29.63%)
Mutual labels:  usb, usb-devices
Android Usb Gadget
Convert your Android phone to any USB device you like! USB Gadget Tool allows you to create and activate USB device roles, like a mouse or a keyboard. 🛠🛡📱
Stars: ✭ 118 (+337.04%)
Mutual labels:  usb, usb-devices
Libusb stm32
Lightweight USB device Stack for STM32 microcontrollers
Stars: ✭ 372 (+1277.78%)
Mutual labels:  usb, stm32
Usbguard
USBGuard is a software framework for implementing USB device authorization policies (what kind of USB devices are authorized) as well as method of use policies (how a USB device may interact with the system)
Stars: ✭ 668 (+2374.07%)
Mutual labels:  usb, usb-devices
Autogadgetfs
USB testing made easy
Stars: ✭ 71 (+162.96%)
Mutual labels:  usb, usb-devices
stm32 tiny monitor
A tiny external monitor for PC using STM32 and ST7789. Connects to PC over USB and displays the captured screen on ST7789 (240x240) display.
Stars: ✭ 61 (+125.93%)
Mutual labels:  usb, stm32
Openmoko Usb Oui
USB Product ID allocations for Free Software / Open Hardware
Stars: ✭ 156 (+477.78%)
Mutual labels:  usb, usb-devices
Usbdeviceswift
wrapper for IOKit.usb and IOKit.hid written on pure Swift that allows you convenient work with USB devices
Stars: ✭ 156 (+477.78%)
Mutual labels:  usb, usb-devices
Teenyusb
Lightweight USB device and host stack for STM32 and other MCUs.
Stars: ✭ 287 (+962.96%)
Mutual labels:  usb, stm32
Usbdk
Usb Drivers Development Kit for Windows
Stars: ✭ 181 (+570.37%)
Mutual labels:  usb, usb-devices
getting-started
List of ideas for getting started with TimVideos projects
Stars: ✭ 50 (+85.19%)
Mutual labels:  usb, usb-devices
Libwdi
Windows Driver Installer library for USB devices
Stars: ✭ 928 (+3337.04%)
Mutual labels:  usb, usb-devices
STM32 XPD
STM32 eXtensible Peripheral Drivers
Stars: ✭ 38 (+40.74%)
Mutual labels:  usb, stm32
Toboot
Bootloader for the EFM32HG Tomu Board
Stars: ✭ 65 (+140.74%)
Mutual labels:  usb, usb-devices
kikpad
KiKPad : the Midiplus SmartPad reinvented !
Stars: ✭ 31 (+14.81%)
Mutual labels:  usb, stm32
buddy-linux
Do you remember "Wubi Ubuntu Installer"? This project is both a replacement and an improvement of Wubi. You will be able to install your Debian (or derived) distribution on a PC without repartitioning it, simply by using a secondary/external boot device (like a USB drive).
Stars: ✭ 17 (-37.04%)
Mutual labels:  usb, usb-devices
Tinyusb
An open source cross-platform USB stack for embedded system
Stars: ✭ 2,257 (+8259.26%)
Mutual labels:  usb, usb-devices
Sboot stm32
Secure USB DFU1.1 bootloader for STM32
Stars: ✭ 181 (+570.37%)
Mutual labels:  usb, stm32

f1usb

Dies ist ein einfaches Beispiel für die Entwicklung eines USB FullSpeed Device auf Basis des STM32F103 ohne die Verwendung externer Bibliotheken, nur durch Low-Level-Registerzugriffe. Es sind vier Varianten gezeigt:

  • Der master-Branch zeigt ein (erweiterbares) Beispiel für eigene Requests auf dem Default Control Endpoint zum Setzen und Abfragen von LED's, und einem simplen Loopback auf dem Bulk Endpoint 1. Das Device ist als "WinUSB Device" deklariert und braucht somit ab Windows 8 keine Treiber, es kann bspw. mit libusb direkt darauf zugegriffen werden. Siehe dazu auch das Projekt usbclient.
  • Im minimal-Branch ist eine gekürzte Variante mit gleicher Funktion.
  • Der vcp-Branch-Branch implementiert einen 3-fachen virtuellen COM-Port ("VCP") (auch als USB-Serial/RS232-Adapter bekannt) auf Basis der Standard-Klasse CDC-ACM, die direkt ohne Treiber genutzt werden kann.
  • Der usbpower-Branch meldet beim PC einen Stromverbrauch von 500mA an und signalisiert über den Pin PA5, wenn der PC den Strom freigegeben hat (via SET_CONFIGURATION). Hier meldet sich das Gerät ebenfalls als WinUSB Device an. Pin und Strom können im Code eingestellt werden.

Dies ist der Beispielcode für dieses Tutorial zur Entwicklung eigener USB-Geräte.

Der Code ist für den STM32F103RBT6 eingestellt. Als Pinout wird das des Olimexino-STM32 angenommen (insb. mit PC12 zum Einschalten des 1,5kΩ-Widerstands auf der D+ -Leitung). Beides kann aber leicht angepasst werden.

Im Code sind die fiktiven VID und PID 0xDEAD bzw. 0xBEEF eingestellt; dies sollte auf korrekte Werte angepasst werden.

Im Repository befinden sich zip-Archive, welche Projektdateien für verschiedene IDE's beinhalten. Zur Nutzung der entsprechenden IDE muss das Archiv einfach nur direkt in das Projektverzeichnis entpackt werden.

Dateiname Zugehörige Entwicklungsumgebung
Atollic_TrueSTUDIO.zip Atollic TrueSTUDIO Lite
gnu-mcu-eclipse.zip eclipse-cdt mit GNU MCU Eclipse-Plugins und GNU Arm Embedded Toolchain in der Version 6.3.1 (Juni 2017)
sw4stm32.zip System Workbench for STM32
Keil-MDK.zip Keil MDK 5 unter Nutzung des Clang-basierten Compiler Version 6

Auf der Releases-Seite sind fertige Binaries für den direkten Download auf den Controller verfügbar.

Lizenz

Dieser Code steht unter der BSD-Lizenz, siehe dazu die Datei LICENSE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].