Publication de la pile USB open-source TinyUSB 0.19

La version 0.19 du projet TinyUSB est disponible, développant une pile USB multiplateforme pour systèmes embarqués. Des composants de la pile USB pour les hôtes USB (USB Host) et pour les dispositifs connectés (USB Device) sont fournis. Le code du projet est écrit en C et distribué sous la licence MIT.

Pour des raisons de sécurité, TinyUSB n'utilise pas d'opérations d'allocation dynamique de mémoire. L'utilisation dans des applications multithread est prise en charge. Pour un fonctionnement multithread sûr, tous les événements liés à l'apparition d'interruptions ne sont pas traités immédiatement à la réception de l'ISR (Interrupt Service Request), mais sont mis en file d'attente, qui est traitée dans le contexte d'exécution de l'application et non du gestionnaire d'interruptions. Lorsque l'on accède à des ressources partagées, telles que FIFO CDC (Communication Device Class), des sémaphores et des mutex sont utilisés.

La pile est abstraite du système d'exploitation et peut être utilisée comme un composant autonome, non lié aux fonctionnalités des systèmes d'exploitation. Des modules pour l'intégration de TinyUSB avec les systèmes d'exploitation FreeRTOS, RT-Thread et Apache Mynewt sont disponibles. Des fonctionnalités de réduction de la consommation d'énergie, telles que le passage en mode veille et le réveil lors de l'apparition d'une activité, sont également prises en charge. Une implémentation initiale du protocole PD 3.0 (Power Delivery) pour la gestion du transfert d'énergie via USB Type-C est disponible.

Publication de la pile USB open-source TinyUSB 0.19

TinyUSB permet d'ajouter le support de classes de dispositifs et d'hôtes USB personnalisés sans modification de la pile USB. Parmi les classes de dispositifs déjà prises en charge par TinyUSB figurent :

  • UAC2 — Audio Class 2.0;
  • BTH HCI — Bluetooth Host Controller Interface;
  • CDC — Communication Device Class;
  • DFU — Device Firmware Update;
  • HID — Human Interface Device (clavier, souris, manette);
  • MSC — Mass Storage Class (y compris les supports avec plusieurs dispositifs logiques);
  • MIDI — Musical Instrument Digital Interface;
  • MTP/PTP — Media Transfer Protocol;
  • RNDIS, ECM (Ethernet Control Model) et NCM (Network Control Model) — interaction réseau via USB;
  • USBTMC — Test and Measurement Class;
  • UVC — Video class 1.5;
  • WebUSB.

Classes d'hôtes USB prises en charge :

  • HID — Human Interface Device;
  • MSC — Mass Storage Class;
  • CDC-ACM — Communication Device Class;
  • FTDI, CP210x, CH34x, PL2303 — transfert de port série via USB;
  • USB Hub.

Dans cette nouvelle version, l'API pour dispositifs et hôtes a été élargie. La mise en œuvre de l'hôte USB a ajouté la prise en charge des dispositifs avec plusieurs configurations. La prise en charge des microcontrôleurs et des cartes suivantes a été ajoutée :

  • ESP32-H4, ESP32-C5, ESP32-C61;
  • STM32U0, STM32WBA, STM32N6;
  • AT32F405, AT32F403A, AT32F415, AT32F423;
  • CH32V305 et CH32V20x (hôte USB);
  • MCXA156 SDK 2.16 et FRDM-MCXA156.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster