pd_connect
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| pd_connect [2026/02/27 10:33] – gadmin | pd_connect [2026/02/27 19:00] (current) – gadmin | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| === Введение === | === Введение === | ||
| - | Обсуждая процессы чтения маркера и измерения сопротивления кабелей, | + | Обсуждая процессы чтения маркера и измерения сопротивления кабелей, |
| === Приборы и материалы === | === Приборы и материалы === | ||
| + | В качестве продвинутого вольтметра использовался тесте KM003C с десктопной программой. Она позволяет записывать показания напряжения и тока на VBUS, а также напряжения на CC1, CC2, D+ и D- с последующим анализом графиков и их экспортом. Сразу замечу, | ||
| + | В качестве источника (source) выступал павербанк Ugreen с портом на 100W (нужна не мощность, | ||
| + | |||
| + | Советую графики открывать в отдельной закладке, | ||
| + | |||
| + | Вопрос на понимание структуры кабеля: | ||
| + | {{ : | ||
| === Опыт === | === Опыт === | ||
| Line 15: | Line 22: | ||
| * Разъединяем кабель (со стороны тестера) | * Разъединяем кабель (со стороны тестера) | ||
| * Выключаем запись | * Выключаем запись | ||
| + | |||
| + | Подключение кабеля с двух сторон разъема покажет отличие в напряжениях на линиях CC1 и CC2. | ||
| === Вольты и амперы === | === Вольты и амперы === | ||
| Line 23: | Line 32: | ||
| Теперь добавим на график напряжение на CC1 и CC2: | Теперь добавим на график напряжение на CC1 и CC2: | ||
| {{: | {{: | ||
| - | Стало интереснее и сложнее. Начнём с середины, | + | |
| + | Стало интереснее и сложнее. Начнём с середины, | ||
| + | |||
| + | Приведу для справки значения pull-up сопротивлений для разных источников. Обратите внимание, | ||
| + | {{: | ||
| + | Вторая таблица - это диапазоны напряжений и их интерпретация sinkом (если вдруг ему важен ток, который может дать источник на 5V). Поскольку сопротивление кабеля ничтожно по сравнению с резисторами Rd и Rp, то эти диапазоны применимы к двум сторонам кабеля. | ||
| + | {{: | ||
| + | |||
| + | Чтобы не заморачиваться с разными источниками можно запомнить общий диапазон: | ||
| А теперь увеличим фрагмент с подключением кабеля. | А теперь увеличим фрагмент с подключением кабеля. | ||
| {{: | {{: | ||
| - | До 3.183 видны пики, которые обозначают что источник подаёт на CC1 и CC2 напряжение и смотрит, | + | До 3.183 видны пики, которые обозначают что источник подаёт на CC1 и CC2 напряжение и смотрит, |
| Подключение второй стороны обнаруживается в 3.404, когда появляется pull-down резистор телефона и напряжение 1.7V на CC2 указывает на коннект устройства. И дальше на CC2 (его уже можно называть CC) держится напряжение, | Подключение второй стороны обнаруживается в 3.404, когда появляется pull-down резистор телефона и напряжение 1.7V на CC2 указывает на коннект устройства. И дальше на CC2 (его уже можно называть CC) держится напряжение, | ||
| Line 33: | Line 50: | ||
| А что со второй линией CC1? Через 150ms после подключения там устанавливается напряжение VCONN для питания маркера, | А что со второй линией CC1? Через 150ms после подключения там устанавливается напряжение VCONN для питания маркера, | ||
| - | Следующая точка - через 550ms от коннекта источник подаёт 5V на VBUS. Управление напряжением на VBUS и VCONN происходят независимо, | + | Следующая точка - через 550ms от коннекта источник подаёт 5V на VBUS. Управление напряжением на VBUS и VCONN происходят независимо, |
| + | |||
| + | И последние интересные точки на графике - это общение по протоколу Power Delivery для переключения VBUS на 9V. Колебания на линии CC (CC2) незадолго до поднятия напряжения - это и есть взаимодействие PD. | ||
| + | |||
| + | Перечислим увиденные события | ||
| + | * Обнаружение коннекта и выбор линии CC | ||
| + | * Обнаружение запроса на питание маркера и подача напряжения на VCONN. Этот пункт опционален, | ||
| + | * Подача 5V на VBUS (этт и предыдущий пункты независимы и могут случиться в любом порядке) | ||
| + | * Переключение на общение протоколом PD по линии CC | ||
| + | |||
| + | === А теперь Power Delivery === | ||
| + | Еще на шаг глубже в детали протокола, | ||
| + | {{: | ||
| + | |||
| + | Видите отличия? | ||
| + | Но самое ценное на этом графике, | ||
| + | {{: | ||
| + | Протокол PD включается не сразу, в стандарте заданы таймауты после выставления напряжения на VBUS и VCONN. А вот сами транзакции на шине происходят довольно оперативно. Первый блок обмена данными - это сообщения 2-12, сразу перед повышением напряжения до 9V. Там всё просто: | ||
| + | - (2) Источник запрашивает у кабеля маркер командой Discover Identity (направление и контрагенты видны в столбце Direction) | ||
| + | - (4) Маркер возвращает в ответе данные о кабеле | ||
| + | - (6) Источник формирует список профилей в пакете Source Cap | ||
| + | - (8) Потребитель запрашивает (Request) профиль 9V 2.2A | ||
| + | - (10) Источник подтвержает запрос (Accept) и переключает напржение на VBUS | ||
| + | - После Acceptа мы видим рост напряждения на VBUS | ||
| + | - (12) После роста напряжения источник рапортует о включении нового профиля (PS RDY). Все предыдущие команды занимали порядка 5-10 ms, а эта пошла через 200 ms после Accept | ||
| + | |||
| + | Оставшиеся команды - это запросы возможностей источника как потребителя (павербанк в своих возможностях указал про то, что он может менять роль, вот телефон и поинтересовался). Но нам это уже не так интересно. | ||
| + | |||
| + | Приведем пару экранов с расшифровкой пакетов. Первый экран - это пакет Source Cap со списком профилей: | ||
| + | {{: | ||
| + | Второй экран - это ответ маркера на Discover Identity, видны все поля из маркера | ||
| + | {{: | ||
pd_connect.1772188409.txt.gz · Last modified: by gadmin
