Byla vydána verze projektu TinyUSB 0.19, která rozvíjí multiplatformní USB zásobník pro vestavěné systémy. Poskytuje komponenty USB zásobníku pro USB hostitele (USB Host) a pro připojená zařízení (USB Device). Kód projektu je napsán v jazyce C a je distribuován pod licencí MIT.
Pro zvýšení bezpečnosti nejsou v TinyUSB používány operace dynamického přidělování paměti. Podporuje se použití v multithreadových aplikacích. Pro bezpečnou práci ve více vláknech se všechny události spojené s přerušením nezkoumají okamžitě při příchozím ISR (Interrupt Service Request), ale jsou umístěny do fronty, která se zpracovává a vyřizuje v kontextu běhu aplikace, nikoliv obsluhy přerušení. Při přístupu k sdíleným prostředkům, jako je FIFO CDC (Communication Device Class), se používají semafory a mutexy.
Zásobník je abstrahován od operačního systému a může být použit jako samostatná komponenta, bez vazby na funkčnost operačních systémů. K dispozici jsou moduly pro integraci TinyUSB s OS FreeRTOS, RT-Thread a Apache Mynewt. Podporují se funkce snižování spotřeby energie, jako přechod do spánkového režimu a probouzení při aktivaci. Existuje počáteční implementace protokolu PD 3.0 (Power Delivery) pro řízení přenosu energie přes USB Type-C.

TinyUSB umožňuje přidávat podporu vlastních tříd USB zařízení a hostitelů bez modifikace USB zásobníku. Mezi již podporované třídy zařízení v TinyUSB patří:
- UAC2 — Audio Class 2.0;
- BTH HCI — Bluetooth Host Controller Interface;
- CDC — Communication Device Class;
- DFU — Device Firmware Update;
- HID — Human Interface Device (klávesnice, myš, herní ovladač);
- MSC — Mass Storage Class (včetně úložišť s více logickými zařízeními);
- MIDI — Musical Instrument Digital Interface;
- MTP/PTP — Media Transfer Protocol;
- RNDIS, ECM (Ethernet Control Model) a NCM (Network Control Model) — síťová interakce přes USB;
- USBTMC — Test and Measurement Class;
- UVC — Video class 1.5;
- WebUSB.
Podporované třídy USB hostitelů:
- HID — Human Interface Device;
- MSC — Mass Storage Class;
- CDC-ACM — Communication Device Class;
- FTDI, CP210x, CH34x, PL2303 — přesměrování sériového portu přes USB;
- USB Hub.
V nové verzi byl rozšířen API pro zařízení a hostitele. V implementaci USB hostitele se objevila podpora zařízení s více konfiguracemi. Byla přidána podpora mikrokontrolérů a desek:
- 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
