User Tools

Site Tools


pd_connect

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
pd_connect [2026/02/27 16:51] gadminpd_connect [2026/04/01 11:07] (current) gadmin
Line 1: Line 1:
 === Введение === === Введение ===
-Обсуждая процессы чтения маркера и измерения сопротивления кабелей, я обнаружил, что знание процесса подключения устройств к зарядке кабелем Type C относится к очень мифологизированному процессу. Поэтому и решил написать статью, где подробно описать, что происходит на шине во время подключения устройства.+Обсуждая процессы чтения маркера и измерения сопротивления кабелей, я обнаружил, что понимание процесса подключения устройств к зарядке кабелем Type C покрыто мифами и заблуждениями. Поэтому и решил написать статью, где подробно описать, что происходит на шине во время подключения устройства.
  
 === Приборы и материалы === === Приборы и материалы ===
 +В качестве продвинутого вольтметра использовался тесте KM003C с десктопной программой. Она позволяет записывать показания напряжения и тока на VBUS, а также напряжения на CC1, CC2, D+ и D- с последующим анализом графиков и их экспортом. Сразу замечу, что показания я снимал дважды, один раз в режиме "Data Recorder" с точностью 1000 точек и второй раз в режиме "PD analyzer", там точность меньше раз в 20, зато есть привязка событий PD к графику напряжений.
 +В качестве источника (source) выступал павербанк Ugreen с портом на 100W (нужна не мощность, а чтобы он запросил маркер) и кабель с полной разводкой и маркером на 100W. Потребителем выступал телефон Pixel 6A (с ним всё просто и наглядно: попросил 9V, получил и пошел заряжаться).
 +
 +Советую графики открывать в отдельной закладке, я их сохранял с шириной 1920 px, чтобы можно было видеть детали.
 +
 +Вопрос на понимание структуры кабеля: куда подключать тестер? Правильный ответ: между кабелем и павербанком. Потому что при подключении со стороны потребителя мы не увидим активности на линии VCONN, поскольку линия VCONN ничего не передаёт на другой разъем:
 +{{ :usb-type-c-equivalent-circuit_0.webp |}}
  
 === Опыт === === Опыт ===
Line 15: Line 22:
   * Разъединяем кабель (со стороны тестера)   * Разъединяем кабель (со стороны тестера)
   * Выключаем запись   * Выключаем запись
 +
 +Подключение кабеля с двух сторон разъема покажет отличие в напряжениях на линиях CC1 и CC2.
  
 === Вольты и амперы === === Вольты и амперы ===
Line 24: Line 33:
 {{:2twist_01.png?1024|}} {{:2twist_01.png?1024|}}
  
-Стало интереснее и сложнее. Начнём с середины, с того, что у нас при подключенном кабеле. А там на одном CCx 3.2V, а на CCy 1.7V. Напряжение 1.7V соответствует pull-up резистору 10 kOhm у источника, то есть павербанк обещает до 5V 3A на VBUS. То есть во время первого коннекта CC был на CC2 (смотри легенду в верхнем левом углу), а во время второго на CC1. А напряжение 3.2V указывает на то, что маркер кабеля запросил питание на втором контакте (последовательно CC1 и CC2) и получил низкое напряжение, которое и держал всё время, пока телефон был подключен. +Стало интереснее и сложнее. Начнём с середины, с того, что у нас при подключенном кабеле. А там на одном CCx 3.2V, а на CCy 1.7V. Напряжение 1.7V соответствует pull-up резистору 10 kOhm у источника, то есть павербанк обещает до 5V 3A на VBUS. То есть во время первого коннекта CC был на CC2 (смотри легенду в верхнем левом углу), а во время второго на CC1. А напряжение 3.2V указывает на то, что маркер кабеля запросил питание на втором контакте (последовательно CC1 и CC2) и получил низкое напряжение (низкое в смысле того, что оно меньше 5V и может быть использовано микросхемой напрямую, без преобразователя), которое и держал всё время, пока телефон был подключен.  
 + 
 +Приведу для справки значения pull-up сопротивлений для разных источников. Обратите внимание, что в таблице приведены три варианта реализации pull-up на источнике: через источник тока и через сопротивления для двух источников напряжения. 
 +{{:2twist_pd_08.png?1024|}} 
 +Вторая таблица - это диапазоны напряжений и их интерпретация sinkом (если вдруг ему важен ток, который может дать источник на 5V). Поскольку сопротивление кабеля ничтожно по сравнению с резисторами Rd и Rp, то эти диапазоны применимы к двум сторонам кабеля. 
 +{{:2twist_pd_09.png?1024|}} 
 + 
 +Чтобы не заморачиваться с разными источниками можно запомнить общий диапазон: 0.2-2V - эта линия CCx станет CC. От 3V - VCONN
  
 А теперь увеличим фрагмент с подключением кабеля.  А теперь увеличим фрагмент с подключением кабеля. 
 {{:2twist_02.png?1024|}} {{:2twist_02.png?1024|}}
-До 3.183 видны пики, которые обозначают что источник подаёт на CC1 и CC2 напряжение и смотрит, пошел ли ток. Пики длительностью 40-50ms и отсутствие падения напряжения говорит о том, что устройства с pull-down резистором нет.+До 3.183 видны пики, которые обозначают что источник подаёт на CC1 и CC2 напряжение и смотрит, пошел ли ток (ток на CC1/CC2 смотреть мы не можем, поэтому догадываемся). Пики длительностью 40-50ms и отсутствие падения напряжения говорит о том, что устройства с pull-down резистором на линии нет.
  
 Подключение второй стороны обнаруживается в 3.404, когда появляется pull-down резистор телефона и напряжение 1.7V на CC2 указывает на коннект устройства. И дальше на CC2 (его уже можно называть CC) держится напряжение, на котором видны всплески модуляции пакетов PD. Подключение второй стороны обнаруживается в 3.404, когда появляется pull-down резистор телефона и напряжение 1.7V на CC2 указывает на коннект устройства. И дальше на CC2 (его уже можно называть CC) держится напряжение, на котором видны всплески модуляции пакетов PD.
Line 34: Line 50:
 А что со второй линией CC1? Через 150ms после подключения там устанавливается напряжение VCONN для питания маркера, то есть источник увидел резистор rA на VCONN и выдал напряжение.  А что со второй линией CC1? Через 150ms после подключения там устанавливается напряжение VCONN для питания маркера, то есть источник увидел резистор rA на VCONN и выдал напряжение. 
  
-Следующая точка - через 550ms от коннекта источник подаёт 5V на VBUS. Управление напряжением на VBUS и VCONN происходят независимо, VBUS можно поднимать сразу же, а VCONN может подниматься после обнаружения резистора на VCONN. Зачем нужен аналоговый способ (с помощью резисторов) для подачи напряжения на VBUS? Для а) потребителей без собственного питания, б) для простых устройств, для которых отдельный чип управления PD - это оверкилл и в) для запуска устройст с пустой батареей. А вот почему стандарт USB решил, что не нужно сразу подавать 5V на VBUS - это другой вопрос с непростым ответом.+Следующая точка - через 550ms от коннекта источник подаёт 5V на VBUS. Управление напряжением на VBUS и VCONN происходят независимо, VBUS можно поднимать сразу же, а VCONN может подниматься после обнаружения резистора на VCONN. Зачем нужен аналоговый способ (с помощью резисторов) для подачи напряжения на VBUS? Для а) потребителей без собственного питания, б) для простых устройств, для которых отдельный чип управления PD - это оверкилл и в) для запуска устройств с пустой батареей. А вот почему PD стартует с отключенным напряжением на VBUS, объясняется просто: в силу симметрии штекеров с двух сторон кабеля, на линии могут оказаться две зарядки. И, чтобы они не сгорели в объятьях, было принято решение: источник подает напряжение только после согласования ролей
  
 И последние интересные точки на графике - это общение по протоколу Power Delivery для переключения VBUS на 9V. Колебания на линии CC (CC2) незадолго до поднятия напряжения - это и есть взаимодействие PD. И последние интересные точки на графике - это общение по протоколу Power Delivery для переключения VBUS на 9V. Колебания на линии CC (CC2) незадолго до поднятия напряжения - это и есть взаимодействие PD.
Line 40: Line 56:
 Перечислим увиденные события Перечислим увиденные события
   * Обнаружение коннекта и выбор линии CC   * Обнаружение коннекта и выбор линии CC
-  * Обнаружение запроса на питание маркера и подача напряжения на VCONN +  * Обнаружение запроса на питание маркера и подача напряжения на VCONN. Этот пункт опционален, поскольку кабель может быть без маркера. А еще бывает кабель с сопротивлением Ra, но без маркера.  
-  * Подача 5V на VBUS (эти два пункта независимы)+  * Подача 5V на VBUS (этт и предыдущий пункты независимы и могут случиться в любом порядке)
   * Переключение на общение протоколом PD по линии CC   * Переключение на общение протоколом PD по линии CC
  
pd_connect.1772211072.txt.gz · Last modified: by gadmin