O stack USB aberto TinyUSB 0.19 foi lançado

Está disponível a versão 0.19 do projeto TinyUSB, que desenvolve uma pilha USB multiplataforma para sistemas embarcados. Os componentes da pilha USB são fornecidos para hosts USB (USB Host) e para dispositivos conectados (USB Device). O código do projeto é escrito em linguagem C e é distribuído sob a licença MIT.

Para aumentar a segurança, o TinyUSB não utiliza operações de alocação dinâmica de memória. É suportado o uso em aplicações multithread. Para uma operação segura em ambientes multithread, todos os eventos relacionados a interrupções não são processados imediatamente quando chega uma ISR (Interrupt Service Request), mas são colocados em uma fila que é analisada e processada no contexto da execução do aplicativo, não na do manipulador de interrupções. No acesso a recursos compartilhados, como FIFO CDC (Communication Device Class), são utilizados semáforos e mutexes.

A pilha é abstraída do sistema operacional e pode ser usada como um componente autossuficiente, independente da funcionalidade dos sistemas operacionais. Ao mesmo tempo, estão disponíveis módulos para integrar o TinyUSB com os sistemas operacionais FreeRTOS, RT-Thread e Apache Mynewt. Recursos para redução do consumo de energia são suportados, como a transição para o modo de espera e o despertador ao receber atividade. Há uma implementação inicial do protocolo PD 3.0 (Power Delivery) para controlar a transmissão de energia através do USB Type-C.

O stack USB aberto TinyUSB 0.19 foi lançado

O TinyUSB permite adicionar suporte a classes de dispositivos USB e hosts personalizados sem modificar a pilha USB. Entre as classes de dispositivos já suportadas pelo TinyUSB estão:

  • UAC2 — Classe de Áudio 2.0;
  • BTH HCI — Interface do Controlador Host Bluetooth;
  • CDC — Classe de Dispositivo de Comunicação;
  • DFU — Atualização de Firmware do Dispositivo;
  • HID — Dispositivo de Interface Humana (teclado, mouse, controle);
  • MSC — Classe de Armazenamento em Massa (incluindo dispositivos com múltiplas unidades lógicas);
  • MIDI — Interface Digital para Instrumentos Musicais;
  • MTP/PTP — Protocolo de Transferência de Mídia;
  • RNDIS, ECM (Modelo de Controle Ethernet) e NCM (Modelo de Controle de Rede) — comunicação de rede via USB;
  • USBTMC — Classe de Teste e Medição;
  • UVC — classe de vídeo 1.5;
  • WebUSB.

Classes de hosts USB suportadas:

  • HID — Dispositivo de Interface Humana;
  • MSC — Classe de Armazenamento em Massa;
  • CDC-ACM — Classe de Dispositivo de Comunicação;
  • FTDI, CP210x, CH34x, PL2303 — passthrough de porta serial sobre USB;
  • Hub USB.

Na nova versão, a API para dispositivos e hosts foi expandida. Na implementação do host USB, foi adicionada suporte a dispositivos com várias configurações. Suporte a microcontroladores e placas foi incluído:

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

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster