Перейти к содержанию

USB Type-C и Power Delivery

Как устройство с гнездом Type-C получает питание: что происходит на линиях CC, как зарядка объявляет ток резистором Rp, какими сообщениями USB PD договаривается о 9, 15 или 20 В, когда нужен кабель на 5 А и как сделать потребителя на готовом контроллере — по спецификациям USB-IF и документации TI и Infineon.

Обновлено Редакция GAW

USB Power Delivery (USB PD) — протокол, по которому источник и потребитель питания договариваются о напряжении и токе на шине VBUS: вместо 5 В зарядка может дать 9, 15, 20 В, а в расширенном диапазоне — до 48 В. Работает он только через разъём Type-C: сообщения PD идут по линии CC, которой в старых разъёмах нет. Поэтому разговор о PD начинается с Type-C — с того, как источник вообще узнаёт о подключении и сколько тока можно брать без всяких договорённостей.

Общий обзор шины USB, распиновки и сигналы D+ и D− — в статье «Интерфейс USB», назначение всех 24 контактов гнезда — на странице «Распиновка USB». Здесь — всё, что относится к питанию: от двух резисторов 5,1 кОм до контроллера, запрашивающего 20 В. Цифры взяты из спецификаций USB-IF — USB Type-C Release 2.5 и USB Power Delivery Release 3.2 Version 1.2 — и из документации производителей микросхем; где расчёт наш, это сказано.

Коротко

  • Без PD: Type-C даёт 5 В и ток, который источник объявляет резистором Rp на CC: по умолчанию (500 или 900 мА), 1,5 А или 3 А.
  • Потребитель обязан поставить Rd = 5,1 кОм на землю отдельно на CC1 и на CC2, иначе источник Type-C не включит VBUS.
  • Протокол PD: сообщения по линии CC кодом BMC на 300 кбит/с; источник присылает от 1 до 7 вариантов питания (PDO), потребитель выбирает один.
  • Напряжения SPR: 5, 9, 15 и 20 В, до 100 Вт; регулируемые PPS (шаг 20 мВ) и AVS (шаг 100 мВ).
  • EPR: 28, 36 и 48 В, до 240 Вт, только с кабелем, маркированным на 5 А и 50 В.
  • Кабель: обычный — 3 А; больше 3 А источник даёт, только прочитав электронную маркировку кабеля.

Кто есть кто: Source, Sink, DFP, UFP

В Type-C роли по питанию и по данным разделены. Source (источник) отдаёт питание в VBUS, Sink (потребитель) его берёт. По данным порт бывает DFP (Downstream Facing Port, «хост») или UFP (Upstream Facing Port, «устройство»). Сразу после подключения источник — это DFP, а потребитель — UFP. Порт, который умеет быть и тем и другим, называется DRP (Dual-Role Power): так устроены ноутбуки и телефоны, которые и заряжаются, и заряжают. USB PD позволяет поменять роли сообщениями PR_Swap и DR_Swap, но плате с микроконтроллером обычно хватает одной роли — Sink.

Есть и третий участник — кабель. В вилках кабеля на 5 А и кабеля для высоких скоростей стоит микросхема электронной маркировки (e-marker), с которой источник тоже общается по PD.

Линии CC: Rp, Rd и Ra

У гнезда Type-C два вывода конфигурации — CC1 и CC2, а в кабеле один провод CC. Источник подтягивает оба своих вывода CC к питанию резистором Rp или источником тока, потребитель соединяет оба своих вывода с землёй резистором Rd. Спецификация требует, чтобы это были независимые терминаторы на каждом выводе (Type-C, разд. 4.5.1.2.1). Пока потребитель не подключён, VBUS гнезда источника обесточен (Type-C, разд. 4.4.2).

Цепи CC в USB Type-C: Rp у источника и Rd 5,1 кОм у потребителяИсточник подтягивает каждый из своих выводов CC1 и CC2 к +5 В резистором Rp: 56 кОм по умолчанию, 22 кОм для 1,5 А или 10 кОм для 3 А. Потребитель подключает каждый свой вывод CC1 и CC2 к земле резистором Rd 5,1 кОм. В кабеле только один провод CC; второй вывод CC вилки — это VCONN, сквозного провода нет. Источник включает VBUS, только когда на одном из его выводов CC появляется Rd.Источник (зарядка, хост)Кабель C–CПотребитель (устройство)+5 Включ VBUS+5 ВRp56, 22 или 10 кОм+5 ВRpVBUS включается, только когдана CC1 или CC2 появился RdVBUSVBUSCC1CC1CC2CC2GNDGNDпровод CCвторой CC — VCONN вилки,сквозного провода нетк питанию платыRd5,1 кОмRd5,1 кОм
Канал конфигурации Type-C. Rp источника объявляет ток, Rd 5,1 кОм потребителя — признак подключения. Провод CC в кабеле один, поэтому соединится одна пара выводов.

Источник следит за напряжением на своих CC1 и CC2. Вилку кабеля с электроникой он отличает по третьей нагрузке — Ra: вывод VCONN вилки, пока на него не подано питание, выглядит для источника как сопротивление на землю от 800 Ом до 1,2 кОм (Type-C, табл. 4-29). Что видит источник на двух выводах (Type-C, табл. 4-10):

CC1 / CC2Что подключено
обрыв / обрывничего
Rd / обрыв (или наоборот)потребитель, обычный кабель
Ra / обрывкабель с электроникой без потребителя на другом конце или режим защиты от коррозии
Rd / Ra (или наоборот)потребитель через кабель с электроникой либо устройство, питаемое от VCONN
Rd / Rdотладочный аксессуар (Debug Accessory Mode)
Ra / Raрежим защиты от коррозии (Liquid Corrosion Mitigation Mode)

Подключение засчитывается не сразу: состояние CC должно продержаться tCCDebounce = 100–200 мс. После этого источник включает VBUS и за tVBUSON — не дольше 275 мс — поднимает его до vSafe5V (Type-C, табл. 4-32 и 4-34).

Ориентация вилки

Вилку Type-C можно вставить любой стороной, и по CC обе стороны узнают, как именно она вставлена: провод CC оказался на CC1 или на CC2. Источнику это нужно, чтобы подать VCONN на свободный вывод CC, а устройствам USB 3.x и USB4 — чтобы скоммутировать линии TX и RX. Устройству только с USB 2.0 ориентация не важна: контакты D+ и D− в гнезде продублированы с обеих сторон и соединяются на плате попарно. Готовые контроллеры выдают ориентацию на вывод: у TPS25730 это PLUG_FLIP, 0 — провод CC на CC1, 1 — на CC2 (TPS25730, табл. 5-2).

Ток Type-C: по умолчанию, 1,5 и 3 А

Сопротивление Rp заодно объявляет, какой ток можно брать при 5 В без всякого PD (Type-C, табл. 4-27):

Ток источникаRp к 4,75–5,5 ВRp к 3,3 В ± 5 %Источник тока к 1,7–5,5 В
по умолчанию: 500 мА у USB 2.0, 900 мА у USB 3.x56 кОм ± 20 %36 кОм ± 20 %80 мкА ± 20 %
1,5 А22 кОм ± 5 %12 кОм ± 5 %180 мкА ± 8 %
3,0 А10 кОм ± 5 %4,7 кОм ± 5 %330 мкА ± 8 %

Потребитель с Rd ± 10 % определяет ток по напряжению на своём CC (Type-C, табл. 4-36): 0,277–0,612 В — ток по умолчанию, 0,746–1,164 В — 1,5 А, 1,369–2,042 В — 3,0 А, ниже 0,276 В — отключение. Пороги контроллера TPS25730 укладываются в эти промежутки: 0,62–0,69 В между «по умолчанию» и 1,5 А и 1,17–1,3 В между 1,5 и 3 А (TPS25730, разд. 6.11). Rd ± 20 % и ограничитель напряжения (кламп) на 1,1 В тоже разрешены, но ток по ним определять нельзя (Type-C, табл. 4-28). Когда источник сменил объявленный ток, у потребителя есть tSinkAdj = 60 мс, чтобы подстроиться (табл. 4-32).

Напряжение на CC потребителя USB Type-C и ток, который объявил источникШкала напряжения на выводе CC потребителя с Rd 5,1 кОм ± 10 %. От 0,28 до 0,61 В — ток по умолчанию, от 0,75 до 1,16 В — 1,5 А, от 1,37 до 2,04 В — 3 А. С Rp к 5 В получается 0,42 В при 56 кОм, 0,94 В при 22 кОм и 1,69 В при 10 кОм.Напряжение на CC потребителя, Rd = 5,1 кОм ± 10 %по умолчанию0,28–0,61 В1,5 А0,75–1,16 В3 А1,37–2,04 В00,5 В1,0 В1,5 В2,0 ВRp 56 кОм0,42 ВRp 22 кОм0,94 ВRp 10 кОм1,69 В
Напряжение на CC потребителя и объявленный ток по табл. 4-36 спецификации Type-C. Треугольники — что даёт Rp к 5 В вместе с Rd 5,1 кОм.

VCONN и электронная маркировка кабеля

Свободный вывод CC — тот, к которому не пришёл провод CC, — источник использует как VCONN: питание для микросхем в вилках кабеля. Напряжение VCONN — от 3,0 до 5,5 В. Источник с линиями TX и RX обязан отдать в VCONN 1 Вт (1,5 Вт при двух линиях), источник только с USB 2.0 — 100 мВт, если ему нужно читать маркировку кабеля на 5 А (Type-C, табл. 4-4, 4-5). Если на втором выводе CC не обнаружено Ra или вилка не отвечает на запрос, VCONN можно не подавать.

С микросхемой в вилке источник говорит теми же сообщениями PD, но с другим началом пакета — SOP' (SOP «штрих») вместо SOP. В ответ на Discover Identity вилка присылает объект Cable VDO (USB PD, табл. 6.42), и из него источник узнаёт:

  • ток кабеля — 3 или 5 А;
  • наибольшее напряжение — 20 или 50 В: при 20 В можно договориться о фиксированных 20 В, при 50 В — о 48 В;
  • поддержку EPR — кабель рассчитан на 48 В при 5 А.

Источник, способный дать больше 3 А или работать в EPR, обязан опросить кабель и ограничить свои предложения его возможностями (USB PD, разд. 8.6.1.2). Плате-потребителю об этом заботиться не нужно — но от кабеля зависит, сколько мощности она получит.

Устройство с USB 2.0: два резистора по 5,1 кОм

Самый частый случай — плата с микроконтроллером, которой от разъёма Type-C нужны 5 В и, может быть, данные USB 2.0. Контроллер PD ей не нужен: достаточно двух резисторов Rd = 5,1 кОм — от CC1 на землю и от CC2 на землю — и попарно соединённых контактов D+ и D− гнезда. Как развести гнездо на 16 контактов, показано на странице «Распиновка USB», пример полной схемы с STM32F103 — в статье об USB.

Подключение STM32F103 к гнезду USB Type-C с питанием от шиныГнездо USB Type-C для USB 2.0: выводы CC1 и CC2 через отдельные резисторы 5,1 кОм соединены с землёй, контакты D+ (A6 и B6) и D− (A7 и B7) соединены попарно. У гнезда стоит сборка защиты USBLC6-2SC6: линии D+ и D− проходят через её выводы 1–6 и 3–4, вывод 5 — к VBUS, вывод 2 — к земле. VBUS с конденсатором 4,7 мкФ питает стабилизатор 3,3 В, от которого работает STM32F103. D+ подключена к PA12 и подтянута к 3,3 В резистором 1,5 кОм, D− — к PA11; последовательные резисторы не нужны.J1USB Type-Cгнездо USB 2.0VBUSA4, A9, B4, B9CC1A5CC2B5D+A6, B6D−A7, B7GNDA1, A12, B1, B12C14,7 мкФR15,1 кОмR25,1 кОмD1USBLC6-2SC6136452DA1LDO 3,3 В+3,3 В+3,3 ВR31,5 кОмPA12 (USB_DP)PA11 (USB_DM)3332VDDSTM32F103DD1, корпус LQFP48VSS
STM32F103 с питанием от USB и гнездом Type-C: два резистора 5,1 кОм на CC, контакты A6–B6 и A7–B7 соединены у гнезда, USBLC6-2SC6 у разъёма, подтяжка 1,5 кОм на PA12.

Такая плата берёт ток по умолчанию — 500 мА от порта USB 2.0. Чтобы брать 1,5 или 3 А, она должна измерять напряжение на CC (с Rd ± 10 %) и проверять, что источник это разрешил. Схема на одних резисторах работает со всеми источниками: с зарядкой Type-C и кабелем C–C, с компьютером, с кабелем от порта Type-A, в вилке которого уже стоит Rp 56 кОм.

Почему один резистор на оба CC — ошибка

Соблазнительно соединить CC1 и CC2 и поставить один резистор 5,1 кОм. С обычным кабелем это даже работает: источник видит Rd на своём единственном соединённом выводе CC. Но если у кабеля в вилке со стороны устройства есть электроника, на её выводе VCONN стоит Ra, и объединённые выводы подключают его параллельно Rd прямо к проводу CC.

Наш расчёт: 5,1 кОм параллельно с Ra 0,8–1,2 кОм — это 0,69–0,97 кОм. С источником тока 330 мкА (объявление 3 А) напряжение на линии CC — 0,23–0,32 В, а спецификация относит к Ra всё, что ниже 0,428 В, и требует для Rd не меньше 0,88 В (Type-C, табл. 4-37). С источником тока 80 мкА — 0,055–0,078 В при границе Ra 0,115 В. Источник видит на проводе CC не Rd, а Ra — как будто подключён только кабель (Ra / обрыв или Ra / Ra, если Ra есть и в вилке на его стороне), — и VBUS не включает. Независимые терминаторы на CC1 и CC2 (Type-C, разд. 4.5.1.2.1) — требование, а не рекомендация.

Разряженная батарея

Устройство с аккумулятором должно получить питание и тогда, когда аккумулятор сел и контроллер PD не работает. Спецификация требует от него в этом состоянии показывать Rd на обоих CC (Type-C, разд. 4.8.5); достаточно, чтобы напряжение на CC попало в тот же диапазон, что и у реализации Rd с ограничителем напряжения (клампом). Контроллеры-потребители делают это сами: у TPS25730 есть встроенный Rd для разряженной батареи — при токе Rp по умолчанию его кламп держит 0,25–1,32 В — и линейный стабилизатор 3,3 В от VBUS (TPS25730, разд. 1, 6.11).

Как идёт договорённость USB PD

Сообщения PD передаются по проводу CC кодом BMC (Biphase Mark Code) на скорости 300 кбит/с ± 10 % поверх постоянного напряжения, заданного Rp и Rd; данные перед этим перекодируются 4b5b (USB PD, разд. 5.3, табл. 5.9). Каждое принятое сообщение получатель подтверждает коротким сообщением GoodCRC. Договорённость в стандартном диапазоне выглядит так (USB PD, разд. 7.9):

  1. Source_Capabilities. Источник включил 5 В и, пока не получит ответа, повторяет список своих возможностей каждые 100–200 мс (tTypeCSendSourceCap); после 50 попыток без GoodCRC может прекратить — значит, на другом конце нет PD (nCapsCount).
  2. Request. Потребитель выбирает один пункт списка по номеру и сообщает, какой ток будет брать. Если ничего подходящего нет, он всё равно обязан выбрать допустимый пункт (обычно 5 В) и выставить бит Capability Mismatch.
  3. Accept, Reject или Wait. Источник соглашается, отказывает или просит подождать.
  4. PS_RDY. Источник перестроил напряжение и сообщает, что питание готово. С этого момента действует явный контракт (Explicit Contract). Потребитель ждёт PS_RDY не дольше tPSTransition — 450–550 мс в SPR (табл. 7.9).

Перед повышением напряжения потребитель обязан уменьшить потребление до iSnkStdby = 500 мА; переход в этот режим ожидания — за tSnkStdby = 15 мс после Accept (USB PD, разд. 4.2.3, табл. 4.7). Перед понижением напряжения этого не требуется.

Основные сообщения, которые встретятся при отладке (USB PD, табл. 6.4, 6.5):

СообщениеТипКто отправляетНазначение
Source_CapabilitiesданныеSourceсписок PDO: что источник может дать
RequestданныеSinkвыбор PDO и рабочий ток (RDO)
GoodCRCуправляющеелюбойподтверждение приёма
Accept / Reject / Waitуправляющиеполучатель запросаответ на запрос
PS_RDYуправляющееSourceпитание установилось
Get_Source_CapуправляющееSinkпопросить список заново
Sink_CapabilitiesданныеSinkчто нужно потребителю — по запросу Get_Sink_Cap
Soft_Resetуправляющеелюбойсброс протокола без снятия питания
EPR_Request, EPR_ModeданныеSink, обавход в EPR и запрос 28–48 В

Если что-то пошло не так, сторона посылает Hard Reset — особую последовательность на линии. Оба участника возвращают питание в исходное состояние: VBUS проходит через vSafe0V (до 0,8 В) и снова поднимается до 5 В, а Rp и Rd остаются на месте, поэтому потребитель не считает это отключением (USB PD, разд. 7.1.3).

PDO: что внутри Source_Capabilities

Сообщение несёт от 1 до 7 32-битных объектов PDO (Power Data Object). Первым всегда идёт фиксированное 5 В, остальные фиксированные — по возрастанию напряжения (USB PD, разд. 6.4.1.1). Тип объекта задают два старших бита (табл. 6.6, 6.7):

Биты 31…30ТипЧто описывает
00Fixedфиксированное напряжение (биты 19…10, шаг 50 мВ) и наибольший ток (биты 9…0, шаг 10 мА, до 5 А)
01Batteryдиапазон напряжений и мощность (шаг 250 мВт)
10Variableплохо стабилизированный источник: диапазон и ток
11APDOрасширенный объект: PPS, SPR AVS или EPR AVS — по битам 29…28

В первом PDO на 5 В биты 29…23 — флаги источника (бит 22 зарезервирован): может ли он меняться ролями, есть ли у него внешнее питание (Unconstrained Power), работает ли он с данными USB, поддерживает ли EPR (табл. 6.8).

Пример, наш расчёт по табл. 6.10: фиксированные 9 В при 3 А — напряжение 9 / 0,05 = 180, ток 3 / 0,01 = 300, что даёт 0x0002D12C; 20 В при 3,25 А — 0x00064145. Флаги в этих примерах нулевые.

Request и RDO

Ответ потребителя — один 32-битный объект RDO (Request Data Object, табл. 6.19). В битах 31…28 — номер выбранного PDO, начиная с 1: позиции 1–7 относятся к стандартному диапазону, 8–11 — к EPR (разд. 6.4.2.1.5). В битах 19…10 — рабочий ток в единицах 10 мА, наибольший ток, который потребитель будет брать по контракту. Биты 9…0 когда-то хранили отдельный наибольший ток; теперь поле устарело, но передатчик обязан повторить в нём рабочий ток.

Наш расчёт: запрос третьего PDO (например, 15 В) с током 1,5 А — позиция 3, ток 150 в битах 19…10 и 9…0, RDO 0x30025896. Для PPS в RDO вместо тока по PDO указывают выходное напряжение в единицах 20 мВ (биты 20…9) и ток в единицах 50 мА (биты 6…0, табл. 6.21): 8,4 В и 2 А в пятом PDO — 0x50034828.

Какие напряжения даст зарядка: правила мощности

Набор напряжений не произволен: он определяется мощностью порта PDP (Port Power) по правилам USB PD (табл. 3.1). Источник обязан предложить все напряжения своего класса, на 5, 9 и 15 В — ток min(3 А; PDP / U), на 20 В — min(ток кабеля; PDP / 20 В). Источник мощнее 27 Вт по табл. 3.1 редакции 3.2 предлагает ещё и регулируемый режим SPR AVS: от 9 до 15 В с током фиксированных 15 В, а мощнее 45 Вт — и от 15 до 20 В с током фиксированных 20 В. Что это значит для зарядок разной мощности (наш расчёт по табл. 3.1):

PDP зарядки5 В9 В15 В20 ВSPR AVS
15 Вт3 А————
20 Вт3 А2,22 А———
30 Вт3 А3 А2 А—9–15 В: 2 А
45 Вт3 А3 А3 А—9–15 В: 3 А
65 Вт3 А3 А3 А3,25 А (с кабелем 3 А — 3 А)9–15 В: 3 А; 15–20 В: 3,25 А
100 Вт3 А3 А3 А5 А (с кабелем 3 А — 3 А)9–15 В: 3 А; 15–20 В: 5 А

Ток выше 3 А требует кабеля на 5 А: с обычным кабелем мощность порта ограничивается 60 Вт (табл. 3.2, прим. 2). Отсюда практическое правило для потребителя: 20 В бывают только у зарядок мощнее 45 Вт, 15 В — мощнее 27 Вт, а маленькие 18–20-ваттные зарядки дают не больше 9 В.

Необязательные фиксированные напряжения выше 9 В действующая редакция 3.2 запрещает: источник не должен предлагать, например, фиксированные 12 В (разд. 3.2.5.1). Это правило — только о фиксированных PDO: ровно 12 В можно получить через SPR AVS от зарядки редакции 3.2 мощнее 27 Вт. Но зарядки прежних редакций AVS не знают, а в документации контроллеров TPS25730 и CYPD3177 режимы AVS и PPS не упоминаются — они запрашивают только фиксированные PDO, хотя 12 В в настройках сохранили. Устройство на 12 В надёжнее питать от 15 или 20 В через свой понижающий преобразователь.

PPS и AVS: регулируемое напряжение

Кроме фиксированных значений, источник предлагает регулируемое напряжение (USB PD, табл. 4.2–4.4, 4.6). PPS необязателен (разд. 3.2.5.2), а SPR AVS в редакции 3.2 входит в обязательный набор источника мощнее 27 Вт (разд. 3.2.4, табл. 3.1):

РежимДиапазоныШаг напряженияТок
PPS (Programmable Power Supply)5–11, 5–16, 5–21 В20 мВисточник ограничивает ток, шаг 50 мА
SPR AVS (Adjustable Voltage Supply)9–15, 9–20 В100 мВкак у фиксированного 15 и 20 В, без ограничения
EPR AVS15–28, 15–36, 15–48 В100 мВPDP / U, не больше 5 А

PPS придуман для прямой зарядки аккумуляторов: источник держит заданное напряжение, а при превышении заданного тока переходит в режим ограничения тока — по сути, это лабораторный блок питания. Чтобы контракт не сбросился, потребитель в режиме PPS обязан повторять Request не реже чем раз в 10 с (tPPSRequest); если источник не получит сообщений за 12–15 с (tPPSTimeout), он пошлёт Hard Reset (разд. 7.31.16, табл. 7.9). AVS ток не ограничивает — следить за ним должен потребитель (разд. 7.9.2). Напряжение AVS в запросе указывают в единицах 25 мВ с двумя младшими битами, равными нулю, — отсюда шаг 100 мВ (табл. 6.22).

EPR: 28, 36 и 48 В

Расширенный диапазон EPR (Extended Power Range) — для портов мощностью от 100 до 240 Вт: фиксированные 28, 36 и 48 В при токе до 5 А (табл. 3.5). Чтобы войти в EPR, нужны три условия: источник и потребитель поддерживают его, а кабель маркирован на 5 А и 50 В с битом EPR (Type-C, разд. 2.4). Потребитель сначала заключает обычный контракт, затем запрашивает вход сообщением EPR_Mode, получает EPR_Source_Capabilities — список, где позиции 1–7 по-прежнему занимают PDO стандартного диапазона, а 8–11 — EPR, — и делает выбор сообщением EPR_Request. В режиме EPR стороны должны регулярно обмениваться сообщениями: если потребителю нечего сказать, он шлёт EPR_Keep_Alive, а источник, не услышав его вовремя, посылает Hard Reset (разд. 7.30.6, 7.31.18). Без EPR-кабеля EPR-источник работает только в стандартном диапазоне (разд. 3.2.5.3).

Потребитель на готовом контроллере

Чтобы получить больше 5 В, плате нужен контроллер USB PD в роли Sink. Протокол со всеми таймерами в нём уже реализован, а настройка сводится к нескольким резисторам. Два примера с открытой документацией:

TI TPS25730Infineon CYPD3177 (EZ-PD BCR)
Версия PDсовместим с PD 3.1, только SinkPD 3.0
Напряжение на VBUSрабочее 4–22 В, предельное 28 Вработа 3,0–24,5 В, выдерживает 30 В
Ключ питаниявключается сразу при подключении, на 5 В (конфигурация AlwaysEnableSink); у TPS25730D встроенный, 16 мОм (типовое, 25 °C); у TPS25730S — драйверы двух внешних N-MOSFETдрайвер внешнего P-MOSFET
Выбор напряженияделители на ADCIN1 и ADCIN2: минимум 5, 9, 12, 15 или 20 В, максимум 9, 12, 15 или 20 Вделители на VBUS_MIN и VBUS_MAX: 5, 9, 12, 15, 19, 20 В
Выбор токаделители на ADCIN3 и ADCIN4: пары значений по табл. 8-6 — рабочий ток 0–5 А, наибольший 1,5–5 АISNK_COARSE 0–5 А плюс ISNK_FINE 0–900 мА
Если нужного нетбит Capability Mismatch, вывод CAP_MIS; ключ остаётся включённым на 5 Ввывод FAULT, контракт 5 В и ключ SAFE_PWR_EN для резервного питания
Прочеевыводы PLUG_FLIP, SINK_EN, PLUG_EVENT; I²C для внешнего МКразряд VBUS, I²C (адрес 0x08), защита от замыкания VBUS на CC

Данные: TPS25730 — разд. 1, 6.1, 6.3, табл. 8-3–8-6; CYPD3177 — разд. 1, 4.1, табл. 2–5.

Оба контроллера работают без прошивки: значения задаются делителями от внутреннего питания 3,3 В, которые микросхема читает своим АЦП при старте. У CYPD3177 есть важная оговорка: он не измеряет ток на VBUS и не ограничивает его — не брать больше, чем разрешила зарядка, должна сама система (CYPD3177, табл. 2–4, прим. 2).

У TPS25730 есть особенность, которую нужно учесть в схеме. Во всех вариантах настройки делителями ADCIN1 и ADCIN2 контроллер работает в конфигурации AlwaysEnableSink: ключ включается при подключении, независимо от того, какой ток объявил источник (TPS25730, табл. 8-3). Нагрузка сначала получает 5 В, после PS_RDY — договорённые 9, 15 или 20 В, а если подходящего PDO нет — остаётся на 5 В с сигналом CAP_MIS. TI оговаривает, что это поведение задано прошивкой микросхемы и может меняться (разд. 8.3.6). Значит, преобразователь за ключом должен спокойно пережить ступеньку 5 → 20 В под нагрузкой и работу при 5 В — или его нужно включать отдельно, по выводам SINK_EN и CAP_MIS. CYPD3177 включает основной ключ VBUS_FET_EN только для запрошенного контракта, а 5 В при несовпадении подаёт через отдельный ключ SAFE_PWR_EN (CYPD3177, разд. 4.1.1).

Пример, наш расчёт. Устройству нужно 12 В при 1 А — 12 Вт, на плате понижающий преобразователь с входом до 24 В. Примем его КПД 90 % — тогда на входе нужно 12 / 0,9 ≈ 13,3 Вт. Настраиваем TPS25730 на минимум 9 В, максимум 20 В и пару токов «рабочий 2 А, наибольший 3 А» (табл. 8-4–8-6). Минимальная мощность, которую контроллер считает достаточной, — рабочий ток на минимальное напряжение, 2 А × 9 В = 18 Вт (разд. 8.3.14). Зарядка 20 Вт даст 9 В при 2,22 А: контракт на 2 А при 9 В — 18 Вт, а преобразователю нужно около 1,5 А. Зарядка 45 Вт даст 15 В — ток около 0,9 А, зарядка 65 Вт — 20 В и около 0,67 А. 15-ваттная зарядка 9 В не предлагает: контроллер выставит Capability Mismatch, и плата останется на 5 В. Если бы устройству нужно было 12 В при 1,5 А — около 20 Вт на входе, — 20-ваттной зарядки уже не хватило бы с запасом: тогда настраивают минимум 15 В и рабочий ток 2 А, то есть зарядку от 30 Вт. Настраивать ровно 12 В бессмысленно: фиксированных 12 В совместимая с PD 3.2 зарядка не предложит, и устройство останется на 5 В с выставленным FAULT или CAP_MIS.

Микроконтроллер с контроллером UCPD

У части STM32 есть встроенный блок UCPD — интерфейс USB Type-C и Power Delivery: по данным ST, у STM32G071, G081, G0B1 и G0C1, у всех STM32G4, L5 и N6, у STM32U5 кроме U535 и U545, у STM32H5 кроме H503 и у STM32H7R3, H7R7, H7S3, H7S7. Список по семействам — на странице «Семейства STM32», подробности — в статьях о STM32G0 и STM32G4.

С UCPD потребитель обходится без отдельной микросхемы PD, но протокол — сообщения, GoodCRC, таймеры, Hard Reset, выбор PDO — выполняет прошивка, и её ошибки становятся ошибками питания. Отдельный контроллер сам договаривается с зарядкой и включает ключ, даже если микроконтроллер ещё не запустился: TPS25730 — сразу на 5 В, а после договорённости нагрузка получает запрошенное напряжение, поэтому она должна выдерживать этот переход. Поэтому UCPD уместен там, где микроконтроллер всё равно управляет питанием — в зарядных устройствах, док-станциях, устройствах с двумя ролями, — а для простого «дай 15 В» практичнее готовый контроллер.

Безопасность: напряжение, ёмкость и разряд VBUS

  • Ёмкость на VBUS. Пока потребитель не подключён, ёмкость между VBUS и GND гнезда — не больше 10 мкФ (Type-C, табл. 4-3); после договорённости PD допускается до 100 мкФ (cSnkBulkPd, USB PD, табл. 4.7). Если нужно больше, требуется ограничение броска тока — например, ключ контроллера с плавным включением.
  • Разряд VBUS у источника. После отключения потребителя источник обязан снять VBUS и довести его до vSafe0V (0,8 В) за tVBUSOFF = 650 мс (Type-C, табл. 4-32); после контракта выше 21 В ему даётся до 700 мс, прежде чем включиться снова. Поэтому на гнездо источника «случайно» 20 В не попадут — но на плате потребителя ёмкость за ключом заряжена, и её разряд — забота схемы. У CYPD3177 для этого есть встроенный разрядный транзистор (разд. 1.1.6).
  • Отключение. Потребитель на 5 В считает, что его отключили, когда VBUS опустился ниже порога 0,8–3,67 В, и обязан перейти в неподключённое состояние за 40 мс (Type-C, табл. 4-3). После контракта на повышенное напряжение порог считают от договорённого значения.
  • Защита входа — плавкий или самовосстанавливающийся предохранитель, TVS, защита от переполюсовки — разобрана в статье «Защита цепей питания».

Что будет с источником без PD

Плата с контроллером PD должна правильно вести себя и с источниками, которые PD не знают:

ИсточникЧто увидит потребительЧто получит
Порт Type-A через кабель A–CRp 56 кОм в вилке кабеля, нет Source_Capabilities5 В, ток по умолчанию (500 или 900 мА) или по BC 1.2
Зарядка Type-C без PDRp на 1,5 или 3 А, нет Source_Capabilities5 В при 1,5 или 3 А
Зарядка PD без нужного напряженияSource_Capabilities без подходящего PDO5 В: запрос с битом Capability Mismatch
Зарядка PD, потребитель молчитSource_Capabilities без ответа5 В: источник не поднимает напряжение без Request

Если сообщения Source_Capabilities не пришли за tTypeCSinkWaitCap = 310–620 мс после появления VBUS, потребитель может послать Hard Reset, чтобы источник начал заново, или продолжать работать на токе Type-C (USB PD, разд. 7.31.3.2). Отсюда два требования к схеме: устройство должно либо работать от 5 В в урезанном режиме, либо явно показывать, что питания недостаточно. CYPD3177 для этого подключает систему к 5 В через отдельный ключ SAFE_PWR_EN, а TPS25730 оставляет ключ включённым на 5 В и сообщает о несовпадении выводом CAP_MIS.

Типичные ошибки

  • Нет резисторов 5,1 кОм на CC. Плата питается от кабеля A–C и молчит с зарядкой Type-C и кабелем C–C.
  • Один резистор на оба вывода CC. Работает с обычным кабелем и не работает с кабелем, у которого в вилке со стороны устройства есть Ra, — например, с кабелем на 5 А или кабелем USB 3.x с электронной маркировкой.
  • Расчёт на фиксированные 12 В. Совместимая с PD 3.2 зарядка не вправе предлагать фиксированные 12 В. 12 В можно взять через SPR AVS у зарядки редакции 3.2 мощнее 27 Вт, но для этого нужен потребитель с поддержкой AVS, а старые зарядки его не знают — надёжнее закладывать 9, 15 или 20 В и свой преобразователь.
  • Расчёт на 20 В от любой зарядки. 20 В даёт только зарядка мощнее 45 Вт; 20-ваттная остановится на 9 В.
  • Ток больше 3 А с обычным кабелем. Источник ограничит мощность 60 Вт; для 100 Вт нужен маркированный кабель на 5 А.
  • Компоненты на VBUS на 16 В. Конденсатор и TVS до ключа должны выдерживать наибольшее напряжение шины — для SPR не меньше 24 В.
  • Rp как признак тока после контракта. После договорённости PD 3.x источник переключает Rp ради предотвращения коллизий, и ток по нему определять нельзя.
  • Большая ёмкость прямо на VBUS. Больше 10 мкФ до подключения — нарушение спецификации и бросок тока при включении.

Частые вопросы

Как получить 12 или 20 В от зарядки USB PD?

Нужен контроллер USB PD в роли потребителя: он принимает от зарядки список возможностей Source_Capabilities, выбирает напряжение и отправляет Request, а после Accept и PS_RDY включает нагрузку. Без такого контроллера на VBUS остаётся 5 В. 20 В даёт только зарядка мощнее 45 Вт. Фиксированных 12 В нет: действующая редакция 3.2 запрещает источнику предлагать необязательные фиксированные напряжения выше 9 В. Ровно 12 В можно запросить через регулируемый режим SPR AVS (9–15 В), который по редакции 3.2 обязан предлагать источник мощнее 27 Вт, — но зарядки прежних редакций и простые контроллеры-потребители вроде TPS25730 и CYPD3177 AVS не используют. Надёжнее питать устройство на 12 В от 15 или 20 В через свой понижающий преобразователь.

Почему нельзя поставить один резистор 5,1 кОм на оба вывода CC?

Спецификация Type-C требует, чтобы потребитель подключал Rd к CC1 и CC2 независимо. С обычным кабелем схема с одним резистором заработает, но с электронно маркированным кабелем к объединённым выводам добавится нагрузка Ra из вилки — от 0,8 до 1,2 кОм. По нашему расчёту напряжение на линии CC окажется в зоне Ra: источник увидит на ней не Rd, а Ra — как будто подключён только кабель, — и не включит VBUS.

Сколько напряжений может предложить зарядка USB PD?

В стандартном диапазоне SPR сообщение Source_Capabilities несёт от 1 до 7 объектов PDO, и первым всегда идёт 5 В. Набор задают правила мощности: до 15 Вт — только 5 В, до 27 Вт добавляется 9 В, до 45 Вт — 15 В, до 100 Вт — 20 В. Источник мощнее 27 Вт по редакции 3.2 добавляет регулируемый режим SPR AVS. В расширенном диапазоне EPR к позициям 1–7 добавляются 28, 36 и 48 В — позиции с 8-й по 11-ю.

Зачем кабелю USB-C электронная маркировка?

Обычный кабель Type-C рассчитан на 3 А. Чтобы предложить больше 3 А или включить EPR, источник обязан опросить кабель сообщением Discover Identity по SOP' и прочитать из ответа допустимый ток (3 или 5 А) и напряжение (20 или 50 В). Микросхему в вилке питает VCONN. Без маркировки источник ограничит мощность 60 Вт при 20 В.

Что будет, если подключить устройство с контроллером PD к обычной зарядке 5 В?

Сообщений Source_Capabilities не будет. Через 310–620 мс без них потребитель может послать Hard Reset или остаться на токе Type-C при 5 В. Контроллеры поступают по-разному: CYPD3177 выставляет сигнал FAULT и может подать 5 В в систему через отдельный ключ SAFE_PWR_EN, TPS25730 оставляет нагрузку на 5 В и сообщает о несовпадении возможностей выводом CAP_MIS. Схема устройства должна это предусмотреть.

Источники

  1. USB-IF. Universal Serial Bus Power Delivery Specification, Release 3.2, Version 1.2, August 19, 2026 — табл. 3.1–3.7 — правила мощности SPR и EPR; разд. 3.2.5 — необязательные PDO, PPS, EPR; табл. 4.2–4.4 — диапазоны PPS и AVS; табл. 4.6–4.8 — электрические параметры источника и потребителя, vSafe0V, vSafe5V, cSnkBulkPd, vSprMax; табл. 5.1 — Rp для предотвращения коллизий; табл. 5.9 — BMC 300 кбит/с; табл. 6.4–6.21 — сообщения, PDO и RDO; табл. 6.42 — VDO пассивного кабеля; разд. 7.1.3 — Hard Reset; разд. 7.9 — договорённость; табл. 7.9 и разд. 7.31 — таймеры; разд. 8.6.1.2 — опрос кабеля
  2. USB-IF. USB Type-C Cable and Connector Specification, Release 2.5, March 2026 — табл. 2-1, разд. 2.4, 2.5 — режимы питания, ток гнезда и кабеля, VCONN; разд. 4.4.2, табл. 4-2, 4-3 — VBUS; табл. 4-4, 4-5 — VCONN; табл. 4-10 — состояния CC со стороны источника; разд. 4.8.5 — разряженная батарея; табл. 4-27–4-30 — Rp, Rd, Ra; табл. 4-32, 4-34 — времена; табл. 4-36, 4-37 — напряжения на CC
  3. Texas Instruments. TPS25730 USB Type-C and USB PD Controller with Integrated Power Switches Optimized for Power Applications, SLVSGP9, October 2023 — разд. 1, 3 — возможности; разд. 6.1, 6.3 — предельные и рабочие режимы; разд. 6.11 — пороги CC; табл. 8-1, 8-3–8-6 — настройка резисторами
  4. Infineon. CYPD3177 EZ-PD BCR USB Type-C port controller for power sinks, 002-25383 Rev. *C, 2024-09-18 — разд. 1.1.6, 1.2 — разряд VBUS и I²C; табл. 2–4 — делители VBUS_MIN, VBUS_MAX, ISNK_COARSE, ISNK_FINE; разд. 4.1 — FAULT и SAFE_PWR_EN; табл. 5 — предельные режимы

Нашли ошибку?