pdsink – это открытая реализация приемника USB Power Delivery (PD) 3.2 для встраиваемых устройств, выпущенная под лицензией MIT.
Виталий Пузрин заметил, что большинство доступных стеков USB PD имеют как минимум одно жесткое ограничение: привязка к вендору, NDA, отсутствие публичных исходников, привязка к конкретной ОС или фреймворку, неполный набор функций приемника (например, отсутствие EPR) или сложность адаптации к новым комбинациям контроллеров Type-C Port Controller (TCPC) и MCU. Поэтому он создал pdsink – компактный, независимый от платформы, читаемый стек исключительно для приемника, который легко адаптировать к различным контроллерам.

Ключевые особенности pdsink:
- Поддержка USB PD 3.2, SPR (расширенный диапазон мощности) и EPR (расширенный диапазон мощности для 28 В и выше) на стороне приемника.
- Независимое от платформы ядро на C++, не требующее конкретной HAL или RTOS.
- Эталонная реализация с использованием OnSemi FUSB302B + FreeRTOS (ESP32-C3).
- Лицензия MIT позволяет использовать проект в коммерческих продуктах без ограничений.

pdsink может применяться в любых устройствах-приемниках (потребителях питания), таких как инструменты, лабораторное оборудование и пользовательские устройства с питанием от PD. Виталий подчеркивает, что проект не поддерживает роль источника (SRC), а также DRP / DFP / FRS / альтернативные режимы. Исходный код, пример «fusb302_rtos_esp32c3_arduino» и документация для начала работы доступны на GitHub .
Среди других примечательных открытых проектов USB PD – USB Power Delivery for Arduino , реализующий анализатор протокола USB PD, плату-триггер USB PD или более продвинутый приемник питания на STM32 микроконтроллерах, а также стек драйверов USB-PD для FUSB302
Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.
