User Tools

Site Tools


pd_connect

This is an old revision of the document!


Введение

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

Приборы и материалы

Опыт

В дальнейшем описании будем рассматривать следующие простые действия.

  • Подключаем тестер к павербанку
  • Подключаем кабель к телефону
  • Включаем запись на тестере
  • Подключаем второй конец кабеля к тестеру
  • Ждём
  • Разъединяем кабель (со стороны тестера), переворачиваем его и подключаем снова
  • Ждём
  • Разъединяем кабель (со стороны тестера)
  • Выключаем запись

Вольты и амперы

Начнем с простого вида: напряжение и ток на VBUS. Выглядит просто. Пока кабель отключен, на VBUS ничего не подаётся. Подключаем кабель, аналоговое согласование резисторами проходит и источник подаёт напряжение 5V. После этого телефон читает профили источника и выбирает 9V, которые ему источники предоставляет. Процесс подключения небыстрый, может длиться до 200 ms. А процесс отключения вообще теплый и аналоговый, видно, как плавно падает напряжение.

Теперь добавим на график напряжение на CC1 и CC2: Стало интереснее и сложнее. Начнём с середины, с того, что у нас при подключенном кабеле. А там на одном CCx 3.2V, а на CCy 1.7V. Напряжение 1.7V соответствует pull-up резистору 10 kOhm у источника, то есть павербанк обещает до 5V 3A на VBUS. То есть во время первого коннекта CC был на CC2 (смотри легенду в верхнем левом углу), а во время второго на CC1. А напряжение 3.2V указывает на то, что маркер кабеля запросил питание на втором контакте (последовательно CC1 и CC2) и получил низкое напряжение, которое и держал всё время, пока телефон был подключен.

А теперь увеличим фрагмент с подключением кабеля. До 3.183 видны пики, которые обозначают что источник подаёт на CC1 и CC2 напряжение и смотрит, пошел ли ток. Пики длительностью 40-50ms и отсутствие падения напряжения говорит о том, что устройства с pull-down резистором нет.

Подключение второй стороны обнаруживается в 3.404, когда появляется pull-down резистор телефона и напряжение 1.7V на CC2 указывает на коннект устройства. И дальше на CC2 (его уже можно называть CC) держится напряжение, на котором видны всплески модуляции пакетов PD.

А что со второй линией CC1? Через 150ms после подключения там устанавливается напряжение VCONN для питания маркера, то есть источник увидел резистор rA на VCONN и выдал напряжение.

Следующая точка - через 550ms от коннекта источник подаёт 5V на VBUS. Управление напряжением на VBUS и VCONN происходят независимо, VBUS можно поднимать сразу же, а VCONN может подниматься после обнаружения резистора на VCONN. Зачем нужен аналоговый способ (с помощью резисторов) для подачи напряжения на VBUS? Для а) потребителей без собственного питания, б) для простых устройств, для которых отдельный чип управления PD - это оверкилл и в) для запуска устройст с пустой батареей. А вот почему стандарт USB решил, что не нужно сразу подавать 5V на VBUS - это другой вопрос с непростым ответом.

И последние интересные точки на графике - это общение по протоколу Power Delivery для переключения VBUS на 9V. Колебания на линии CC (CC2) незадолго до поднятия напряжения - это и есть взаимодействие PD.

Перечислим увиденные события

  • Обнаружение коннекта и выбор линии CC
  • Обнаружение запроса на питание маркера и подача напряжения на VCONN
  • Подача 5V на VBUS (эти два пункта независимы)
  • Переключение на общение протоколом PD по линии CC

А теперь Power Delivery

pd_connect.1772192277.txt.gz · Last modified: by gadmin