Серия «USB PD»

74

Pdsink - библиотека USB PD 3.2 для embedded

Наверное многие уже использовали PD-триггеры, чтобы запитать от USB-зарядника самые разные устройства. Очень удобная штука. Однако у разработчиков железа бывают и более сложные требования по управлению питанием, для них и была сделана эта библиотека.

Pdsink - библиотека USB PD 3.2 для embedded

Когда это полезно

Вот несколько примеров, когда фиксированного триггера может не хватать

  • Меняется сопротивление нагрузки (например, медь/вольфрам при нагреве), и надо крутить напряжение чтобы мощность не падала.

  • Нужно задать какие-то нестандартные напряжение (через PPS-профиль)

  • Хочется выставить ограничение по току, чтобы заряжать аккумуляторы напрямую.

  • Хочется использовать микроконтроллер с поддержкой USB PD (например STM32Gxxx), и упростить внешний обвес.

В общем, это актуально для разработчиков железа, у которых есть свобода выбора "что рисовать на схеме".

Когда не имеет смысла

Усложнять конечно стоит не всегда.

  • Если вы не разрабатываете свое железо, а пользуетесь готовым - логичнее использовать копеечный внешний триггер.

  • Если делаете что-то совсем простое, и нужно только фиксированное питание из стандартного списка - с готовым триггером тоже может быть проще. Или можно использовать микросхему, аналогичную тем что в готовых триггерах.

Так что разумный выбор за вами.

Что получилось и зачем новая библиотека

Опенсорсные проекты есть, но все со своими особенностями. Где-то не поддерживаются EPR-режимы (28+ вольт), где-то код гвоздями прибит к операционной системе, которая не всем нужна, и т.п. В общем, смысл в новой библиотеке с перламутровыми пуговицами точно был.

Поскольку время не резиновое, делал только самую востребованную вещь, которая у всех пригорает - режим Sink (потребление энергии). Вот что есть уже сейчас:

  • Полностью независимое от платформ ядро.

  • Полная поддержка Sink.

  • Драйвер FUSB302B - одного из самых популярных чипов.

  • Совместимость с самой последней версией стандарта USB PD 3.2. Сейчас массовые зарядники поддерживают спецификацию 3.1. Новые, с поддержкой 3.2 и AVS-профилями выпустят в следующем году. Точно выпустят, сертификация чипов уже прошла, с рельсов не свернуть.

Чего нет:

  • Поддержки режима Source (источника питания).

  • Наворотов по управлению режимами кабеля.

  • Драйверов для STM32G / WCH (руки не дошли)

Оно работает?

Да. В исходниках есть примеры. Библиотека используется в реальном проекте reflow-паялки, про которую недавно писал. Собственно, она и была поводом сделать свой USB PD стек. А так как привык все делать основательно, решил что стоит упростить жизнь следующим разработчикам. Ну и всё попутно проверялось на десятке зарядников, которые были под рукой, проблем нет.

Честно предупреждаю, тема не самая тривиальная. Если хочется просто привинтить FUSB302B к ардуине и повертеть напряжениями - может быть сложновато. Документация минимальная, для тех кто не боится вникать в код примеров. Но у опытных разработчиков проблем быть не должно.

Ссылки

Показать полностью 1
Отличная работа, все прочитано!