Прошло уже почти пять лет, как во всевозможных устройствах начали появляться порты USB-C. Это стандарт, за рамки которого могут выходить многие производители и электронщики. Поначалу существовало много путаницы относительно того, что он в себе несёт, и всяческие отклонения со стороны производителей некоторых людей отталкивали. Однако теперь USB-C уже прочно вошёл в нашу жизнь, и я хочу показать вам, как именно этот стандарт используется, чего могут ожидать от него пользователи, а что он способен предложить электронщикам.
Прим. пер.: Это приквел уже вышедшей серии статей, посвящённой всестороннему анализу технологии USB-C. Остальные части серии доступны здесь:
Современные устройства имеют ряд типичных потребностей – им необходим вход или выход для питания (иногда и то, и другое), зачастую USB 2 и возможность высокоскоростной передачи данных вроде видеовхода/выхода или USB 3. USB-C представляет собой интерфейс, нацеленный на реализацию всех этих потребностей. При этом вышеперечисленные возможности являются необязательными, что одновременно можно считать и плюсом, и минусом. Однако вы можете быстро научиться понимать, на что способно устройство, исходя из одного его внешнего вида. Ну а на случай сомнений я подскажу вам, как его можно проверить.
▍ Возможности коммуникации, конфигурация и подвохи
Как известно, штекер USB-C можно разворачивать, подключая в двух разных положениях, что стало значительным улучшением в сравнении с USB-B. Чтобы такое стало возможным, в штекере присутствует канал конфигурации CC – одножильная линия, которая подключается к одному из двух контактов CC в штекере и является необходимой для работы USB-C. В простых случаях USB-C вроде «получения USB 2.0 и 5 В на порту» достаточно следовать простому принципу – установить pulldown-резистор 5,1 кОм на каждом контакте CC. Таким образом вы получите порт, способный работать со всеми подходящими устройствами.
Естественно, в USB-C есть поддержка выше 5 В и USB 2.0. Из этого порта можно получить широкий спектр напряжений, что довольно удобно для зарядки таких устройств, как ноутбуки. Он может предоставить нам возможности USB 3, DisplayPort и Thunderbolt. К большинству ноутбуков через этот порт можно подключать док-станцию, которая по полной задействует все преимущества USB-C, позволяя выводить сигнал на дисплей с высоким разрешением, использовать множество USB-портов и заряжать различные устройства – всё с помощью одного кабеля. Как же это работает?
В случаях, когда требуется напряжение выше 5 В (USB-PD) или скорость соединения выше USB 2 и 3 (переменные режимы), эти возможности можно активировать через ту же линию CC. Это одна жила, обеспечивающая двухстороннюю коммуникацию, что делает её полудуплексным каналом. По факту это протокол вроде Ethernet с фиксированной скоростью 300 КБ/с. Существует множество микросхем, понимающих этот протокол и способных реализовать ряд определённых возможностей. При этом некоторые чипы и периферия микроконтроллеров позволяют сообщать с помощью этого протокола что угодно.
▍ Великие возможности
В портах USB-C есть контакты для четырёх высокоскоростных дифференциальных пар, то есть всего таких контактов восемь. Во многих простых устройствах с USB-C они отключены, но потенциал этих портов огромен. Во-первых, обычно, если такой порт присутствует в ноутбуке, то вы можете получить через него скорости USB 3.1 или 3.2. Порт USB 3, как правило, задействует две дифференциальные пары из четырёх, но некоторые устройства поддерживают комбинацию 2x2, что удваивает количество пар и скорость передачи. При этом всё чаще порты USB-C можно задействовать в качестве DisplayPort – используя два или четыре канала, вы можете подключать дисплеи с довольно высоким разрешением.
Ещё у нас есть ThunderBolt, полупроприетарная технология, в которой также используются высокоскоростные пары разъёма USB-C. Она может служить в качестве USB 3, DisplayPort и даже PCIe, хотя сама ничем из этого не является. С помощью ThunderBolt можно получить прокачанную док-станцию с расширенными возможностями DisplayPort, более скоростными портами и даже возможностью подключения внешнего GPU. Думаю, вы не удивитесь, что это редчайшая и самая дорогостоящая опция из всех перечисленных.
Учитывая описанные возможности получения высокой скорости и напряжения, объединение всего этого в одном разъёме имеет сильные плюсы. Ваша зарядка USB-C для ноутбука также способна при необходимости заряжать телефон, а благодаря агрессивной стандартизации теперь среди зарядных устройств остаётся всё меньше проприетарных решений.
Если у вас есть док-станция Nintendo Switch с USB-C, то теоретически при условии возможности механического подключения она должна подходить и к ноутбуку, а док-станции для ноутбуков будут работать с вашей Steam Deck. Док-станции становятся всё более разумным решением – с ними вы для всего используете один кабель, и работают они с большинством устройств USB-C.
С каждым годом возможности USB-C продолжают расширяться. К примеру, в 2021 году разработчики этого стандарта заявили о внедрении EPR — это говорит об увеличении поддержки до 240 Вт при 48 В @ 5 A, что превосходит SPR, при котором порт USB-C не способен обеспечить более 100 Вт при 20 В @ 5 A. По сути, это устраняет необходимость использовать для ноутбуков переходники на круглые разъёмы из-за ограниченности USB-C поддержкой всего 100 Вт – больше не нужны все эти «универсальные» блоки питания с кучей переходников.
На горизонте маячит появление стандарта USB 4, который будет аналогичен ThunderBolt, но не во всём — только пока не ясно в лучшую или худшую сторону. Как бы то ни было, вскоре в компьютерах начнут появляться порты USB 4 и, надеюсь, настанет день, когда каждый ноутбук, включая самые дешёвые, будет оснащён высокоскоростным интерфейсом.
Если говорить в целом, то впереди у USB-C виднеется яркое будущее. Благодаря всему тому опыту, который индустрия десятилетиями накапливала путём разработки всевозможных портов, кабелей и стандартов, он во многих аспектах был спроектирован достаточно грамотно и имеет потенциал для дальнейших доработок.
Естественно, USB-C также породил собой новое поле для проб и ошибок.
▍ Памятная история провалов
Страшные истории про USB-C звучат повсюду – думаю, каждый, кто использовал такие разъёмы, может рассказать о случаях, когда этот стандарт его подвёл. У USB-C больше положительных сторон, чем проблемных, но я твёрдо верю в необходимость помнить все связанные с ним провалы, чтобы можно было на них учиться и находить способы их избегать.
Не все составляющие стандарта USB-C хорошо продуманы. Первой на ум приходит проблема кабелей и портов. Используя порт USB-C, вы не можете на взгляд определить, какие именно возможности он поддерживает. То же касается кабелей. Ситуация тут довольно аховая – для тех, кто ещё толком не разобрался, использование USB-C в некоторых случаях может быть сопряжено с догадками и упованием на успешный результат. Существуют руководства о том, как различать кабели, и в других статьях серии я об этом буду говорить. С учётом всего этого, производителям для начала следует внедрить отчётливую систему маркировки изделий.
В реализации стандарт USB-C довольно сложен, так как подразумевает использование множества конечных автоматов и несёт в себе немало тонкостей. При этом сама спецификация стандарта печально известна своей громоздкостью: описание разъёмов и кабелей занимает 350 страниц, а в документе, посвящённом протоколу USB-PD, их вообще 600+.
Многие производители трудятся над совершенствованием своей продукции долгие годы, но в ней по-прежнему встречаются весьма странные пограничные случаи. Ноутбуки, работающие только с определёнными зарядными устройствами и наоборот; док-станции, которые дружат только с определёнными ноутбуками или с определённой зарядкой; кабели, работающие лишь в одной ориентации; или устройства, ведущие себя по-разному в зависимости от стороны подключения штекера. Мистики тут предостаточно.
Помимо этого, есть бесчисленное множество вариантов неправильного использования технологии USB-C, и некоторые производители в этом особенно преуспевают. Стандарт не виноват в том, что другие реализуют его ошибочно – при определении сложного стандарта вы можете реализовать лишь ограниченное число видов защиты. Однако перед нами остаётся целая новая категория проблем, которые нужно иметь в виду. Некоторые грехи USB-C сложно простить и необходимо заострять на них внимание, а некоторые являются менее очевидными – многие мы разберём в остальных публикациях серии.
▍ Широкое поле для экспериментов
Это важно помнить – USB-C со временем будет становиться всё более согласованным. При этом в нём также будет проявляться всё больше возможностей для личных экспериментов. Всё благодаря постепенному накоплению знаний и появлению новых аппаратных решений. Помимо этого, экосистемы USB-C в наших домах с каждым днём лишь разрастаются. Сегодня, если вы что-либо проектируете, то обязательно нужно учитывать использование этой технологии.
Давайте обобщим, что вам потребуется для добавления порта USB-C, который позволит вашему устройству получать 5 В при 3 А и передавать данные со скоростью USB 2.0 в обоих положениях штекера.
Symbol: USB_C_Receptacle_USB2.0; footprint: USB_C_Receptacle_HRO_TYPE-C-31-M-12
Вот и всё. В сравнении с MicroUSB потребуется лишь два дополнительных резистора, и контакты в этом случае паять проще. Подключите резисторы, как показано на схеме. Не объединяйте контакты CC, как это сделали в Raspberry Pi 4, и не исключайте никакой из резисторов. Если их не установить, ведущий порт Type-C не подаст вашему устройству 5 В – во многих дешёвых продуктах так и бывает. Без резисторов 5,1 кОм питание девайс не получит, и потребуется использовать кабель USB-A – USB-C. Если исключить из схемы лишь один резистор – порт будет работать только в одном положении подключения штекера – такое тоже встречается в некоторых дешёвых устройствах.
Любой девайс, которому нужно получить 5 В, так или иначе имеет эти резисторы – будь то на плате или внутри микросхемы USB-C. Для простой задачи обеспечить 5 В и USB 2.0 можно просто взять резисторы 5,1 кОм, 1%. Однако также можно запараллелить два резистора на 10 кОм, и такой вариант вполне сработает. Лично я просто заказала кучу резисторов на 5,1 кОм, и они мне очень пригодились. Если у вас есть порт, в котором разработчики забыли добавить эти резисторы, можете заказать гибкие промежуточные печатные платы, которые позволят без проблем впаять их.
На выбор существует множество различных разъёмов USB-C. Наиболее востребованными являются 16-контактные, но также есть куча совместимых по выводам моделей. К тому же паять их вручную довольно легко, особенно при наличии оплётки для выпайки на случай ошибок. Обязательно убедитесь, что не взяли разъём без контактов СС. В противном случае вы не сможете подключить pulldown-резисторы, и подобные разъёмы заработают с портами Type-C только при использовании кабеля USB-A – USB-C, что окажется серьёзным ограничением.
Естественно, потенциал USB-C выходит далеко за обеспечение 5 В @ 3 А и USB 2.0, и в других статьях серии я покажу, как можно задействовать все его возможности. Однако для вас важно запомнить эту формулу, поскольку чаще всего вам потребуется именно она. К тому же, отталкиваясь от неё, будет проще понять и остальные. При этом вы можете использовать контакты SBU для вывода отладочных подключений вроде UART, так как SBU используется только в DisplayPort. Однако могут быть сложности с поиском плат штекеров, в которых выводы SBU представлены в удобном для ручной пайки виде. И если вы однажды окажетесь в высшей лиге специалистов по портам USB-C, то также сможете реализовывать отладку совместимым со стандартом способом.
▍ Следовать правилам не всегда обязательно
И даже полное соответствие стандарту не гарантирует 100% безопасности
Для электронщика согласованность со стандартом USB-C – это палка о двух концах. Отклоняясь от стандарта, вы можете убить ноутбук, а можете и добиться серьёзных преимуществ без каких-либо опасностей или недостатков. Некоторые сценарии выходят за рамки допустимых не потому, что являются реально опасными, а ввиду того, что могут вызвать путаницу у типичного пользователя или не обеспечить идеальную функциональность. При этом во многих случаях худшим следствием отклонения от стандартов станет то, что кто-нибудь в интернете разозлиться на вас из-за какой-то мелочи.
В других статьях серии будут затронуты моменты, которые по праву считаются недопустимыми и должны всегда избегаться. Я также покажу, как можно мягко (или грубо) нарушать стандарты, указав случаи, когда это может принести пользу, а когда может казаться, что их можно нарушить, но на деле этого делать никак не стоит. Вот вам рекомендация – когда вы слышите, что планируемое вами решение нарушает стандарты USB-C, очень важно разобраться, о каких именно последствиях идёт речь конкретно в вашем случае.
Давайте изучать, распространять и нарушать стандарт USB-C вместе! До встречи в других статьях!
Автор: Дмитрий Брайт