У меня есть полноскоростное USB-устройство, для которого я хочу предоставить 2 порта - по одному на противоположных концах корпуса. Это позволяет подключать кабель в любом удобном месте. Мой MCU (atmega32u4) имеет только один интерфейс, поэтому физические порты будут общими, но только один должен быть подключен одновременно.
Конечно, нельзя доверять пользователям не подключать обе стороны одновременно. Как защититься от этого?
Идеи, которые я придумал:
- Просто подключите их «как есть» и надейтесь, что хост сможет справиться с соединенными D + / D- выводами
- Вентиль NAND с отдельными выводами 5 В в качестве входа, вывод на полевой МОП-транзистор, который отключает Vcc, когда оба подключены.
Второй вариант звучит разумно, или требуется более сложное решение?
protection
usb-device
Монти
источник
источник
Ответы:
Как уже указывалось, вы не можете напрямую подключить два хоста к устройству - поэтому, если вы просто соедините их вместе, и кто-то подключит его с обоих концов, у вас возникнет проблема.
Однако у вас также есть проблема, если подключен только один конец. USB, особенно высокоскоростной (480 Мбит / с) режим, является контролируемым сопротивлением. Если вы соедините линии данных обоих разъемов вместе, вы получите то, что известно как заглушка в высокочастотной конструкции. Кабель, идущий к неиспользуемому разъему, ухудшит характеристики активного разъема.
Чтобы сделать это правильно, вы хотите мультиплексор IC. Вы можете купить специальные мультиплексоры USB2.0, разработанные специально для такого рода приложений - что-то вроде TS3USB30 . Это позволит вам подключить линии данных от обоих портов к входам мультиплексора и подключить выход к вашему устройству внутри. Мультиплексор отключит неиспользуемый разъем, который отсоединит заглушки линии передачи.
Для питания я, вероятно, использовал бы силовой мультиплексор, такой как диодная схема ИЛИ. Линия VBUS от одного из портов (до мультиплексора мощности) может затем использоваться в качестве входа в мультиплексор данных.
Заземление будет общим (подключенным) между двумя портами USB и вашим устройством.
источник
Мультиплексор, предложенный Томом Карпентером, является хорошим решением.
Но для полной скорости USB (12 Мбит / с) заглушки в сигналах не особенно важны. Если расстояние между концами заглушки остается ниже 1/10 длины волны, то есть ниже ~ 2 метров, отражения не будут сильно искажать форму волны.
Кроме того, уровни напряжения на выводах D + и D- будут оставаться в допустимом диапазоне, так что нет большого риска повреждения электроники для любого хоста.
Основная проблема, которая остается, заключается в том, что если вы соедините контакты + 5V от обоих хостов вместе, то могут возникнуть большие токи. Вы можете использовать диод из разъема + 5V каждого разъема USB, чтобы позволить току входить, а не выходить.
источник
Ленивый способ электронного проектирования будет состоять в том, чтобы просто использовать физический многоконтактный переключатель, чтобы выбрать, какой из них использовать.
Обратите внимание, что это даст дополнительное преимущество, поскольку вы сможете оставить их подключенными и использовать переключатель, чтобы выбрать, какой вход использовать.
источник
Нет USB-совместимого способа сделать это. USB не предназначен для совместного использования между двумя хостами, и попытка сделать это приведет к потенциально катастрофическим ситуациям.
В лучшем случае вы можете использовать USB-мультиплексор или коммутатор IC, с GPIO, чтобы определить, какой разъем подключен. Вы должны решить, какое USB-соединение имеет приоритет, потому что оба не могут быть одновременно подключены к вашему USB-интерфейсу.
Или посмотрите на альтернативы. Пусть один компьютер общается с другим. Или используйте Bluetooth или Wi-Fi или другой тип подключения.
источник
У меня есть планшет Wacom с этой функцией. Они решают проблему, которую вы описываете, используя механическую блокировку.
Есть пластиковый слайдер, который блокирует один порт или другой, в зависимости от его положения.
источник
Возможно, было бы проще оставить USB-разъем на одной стороне корпуса и дублировать и / или перемещать все другие элементы, обращенные к пользователю, симметрично. Затем корпус можно повернуть так, чтобы порт USB был обращен к разъему, а все остальные элементы по-прежнему были легко доступны.
Другой вариант заключается в размещении обоих портов на одной стороне корпуса (на противоположных концах) и добавлении в корпус скользящей заглушки, которую пользователь может перемещать, чтобы открыть один или другой порт. 12 МГц USB имеет хорошие шансы работать с подключенным к нему дополнительным отключенным портом.
источник