Elérhető a TinyUSB 0.19 kiadás, amely egy platformfüggetlen USB-stackot fejleszt beágyazott rendszerekhez. Az USB-stack összetevői elérhetők USB-hosztok (USB Host) és csatlakoztatott eszközök (USB Device) számára. A projekt kódja C nyelven íródott és MIT licenc alatt terjesztik.
A TinyUSB biztonsága érdekében nem használnak dinamikus memóriaallokálást. Támogatja a több szálú alkalmazások használatát. A biztonságos több szálú működés érdekében minden, az megszakításokkal kapcsolatos esemény nem kerül azonnal feldolgozásra a ISR (Interrupt Service Request) beérkezésekor, hanem sorba kerül, amelyet a program végrehajtási kontextusában dolgoznak fel, nem pedig a megszakításkezelőben. Közös erőforrások, például FIFO CDC (Communication Device Class) hozzáférésénél szemaforokat és mutexeket alkalmaznak.
A stack absztrakt a művelet kezelő rendszertől, és önálló komponensként használható, amely nem függ a műveletkezelő rendszerek funkcióitól. Ezenkívül elérhetőek modulok a TinyUSB FreeRTOS, RT-Thread és Apache Mynewt rendszerral történő integrálásához. Támogatják az energiafogyasztás csökkentésére vonatkozó funkciókat, például az alvó módba való átmenetet és az aktivitás megjelenésekor való ébredést. Van egy kezdeti megvalósítása a PD 3.0 (Power Delivery) protokollnak az energiaátvitel kezelésére USB Type-C-n keresztül.

A TinyUSB lehetővé teszi saját USB-eszközök és hosztok osztályának támogatását az USB-stack módosítása nélkül. A TinyUSB által már támogatott eszközosztályok közé tartozik:
- UAC2 — Audio Class 2.0;
- BTH HCI — Bluetooth Host Controller Interface;
- CDC — Communication Device Class;
- DFU — Device Firmware Update;
- HID — Human Interface Device (billentyűzet, egér, játékkonzol);
- MSC — Mass Storage Class (több logikai eszközt is tartalmazó tárolók);
- MIDI — Musical Instrument Digital Interface;
- MTP/PTP — Media Transfer Protocol;
- RNDIS, ECM (Ethernet Control Model) és NCM (Network Control Model) — hálózati interakció USB-n keresztül;
- USBTMC — Test and Measurement Class;
- UVC — Video class 1.5;
- WebUSB.
Támogatott USB-hosztosztályok:
- HID — Human Interface Device;
- MSC — Mass Storage Class;
- CDC-ACM — Communication Device Class;
- FTDI, CP210x, CH34x, PL2303 — soros port USB-n keresztüli átkonfigurálása;
- USB Hub.
Az új kiadásban bővítették az API-t eszközök és hosztok számára. Az USB-hoszt megvalósításában támogatást nyújtottak a több konfigurációval rendelkező eszközöknek. Támogatást kaptak a mikrokontroller és a következő deszkák:
- ESP32-H4, ESP32-C5, ESP32-C61;
- STM32U0, STM32WBA, STM32N6;
- AT32F405, AT32F403A, AT32F415, AT32F423;
- CH32V305 és CH32V20x (USB host);
- MCXA156 SDK 2.16 és FRDM-MCXA156.
Forrás: opennet.ru
