Implémentation open source de récepteur USB PD 3.2 : pdsink pour appareils embarqués

open-source USB PD Sink implementation for embedded devices

Selon cnx-software, pdsink est une implémentation open source d’un récepteur USB Power Delivery (PD) 3.2 spécialement conçu pour les appareils embarqués, disponible sous licence MIT.

Support USB PD 3.2 et Extended Power Range : une alternative flexible face à la concurrence

Vitaly Puzrin a observé que la plupart des solutions USB PD existantes présentent des limitations importantes telles que le verrouillage de fournisseur, des NDA restrictifs, l’absence de code source accessible, ainsi que des fonctionnalités de récepteur incomplètes. Pour remédier à cette situation, il a développé pdsink, qui offre une petite pile de récepteur lisible, indépendante de la plateforme et facilement adaptable à divers contrôleurs. Par exemple, pdsink prend en charge non seulement USB PD 3.2, mais également le SPR (Extended Power Range) ainsi que l’EPR (Extended Power Range), permettant ainsi une gestion efficace jusqu’à 28 V et au-delà.

Implémentation USB PD Sink open source pour les appareils embarqués
Illustration utilisée dans le dépôt GitHub de pdsink

Noyau C++ portable et compatibilité : comment pdsink se distingue des autres

Un autre avantage majeur de pdsink réside dans son noyau C++ qui est totalement indépendant d’un HAL (Hardware Abstraction Layer) ou d’un RTOS (Real-Time Operating System) particuliers. Cette caractéristique assure une grande flexibilité pour les développeurs lorsqu’ils cherchent à l’intégrer dans différents projets. Une mise en œuvre de référence a été réalisée en utilisant le contrôleur OnSemi FUSB302B en combinaison avec FreeRTOS sur la plateforme ESP32-C3. De plus, la licence MIT adoptée par le projet permet son utilisation sans conditions dans des produits commerciaux, rendant ainsi pdsink accessible à une large audience.

FUSB302G EVB
FUSB302B EVB

Il convient de noter que pdsink est particulièrement adapté à toute application nécessitant un rôle de « récepteur », tel que les outils, équipements de laboratoire et appareils personnalisés tirant parti de l’alimentation via PD. Il est également important de souligner que le projet ne prend pas en charge le rôle source (SRC), ni les modes DRP, DFP, FRS ou Alt. Les développeurs intéressés peuvent accéder au code source, à un exemple de projet intitulé « fusb302_rtos_esp32c3_arduino », ainsi qu’à une documentation complète disponible sur GitHub.

D’autres projets notables dans l’univers de l’open source USB PD incluent des solutions telles que USB Power Delivery pour Arduino, qui propose un analyseur de protocole USB PD, ainsi que des cartes de déclenchement USB PD et des dissipateurs de puissance élaborés pour les microcontrôleurs STM32, ainsi qu’une pile de pilotes USB-PD pour le FUSB302.

  • WLGQ Adaptateur USB 3.0 19 broches vers USB 3.2 de type E, convertisseur de carte mère interne, port de type C, panneau avant, noir
  • HATMINI Lot de 3 modules de carte déclencheur USB-C PD/QC, USB Type-C vers 5 V 9 V 12 V 20 V, adaptateur de déclenchement d'alimentation réglable USB-C PD