banner
Дом / Блог / Все о USB
Блог

Все о USB

Jan 15, 2024Jan 15, 2024

За шесть месяцев, прошедших после выхода последней статьи о USB-C, я придумал кучу способов, которыми можно было бы улучшить эти статьи. Такое ощущение, конечно, нормально, даже ожидаемо. Теперь я верю, что есть несколько пробелов, которые я мог бы устранить. Например, я предоставил недостаточно примеров схем, а иногда одна схема может передать информацию лучше, чем тысяча слов.

Давайте это исправим! Я дам вам схемы типов устройств USB-C, которые вы, вероятно, захотите собрать. В этой статье я также поделюсь несколькими номерами деталей микросхем, но, конечно, у меня нет исчерпывающей коллекции — если вы найдете более интересные микросхемы, которые работают для целей USB-C и не упомянуты здесь, пожалуйста, сделайте это. дайте нам знать в комментариях!

В первой статье мы видели первый пример схемы — порт USB-C на стороне устройства («восходящий»), который поддерживает USB 2.0 и питание 5 В. У вас должны быть резисторы номиналом 5,1 кОм, по одному резистору на каждый вывод, и не забудьте соединить оба контакта данных — при необходимости используйте переходные отверстия. Если вы хотите определить величину доступного вам тока, вы также можете подключить АЦП или компараторы к обоим выводам CC вместе, хотя чаще всего ваше устройство достаточно маломощное, и нет причин беспокоиться.

Теперь, если вы хотите сделать устройство со штекером USB-C, схема подключения аналогична. Единственное отличие состоит в том, что вам нужно заполнить только одно из раскрывающихся значений CC и подключить одну пару контактов D+/D- вместо обеих пар. На практике ничего плохого не произойдет, если вы подключите вторую пару контактов USB 2.0, по стандарту это просто грубо; Раньше он конфликтовал с определенным типом портов и кабелей (VirtualLink), которые больше не продаются.

Однако, если вы подключите выпадающие напряжения 5,1 К к обоим контактам CC, вы случайно получите хакерский аксессуар: адаптер режима отладки, который поможет вам получать дополнительные сигналы от некоторых портов USB-C. Например, на ноутбуке Framework плата с разъемом USB-C с обоими раскрывающимися кнопками переключит порт USB-C в режим отладки и откроет соединение EC UART на контактах SBU. Если вы не создаете такой аксессуар для отладки, вам следует заполнить только одно из раскрывающихся списков и соответствующим образом подключить контакты USB 2.0.

Что, если вы хотите создать хост-порт? С одной стороны, это проще, потому что вам не обязательно выполнять какие-либо измерения АЦП. Вместо этого вы добавляете подтягивающие напряжения, разные значения для разных величин доступного тока. Не все устройства проверяют наличие подтяжки, но телефоны это делают, поэтому, если вы делаете импровизированное зарядное устройство USB-C, телефон или ноутбук могут не распознать его как действительный способ зарядки, если у вас нет подсоединения. -UPS. Их добавление тоже не составит большого труда!

Что еще более важно, вы можете управлять VBUS, включая его только после того, как обнаружите понижение напряжения на одном из контактов CC. В противном случае у вас не обязательно возникнет проблема, но она охватывает некоторые важные крайние случаи, например, когда кто-то подключает кабель USB-A к USB-C к вашему порту!

Я никогда не делал эту схему, но, на мой взгляд, ее должно быть достаточно, чтобы использовать два полевых транзистора, по одному на каждый вывод CC, оба включены параллельно. В этой схеме могут быть крайние случаи — улучшения приветствуются! С другой стороны, я несколько раз использовал разъемы портов USB-C с выдвижным механизмом в качестве хост-портов, так что это определенно не является жестким требованием, и вам не всегда нужно разбирать свою коллекцию полевых транзисторов.

В целом, если вы создаете хост-порт, вам нужно сделать две вещи, и ни одна из двух не является обязательной. Кроме того, если вы хотите усложнить схему или, возможно, даже создать двойной порт, есть микросхемы, которые помогут вам с этой частью USB-C!

Например, возьмем WUSB3801. Он обеспечивает обнаружение как источника, так и приемника, имеет внутри все необходимые подтягивающие и подтягивающие устройства и даже может выполнять порты двойной роли, что позволяет создать любой порт питания на 5 В. Он может выводить статус порта с помощью нескольких GPIO, или вы можете подключить его к микроконтроллеру через I2C, и у него даже есть идентификационный контакт, так что вы можете использовать его для полной замены порта MicroUSB на порт USB-C! WUSB3801 достаточно мал, достаточно паяем и достаточно универсален. Например, на сервере Hackaday Discord кто-то построил схему WUSB3801, которая ограничивает ток литий-ионного зарядного устройства в зависимости от того, может ли подключенный порт USB-C выдавать 3 ампера или нет.