Можно ли использовать Raspberry Pi в качестве периферийного устройства USB?

44

Raspberry Pi имеет порт Micro USB для питания. У меня вопрос: этот порт предназначен только для питания или его можно использовать и для передачи данных? Я хотел бы иметь возможность подключить мой Raspberry Pi в качестве периферийного устройства USB к другому компьютеру. Возможно ли это через порт питания? Если нет, можно ли это сделать по-другому?

SDsolar
источник
Я знаю, что этот вопрос давно закрыт, но одна вещь, которую вы могли бы сделать, если бы вы действительно хотели, это запрограммировать Arduino с двумя последовательными портами для простой передачи сообщений. Немного хакерский, но вы должны быть в состоянии заставить что-то работать таким образом.
Райан Кеннеди
Кажется, что новая плата ввода-вывода, поставляемая с комплектом разработчика Compute Module, имеет ведомый USB-разъем ... как его заставить работать?
Козуч
Порт на Pi предназначен только для питания, но через адаптер можно подключиться к Pi через последовательное соединение, чтобы иметь базовый доступ к Pi
Wilf

Ответы:

29

Я посмотрел на схему ; контакты данных для подключения micro USB ни к чему не подключены. Поэтому нет способа установить RPi как внешнее устройство.

Может быть возможно смонтировать жесткий диск RPi или войти в систему по сети, используя SSH.

Выводы GPIO включают в себя набор линий данных UART, которые можно использовать для формирования последовательного соединения с RPi с вашего ПК.

Бит-бит USB

USB-битирование было сделано ( AVR V-USB ), однако вам нужно будет создать собственную плату расширения, в которую добавлен еще один порт USB. Вполне возможно, что этот порт может питать RPi. Сделав это, вам нужно написать какой-то драйвер. Удачи.

Если вы готовы пойти на все эти неприятности, возможно, стоит взглянуть на чип FTDI . Вы бы подключили это к контактам UART RPi. С точки зрения программного обеспечения, вы будете общаться с компьютером, как если бы это было последовательное устройство.

Алекс Чемберлен
источник
За исключением, может быть, переопределения USB с GPIO?
2
Там нет надежды там. Вы не можете побить USB.
Алекс Чемберлен
Эта диаграмма была тем, что я искал. Хороший ответ.
Jivings
1
@ Алекс, USB-бит с битами завершен. PIC 40 МГц может работать с низкой скоростью USB. Может быть, 700 МГц ARM может работать с нормальной скоростью?
finnw
3
dicks.home.xs4all.nl/avr/usbtiny - еще один перегруженный USB для 12 МГц AVR. Обратите внимание, что это возможно только потому, что в микроконтроллерах вы имеете полный контроль над часами и прерываниями. Вам нужно как минимум запустить RTLinux, чтобы получить такой контроль. Также вы должны использовать SPI, а не GPIO, чтобы сделать это.
Алистер Бакстон
8

Поскольку контакты данных порта micro USB не подключены к USB PHY на SoC, вы не можете использовать этот порт для данных (в режиме хоста или подчиненного устройства).

Однако должно быть возможно использовать порт USB типа A на модели A в подчиненном режиме.

Некоторые дальнейшие детали;

Модель B использует концентратор SMSC LAN9512 USB 2.0 и ИС контроллера Ethernet 10/100 для обеспечения нескольких физических хост-портов USB с одного USB OTG-порта, доступного на Broadcom SoC. (См. Схему здесь: http://www.raspberrypi.org/wp-content/uploads/2012/04/Raspberry-Pi-Schematics-R1.0.pdf )

Наличие этого концентратора IC не позволяет USB-портам использоваться в подчиненном режиме. Однако, поскольку Модель A не имеет этой микросхемы, а просто имеет один USB-порт, подключенный напрямую к OTG-порту SoC, должна быть возможность настроить его для работы в подчиненном режиме с помощью программного обеспечения.

Поскольку модель A имеет USB-порт с внутренней резьбой, потребуется переходной кабель HOST к HOST.

Пожалуйста, смотрите эту ветку Raspberry Pi Forum для более подробной информации: http://www.raspberrypi.org/phpBB3/viewtopic.php?f=63&t=15696.

Rob_Bishop
источник
5

Модель A сможет использовать стандартный интерфейс гаджета, поскольку USB на PI является OTG, тогда вы можете просто принудительно включить его в режим устройства.

Но это означает, что вы теряете Ethernet и любой другой USB

Гордон
источник
5

В моделях Rasberry PI A / A + / B / B + режим OTG отключен по разным причинам:

  • USB-порт занят USB-концентратором (Ethernet),
  • отсутствует 5-й контакт OTG (заземлен), или
  • контакты данных не подключены (порт питания).

Вам понадобится Raspberry PI Zero для OTG или так называемый Gadget Mode. Данные USB-порт можно использовать для OTG и «питания». На момент написания этой статьи были протестированы Serial и Ethernet, но другие должны работать с должным количеством усилий (клавиатура, диск, камера и т. Д.). Композитные устройства также должны работать. Смотрите больше информации на

Ожидается, что работа будет объединена с версией ядра rpy-4.4, чтобы функциональность OTG была доступна OOTB для более простого взлома.

Большая часть тяжёлой атлетики проводилась в Github raspberrypi / linux Issue # 1212 .

Мирослава
источник
Привет и добро пожаловать. Спасибо за ваш вклад. Вы можете внести свой вклад и здесь: raspberrypi.stackexchange.com/questions/38576/…
Ghanima
@Ghanima: сделано;) raspberrypi.stackexchange.com/a/40626/39346
Мирослава
Могу ли я использовать порт питания в качестве клиентского устройства, а другой порт - в качестве хост-порта? Было бы здорово использовать порт питания в качестве виртуального Ethernet для подключения к ПК, а другой порт для подключения usb-устройств к pi.
Алло
Этот ответ сбит с толку, особенно потому, что ссылки не предоставляют никаких подтверждающих доказательств утверждения о том, что разъем питания может использоваться для данных. Большинство из них просто о реализации режима ядра OTG в ядре, который теперь является стандартным и может быть выполнен, но не через разъем питания. Существует только один разъем , который может быть использован для обоих питания и передачи данных, а не два.
Златовласка
Я исправил ответ. Дело в том, что порт данных можно использовать для питания Raspberry PI Zero и в качестве порта OTG
myroslav
4

К сожалению, порты питания обычно не работают таким образом, поэтому вы не сможете использовать порт micro USB для чего-либо, кроме питания.

В настоящее время я не могу придумать, как вы можете использовать Pi в качестве периферийного устройства, однако есть несколько других способов доступа к Pi, включая SSH, FTP или общий доступ к samba.

Если вы уточняете, чего пытаетесь достичь, мы можем посоветовать лучший способ сделать это.

Jivings
источник
Просто гипотетический пример, я хотел бы использовать Raspberry Pi в качестве звуковой карты. Я бы, конечно, написал драйверы для обоих концов, но мне нужно как-то подключить его к ПК.
1
Элегантным решением для этого будет передача звука через SSH. Конечно, вы также можете попробовать использовать GPIO!
Jivings
2

Да, вы можете использовать модель A в качестве ведомого USB-устройства:

http://www.raspberrypi.org/forums/viewtopic.php?f=98&t=74098

Хотя он довольно ограничен использованием только в качестве запоминающего устройства (SD-карты) - нет доступа к GPIO, дисплея или даже использования процессора ARM.

Майк Редроб
источник
1

Да, вы можете это сделать, если вы используете какой-нибудь периферийный USB-контроллер с интерфейсом SPI, например MAX3420E, и напишите драйвер для него, если он еще не поддерживается в Linux, и обрабатываете определенный класс USB, который вы хотите реализовать.

Avra
источник
1

С тех пор, как был задан вопрос, была проделана большая работа. Теперь возможно использование некоторых моделей Rasberry Pi в качестве периферийного устройства USB (например, запоминающее устройство, последовательный порт, Ethernet, клавиатура, мышь). Смотрите эту суть и это руководство .

Диомидис Спинеллис
источник
0

Может ли Pi эмулировать устройство HID через USB?

Это может быть сделано с любым видом пи

Наименее дорогим решением является использование Pi Zero.

Текст этой ссылки слишком длинный для размещения здесь, но Ноль может быть HID любого вида. Клавиатура, мышь, флешка, камера, все, что вы можете придумать.

Превращение вашего Raspberry PI Zero в USB-гаджет

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

Сделать это клавиатурой или мышью легко.

SDsolar
источник
-2

Вы можете установить простое сетевое соединение с ПК на Raspberry Pi и использовать Pulse Audio для передачи звука по сети. Pulse Audio - это звуковой сервер, обеспечивающий прозрачность сети. Таким образом, вы можете воспроизводить звуковые файлы на своем ПК и слушать их через динамики, подключенные к Raspberry Pi.

MrBlues
источник