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:48] gadminpd_connect [2026/02/27 19:00] (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 40: Line 56:
 Перечислим увиденные события Перечислим увиденные события
   * Обнаружение коннекта и выбор линии CC   * Обнаружение коннекта и выбор линии CC
-  * Обнаружение запроса на питание маркера и подача напряжения на VCONN +  * Обнаружение запроса на питание маркера и подача напряжения на VCONN. Этот пункт опционален, поскольку кабель может быть без маркера. А еще бывает кабель с сопротивлением Ra, но без маркера.  
-  * Подача 5V на VBUS (эти два пункта независимы)+  * Подача 5V на VBUS (этт и предыдущий пункты независимы и могут случиться в любом порядке)
   * Переключение на общение протоколом PD по линии CC   * Переключение на общение протоколом PD по линии CC
  
Line 62: Line 78:
 Оставшиеся команды - это запросы возможностей источника как потребителя (павербанк в своих возможностях указал про то, что он  может менять роль, вот телефон и поинтересовался). Но нам это уже не так интересно. Оставшиеся команды - это запросы возможностей источника как потребителя (павербанк в своих возможностях указал про то, что он  может менять роль, вот телефон и поинтересовался). Но нам это уже не так интересно.
  
 +Приведем пару экранов с расшифровкой пакетов. Первый экран - это пакет Source Cap со списком профилей:
 +{{:2twist_pd_06.png?1024|}}
  
- +Второй экран это ответ маркера на Discover Identity, видны все поля из маркера 
-  +{{:2twist_pd_07.png?1024|}}
  
pd_connect.1772210925.txt.gz · Last modified: by gadmin