Почему не читается eMarker?

Почему не читается eMarker?

I N

В прошлой статье https://telegra.ph/Kak-USB-tester-chitaet-eMarker-01-16 мы обсудили механизм, с помощью которого USB-тестеры запрашивают у кабеля данные из eMarker. И было сказано, что механизм извлечения кривой, нестандартный, но работает с большинством кабелей. И вот у меня оказался кабель, который вёл себя удивительным образом:

  1. С тестером Ryken X3 при использовании Варианта 1 (питание через HID) eMarker не читался
  2. С тестером Ryken X3 при использовании Варианта 3 (питание через разъем-"папу" и адаптер в USB A) маркер прекрасно читался
  3. С тестером KM003c при использовании Варианта 3 маркер прекрасно читался
  4. Самое удивительное было с тестером KM003c при использовании Варианта 1: маркер читался только в одном положении. А после переворота штекера маркер переставал читаться.

То есть, если использовать рабочий разъем-"папу" для питания, то всё читается, а если запитывать через hid, то Ryken не читает, а KM003C читает только в одном положении штекера.

Начнем с базы. Как выглядит штатный процесс ?

стандартный процесс согласования линии СС

На графике три полезных области.

  1. Отсоединение sinkа. Это сделал телефон при загрузке, поэтому мгновенно начинается соединение
  2. Напряжение на СС1 1.6V, на CC2 0.33V. Это явное подключение потребителя, причем линия CC подсоединена к CC1
  3. Через некоторое время видим поднятие напряжения на CC2 до 3.1V. Это использование CC2 как линии VCONN для питания маркера.

Для наглядности с графика убрано напряжение на VBUS, туда подаётся 5V через 400ms после поднятия напряжения на VCONN/CC2. Source запрашивает маркер уже после получения 5V на VBUS.

Ryken X3 ищет eMarker

А вот что делает тестер Ryken X3 при поиске маркера. Тестер поочередно имитирует подачу напряжения 3.2V на VCONN и ждет 1.5c ответа от маркера. При этом на предполагаемой линии CC напряжение равно нулю. Считаем, что если нет потребителя, то и смотреть на CC некому. Центральный узкий пик в 300 ms - это как раз получение ответа от маркера. Получили ответ на CC, показали на дисплее и продолжили искать маркер.

Картинка напряжений на CC1/2 не меняется, если использовать один и тот же хороший кабель при запитывании тестера через HID и через разъем-папу. Отличие только на линии VBUS: при питании через HID там ноль, а при питании через папу там будут стабильные 5V.

А вот кабель Toocki 240W с экранчиком ваттметра при питании через HID маркер тестеру Ruken X3 не отдаёт. И очевидной причиной является ноль на VBUS. Похоже, что этому кабелю не нравится ноль на VBUS. Похоже, что электронике кабеля недостаточно 3.2V на VCONN и он требует также 5V на VBUS.

Первый нюанс: кабель может потребовать напряжение на VBUS для чтения маркера. Для Ryken X3 это можно сделать только в вариантах с подключением питания через рабочий разъем-"папу".
Цитата из первой статьи: Если вдруг кабель (его электронные компоненты) ожидает правильных напряжений от VBUS или CC, то конструкция с питанием через HID не сработает.

Параллельно обнаружился второй нюанс: иногда маркер не читался даже с питанием через "папу". Дело было в распайке адаптера USB A - Type C. У плохого адаптера пин VCONN был подключен pull-up. Наличие резистора бесполезно для штатного использования адаптера, поскольку на стыке с USB A некому проверять Ra и поднимать напряжение на VCONN, но для нашей задачи, где тестер должен единолично управлять напряжением на VCONN, наличие pull-up резистора просто меняет напряжение. У второго адаптера резистор был только на CC, так что с ним проблем не было. Вопрос про резистор на B5 можно прочитать здесь: https://electronics.stackexchange.com/questions/684206/is-pin-b5-vconn-connected-to-anything-in-a-usb-type-c-legacy-cable-assembly .

Второй нюанс: при подключении через разъем-"папу" чтению может мешать pull-up резистор в адаптере. Есть три решения проблемы. Первое решение: использовать Вариант 4, в котором pull-up будет влиять на другую сторону кабеля (мы же помним, что линия VCONN не должна доходить до второго конца кабеля). Второе решение: взять адаптер из комплекта для измерения сопротивлений и отключить линии CC1/2 (я описывал адаптер тут: https://telegra.ph/Soprotivlenie-USB-kabelej-01-17). Ну и третье решение: найти адаптер без резистора на VCONN. Для проверки нужно проверить сопротивление между VCC и пинами A5/B5. Только на один из них должно быть сопротивление 55кОм.
Цитата из первой статьи: В вариантах 2-4 на состояние шины также будет влиять pull-up резистор на 56кОм между VBUS и CC, который находится в любом переходнике с USB A на Type C.

Перейдем к тестеру KM003C. Почему у него получается считать маркер даже при питании от HID-порта?

KM003C читает маркер

Ответ на графике выше. На CC1/CC2 обычные напряжения, но мы еще видим и 4V на VBUS. "Сколько смог".

А здесь не читает

А вот после переворота штекера тестер зачем-то выдал СС1 3.2V и CC2(VCONN) 2.6V. И на VBUS напряжения не осталось.

Четыре обнаружения маркера со сменой ориентации штекера. Все успешные (кабель хороший).

Выше график четырех последовательных чтений маркеров. Штекер переворачивался. Нечетные чтения хорошие, с правильными напряжениями VBUS/VCONN/CC: 4.3/3.2/0.5, а четные плохие: 0.0/3.2/2.7. Понятно, что как раз на четных не читается проблемный кабель.

Почему KM003C там себя ведет - неизвестно. Может быть возможности управления напряжением на CC1/CC2 у него ограничены и связаны между собой. Возможно вторая комбинация напряжений нужна для чтения маркера у других проблемных кабелей (и было добавлено опытным путем). Но это факт: логика имитации тестером коннекта по-разному обрабатывает стороны штекера в условиях питания от HID-разъема.

Третий нюанс: тестер KM003C ведет себя по-разному для двух сторон разъема кабеля при питании от HID. Судя по сообщению "переверните разъем", это осознанное и известное производителю поведение. Решение: либо перевернуть разъем, либо питать от разъема-папы

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

Максимально параноидальная конфигурация, которая решает все известные проблемы - это Вариант 3 (тестируемый кабель с повешенным концом, питание подаётся на разъем-папу), причём питание подключено через переходник с выключенными линиями CC1/CC2. Ну или для KM003C схема с питанием через HID, но с готовностью перевернуть разъем.

Удачи в измерениях!











Report Page