Включение и выключение порта 3G (или любого USB)?

13

У меня есть проект, который потребует использования Raspberry Pi в среде с низким энергопотреблением, но это также потребует подключения 3G. Я еще не проводил никаких тестов, но у меня есть предположение (и поправьте меня, если я ошибаюсь), что 3G-модем, подключенный к Raspberry Pi и подключенный к сети, будет использовать питание, а с учетом окружающей среды - любую дополнительную мощность использование не является обязательным. Итак, как программно включить и выключить модем 3G или разъем USB на Raspberry Pi?

TiernanO
источник
1
AFAIK Вы не можете отключить USB-порт, поэтому он будет полагаться на ключ 3G, имеющий режим энергосбережения - он, вероятно, потребляет меньше энергии, когда не подключен ... но он, вероятно, использует разумное количество энергии для подключения / отключения.
Алекс Чемберлен
1
Дело в том, что это будет полностью автономное и удаленное устройство ... оно должно включать и выключать 3G по мере необходимости ... там не будет никого, кто мог бы отключить или подключить его ... отсюда программная часть ...
TiernanO
3
Как сказал Алекс, отсутствует механизм управления питанием USB-портов Pi от программного обеспечения - они напрямую подключены к шине питания только с пассивным ограничителем тока. Поэтому, если вы не можете указать самой периферии выключить / перевести в режим сна, вам понадобится внешнее устройство переключения питания, которым вы управляете через сам USB или через вывод GPIO.
Крис Страттон

Ответы:

8

К сожалению, невозможно полностью отключить питание с помощью одного программного обеспечения. Вам нужно будет добавить схему переключения, подключенную к контактам GPIO, чтобы вызвать «аппаратное отключение» путем отключения питания вашего оборудования.

Редактировать:

Для переключения с GPIO это просто простая транзисторная схема.

введите описание изображения здесь

Bприкреплен к вашему контакту GPIO. В зависимости от того, ВЫСОКИЙ или НИЗКИЙ, транзистор включен или выключен. Cи Eвы подключаете линию питания к USB-устройству (R L ).

Для получения более подробной информации лучше заглянуть на этот сайт: http://www.kpsec.freeuk.com/trancirc.htm#switching и специально на http://www.kpsec.freeuk.com/trancirc.htm#ic

Мос
источник
Думаешь, ты мог бы подробнее рассказать о том, как это сделать?
Jivings
Конечно. Я буду редактировать
Mose
да, это хорошо - вы можете поместить этот транзистор в короткий удлинительный USB-кабель. Вам нужно будет разрезать его и перехватить линии электропередачи, о которых говорилось здесь. Затем вы можете подключить 3G к расширению и контролировать питание. Мне нравится +1
Петр Кула
Это выглядит многообещающе! Благодарность! чтобы поговорить с моим другом по электротехнике, нужно будет поболтать, но пальцы скрещены! Еще раз спасибо!
TiernanO
5

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

Я бы предпочел использовать переключаемый USB-концентратор, который позволяет включать / выключать любые его нисходящие порты через программное обеспечение с помощью простой команды.

Что-то вроде этого переключаемого USB-концентратора должно работать на то, что вы хотите.

electrfunch
источник
1
Это выглядит так круто! Я должен попробовать это ... Я думаю, что это также может быть удобно для умной зарядки телефонов ... Хммм .... Спасибо!
TiernanO
2
Отказ от ответственности: я сейчас работаю в Yepkit. Так что вы можете считать меня предвзятым по этому вопросу.
electrfunch
1
Поскольку устройство может быть подключено пользователем в любое время, спецификации USB указывают, что это должно выполняться драйверами и устройствами. Так что я не вижу смысла тратить 29 €, когда вы можете построить простую электронику для центов с тем же результатом, а также подкрепленные спецификациями.
Моисей
3

Вы можете использовать мой инструмент uhubctl , он поддерживает модели Raspberry Pi моделей B +, 2B, 3B, 3B + и 4B - эти модели имеют аппаратную возможность выключать и включать питание USB. Но имейте в виду, что это оборудование поддерживает только отключение или включение всех портов USB одновременно, а не независимо. Однако шины питания USB и Wifi + Ethernet можно контролировать независимо (за исключением 4B, который не использует интерфейс USB для работы в сети).

Используйте это так:

Отключите питание всех портов USB (необходимо использовать порт 2):

sudo uhubctl -p 2 -a 0

Включите все порты USB (необходимо использовать порт 2):

sudo uhubctl -p 2 -a 1

Отключите питание для Wi-Fi + Ethernet (необходимо использовать порт 1):

sudo uhubctl -p 1 -a 0

Обратите внимание, что Raspberry Pi 4 сильно отличается от предыдущих моделей, поскольку у него есть чип USB3. Вы можете использовать команду, подобную этой, чтобы выключить питание (необходимо использовать порт 4):

sudo uhubctl -l 2 -p 4 -a 0

Если ваш Raspberry Pi не поддерживает переключение питания USB, вы можете подключить внешний USB-концентратор, который поддерживает (см. Список совместимых моделей ), и управлять питанием этого внешнего концентратора с помощью uhubctl.

MVP
источник
2

Привет, я согласен с @electrfunch, так как я работаю над проектом управления устройствами через порты USB. Вместо встроенной электронной схемы, предложенной @Mose, я создал свою собственную изолирующую плату с использованием реле и выглядит как концентратор USB-коммутатора, и это имеет смысл, поскольку даже при первоначальном игнорировании токи внутри Raspberry Pi начнут становиться критерием для дольше работать, что может повлиять на вашу производительность Pi.

Для того, что я имею в виду, вы можете обратиться к этим руководствам для измерений низкого тока:

Ссылка 1

Ссылка 2

Shan-Десаи
источник