K dispozícii je verzia projektu TinyUSB 0.19, ktorá rozvíja multiplatformový USB stack pre vstavané systémy. Poskytuje komponenty USB stacku pre USB hostiteľov (USB Host) a pre pripojiteľné zariadenia (USB Device). Kód projektu je napísaný v jazyku C a je distribuovaný pod licenciou MIT.
Pre zvýšenie bezpečnosti sa v TinyUSB nepoužívajú operácie dynamického alokovania pamäte. Podporuje sa jeho použitie v multithreadových aplikáciách. Pre bezpečnú prácu s viacerými vláknami sa všetky udalosti súvisiace s prerušením nezpracúvajú okamžite po príchode ISR (Interrupt Service Request), ale sú umiestnené do fronty, ktorá sa spracováva v kontexte vykonávania aplikácie, nie spracovateľa prerušenia. Pri prístupe k zdieľaným zdrojom, ako je FIFO CDC (Communication Device Class), sa používajú semafory a mutexy.
Stack je abstrahovaný od operačného systému a môže sa používať ako samostatná komponenta, nesúvisiaca s funkčnosťou operačných systémov. K dispozícii sú moduly na integráciu TinyUSB s OS FreeRTOS, RT-Thread a Apache Mynewt. Podporuje sa aj možnosť zníženia spotreby energie, ako je prechod do spánkového režimu a prebudenie pri aktivite. Existuje základná implementácia protokolu PD 3.0 (Power Delivery) na riadenie prenosu elektrickej energie cez USB Type-C.

TinyUSB umožňuje pridávať podporu pre vlastné triedy USB zariadení a hostiteľov bez úpravy USB stacku. Medzi už podporovanými triedami zariadení v TinyUSB sú:
- UAC2 — Audio Class 2.0;
- BTH HCI — Bluetooth Host Controller Interface;
- CDC — Communication Device Class;
- DFU — Device Firmware Update;
- HID — Human Interface Device (klávesnica, myš, herný ovládač);
- MSC — Mass Storage Class (vrátane úložných zariadení s viacerými logickými zariadeniami);
- MIDI — Musical Instrument Digital Interface;
- MTP/PTP — Media Transfer Protocol;
- RNDIS, ECM (Ethernet Control Model) a NCM (Network Control Model) — sieťová interakcia cez USB;
- USBTMC — Test and Measurement Class;
- UVC — Video class 1.5;
- WebUSB.
Podporované triedy USB hostiteľov:
- HID — Human Interface Device;
- MSC — Mass Storage Class;
- CDC-ACM — Communication Device Class;
- FTDI, CP210x, CH34x, PL2303 — prenos sériového portu cez USB;
- USB Hub.
V novej verzii bol rozšírený API pre zariadenia a hostiteľov. V implementácii USB hostiteľa pribudla podpora zariadení s viacerými konfiguráciami. Pridaná podpora pre mikrokontroléry a dosky:
- ESP32-H4, ESP32-C5, ESP32-C61;
- STM32U0, STM32WBA, STM32N6;
- AT32F405, AT32F403A, AT32F415, AT32F423;
- CH32V305 a CH32V20x (USB host);
- MCXA156 SDK 2.16 a FRDM-MCXA156.
Zdroj: opennet.ru
