USB Type-C и Power Delivery
Как устройство с гнездом Type-C получает питание: что происходит на линиях CC, как зарядка объявляет ток резистором Rp, какими сообщениями USB PD договаривается о 9, 15 или 20 В, когда нужен кабель на 5 А и как сделать потребителя на готовом контроллере — по спецификациям USB-IF и документации TI и Infineon.
Обновлено Редакция GAW
Содержание
- Кто есть кто: Source, Sink, DFP, UFP
- Линии CC: Rp, Rd и Ra
- VCONN и электронная маркировка кабеля
- Устройство с USB 2.0: два резистора по 5,1 кОм
- Как идёт договорённость USB PD
- Какие напряжения даст зарядка: правила мощности
- Потребитель на готовом контроллере
- Микроконтроллер с контроллером UCPD
- Безопасность: напряжение, ёмкость и разряд VBUS
- Что будет с источником без PD
- Типичные ошибки
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).
Источник следит за напряжением на своих 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.x | 56 кОм ± 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).
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.
Такая плата берёт ток по умолчанию — 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):
- Source_Capabilities. Источник включил 5 В и, пока не получит ответа, повторяет список своих возможностей каждые 100–200 мс (tTypeCSendSourceCap); после 50 попыток без GoodCRC может прекратить — значит, на другом конце нет PD (nCapsCount).
- Request. Потребитель выбирает один пункт списка по номеру и сообщает, какой ток будет брать. Если ничего подходящего нет, он всё равно обязан выбрать допустимый пункт (обычно 5 В) и выставить бит Capability Mismatch.
- Accept, Reject или Wait. Источник соглашается, отказывает или просит подождать.
- 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 | Тип | Что описывает |
|---|---|---|
| 00 | Fixed | фиксированное напряжение (биты 19…10, шаг 50 мВ) и наибольший ток (биты 9…0, шаг 10 мА, до 5 А) |
| 01 | Battery | диапазон напряжений и мощность (шаг 250 мВт) |
| 10 | Variable | плохо стабилизированный источник: диапазон и ток |
| 11 | APDO | расширенный объект: 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 AVS | 15–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 TPS25730 | Infineon CYPD3177 (EZ-PD BCR) | |
|---|---|---|
| Версия PD | совместим с PD 3.1, только Sink | PD 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–C | Rp 56 кОм в вилке кабеля, нет Source_Capabilities | 5 В, ток по умолчанию (500 или 900 мА) или по BC 1.2 |
| Зарядка Type-C без PD | Rp на 1,5 или 3 А, нет Source_Capabilities | 5 В при 1,5 или 3 А |
| Зарядка PD без нужного напряжения | Source_Capabilities без подходящего PDO | 5 В: запрос с битом 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. Схема устройства должна это предусмотреть.
Источники
- 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 — опрос кабеля
- 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
- 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 — настройка резисторами
- 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 — предельные режимы
Нашли ошибку?
Смотрите также
- USBСкорости, распиновка Type-A, Micro-B и Type-C, питание, CC, USB PD
- Разъёмы USBType-A, Type-B, Mini-B, Micro-B, Type-C: контакты, ID, CC, цвета
- Семейства STM32Сравнение 25 семейств: ядро, частота, память, питание, периферия; выбор под задачу
- Защита входа питанияПредохранитель, PTC, TVS, crowbar и eFuse: цепочка для 12 В с расчётом
- Понижающий преобразовательЗаполнение, дроссель, пульсации, конденсатор, ключ и диод
- ИнтерфейсыUART, RS-232, RS-485, I²C, SPI, CAN: уровни, схемы, выбор
- PDO (Power Data Object)Как источник USB PD описывает каждое предлагаемое напряжение
- Канал конфигурации CCВыводы CC1 и CC2: подключение, ориентация, ток, обмен PD