Реализация USB Type-C™ Power Delivery с использованием микроконтроллеров STM32xx и микропроцессоров STM32xxx

29 мая

управление питаниемпотребительская электроникауниверсальное применениеST Microelectronicsстатьяинтегральные микросхемыSTM32USBUSB type-cUSB PDUSB Power deliveryUSB PD 3.0Power DeliverySTM32 PD

Методические указания по реализации стандарта USB Type-C™ Power Delivery с использованием микроконтроллеров семейства STM32xx и микропроцессоров семейства STM32xxx производства STMicroelectronics, включающие основные сведения о двух новых стандартах: USB Type-C™ и USB Power Delivery.

Новый осесимметричный соединитель USB Type-C™ упрощает подключение кабеля к устройству. Этот стандарт вводит в употребление единый для всех платформ универсальный разъем, обеспечивающий передачу всех необходимых данных. Благодаря использованию специального протокола, технология USB Power Delivery позволяет согласовывать передачу энергии мощностью до 100 Вт для питания или зарядки оборудования, подключенного к порту USB. Все это было сделано для того чтобы уменьшить разнообразие разъемов и кабелей, а также получить возможность создания универсальных зарядных устройств.

Разъем USB Type-C™ обеспечивает передачу энергии мощностью до 15 Вт (5 В при токе 3 А) с возможностью ее увеличения до 100 Вт (до 20 В при токе 5 А) в случае реализации устройством необязательного функционала USB Power Delivery.

Общие сведения

В статье рассмотрены устройства семейства STM32 на базе процессоров ARM® Cortex®-M, перечисленные в таблице 1.

Таблица 1. Рассматриваемые в статье компоненты

Тип Серия
Микроконтроллеры с периферией общего назначения серия STM32L0
серия STM32L1
серия STM32L4
серия STM32L4+
серия STM32F0
серия STM32F1
серия STM32F2
серия STM32F3
серия STM32F4
серия STM32F7
серия STM32H7
серия STM32W
Микроконтроллеры с модулем UCPD серия STM32G0
серия STM32G4
серия STM32L5
Микропроцессоры с периферией общего назначения серия STM32MP1

Сокращения и аббревиатуры приведены в таблице 2.

Таблица 2. Расшифровка сокращений и аббревиатур

Аббревиатура Расшифровка Перевод
AMS Atomic Message Sequence Атомарная последовательность сообщений
APDO Alternative Power Delivery Object Расширенный объект PDO (сообщение о характеристиках)
BMC Biphase Mark Coding Кодирование с представлением единицы двойным изменением фазы (бифазное кодирование)
BSP Board Support Package Пакет поддержки платформы
CAD Cable Detection Module Модуль обнаружения кабеля
DFP Downstream Facing Port Нисходящий порт
DPM Device Policy Manager Менеджер политик устройства
DRP Dual Role Power (ability for a product to either source or sink power) Поддержка обеих ролей электропитания (устройство может выступать в качестве как источника, так и потребителя энергии)
DRS Data Role Swap Обмен ролями хоста и устройства
GP General Purpose Общего назначения
GUI Graphical User Interface Графический интерфейс пользователя
HAL Hardware Abstraction Layer Библиотека высокого уровня
HW Hardware Аппаратное обеспечение
LL Low Layer Библиотека низкого уровня
MSC Message Sequence Chart Диаграмма последовательности сообщений
OVP Over-Voltage Protection Защита от превышения напряжения
PDO Power Delivery Object Объект PDO (сообщение о характеристиках)
PE Policy Engine Механизм применения политик
PRL Physical Protocol Layer Протокол физического уровня
PRS Power Role Swap Смена роли электропитания
SNK Power Sink Capability Потребитель энергии
SRC Power Source Capability Источник энергии
UCPD USB type C power delivery Модуль UCPD
UFP Upstream Facing Port Восходящий порт
VDM Vendor Defined Messages Сообщения, определенные изготовителем
FWUP Firmware Update Обновление встроенного ПО
PPS Programmable Power Supply Программируемый источник питания
TCPM Type C Port Manager Менеджер порта Type-C
TCPC Type C Port Controller Контроллер порта Type-C

Справочная документация

Материалы, относящиеся к экосистеме STMicroelectronics:

  • Руководство пользователя «Managing USB power delivery systems with STM32 microcontrollers» (UM2552)
  • Руководство пользователя «STM32CubeMonitor-UCPD software tool for USB Type-C™ Power Delivery port management» (UM2468)
  • Спецификация «TCPP01-M12 USB type-C port protection» (DS12900)
  • Руководство по применению «USB Type-C protection and filtering» (AN4871)
  • Краткое описание «STM32CubeMonitor-UCPD software tool for USB Type-C™ Power Delivery port management» (DB3747)
  • Техническая статья « USB Type-C™ and Power Delivery DisplayPort Alternate Mode» (TA0356)
  • Техническая статья «Overview of USB Type-C and Power Delivery technologies» (TA0357)

Документы спецификации USB:

  • 0 Universal Serial Bus Revision 2.0 Specification
  • 1 Universal Serial Bus Revision 3.2 Specification
  • USB BC Battery Charging Specification Revision 1.2
  • USB BB USB Device Class Definition for Billboard Devices
  • Universal Serial Bus Power Delivery Specification, Revision 2.0, Version 1.3, January 12, 2017
  • Universal Serial Bus Power Delivery Specification, Revision 3.0, Version 2.0, February 07 2020
  • Universal Serial Bus Type-C Cable and Connector Specification Release 2.0 August 2019

USB Type-C в двух словах

Форум разработчиков USB (USB Implementers Forum, USB-IF) выпустил две дополняющих друг друга спецификации:

  • Спецификация версии 1.3 на кабель и разъем USB Type-C™, содержащая подробное описание компактного осесимметричного разъема, обеспечивающего передачу как высокоскоростных сигналов USB0, так и сигналов SuperSpeed со скоростями до 10 Гбит/с. Контакты разъема также могут использоваться для поддержки альтернативных режимов.
  • Спецификация USB Power Delivery (PD) редакций 2.0 и 3.0, в которой подробно описано, как источник мощностью 4,5 Вт (ток 900 мА при напряжении 5 В на линии VBUS) может быть преобразован в источник или в потребителя мощностью 100 Вт (ток до 5 А при напряжении 20 В).

Новый разъем не имеет ключа и полностью симметричен, соответственно, не имеет значения, в какой ориентации вилка кабеля будет вставлена в розетку.

Предполагается, что новый симметричный 24-контактный разъем USB Type-C™ станет универсальным соединителем, поддерживающим все расширенные возможности, определяемые стандартом Power Delivery (рисунок 1):

  • согласование ролей электропитания;
  • согласование уровней передачи и потребления энергии;
  • идентификация активных кабелей;
  • обмен служебными сообщениями, определенными производителем;
  • согласование альтернативного режима, позволяющего использовать реконфигурируемые линии кабеля USB Type-C™ для реализации сторонних протоколов передачи данных.

Рис. 1. Разные исполнения разъемов USB

Рис. 1. Разные исполнения разъемов USB

Дополнительно следует отметить следующее:

  • на обоих концах кабелей USB Type-C™ располагаются идентичные ответные части (вилки);
  • разъем USB Type-C™ поддерживает все предыдущие протоколы, начиная с USB2.0, включая стек драйверов и возможность питания внешних устройств;
  • новый разъем достаточно компактный, его ширина составляет 8,4 мм, а высота – 2,6 мм.

Как показано на рисунке 1, новый разъем USB Type-C™ поддерживает все функциональные возможности, обеспечиваемые предыдущими разъемами, и увеличивает удобство применения интерфейса USB благодаря своей гибкости в отношении ролей данных и электропитания.

Спецификация USB Type-C™ предусматривает, что порт может работать в режиме хоста, в режиме устройства или же в обоих режимах поочередно (dual role). Роли порта в отношении как данных, так и питания могут изменяться динамически и независимо друг от друга по командам протокола USB Power Delivery.

Терминология USB Type-C™

При описании систем с разъемами USB Type-C™ часто используют следующие термины:

  • Source (источник) – порт, к контактам CC которого (выводы канала конфигурации, подробнее об этом читайте в разделе «Контакты CC») подключены резисторы Rp (резисторы подтяжки к линии питания, рисунок 3), и который подает питание на линию VBUS (напряжение 5…20 В и ток до 5 А). Как правило, это DFP-порт хоста или концентратора (аналогично устаревшему порту USB Тип А).
  • Sink (потребитель) – порт, к контактам CC которого подключаются резисторы Rd (резисторы подтяжки к общему проводу, рисунок 3), и который получает питание от линии VBUS (напряжение 5…20 В и ток до 5 А), обычно это порт устройства (например, устаревший порт USB Тип B).
  • Downstream Facing Port, DFP (нисходящий порт, DFP-порт). Название порта характеризует направление потока данных по шине USB. Обычно это порты хоста или концентратора, к которым подключаются устройства.
  • Upstream Facing Port, UFP (восходящий порт, UFP-порт). Название порта характеризует направление потока данных по шине USB. Это порт устройства или концентратора, который подключен к хосту или DFP-порту концентратора. В исходном состоянии UFP-порт питается от линии VBUS и выступает в роли порта устройства.
  • Dual Role Power, DRP (порт с двумя ролями питания, DRP-порт) обозначает USB-порт, который может работать и как источник энергии, и как потребитель. Назначение порта может быть фиксированным (либо только источник, либо только потребитель) или может изменяться при работе устройства.

Минимальный обязательный функционал

Разработчик не обязан реализовать и поддерживать весь спектр возможностей, указанных в спецификациях USB Type-C™ и USB Power Delivery.

Минимальный функционал, который должен быть реализован:

  • обнаружение присоединения и отсоединения кабеля;
  • определение положения вилки в гнезде;
  • интерфейс USB2.0.

Назначение контактов разъема

24-контактный разъем USB Type-C™ содержит (рисунок 2, таблица 3):

  • симметричные контакты:
    • дифференциальные пары USB 2.0 (D+/D-);
    • контакты питания VBUS/GND.
  • несимметричные контакты:
    • две группы дифференциальных пар TX/RX для передачи сигналов USB1;
    • каналы конфигурации (линии CC), используемые для обнаружения подключения, конфигурирования и управления функциями электропитания USB Type-C™;
    • два дополнительных сигнала (линии SBU) для передачи аналогового звука, которые также могут использоваться в альтернативных режимах.

Рис. 2. Расположение контактов разъема USB Type-C

Рис. 2. Расположение контактов разъема USB Type-C

Таблица 3. Назначение контактов разъема USB Type-C

Контакт Название Описание Комментарии
A1 GND Общий провод Ток до 5 А, распределенный по четырем контактам
A2 TX1+ Линии данных USB3.0 или альтернативное использование Дифференциальная пара USB3.1 10 Гбит (TX)
A3 TX1-
A4 VBUS Плюс питания Максимальная мощность 100 Вт (20 В/5 A), распределенная по четырем контактам
A5 CC1 или VCONN Канал конфигурации или питание для активного кабеля/кабеля с электронным маркером В конфигурации VCONN максимальная мощность 1 Вт
A6 D+ Линии данных USB2.0
A7 D-
A8 SBU1 Дополнительный канал Только в альтернативных режимах
A9 VBUS Плюс питания Максимальная мощность 100 Вт, распределенная по четырем контактам
A10 RX2- Линии данных USB3.0 или альтернативное использование Дифференциальная пара USB3.1 10 Гбит (RX)
A11 RX2+
A12 GND Общий провод Ток до 5 А, распределенный по четырем контактам
B1 GND Общий провод Ток до 5 А, распределенный по четырем контактам
B2 TX2+ Линии данных USB3.0 или альтернативное использование Дифференциальная пара USB3.1 10 Гбит (TX)
B3 TX2-
B4 VBUS Плюс питания Максимальная мощность 100 Вт, распределенная по четырем контактам
B5 CC2 или VCONN Канал конфигурации либо питание для активного кабеля или для кабеля с электронным маркером В конфигурации VCONN макс. мощность 1 Вт
B6 D+ Линии данных USB2.0
B7 D-
B8 SBU2 Дополнительный канал Только в альтернативных режимах
B9 VBUS Плюс питания Максимальная мощность 100 Вт, распределенная по четырем контактам
B10 RX1- Линии данных USB3.0 или альтернативное использование Дифференциальная пара USB3.1 10 Гбит (RX)
B11 RX1+
B12 GND Общий провод Ток до 5 А, распределенный по четырем контактам

Параметры электропитания по линии VBUS

По линии VBUS передается питающее напряжение от хоста к устройству, а также от зарядного устройства к хосту или устройству. Параметры электропитания, доступные устройствам с разъемом USB Type-C™, приведены в таблице 4.

Таблица 4. Параметры электропитания

Режим работы Номинальное напряжение, В Максимальный ток, А Примечания
USB 2.0 5 0,5 Ток по умолчанию, согласно базовым спецификациям
USB 3.1 5 0,9
USB BC 1.2 5 до 1,5 Устаревшая спецификация для зарядных устройств
USB Type-C
ток до 1.5 A
5 1,5 Поддерживаются более энергоемкие устройства
USB Type-C
ток до 3.0 A
5 3
USB PD до 20 до 5 Контролируется направление передачи энергии и уровень мощности

Примечание. Кабели с разъемом USB Type-C™ на обоих концах требуют наличия защиты линии VBUS от напряжения свыше 20 В при паспортном токе кабеля (3 или 5 А).

Контакты CC

В разъеме USB Type-C™ предусмотрены два контакта CC (CC1 и CC2), однако в вилках на каждом из концов кабеля имеется только по одному контакту CC, соединенному в кабеле между собой. На стороне источника к обоим контактам CC1 и CC2 должны быть подключены резисторы подтяжки к питанию Rp, а на стороне приемника – резисторы подтяжки к общему проводу Rd. В активных кабелях должны присутствовать резисторы Ra между контактами VCONN и общим проводом.

Со стороны источника состояние подключенных устройств может быть определено в соответствии с таблицей 5.

Таблица 5. Состояние подключенного устройства (со стороны источника)

CC1 CC2 Состояние
Не подключен Не подключен Ничего не подключено
Rd Не подключен Подключен потребитель
Не подключен Rd
Не подключен Ra Подключен кабель, требующий питания, без потребителя
Ra Open
Rd Ra Подключен кабель, требующий питания, с потребителем, адаптер (VPA) или устройство (VPD), питающееся от линии VCONN
Ra Rd
Rd Rd Подключено устройство отладки (режим «Debug Accessory Mode»)
Ra Ra Подключена аналоговая гарнитура (режим «Audio Adapter Accessory Mode»)

Определение ориентации вилки/кабеля в розетке

Поскольку вилку кабеля USB Type-C™ можно вставить в розетку любой стороной, перед началом работы необходимо определить его ориентацию. Для этого используются линии CC с подключенными к ним резисторами Rp/Rd (рисунок 3).

Рис. 3. Определение подтяжки линий CC к питанию и общему проводу

Рис. 3. Определение подтяжки линий CC к питанию и общему проводу

Первоначально к контактам CC DFP-порта подключены подтягивающие резисторы Rp, а к контактам CC UFP-порта – подтягивающие резисторы Rd. Чтобы обнаружить факт подключения, DFP-порт контролирует напряжение на обоих контактах CC (рисунки 4, 5 в спецификации USB Type-C).

Идентификация максимально возможного тока

Спецификация USB Type-C™ декларирует увеличение допустимого тока через разъем до 1,5 А и 3 А в дополнение к тем значениям, которые определены стандартом USB.

Величина тока, который может обеспечить DFP-порт, определяется номиналом подтягивающего резистора Rp. Возможность передачи тока величиной 5 А согласовывается с использованием протокола USB Power Delivery.

Возможные значения сопротивлений резисторов Rp приведены в таблице 6 (таблице 4-24 в спецификации USB Type-C™).

Таблица 6. Сопротивление подтягивающих резисторов (Rp) на линях CC DFP-порта

Ток в линии VBUS Ток подтяжки при 1,7…5,5 В, мкА Подтяжка к 4,75…5,5 В, кОм Подтяжка к 3,3 В ± 5%, кОм
Стандартный для шины USB 80 ± 20% 56 ± 20%* 36 ± 20%
1,5 A при 5 В 180 ± 8% 22 ± 5% 12 ± 5%
3 A при 5 В 330 ± 8% 10 ± 5% 4,7 ± 5%
* – Резистор Rp, встроенный в вилку USB Type-C кабеля-переходника USB Type-C – USB 3.1 Type A «вилка», кабеля-переходника USB Type-C – USB 2.0 Type A «вилка», переходника USB Type-C – USB 2.0 Micro-B «розетка» или несъемного кабеля USB Type-C, подключенного к USB-хосту, должен иметь сопротивление 56 кОм ± 5% для компенсации падения напряжения на проводниках VBUS и GND кабеля.

Что касается UFP-порта, то к обоим его контактам CC1 и CC2 должны быть подключены резисторы подтяжки к общему проводу Rd, формирующие напряжение смещения для схемы обнаружения и идентифицирующие порт в качестве потребителя тока, как показано в таблице 7 (таблице 4-25 в спецификации USB Type-C).

Таблица 7. Сопротивление подтягивающих резисторов (Rd) на линях CC UFP-порта

Реализация Rd Номинальное значение Позволяет определить допустимый ток? Максимальное напряжение на контакте, В
± 20% ограничение напряжения 1,1 В нет 1,32
± 20% резистор к GND 5,1 кОм нет 2,18
± 10% резистор к GND 5,1 кОм да 2,04

Чтобы определить ток, который может обеспечить DFP-порт, UFP-порт должен контролировать напряжение в линии CC, как указано в таблице 8 (также смотрите таблицу 4-36 в спецификации USB Type-C).

Таблица 8. Напряжение на контактах CC потребителя (при различных значениях тока источника)

Определение Мин. напряжение, В Макс. напряжение, В Порог, В
vRa -0,25 0,15 0,2
vRd-Connect 0,25 2,04
vRd-USB 0,25 0,61 0,66
vRd-1.5 0,70 1,16 1,23
vRd-3.0 1,31 2,04

Профили электропитания

Протоколом USB PD предусмотрено расширенное согласование напряжения и тока для передачи мощности вплоть до 100 Вт, как показано на рисунке 4. (смотрите также рисунок 10-1 в спецификации USB Power Delivery).

Рис. 4. Профили мощности

Рис. 4. Профили мощности

В таблице 9 приведены параметры источников напряжений и программируемых источников питания (PPS) для различных значений номинального тока кабеля.

Таблица 9. Ток, обеспечиваемый источником, и параметры кабеля

Мощность Источник с фиксированным напряжением Программируемый источник питания (PPS)
5 В 9 В 15 В 20 В 5 В
(3,3…5,9 В)
9 В
(3,3…11 В)
15 В
(3,3…16 В)
20 В
(3.3…21 В)
Кабели, рассчитанные на ток 3 А
0 < PDP ≤ 15 Вт PDP/5 PDP/5
15 < PDP ≤ 27 Вт 3,0 А PDP/9 3,0 А PDP/9
27 < PDP ≤ 45 Вт 3,0 А 3,0 А PDP/15 3,0 А 3,0 А PDP/15
45 < PDP ≤ 60 Вт 3,0 А 3,0 А 3,0 А PDP/20 3,0 А 3,0 А 3,0 А PDP/20
Кабели, рассчитанные на ток 5 А
60 < PDP ≤ 100 Вт 3,0 А 3,0 А 3,0 А PDP/20 3,0 А 3,0 А 3,0 А PDP/20

Более подробную информацию можно найти в спецификациях USB Type-C и USB PD.

Спецификация USB Power Delivery 2.0

В соответствии со спецификацией USB Power Delivery, два напрямую соединенных порта согласовывают напряжение, ток и/или направление передачи энергии и данных по кабелю USB, используя в качестве канала связи линию CC. Передача данных по линии CC осуществляется с использованием BMC-кодирования.

Используемые механизмы работают независимо от других методов согласования параметров электропитания шины USB.

Передача сообщений по протоколу Power Delivery

Весь обмен осуществляется по линии CC в полудуплексном режиме на скорости 300 кбит/с. Информация передается в виде 32-битных слов в кодировке 4b/5b с использованием BMC-кодирования.

Структура пакета

Пакет состоит из:

  • преамбулы – 64-битной последовательности чередующихся «0» и «1» для синхронизации с передатчиком;
  • маркера SOP* (начало пакета), который может быть SOP, SOP’ или SOP” (рисунок 5):
    • пакеты SOP передаются и принимаются только DFP- и UFP-портами с поддержкой PD;
    • пакеты SOP’используются для связи с вилкой кабеля, подключенной к DFP-порту;
    • пакеты SOP’’ используются для связи с вилкой кабеля, подключенной к UFP-порту.

Вилка кабеля, поддерживающая маркеры SOP’ или SOP’’, должна обнаруживать и принимать/передавать только пакеты, начинающиеся с SOP’ или SOP’’.

  • данных сообщения, включая заголовок, определяющий тип пакета и размер данных;
  • CRC – обнаружения ошибок;
  • маркера EOP (конец пакета) – уникального идентификатора.

Рис. 5. Передача SOP*

Рис. 5. Передача SOP*

К-коды

K-коды – это специальные 5-битовые символы, получающиеся в результате кодирования 4b5b. Они используются для сообщений об аппаратном сбросе устройства и сбросе кабеля, а также для обозначения границ пакетов.

Согласование параметров электропитания

Изначально в роли мастера шины выступает DFP-порт.

Разработанный протокол позволяет динамически изменять конфигурацию питания.

Если оба порта поддерживают функцию двойной роли по питанию, то возможна независимая смена ролей электропитания, ролей в отношении данных и VCONN.

По умолчанию напряжение на линии VBUS всегда равно 5 В, однако оно может быть увеличено до 20 В в результате реконфигурации.

Выходной ток источника по умолчанию определяется значением Rp. В процессе реконфигурации это значение может быть увеличено до 5 А при подключении кабеля USB PD Type-C с микросхемой электронного маркера.

Запросы и ответы в протоколе USB PD пересылаются в виде пакетов. Начало каждого пакета помечается маркером SOP, состоящим из четырех закодированных символов (K-кодов).

Сообщения, передаваемые в теле пакетов, бывают двух видов:

  • управляющие;
  • информационные.

Управляющие сообщения имеют фиксированный размер (16 бит) и предназначены для управления потоком данных.

Размер информационного сообщения зависит от его содержимого. Эти сообщения содержат детальную информацию об источнике или потребителе.

Спецификация USB Power Delivery 3.0

С концептуальной точки зрения между редакциями USB PD 2.0 и USB PD 3.0 нет никаких отличий. Все устройства USB PD 3.0 могут заключать соглашения по электропитанию с устройствами USB PD 2.0 и наоборот. В то же время в новой редакции спецификации USB PD определены следующие ключевые особенности:

  • технология быстрой смены ролей (Fast Role Swap);
  • аутентификация устройств;
  • обновление прошивки устройств;
  • протокол программируемого источника питания (PPS), позволяющий потребителю управлять параметрами зарядки.

Краткое описание основных изменений в спецификации USB PD 3.0 по сравнению с USB PD 2.0:

  • заявлена обязательная поддержка обеих редакций спецификации USB PD для обеспечения обратной совместимости с ранее выпущенными изделиями;
  • профили электропитания больше не используются, вместо них введены правила электропитания PD (PD Power Rules);
  • BFSK-модуляция больше не используется, и описание этого механизма передачи данных исключено из текста спецификации, равно как и информация об устаревших кабелях, соединителях, принципах обработки состояния «разряд батареи» и о соответствующих режимах тестирования;
  • определен расширенный формат сообщений с полезной информационной нагрузкой до 260 байт;
  • обмен с кабельными разъемами может осуществлять только источник напряжения VCONN;
  • определена схема предотвращения коллизий, координируемая источником, которая позволяет источнику или потребителю инициировать передачу атомарной последовательности сообщений (AMS);
  • определена технология быстрой смены ролей, позволяющая док-станциям и концентраторам со внешним питанием быстро переключаться на питание от шины при пропадании питающего напряжения;
  • введены дополнительные состояния и возможности определения:
    • расширенных возможностей источника питания и его состояния;
    • параметров батарей и их состояния;
    • информации, определяемой изготовителем.
  • изменились поля в VDO-сообщениях пассивных кабелей, активных кабелей и адаптеров альтернативных режимов (AMA), что привело к появлению версии 2.0 структурированных VDM;
  • появилась поддержка запросов и ответов, связанных с безопасностью USB;
  • появилась поддержка запросов и ответов для обновления прошивок устройств USB PD.

Системная политика теперь определяется в спецификации USBTypeCBridge 1.0.

Альтернативные режимы

Все хосты и устройства (кроме зарядных устройств) с розеткой USB Type-C™ должны реализовывать интерфейс USB. Если хост или устройство дополнительно поддерживают альтернативные режимы, то:

  • Для включения альтернативных режимов хост и устройство должны использовать структурированные сообщения USB Power Delivery, определенные изготовителем (структурированные VDM), предназначенные для обнаружения, конфигурирования альтернативных режимов и входа/выхода из них.
  • Настоятельно рекомендуется, чтобы устройство обеспечивало, где это возможно, эквивалентную USB функциональность для максимального удобства пользователя.
  • При отсутствии эквивалентного USB функционала устройство должно реализовывать USB-интерфейс с классом Billboard, который предоставляет информацию, необходимую для идентификации устройства. Реализация USB-устройства класса Billboard не требуется для режимов, невидимых для пользователя, например, диагностических режимов.

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

Переназначение контактов

Все контакты, назначение которых может переопределяться в случае использования полнофункционального кабеля, выделены на рисунке 6 желтым цветом.

Рис. 6. Контакты, доступные для реконфигурации при использовании полнофункционального кабеля

Рис. 6. Контакты, доступные для реконфигурации при использовании полнофункционального кабеля

На рисунке 7 отмечены контакты, назначение которых может переопределяться в случае прямого подключения (несъемный кабель или док-станция). На этом рисунке отмечено на три контакта больше, чем на предыдущем, поскольку в такой конфигурации нет ограничений, накладываемых требованиями по разводке кабеля.

Рис. 7. Контакты, доступные для реконфигурации, при прямом подключении

Рис. 7. Контакты, доступные для реконфигурации, при прямом подключении

Класс Billboard

Спецификация класса USB-устройства Billboard Device Class («рекламный щит») описывает методы, используемые для передачи информации об альтернативных режимах, поддерживаемых контейнером устройств, в хост-систему. В том числе и строковые дескрипторы, которые могут использоваться для предоставления подробной информации об этой поддержке в удобочитаемом виде.

Более подробную информацию можно найти в спецификации «USB Billboard Device Class Specification, Release 1.21, September 8, 2016».

Ассортимент продукции STMicroelectronics

В микроконтроллерах семейства STM32xx и микропроцессорах семейства STM32xxx поддержка спецификаций USB Type-C/USB Power Delivery осуществляется посредством встроенного периферийного модуля UCPD или же при помощи периферийных устройств общего назначения (рисунки 8, 9). Подробнее об этом читайте в публикации «USB Type-C and Power Delivery».

Рис. 8. Блок-схема реализации USB Type-C Power Delivery

Рис. 8. Блок-схема реализации USB Type-C Power Delivery

Рис. 9. Анализатор USB Type-C на базе отладочной платформы STM32G071B-DISCO

Рис. 9. Анализатор USB Type-C на базе отладочной платформы STM32G071B-DISCO

Поддержка USB Type-C™ без реализации функций Power Delivery

Модификация устаревшего устройства USB2.0 на базе STM32 для установки разъема USB Type-C™

Устаревшее устройство USB 2.0 должно идентифицироваться как UFP-порт, для чего необходимо подключить резисторы Rd между каждой линией CC и общим проводом. Предполагается, что ток, потребляемый устройством, не превышает максимально разрешенного спецификацией USB 2.0, в связи с чем нет необходимости отслеживать состояние линий CC.

Поскольку разъем имеет симметричную конструкцию, обе пары контактов DP/DN розетки должны быть соединены между собой как можно более короткими проводниками (от каждой пары на устройство STM32 должна идти только одна дорожка), как показано на рисунке 10.

Рис. 10. Устаревшее устройство с разъемом USB Type-C™

Рис. 10. Устаревшее устройство с разъемом USB Type-C™

Переделка хоста USB2.0 на базе STM32 в хост USB Type-C™

В данном разделе описано, что нужно сделать, чтобы заменить стандартную розетку USB 2.0 типа А на розетку USB Type-C™.

Поскольку исходное устройство соответствует спецификации USB 2.0, максимальный ток через разъем составляет 500 мА. Если источник питания устройства способен отдавать больший ток, можно установить резисторы Rp, указывающие на максимальный ток 1,5 A или 3 A.

Порты хоста USB 2.0 должен быть сконфигурированы как DFP путем установки подтягивающего резистора Rp между линией CC и линией питания 5 В.

Поскольку разъем имеет симметричную конструкцию, обе пары контактов DP/DN розетки должны быть соединены между собой как можно более короткими проводниками (от каждой пары на устройство STM32 должна идти только одна дорожка).

Контроль напряжения на линиях CC посредством встроенного АЦП (входы ADC_IN) позволяет отслеживать момент подключения устройства для своевременной подачи напряжения VBUS на разъем (рисунок 11).

Рис. 11. Устаревший хост, использующий розетки USB Type-C™

Рис. 11. Устаревший хост, использующий розетки USB Type-C™

Модификация устаревшего устройства USB2.0 OTG на базе STM32 для установки разъема USB Type-C™

В этом параграфе описано, что нужно сделать для замены розетки USB 2.0 микро-AB на розетку USB Type-C™.

Поскольку исходное устройство соответствует спецификации USB 2.0, максимальный ток через разъем составляет 500 мА. Если источник питания устройства способен отдавать больший ток, можно установить резисторы Rp, указывающие на допустимый ток 1,5 A или 3 A.

При включении устройство USB OTG начинает работать в режиме хоста или устройства в зависимости от сопротивления между контактом USB_ID и общим проводом, которое определяется подключенным кабелем (рисунок 12).

Поскольку разъем USB Type-C™ полностью симметричен, кабель не предоставляет никакой информации о режиме работы устройства. Соответственно, роль порта необходимо определить, измеряя напряжение на линиях CC, например, с помощью АЦП через его входы ADC_IN1 и ADC_IN2.

Рис. 12. Устройство USB OTG, использующее розетку USB Type-C™

Рис. 12. Устройство USB OTG, использующее розетку USB Type-C™

Придерживайтесь следующей последовательности действий:

  1. Подключите GPIO1 к линии OTG_FS_DFP_UFP, подтянутой к линии питания, а GPIO2 – к линии Switch_enable, подтянутой к общему проводу, чтобы идентифицировать порт как UFP.
  2. Если при запуске схемы будет обнаружено напряжение VBUS, то контроллер USB0 начинает работать в режиме устройства.
  3. Если напряжение VBUS не будет обнаружено в течение как минимум 200 мс, то на линию OTG_FS_DFP_UFP подается низкий уровень. В результате линии CC окажутся подтянутыми к питанию через резисторы Rp, идентифицируя порт как DFP. Сравнивая напряжение на входах ADC_IN1 и ADC_IN2 с ожидаемым пороговым значением, можно будет определить факт подключения UFP-порта. Силовой ключ X1 при этом остается выключенным.
  4. При обнаружении подключения UFP-порта на линию Switch_enable выставляется высокий уровень, в результате чего на разъем подается напряжение VBUS и контроллер USB2.0 начинает работать в режиме хоста.
  5. Поскольку разъем имеет симметричную конструкцию, обе пары контактов DP/DN должны быть соединены между собой как можно более короткими проводниками (от каждой пары на устройство STM32 должна идти только одна дорожка).

Поддержка USB Type-C™ и спецификации Power Delivery с использованием встроенного модуля UCPD

Обзор программного обеспечения

Компания STMicroelectronics предоставляет стек USB-PD собственной разработки, который реализует соответствующую спецификацию, выпущенную организацией USB IF. В общем виде архитектура стека показана на рисунке 13.

Рис. 13. Архитектура стека USB-PD

Рис. 13. Архитектура стека USB-PD

Два компонента стека (ядро стека USBPD и устройство USBPD) полностью реализованы компанией STMicroelectronics. В связи с этим разработчику необходимо прикладывать свои усилия к разработке двух оставшихся компонентов:

  • Пользовательское приложение. В спецификации этот компонент называется «Диспетчер политик устройства». Компания STMicroelectronics предоставляет шаблонный код, который следует модифицировать в соответствии с требованиями приложения.
  • Аппаратное обеспечение – код, создаваемый разработчиком в рамках этой части стека, отвечает главным образом за управление электропитанием и зависит от аппаратных ресурсов, примененных для реализации данной задачи.

В данной публикации представлены некоторые рекомендации по использованию ресурсов STM32 (АЦП, портов ввода/вывода и прочего) при разработке аппаратного обеспечения. Полные требования, предъявляемые к подсистеме питания, содержатся в Главе «Power Supply» спецификации «Universal Serial Bus Power Delivery Specification».

Для получения дополнительной информации также ознакомьтесь с руководством по применению UM2552 и материалы из раздела «Справочная документация» настоящего руководства.

Обзор аппаратных возможностей

Встроенный периферийный модуль UCPD STM32 позволяет создавать гибкие и масштабируемые решения (рисунок 14). Также в распоряжении разработчика имеются периферийные модули общего назначения, такие как PWM, ADC, DAC, I2C, SPI, UART, COMP, OPAMP, RNG и RTC. Более подробную информацию по аппаратным возможностям конкретного кристалла можно получить, воспользовавшись инструментарием среды STM32CubeMx по конфигурированию выводов.

В следующих разделах содержится информация о том, как следует реализовывать режимы электропитания с аппаратной точки зрения. Вся информация, касающаяся программного обеспечения, содержится в справочной документации.

Рис. 14. Пример цоколевки устройства

Рис. 14. Пример цоколевки устройства

Выводы DBCC1 и DBCC2

Использование выводов DBCC1 и DBCC2 в режиме потребителя (SNK) с поддержкой состояния «разряд батареи»:

  • если используется модуль UCPD, то выводы UCPDx_DBCC1 и UCPDx_DBCC2 должны быть соединены с выводами UCPDx_CC1 и UCPDx_CC2, соответственно. Никаких других альтернативных функций, которые могут быть назначены этим выводам, использовать нельзя;
  • выводы UCPDx_DBCC должны быть подключены к линиям CC разъема USB Type-C;
  • для получения дополнительной информации обратитесь к справочной документации на соответствующее устройство STM32 и к справочным руководствам, указанным в разделе «Справочная документация».

Использование выводов DBCC1 и DBCC2 в режиме источника (SRC):

  • если используется модуль UCPD, то выводы UCPDx_DBCC1 и UCPDx_DBCC2 должны быть соединены с общим проводом. Никаких других альтернативных функций, которые могут быть назначены этим выводам, использовать нельзя;
  • для получения дополнительной информации обратитесь к справочной документации на соответствующее устройство STM32 и к справочным руководствам, указанным в разделе «Справочная документация».
  • логические уровни на выводе DBCC управляют подключением резистора Rd к линии CC.
  • в обоих случаях:
    • если DBCC соединен с общим проводом, он не влияет на линию CC – режим (Rd или Rp) не задан;
    • если DBCC соединен с выводом CC, он подключает Rd к линии CC для поддержки состояния «разряд батареи» в режиме потребителя.
  • при использовании дополнительной микросхемы защиты TCPP01 можно использовать альтернативные функции, назначаемые выводам DBCC1 и DBCC.

Режимы потребителя (SNK)

В режимах потребителя выводы CC порта соединяются с общим проводом через резисторы Rd, а сам порт получает питание от линии VBUS (напряжение 5…20 В и ток до 5 А).

С позиции потребителя (SNK):

  • Обязательно:
    • подключить к линиям CC порта Type-C резисторы Rd (резисторы подтяжки к общему проводу);
    • контролировать напряжение VBUS;
    • определять факт «отсоединения» источника по выходу напряжения VBUS за пределы диапазона vSafe5V.
  • Не обязательно:
    • получать питание от линии V
  • Дополнительная защита:
    • от перенапряжения, в соответствии с требованиями USB IF: в состоянии «присоединено» потребитель должен контролировать уровень напряжения VBUS; для этого можно использовать модуль АЦП STM32;
  • защита и фильтрация ЭМП на линиях CC1, CC2 и VBUS. Подробнее об этом читайте в разделе «Рекомендации».

Характерные особенности реализации режима потребителя сведены в таблицу 10.

Таблица 10. Характерные особенности режима потребителя (SNK)

Особенность Используемая периферия STM32 Число выводов STM32 Внешние компоненты или устройства Комментарии Наименование сигнала
Уровень протокола
Каналы связи CC1 и CC2 UCPD: CC1, CC2 2 Обязательно. Необходимо управление Rd и Rp CC1, CC2
Разряд батареи UCPD: DBCC1, DBCC2 2 Управление Rd DBCC1, DBCC2
Измерение уровня VBUS, vSafe5V ADC 1 Резистивный делитель с/без ОУ для ограничения уровня Обязательно только для целей защиты от перенапряжения V_SENSE
Уровень электропитания
Потребление тока от линии VBUS DC/DC от VBUS для формирования 3,3 В (VDD) Опционально, LDO, DC/DC, SMPS
Внешний силовой ключ GPIO 1 Силовой ключ Опционально, можно использовать MOSFET или микросхему силового ключа SNK_EN
Уровень защиты
CC1 и CC2 Смотрите раздел  «Рекомендации» Необязательно CC1 и CC2 от разъёма Type-C
VBUS Смотрите раздел «Рекомендации» Необязательно Vbus от разъема Type-C
Уровень программного обеспечения
Повторная передача сообщений TIM Для формирования задержек 900 мкс и 1200 мкс между повторами Дополнительную информацию смотрите в UM2552
Передача сообщений DMA Для пересылок TX и RX Дополнительную информацию смотрите в UM2552

Приведенные ниже схемы демонстрируют различные варианты реализации режима потребителя (SNK).

Потребитель с питанием от линии VBUS

Напряжение питания STM32 (VDD) формируется из напряжения VBUS. Для этого используется внешний LDO, DC/DC-преобразователь или SMPS (импульсный источник питания). Для питания дополнительной нагрузки на линию VBUS устанавливается опциональный внешний силовой ключ, для управления которым задействуется одна линия порта ввода/вывода (сигнал SNK_EN).

Два выделенных вывода модуля USBPD (DBCC1 и DBCC2) обеспечивают подключение резисторов Rd к выводам CC1 и CC2 STM32, поэтому линии DBCC необходимо соединить с линиями CC, в результате чего резисторы Rd будут подключены к линиям CC независимо от того, есть или нет напряжение питания STM32 (VDD). После подачи питания на STM32 программный стек USB-PD переключает резисторы с линий DBCC на линии CC (рисунок 15).

Рис. 15. Типовая схема потребителя с питанием от VBUS и поддержкой состояния «разряд батареи»

Рис. 15. Типовая схема потребителя с питанием от VBUS и поддержкой состояния «разряд батареи»

Описание соединений и сигналов:

  • выводы канала конфигурации CC1 и CC2 соединены с соответствующими контактами разъема USB Type-C;
  • вывод поддержки состояния «разряд батареи» DBCC1 соединен с линией CC1. За счет этого резистор Rd оказывается подключенным к линии CC1 при выключенном STM32;
  • вывод поддержки состояния «разряд батареи» DBCC2 соединен с CC2. За счет этого резистор Rd оказывается подключенным к линии CC2 при выключенном STM32.

Необязательные:

  • сигнал V_SENSE – выход резистивного делителя, подключенный к входу АЦП. Напряжение VBUS измеряется для обеспечения безопасной работы и защиты от перенапряжения. Программный стек измеряет это напряжение, используя драйвер HAL_ADC;
  • сигнал SNK_EN – выход порта ввода/вывода, управляющий подключением дополнительной нагрузки к линии VBUS.

Временная диаграмма представлена на рисунке 16.

Рис. 16. Временная диаграмма работы потребителя с питанием от VBUS

Рис. 16. Временная диаграмма работы потребителя с питанием от VBUS

Состояния временной диаграммы описаны ниже. Действия, выделенные курсивом, относятся к линиям портов ввода/вывода (модулям ADC, GPIO и так далее):

  • Состояние 0. Оборудование не соединено друг с другом:
    • состояние «Отсоединено»;
    • Rp = 1,5 A, Rd = 5,1 кОм (выводы DBCC).
  • Состояние 1. Подсоединение кабеля. Линия VBUS переходит в состояние «Подсоединено».
  • Состояние 2. Загрузка STM32, запуск приложения и инициализация программного обеспечения USB-PD.
  • Состояние 3. Обмен (AMS) между SRC и SNK.
  • Состояние 4. USB-PD: подключение нагрузки (активация вывода SNK_EN).
  • Состояние 5: SNK обнаруживает подключение.
  • Состояние 6. USB-PD – отключение Rd от вывода DBCC и подключение его к выводу CC.
  • Состояние 7. USB-PD (ПО) – алгоритм защиты контролирует напряжение/ток в линии V
  • Состояние 8. Отсоединение кабеля, пропадание напряжения VBUS на стороне потребителя.
  • Состояние 9. На стороне источника линия VBUS разряжается до уровня vSafe0V.

Потребитель с питанием от внешнего источника

Напряжение питания STM32 (VDD) обеспечивается внешним источником питания (AC/DC, DC/DC, SMPS, LDO) или аккумулятором. Для питания дополнительной нагрузки на линию VBUS устанавливается опциональный внешний силовой ключ, для управления которым задействуется одна линия порта ввода/вывода (сигнал SNK_EN).

Согласно спецификации USB Type-C, к выводам CC1 и CC2 STM32 подключены внутренние резисторы Rd. Выводы DBCC1 и DBCC2 должны быть соединены с общим проводом (рисунок 17).

Рис. 17. Типовая схема потребителя с питанием от внешнего источника

Рис. 17. Типовая схема потребителя с питанием от внешнего источника

Описание соединений и сигналов:

  • выводы канала конфигурации CC1 и CC2 соединены с соответствующими контактами разъема USB Type-C;
  • сигнал DBCC1 соединен с общим проводом, поскольку состояние «разряд батареи» не поддерживается;
  • сигнал DBCC2 соединен с общим проводом, поскольку состояние «разряд батареи» не поддерживается.

Необязательные:

  • сигнал V_SENSE – выход резистивного делителя, подключенный к входу АЦП;
  • напряжение VBUS измеряется для обеспечения безопасной работы и для защиты от перенапряжения. Программный стек измеряет это напряжение, используя драйвер HAL_ADC;
  • сигнал SNK_EN – выход порта ввода/вывода, управляющий подключением дополнительной нагрузки к линии VBUS.

Временная диаграмма изображена на рисунке 18.

Рис. 18. Временная диаграмма работы потребителя с питанием от внешнего источника

Рис. 18. Временная диаграмма работы потребителя с питанием от внешнего источника

Состояния временной диаграммы описаны ниже. Действия, выделенные курсивом, относятся к линиям портов ввода/вывода (модулям ADC, GPIO и так далее):

  • Состояние 0. Оборудование не соединено друг с другом:
    • состояние «Отсоединено»;
    • Rp = 1,5 A, Rd = 5,1 кОм (выводы CC).
  • Состояние 1. Подсоединение кабеля. Линия VBUS переходит в состояние «Подсоединено».
  • Состояние 2. Обмен (AMS) между SRC и SNK.
  • Состояние 3. USB-PD подключает нагрузку, активируя сигнал SNK_EN.
  • Состояние 4. SNK запрашивает напряжение 9 В.
  • Состояние 5. USB-PD (ПО) – алгоритм защиты контролирует напряжение в линии V.
  • Состояние 6. SNK запрашивает напряжение 15 В.
  • Состояние 7. SNK запрашивает напряжение 5 В.
  • Состояние 8. Отсоединение кабеля, пропадание напряжения VBUS на стороне потребителя.
  • Состояние 9. На стороне источника линия VBUS разряжается до уровня vSafe0V.

Режим источника (SRC)

В режиме источника к выводам CC порта подключаются подтягивающие резисторы Rp, а сам порт подает питание на линию VBUS (напряжение 5…20 В и ток до 5 А).

С позиции источника (SRC):

  • Обязательно:
    • подключить к линиям CC порта Type-C резисторы Rp (резисторы подтяжки к питанию);
    • подать напряжение на линию VBUS;
    • при отсоединении кабеля или при обрыве связи уменьшить напряжение VBUS до значения vSafe0V.

Для разряда линии VBUS используется внешний MOSFET, управляемый линией порта ввода/вывода STM32.

  • Не обязательно:
    • STM32 может измерять напряжение на токовом шунте и на выходе резистивного делителя (ток/напряжение в линии VBUS), используя встроенный АЦП.
  • Дополнительная защита:
    • защита и фильтрация ЭМП на линиях CC1, CC2 и VBUS. Подробнее об этом написано в разделе «Рекомендации».

Характерные особенности реализации режима источника сведены в таблицу 11.

Таблица 11. Характерные особенности режима источника

Особенность Используемая периферия STM32 Число выводов STM32 Внешние компоненты или устройства Комментарии Наименование сигнала
Уровень протокола
Каналы связи CC1 и CC2 UCPD: CC1, CC2 2 Обязательно CC1, CC2
Разряд батареи UCPD: DBCC1, DBCC2 2 Обязательно DBCC1, DBCC2
Измерение уровня VBUS, vSafe0V ADC 1 Резистивный делитель с/без ОУ для ограничения уровня Опционально V_SENSE
Уровень электропитания
Подача тока в линию VBUS GPIO 1 Силовой ключ Обязательно, можно использовать сдвоенный MOSFET SRC_EN
Разряд VBUS до уровня vSafe0V GPIO 1 MOSFET + разрядные резисторы Обязательно SRC_DISCH
Измерение ISENSE ADC 1 ОУ + шунты Опционально I_SENSE
Уровень защиты
CC1 и CC2 Смотрите раздел «Рекомендации» CC1 и CC2 от разъёма Type-C
VBUS Смотрите раздел «Рекомендации» Vbus от разъема Type-C
Уровень программного обеспечения
Повторная передача сообщений TIM Для формирования задержек 900 мкс и 1200 мкс между повторами Дополнительную информацию смотрите в UM2552
Передача сообщений DMA Для пересылок TX и RX Дополнительную  информацию смотрите в UM2552

Схема, приведенная на рисунке 19, демонстрирует реализацию источника (SRC). Напряжение питания STM32 (VDD) обеспечивается внешним источником, таким как AC/DC, DC/DC, SMPS, LDO или аккумулятор.

Рис. 19. Типовая схема источника

Рис. 19. Типовая схема источника

Управление подтягивающими резисторами Rp осуществляется программным стеком UCPD. В случае источника выводы DBCC1 и DBCC2 должны быть соединены с общим проводом, а не с соответствующими выводами CC.

Обратите внимание: цепи, относящиеся к линии VCONN, на этом рисунке не показаны (подробнее об этом читайте в разделе «Формирование напряжения VBUS (режимы SRC и DRP)»).

Описание соединений и сигналов:

  • выводы канала конфигурации CC1 и CC2 соединены с соответствующими контактами разъема USB Type-C;
  • вывод DBCC1 соединен с общим проводом;
  • вывод DBCC2 соединен с общим проводом.

Необязательные:

  • сигналы V_SENSE/I_SENSE – напряжения с выхода резистивного делителя и с токового шунта, соответственно. Эти сигналы используются для измерения напряжения и тока линии VBUS. Программный стек измеряет эти параметры, используя драйвер HAL_ADC;
  • перед ключом нагрузки, управляемым сигналом SRC_EN, может присутствовать цепь разряда, которая позволяет ускорить переключение линии VBUS на меньшее напряжение (с 15 В до 5 В или с 9 В до 5 В), и тем самым обеспечить временные параметры, заданные спецификацией.

Временная диаграмма изображена на рисунке 20.

Рис. 20. Временная диаграмма работы источника

Рис. 20. Временная диаграмма работы источника

Состояния временной диаграммы описаны ниже. Действия, выделенные курсивом, относятся к линиям портов ввода/вывода (модулям ADC, GPIO и так далее):

  • Состояние 0. Оборудование не соединено друг с другом:
    • состояние «Отсоединено»;
    • Rp = 1,5 A, Rd = 5,1 кОм (выводы CC).
  • Состояние 1. Подсоединение кабеля. Подача напряжения на линию VBUS:
    • состояние «Подсоединено»;
    • USB-PD подает напряжение на линию VBUS, активируя сигнал SRC_EN;
    • обмен информацией о возможностях.
  • Состояние 2. Обмен (AMS) между SRC и SNK.
  • Состояние 3. USB-PD (ПО) – алгоритм защиты контролирует напряжение/ток в линии VBUS.
  • Состояние 4. Отсоединение кабеля, пропадание напряжения VBUS на стороне потребителя:
    • USB-PD активирует сигнал DISCH и подключает цепь разряда линии VBUS до тех пор, пока напряжение VBUS не снизится до значения vSafe0V.
  • Состояние 5. Напряжение VBUS на стороне источника равно vSafe0V.

DRP-порт – порт с поддержкой двух ролей электропитания

DRP-порт – это порт USB, который может работать либо как источник энергии, либо как потребитель. Роль такого порта может быть фиксированной (источник или потребитель) или может изменяться во время работы устройства. В начальный момент времени порт, работающий в качестве источника, выступает как DFP-порт, а порт, работающий в качестве потребителя – как UFP-порт. Роли порта как в отношении направления передачи данных, так и в отношении питания могут изменяться динамически.

С позиции порта с поддержкой двух ролей электропитания (DRP):

Обязательно:

  • в режиме источника подключить к линиям CC порта USB Type-C резисторы Rp (подтяжка к питанию);
  • в режиме потребителя подключить к линиям CC порта USB Type-C резисторы Rd (подтяжка к общему проводу);
  • подать напряжение на линию VBUS;
  • при отсоединении кабеля или при обрыве связи уменьшить напряжение VBUS до значения vSafe0V.

Для разряда линии VBUS используется внешний MOSFET, управляемый линией порта ввода/вывода STM32.

Не обязательно:

  • измерять напряжение и ток в линии VBUS:
    • STM32 может измерять напряжение на токовом шунте и на выходе резистивного делителя (ток/напряжение в линии VBUS), используя встроенный АЦП.
  • получать питание от линии VBUS;
  • определять факт отсоединения источника по выходу напряжения VBUS за пределы диапазона vSafe5V;
  • реализовать протокол быстрой смены ролей FRS (только для USB-PD 3.0).

Дополнительная защита:

  • защита и фильтрация ЭМП на линиях CC1, CC2 и VBUS. Подробнее об этом читайте в разделе «Рекомендации».

Характерные особенности реализации порта DRP сведены в таблицу 12.

Таблица 12. Характерные особенности порта DRP

Особенность Используемая периферия STM32 Число выводов STM32 Внешние компоненты или устройства Комментарии Наименование сигнала
Уровень протокола
Каналы связи CC1 и CC2 UCPD: CC1, CC2 2 Обязательно. Необходимо управление Rd и Rp CC1, CC2
Разряд батареи UCPD: DBCC1, DBCC2 2 Обязательно. Соединить с GND DBCC1, DBCC2
Измерение уровня VBUS, vSafe0V, vSafe5V ADC 1 Резистивный делитель с/без ОУ для ограничения уровня Обязательно только для целей защиты от перенапряжения V_SENSE
Быстрая смена ролей UCPD: FRSTX1, FRSTX2 2 MOSFET для подключения линий CC к GND Обязательно FRSTX1, FRSTX2
Уровень электропитания
Подача тока в линию VBUS GPIO 1 Силовой ключ Обязательно, можно использовать MOSFET SRC_EN
Внешний силовой ключ GPIO 1 Силовой ключ Опционально, можно использовать MOSFET или микросхему силового ключа SNK_EN
Разряд VBUS до уровня vSafe0V GPIO 1 MOSFET + разрядные резисторы Обязательно SRC_DISCH
Измерение ISENSE ADC 1 ОУ + шунты Опционально I_SENSE
Уровень защиты
CC1 и CC2 Смотрите раздел «Рекомендации» Необязательно CC1 и CC2 от разъема Type-C
VBUS Смотрите раздел «Рекомендации» Необязательно Vbus от разъема Type-C
Уровень программного обеспечения
Повторная передача сообщений TIM Для формирования задержек 900 мкс и 1200 мкс между повторами Дополнительную информацию смотрите в UM2552
Передача сообщений DMA Для пересылок TX и RX Дополнительную информацию смотрите в UM2552

Схема, приведенная на рисунке 21, демонстрирует реализацию устройства с портом DRP.

Рис. 21. Типовая схема устройства с DRP-портом

Рис. 21. Типовая схема устройства с DRP-портом

Обратите внимание: цепи, относящиеся к VCONN, на этом рисунке не показаны (подробнее об этом читайте в разделе «Формирование напряжения VBUS (режимы SRC и DRP)»).

Описания всех сигналов были приведены в разделах «Режимы потребителя (SNK)» и «Режим источника (SRC)».

Временная диаграмма приведена на рисунке 22.

Рис. 22. Временная диаграмма работы DRP-порта

Рис. 22. Временная диаграмма работы DRP-порта

Состояния временной диаграммы описаны ниже. Действия, выделенные курсивом, относятся к линиям портов ввода/вывода (модулям ADC, GPIO и так далее):

  • Состояние 0. Оборудование не соединено друг с другом:
    • состояние «Отсоединено»;
    • DRP – в роли SRC, Rp = 1,5 A (выводы CC).
  • Состояние 1. Стек USB-PD решает переключиться с SRC на SNK:
    • DRP – в роли SNK, Rd = 5,1 кОм (выводы CC).
  • Состояние 2. Стек USB-PD решает переключиться с SNK на SRC:
    • DRP – в роли SRC, Rp = 1,5 A (выводы CC).
  • Состояние 3. Стек USB-PD решает переключиться с SRC на SNK:
    • DRP – в роли SNK, Rd = 5,1 кОм (выводы CC).

DRP с поддержкой технологии FRS

Схема, приведенная на рисунке 23, демонстрирует реализацию устройства с портом DRP, поддерживающим технологию FRS. Напряжение питания STM32 (VDD) обеспечивается внешним источником, таким как AC/DC, DC/DC, SMPS, LDO или аккумулятором.

Рис. 23. Типовая схема устройства с DRP-портом и поддержкой FRS, VBUS = 5 В/9 В/15 В

Рис. 23. Типовая схема устройства с DRP-портом и поддержкой FRS, VBUS = 5 В/9 В/15 В

Что касается поддержки протокола USB-PD, то встроенные подтягивающие резисторы Rp и Rd периферийного модуля UCPD управляются программно.

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

Технология быстрой смены ролей (Fast Role Swap, FRS) позволяет любому источнику при неожиданном отключении питания, например, при пропадании сетевого напряжения, моментально сообщать об этой ситуации потребителю с поддержкой FRS. Причем этот сигнал формируется намного быстрее, чем при отсутствии такой поддержки (в частности, генерация сигнала и его обнаружение производятся даже во время передачи сообщений и независимо от работы механизма предотвращения коллизий, благодаря чему длительность этого процесса не превышает 50 мкс). Как только будущий источник обнаруживает этот сигнал, он начинает контролировать снижение напряжения на линии VBUS. Согласно требованиям спецификации, время, за которое новый источник может успеть перехватить управление линией VBUS, не должно превышать 150 мкс.

Обратите внимание: цепи, относящиеся к VCONN, на этом рисунке не показаны. Подробнее об этом читайте в разделе «Формирование напряжения VBUS (режимы SRC и DRP)».

Описание соединений и сигналов:

  • выводы канала конфигурации CC1 и CC2 соединены с соответствующими контактами разъема USB Type-C;
  • вывод DBCC1 соединен с общим проводом;
  • вывод DBCC2 соединен с общим проводом;
  • сигнал SRC_EN – выход порта ввода/вывода, который управляет подачей напряжения на линию VBUS с помощью внешнего MOSFET или силового ключа;
  • сигнал SRC_DISCH – выход порта ввода/вывода, управляющий внешним MOSFET для разряда линии VBUS в случае отсоединения кабеля;
  • сигналы FRS1_TX и FRS2_TX управляют внешними MOSFET, которые замыкают линии CC на общий провод;
  • сигнал V_SENSE – выход резистивного делителя, подключенный ко входу АЦП. Напряжение VBUS измеряется для обеспечения безопасной работы и для защиты от перенапряжения. Программный стек измеряет это напряжение, используя драйвер HAL_ADC;
  • сигнал I_SENSE – напряжение с токового шунта, поступающее на вход АЦП. Ток в линии VBUS измеряется для обеспечения безопасной работы. Программный стек измеряет этот ток, используя драйвер HAL_ADC;
  • сигнал SNK_EN – выход порта ввода/вывода, управляющий подключением дополнительной нагрузки к линии VBUS.

Временная диаграмма представлена на рисунке 24.

Рис. 24. Временная диаграмма работы DRP с поддержкой быстрой смены ролей

Рис. 24. Временная диаграмма работы DRP с поддержкой быстрой смены ролей

Состояния временной диаграммы описаны ниже. Действия, выделенные курсивом, относятся к линиям портов ввода/вывода (модулям ADC, GPIO и так далее):

  • Состояние 0. Оборудование не соединено друг с другом:
    • состояние «Отсоединено»;
    • Rp = 1,5 A, Rd = 5,1 кОм (выводы CC).
  • Состояние 1. Подсоединение кабеля:
    • DRP1 подает напряжение на линию VBUS, активируя сигнал SRC_EN.
  • Состояние 2. Обмен информацией о возможностях:
    • DRP2 подключает нагрузку к линии VBUS, активируя сигнал SNK_EN.
  • Состояние 3. Активация сигналов FRSTX для запуска процесса быстрой смены ролей.
  • Состояние 4. DRP1 снижает напряжение VBUS до значения vSafe0V.
  • Состояние 5. Активация сигнала DISCH для подключения цепи разряда линии VBUS на стороне порта DRP1.
  • Состояние 6. Завершение процесса разряда линии V
  • Состояние 7. Обмен ролями между DRP1 и DRP2.
  • Состояние 8. DRP2 подает напряжение на линию VBUS, активируя сигнал SRC_EN.
  • Состояние 9. DRP2 подключает нагрузку к линии VBUS, активируя сигнал SNK_EN.
  • Состояние 10. Отсоединение кабеля.
  • Состояние 11. Завершение процесса разряда линии V.

Поддержка спецификаций USB Type-C и USB Power Delivery при использовании периферийных устройств общего назначения

Программное обеспечение

Архитектура программного обеспечения ничем не отличается от описанной в разделе «Обзор программного обеспечения».

Аппаратное обеспечение

Чтобы обеспечить поддержку USB Power Delivery при использовании периферийных устройств общего назначения, удобнее всего применить микросхемы контроллеров интерфейсов TCPM/TCPC (рисунок 25). Микроконтроллеры семейства STM32xx и микропроцессоры семейства STM32xxx могут работать с любыми микросхемами TCPM/TCPC, используя для управления ими различные интерфейсы.

Рис. 25. Концепция реализации порта USB Type-C с поддержкой Power Delivery с использованием периферийных устройств общего назначения

Рис. 25. Концепция реализации порта USB Type-C с поддержкой Power Delivery с использованием периферийных устройств общего назначения

Как правило, для передачи информационных сообщений и извещений об исключительных ситуациях используются шины I2C/SPI или линии GPIO.

Реализация потребителя с использованием интерфейса TCPM/TCPC

В режиме потребителя (SNK) выводы CC порта должны быть соединены с общим проводом через резисторы Rd, а сам порт должен получать питание от линии VBUS. Потребитель обнаруживает факт подключения источника по увеличению напряжения VBUS до уровня vSafe5V. Для измерения напряжения VBUS можно использовать, например, встроенный АЦП STM32.

Для управления микросхемами TCPM/TCPC обычно используется шина I2C (рисунок 26). В некоторых случаях для взаимодействия с этими микросхемами дополнительно используются и другие периферийные модули микроконтроллера, такие как SPI, ADC, DAC или GPIO.

Рис. 26. Реализация режима потребителя с использованием интерфейса TCPM/TCPC

Рис. 26. Реализация режима потребителя с использованием интерфейса TCPM/TCPC

Реализация источника с использованием интерфейса TCPM/TCPC

В режиме источника (SRC) к выводам CC порта Type-C должны быть подключены подтягивающие резисторы Rp, а сам порт должен подавать питание на линию VBUS. При отсоединении кабеля или при обрыве связи источник должен уменьшать напряжение VBUS до значения vSafe0V. То есть в устройстве должна быть предусмотрена цепь разряда линии VBUS.

МК STM32 (выступающий в роли TCPM) для управления микросхемами TCPM/TCPC обычно использует шину I2C (рисунок 27). В некоторых случаях для взаимодействия с этими микросхемами дополнительно используются и другие периферийные модули микроконтроллера, такие как SPI, ADC, DAC или GPIO.

Рис. 27. Реализация режима источника с использованием интерфейса TCPM/TCPC

Рис. 27. Реализация режима источника с использованием интерфейса TCPM/TCPC

Реализация DRP с использованием интерфейса TCPM/TCPC

Порт с поддержкой обеих ролей электропитания (DRP) может работать как источник (SRC) или как потребитель (SNK). Роль такого порта может быть фиксированной (источник или потребитель) либо может изменяться во время работы устройства. В начальный момент времени порт, работающий в качестве источника, выступает как DFP-порт, а порт, работающий в качестве потребителя – как UFP-порт. Роли порта в отношении как направления передачи данных, так и питания могут изменяться динамически.

МК STM32 (выступающий в роли TCPM) для управления микросхемами TCPM/TCPC обычно использует шину I2C (рисунок 28). В некоторых случаях для взаимодействия с этими микросхемами дополнительно используются и другие периферийные модули микроконтроллера, такие как SPI, ADC, DAC или GPIO.

Рис. 28. Реализация DRP режима с использованием интерфейса TCPM/TCPC

Рис. 28. Реализация DRP режима с использованием интерфейса TCPM/TCPC

Типовые решения

Формирование напряжения VBUS (режимы SRC и DRP)

В режимах SRC и DRP порт подает напряжение VBUS на разъем Type-C (рисунок 29). Для формирования напряжения обычно используют DC/DC- или AC/DC-преобразователи, а также импульсные источники питания (SMPS) с аккумулятором или без него. Для подключения выхода источника питания к линии VBUS используется микросхема силового ключа или MOSFET. Периферийные устройства общего назначения STM32 (АЦП, ЦАП, порты ввода/вывода, контроллер I2C) позволяют реализовать гибкое и масштабируемое управление источником питания.

Рис. 29. Контроль напряжения линии VBUS

Рис. 29. Контроль напряжения линии VBUS

Описание сигналов:

  • ADC – модуль АЦП STM32 измеряет напряжение на линии VBUS;
  • GPIO – порты ввода/вывода STM32 управляют силовым ключом или входом разрешения источника питания;
  • PWM – модуль ШИМ STM32 совместно со внешней RC-цепочкой формирует опорное напряжение источника питания;
  • DAC – модуль ЦАП STM32 формирует опорное напряжение источника питания.

В МК серии STM32G0 для управления DC/DC-преобразователем используется ШИМ-сигнал, генерируемый при помощи таймера. При этом необходимо подобрать такое значение коэффициента ШИМ, которое позволило бы получить требуемое напряжение. Итерационный алгоритм задает параметры ШИМ, а схема измерения напряжения контролирует достижение требуемого уровня.

Управление выходным напряжением DC/DC-преобразователя с использованием портов ввода/вывода: резистивный делитель с изменяемым коэффициентом

Напряжение VRef можно регулировать с помощью нескольких линий порта ввода/вывода, сконфигурированных как выходы с открытым стоком. Соответствующая схема показана на рисунке 30. Величина VRef, а следовательно – и напряжение VOUT, в этой схеме зависят от логических уровней GPIO1 и GPIO2.

Рис. 30. Регулирование Vref, с использованием выходов с открытым стоком

Рис. 30. Регулирование VRef, с использованием выходов с открытым стоком

Управление выходным напряжением DC/DC-преобразователя с использованием портов ввода/вывода: ШИМ с RC-фильтром

Напряжение VRef можно регулировать с помощью одного выхода порта ввода/вывода, формируя на нем ШИМ-сигнал. Значение VRef определяется параметрами RC-фильтра низких частот и коэффициентом заполнения ШИМ. Соответствующая схема показана на рисунке 31.

Рис. 31. Регулирование Vref с использованием ШИМ

Рис. 31. Регулирование VRef с использованием ШИМ

Формирование напряжения VCONN в режимах SRC и DRP

Формирование напряжения VCONN требуется для порта Type-C, работающего в режиме SRC или DRP, в следующих случаях:

  • при отдаче или потреблении тока более 3 А;
  • при поддержке USB3.

В системе присутствует единственный источник напряжения VCONN. Два силовых ключа подключают выход источника VCONN (5 В) к контакту CC1 или CC2 разъема, а два MOSFET предотвращают попадание напряжения VCONN на выводы CC1 и CC2 модуля UCPD. Два MOSFET, обеспечивающих реализацию функции FRS, используются для разряда линий CC после отключения источника напряжения VCONN.

Из этого следует, что нужны как минимум две линии порта ввода/вывода для формирования сигналов управления VCOMM_EN1 и VCONN_EN2 (рисунок 32).

Рис. 32. Управление напряжением VCONN

Рис. 32. Управление напряжением VCONN

Описание сигналов

Выходы порта ввода/вывода, формирующие сигналы EN_VCONN1 и EN_VCONN2, управляют как подачей напряжения VCONN на контакты CC разъема Type-C, так и ключами, предотвращающими попадание этого напряжения на выводы CC STM32.

Более подробно о программной реализации указанного решения можно узнать из документации UM2552 (раздел «Справочная документация»).

Временная диаграмма представлена на рисунке 33.

Рис. 33. Временная диаграмма управления напряжением VCONN

Рис. 33. Временная диаграмма управления напряжением VCONN

Состояния временной диаграммы описаны ниже. Действия, выделенные курсивом, относятся к линиям портов ввода/вывода (модулям ADC, GPIO и так далее):

  • Состояние 0. Оборудование не соединено друг с другом:
    • состояние «Отсоединено»;
    • Rp = 1,5 A, Rd = 5,1 кОм (выводы CC).
  • Состояние 1. Подсоединение кабеля. Подача напряжения на линию VBUS:
    • состояние «Подсоединено»;
    • USB-PD подает напряжение на VBUS, активируя сигнал SRC_EN;
    • обмен информацией о возможностях.
  • Состояние 2. Запрос включения VCONN.
  • Состояние 3. Включение VCONN путем активации сигналов VCONN_EN1/2.
  • Состояние 4. USB-PD (ПО) – алгоритм защиты контролирует напряжение/ток в линии V
  • Состояние 5. Запрос выключения VCONN.
  • Состояние 6. Отключение VCONN путем деактивации сигналов VCONN_EN1/2:
    • подключение цепи разряда линии CC2/VCONN с использованием выхода управления FRS модуля UCPD или сигнала FRSTX с порта ввода/вывода.
  • Состояние 7. Отсоединение кабеля, пропадание напряжения VBUS на стороне потребителя:
    • USB-PD активирует сигнал DISCH и подключает цепь разряда линии VBUS до тех пор, пока напряжение VBUS не снизится до значения vSafe0V.
  • Состояние 8. Напряжение VBUS на стороне источника равно vSafe0V.

Формирование сигнала быстрой смены ролей (FRS) в режиме DRP

Передача сигналов FRS требуется только для DRP-портов. Формировать сигналы FRS может только USB-концентратор со внешним питанием при пропадании последнего. Поддержка этой технологии совершенно не обязательна.

  • TX (передача сигналов FRS). Модулю USBPD требуются внешние компоненты для замыкания линий CC на общий провод:
  • это означает наличие двух внешних N-канальных MOSFET, управляемых модулем USBPD STM32;
  • на каждую линию СС требуется один транзистор.
  • RX (обнаружение сигналов FRS). для обнаружения сигналов FRS используется встроенная периферия, данный функционал может быть разрешен программно:
  • встроенное ПО использует прерывание USBPD. Альтернативная функция выводов FRSTx включается программно.

В регистре управления модуля USBPD имеется специальный бит запроса быстрой смены ролей (FRSTX). Для формирования сигнала FRS в него следует записать «1». Этот бит будет сброшен автоматически через некоторое время, определенное спецификацией USB Power Delivery. Для получения дополнительных сведений обратитесь к документации на соответствующий микроконтроллер/микропроцессор. Функция FRS была представлена в редакции 3.0 спецификации USB Power Delivery. Поддержка данной технологии не обязательна и, кроме того, может быть реализована только в DRP-портах. Данная функция позволяет быстро поменять роль электропитания источника, у которого пропала возможность обеспечивать питание шины.

DRP-порт в режиме источника (SRC) формирует сигнал «FRS», извещая тем самым об аварийной ситуации, чтобы смена ролей электропитания (то есть источника напряжения VBUS) произошла как можно быстрее (рисунок 34). Как правило, это имеет смысл при отсутствии аккумулятора для автономного питания.

Рис. 34. Схема поддержки быстрой смены ролей в режиме DRP

Рис. 34. Схема поддержки быстрой смены ролей в режиме DRP

Если в устройстве формируется напряжение VCONN, выходы FRSTX1 и FRSTX2 используются для управления MOSFET, обеспечивающими разряд линий CC1 и CC2.

Контроль напряжения и тока в линии VBUS в режимах SNK, SRC и DRP

Защита и безопасность

Для формирования напряжений VBUS и VCONN используется DC/DC-преобразователь наподобие L7987. Такие преобразователи, как правило, могут формировать сигнал неисправности OTP/OVP/OCP. Этот сигнал можно подать на вход EXTI внешнего прерывания STM32 для последующей обработки пользовательским приложением.

Протокол PD

При работе в качестве потребителя (SNK) мы должны контролировать напряжение VBUS, чтобы программа могла обрабатывать сообщения REQUEST_ACCEPT/PS_RDY/DETACH протокола. В этом случае на стороне STM32 обязательно должен присутствовать АЦП.

При работе в качестве источника (SRC) мы должны контролировать напряжение VBUS, чтобы соответствующим образом регулировать напряжение на выходе DC/DC-преобразователя при получении PDO- или APDO-сообщений.

Методика

Для измерения тока в линии VBUS следует использовать низкоомный шунт, а для измерения напряжения VBUS – обычный резистивный делитель. Для защиты от перенапряжения между выходом делителя и входом АЦП можно установить ОУ (рисунок 35).

Рис. 35. Схема контроля напряжения и тока в линии VBUS

Рис. 35. Схема контроля напряжения и тока в линии VBUS

Примечание. На входах Isense и Vsense можно установить дополнительные компоненты защиты (подробнее об этом – в разделе «Рекомендации»).

Рекомендации

Защита USB Type-C от перенапряжений и электростатических разрядов

Специальные меры по защите от перенапряжений и электростатических разрядов (ЭСР) могут применяться к:

  • линии питания VBUS;
  • линиям D+/D-, TX/RX передачи сигналов High-speed и SuperSpeed;
  • линиям канала конфигурации CC и вспомогательным линиям SBUэ

Для получения дополнительной информации обратитесь к документации:

  • AN4871 (раздел 1.2 «Справочные документы»);
  • www.st.com/protection-typec (страница веб-сайта компании, посвященная компонентам защиты и фильтрации для разъемов USB Type-C).

Рекомендуемые компоненты защиты приведены в таблице 13.

Таблица 13. Рекомендуемые компоненты защиты

Источник питания 3,3 В: SMLVT3V3
5 В: DSDA7P120-1U1M
9…12 В: ESDA15P60-1U1M
Пользовательская кнопка ESDALC6V1-1U2 (1 линия, шаг выводов 0,35 мм)
Кнопка ESDA5V3L (2 линии)
Джойстик ESDA6V1-5SC6 (5 линий)

В соответствии со спецификацией USB Power Delivery, на линии VBUS может присутствовать напряжение выше 5 В, поэтому защитный TVS-диод необходимо выбирать в соответствии с этим напряжением:

  • ESDA7P120-1U1M для 5 В VBUS;
  • ESDA13P70-1U1M для 9 В VBUS;
  • ESDA15P60-1U1M для 12 В VBUS;
  • ESDA17P50-1U1M для 15 В VBUS;
  • ESDA25P35-1U1M для 20 В VBUS.

Конденсаторы на линиях CC

Согласно спецификации USB PD, емкость приемника CC (cReceiver) должна находиться в диапазоне 200…600 пФ, поэтому для фильтрации помех на каждую линию CC необходимо добавить дополнительную емкость 390 пФ ± 10%.

TCPP01 – микросхема защиты порта Type-C

При передаче энергии через порт Type-C могут возникнуть следующие аварийные ситуации:

  • короткое замыкание между линией VBUS и линиями CC, которое может произойти при горячем отключении кабеля в случае некачественного разъема. Соответственно, необходима защита линий CC от перенапряжения. Данная ситуация может возникнуть только при использовании технологии Power Delivery;
  • появление постоянного высокого напряжения на линии VBUS из-за неисправности зарядного устройства. Соответственно, необходима защита линии VBUS от перенапряжения. Данная ситуация может возникнуть даже если технология Power Delivery не используются.

Для защиты системы могут использоваться специальные микросхемы. Компания STMicroelectronics разработала микросхему защиты TCPP01-M12, которая представляет собой бюджетное решение для защиты низковольтных микроконтроллеров или других контроллеров, управляющих питанием шины, в соответствии со спецификацией USB-C Power Delivery. Микросхема TCPP01-M12 обеспечивает защиту линий CC от перенапряжения (до 20 В), вызванного коротким замыканием с линией VBUS, и от электростатических разрядов в соответствии со стандартом IEC61000-4-2, а также программируемую защиту линии VBUS от перенапряжения с использованием внешнего N-канального MOSFET.

Также микросхема TCPP01-M12 содержит логику обработки сигнала «разряд батареи» и, кроме того, может полностью отключаться при питании устройства от встроенного аккумулятора. Помимо этого, микросхема может генерировать сигнал неисправности.

Несмотря на наличие микросхемы защиты, на линии VBUS все равно должен присутствовать TVS-диод (ESDA25P35-1U1M), ограничивающий максимальное напряжение в линии.

Режимы потребителя

В устройстве-потребителе с питанием от линии VBUS (рисунок 36) система получает питание только через разъем USB-C (рисунки 37, 38, 39).

Рис. 36. Устройство-потребитель с питанием от VBUS

Рис. 36. Устройство-потребитель с питанием от VBUS

  • FLT (FAULT) – выход с открытым стоком.
  • DB/ – вход с подтяжкой к общему проводу. Если микроконтроллер не управляет этим входом, его необходимо подключить к 3,3 В.

Рис. 37. Устройство-потребитель USB-PD3.0 с аккумулятором

Рис. 37. Устройство-потребитель USB-PD3.0 с аккумулятором

  • FLT (FAULT) – выход с открытым стоком.
  • DB/ – вход с подтяжкой к общему проводу. Если микроконтроллер не управляет этим входом, его необходимо подключить к 3,3 В.

Рис. 38. Устройство-потребитель без аккумулятора

Рис. 38. Устройство-потребитель без аккумулятора

  • FLT (FAULT) – выход с открытым стоком.
  • DB/ – вход с подтяжкой к общему проводу. Если микроконтроллер не управляет этим входом, его необходимо подключить к 3,3 В.

Рис. 39. Устройство-потребитель (15 Вт) с аккумулятором

Рис. 39. Устройство-потребитель (15 Вт) с аккумулятором

  • FLT (FAULT) – выход с открытым стоком. Если не используется – остается неподключенным.
  • При низком уровне на выходе GPIO1 микросхема TCPP01-M12 выключена и потребляемый ею ток равен нулю (подробнее – в Примечании ниже).
  • При высоком уровне на выходе GPIO1 TCPP01-M12 включена и входы ADC1 или ADC2 используются для определения возможностей источника.

Примечание. При разряде аккумулятора происходит следующее:

  1. TCPP01-M12 ограничивает напряжение на линиях CC1 и CC2 на уровне 1,1 В, сигнализируя о разряде аккумулятора;
  2. источник обнаруживает ограничение напряжения и подает 5 В на VBUS;
  3. напряжение 5 В через открытый N-канальный MOSFET T1 поступает на схему управления питанием;
  4. МК выходит из спящего режима и выставляет высокий уровень (3,3 В) на GPIO1, запитывая тем самым TCPP01-M12;
  5. TCPP01-M12 убирает ограничение напряжения на линиях CC, чтобы микроконтроллер снова мог определять возможности источника, измеряя падение напряжения на R5 или R6.

Обработка состояния «разряд батареи» при наличии TCPP01

Вход DB/ (вход активации логики управления подтягивающими резисторами при разряде аккумулятора) внутри TCPP01 подтянут к общему проводу и имеет активный низкий уровень. Вывод DB/ может использоваться в двух конфигурациях:

  • вход DB/ подключен к VCC

или

  • вход DB/ управляется выходом порта ввода/вывода МК

Пока на входе DB/ присутствует низкий уровень или он остается неподключенным (низкий уровень обеспечивается внутренней 5 кОм-подтяжкой к общему проводу), резисторы, сигнализирующие о разряде батареи, оказываются подключенными к линиям CC, а ключи схемы защиты от перенапряжения разомкнуты.

Если вход DB/ соединен с VCC, то упомянутые резисторы отключаются от линий CC, а ключи схемы защиты от перенапряжения замыкаются.

Использование входа DB/ в режиме потребителя (SNK):

  • после включения системы на входе DB/ должен удерживаться уровень логического 0. В этом случае используются Rd, имеющиеся в микросхеме TCPP01;
  • сразу же после подключения к линиям CC резисторов Rd модуля UCPD на вход DB/ необходимо подать логическую «1».

В режиме источника (SRC) вход DB/ должен быть подключен к VCC.

Дополнительная информация

Протокол USB Power Delivery, использующий в качестве канала связи линии CC, представляет собой расширение спецификаций USB2.0 и USB3.1, применимое только к разъему Type-C. 

Назначение протокола

Данный протокол предназначен для согласования параметров электропитания при использовании кабеля USB Type-C для питания подключенного устройства с интерфейсом USB (или другим):

  • максимальная передаваемая мощность была увеличена с 2,5/7,5 Вт, регламентируемых предыдущими спецификациями USB/USB Battery Charger, до 100 Вт (20 В/5 А);
  • роли электропитания (источник или потребитель) отделены от ролей портов, определяющих направление передачи данных (восходящий/нисходящий):
    • например, USB-устройство/концентратор могут подавать питание на USB-хост;
    • в момент первого подключения UFP-порт выступает в роли потребителя, а DFP-порт – в роли источника;
    • роли обеих пар (источник/потребитель и UFP/DFP) могут меняться на одном разъеме USB Type-C. 

Дополнительные контакты в новых кабелях Type-C

Разъемы в новых кабелях Type-C имеют по два дополнительных контакта (CC1 и CC2) для управления конфигурацией.

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

Резисторы подтяжки к питанию/общему проводу порта USB Type-C

В устройствах с разъемом USB Type-C линии CC обязательно должны быть подтянуты к линии питания или к общему проводу:

  • в источнике устанавливаются резисторы Rp подтяжки к линии питания (номинал этого резистора показывает максимальный ток, который может обеспечить источник);
  • в потребителе устанавливаются резисторы Rd подтяжки к общему проводу.

Примечание. Порт с поддержкой обеих ролей электропитания поочередно переключается между этими ролями до тех пор, пока не будет установлено стабильное соединение. 

Подсоединение устройства

По истечении интервала защиты от дребезга система переходит в состояние «Подсоединено»:

  • линии CC могут использоваться в качестве канала связи для передачи сообщений, касающихся управления электропитанием, таких как:
    • параметры питания, например, установка напряжения больше 5 В и тока больше 3 А;
    • смена роли электропитания;
    • смена направления передачи данных (аналогично протоколу HNP в OTG);
    • смена источника VCONN.
  • при обнаружении резистора Ra необходимо подать на линию VCONN напряжение 5 В.

Одиночные контакты порта Type-C

  • Источник/потребитель/DRP:
    • два контакта CC (CC1/CC2) позволяют подключать кабель в любой ориентации.
  • Кабель и аксессуары:
    • ориентация жестко задана;
    • нужен только один контакт CC.

Действия при разряде батареи

По большому счету при разряде аккумулятора устройству требуется только ограничить на некотором уровне напряжение на линии CC порта Type-C, подаваемое туда источником. Это действие интерпретируется как запрос на необходимость подачи напряжения на линию VBUS. Таким образом, эта функция позволяет обеспечить зарядку оборудования с разряженной батареей, а также питание такого оборудования в отсутствие батареи:

  • эта функция должна быть реализована в большинстве случаев;
  • эта функция не должна быть реализована в устройстве Type-C, работающем только как источник, например, в сетевом зарядном устройстве.

Оригинал

Перевел Андрей Евстифеев по заказу АО КОМПЭЛ

•••

Наши информационные каналы

О компании ST Microelectronics

Компания STMicroelectronics является №1 производителем электроники в Европе. Компоненты ST широко представлены в окружающих нас потребительских товарах – от iPhone до автомобилей разных марок. Лидеры индустриального рынка выбирают компоненты ST за их надежность и выдающиеся технические параметры. В компании ST работает 48 000 сотрудников в 35 странах. Производственные мощности расположены в 12 странах мира. Более 11 тысяч сотрудников заняты исследованиями и разработками – инновационное лидерство ...читать далее

Товары
Наименование
STM32G071B-DISCO (ST)
STM32G070KBT6 (ST)
STM32G030J6M6 (ST)
STM32G431KBU6 (ST)
STM32G431C8T6 (ST)
STM32L552CCT6 (ST)
STM32L552MEY6QTR (ST)
STM32MP151DAC1 (ST)
STM32MP151DAD1 (ST)
L7987 (ST)
L7987LTR (ST)
STMPS2151STR (ST)
STMPS2151MTR (ST)
TCPP01-M12 (ST)