Чи можна використовувати Raspberry Pi як периферійний пристрій USB?


44

Raspberry Pi має Micro USB-порт для живлення. Моє запитання: чи цей порт призначений лише для енерговикористання чи його можна використовувати і для даних? Я хотів би мати можливість приєднати свій Raspberry Pi як USB-периферію до іншого комп'ютера. Чи можливо це через порт живлення? Якщо ні, чи можна це зробити іншим способом?


Я знаю, що це питання давно закрите, але одне, що ви могли б зробити, якби насправді хотіли б, це запрограмувати Arduino з двома послідовними портами, щоб просто пропускати повідомлення. Трохи хакі, але ви повинні мати можливість щось зробити так.
Райан Кеннеді

Нова плата вводу-виводу, що постачається разом з Комплект для розробки модулів обчислювальної техніки, здається, має підключений підключення USB ...
Козуч

Порт на Pi призначений лише для енергетичних цілей, але через адаптер можна підключитись до Pi через послідовне з'єднання, щоб мати базовий доступ до Pi
Wilf

Відповіді:


29

Я подивився схематично ; шпильки даних для мікро USB-з'єднання ні до чого не підключені. Тому немає можливості встановити RPi як зовнішній пристрій.

Можливо встановити жорсткий диск RPI або увійти через мережу за допомогою SSH.

GPIO-штифти містять набір ліній даних UART, які можна використовувати для формування послідовного з'єднання з RPi з вашого ПК.

Біт-бабінг USB

Біт-бабінг USB був зроблений ( AVR V-USB ), однак вам знадобиться розробити власну плату розширення, яка додала ще один порт USB. Можливо, цей порт міг би живити RPI. Зробивши це, вам потрібно було б написати якийсь драйвер. Щасти.

Якщо ви готові піти на всю цю проблему, можливо, варто замість цього подивитись мікросхему FTDI . Ви підключите це до штифтів UART RPi. З точки зору програмного забезпечення, ви б спілкувалися з комп'ютером так, ніби це був послідовний пристрій.


За винятком можливо повторного доповнення USB з GPIO?

2
Надії немає. Ви не можете розрядити USB.
Алекс Чемберлен

Ця схема була тим, що я шукав. Гарна відповідь.
Стрибки

1
@ Алекс, USB-розбиття USB було зроблено. PIC 40 МГц може робити низькошвидкісний USB. Можливо, 700MHz ARM може зробити нормальну швидкість?
finnw

3
dicks.home.xs4all.nl/avr/usbtiny - ще один збитий USB для AVR 12 МГц . Зауважте, що це можливо лише тому, що у мікроконтролерів ви маєте повний контроль над годинниковою роботою та переривання. Вам потрібно буде запустити RTLinux як мінімум, щоб отримати такий контроль. Також для цього слід використовувати SPI, а не GPIO.
Алістер Бакстон

8

Оскільки шпильки даних мікро-порту USB не підключені до USB PHY SoC, ви не можете використовувати цей порт для передачі даних (в режимі хост або підлеглий).

Однак слід мати можливість використовувати порт USB типу А на моделі А у підлеглому режимі.

Деякі подальші деталі;

Модель B використовує SMSC LAN9512 USB 2.0 концентратор та 10/100 Ethernet контролер IC для надання декількох фізичних 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 to HOST.

Будь ласка, перегляньте цю тему на форумі Raspberry Pi для отримання детальної інформації: http://www.raspberrypi.org/phpBB3/viewtopic.php?f=63&t=15696


5

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

Але це означає, що ви втрачаєте Ethernet та будь-який інший USB


5

У моделях Rasberry PI A / A + / B / B + відключений режим OTG з різних причин:

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

Вам знадобиться Raspberry PI Zero для ОТГ або так званий режим гаджетів. USB-порт даних може бути використаний для ОТГ та "живлення". На час написання цієї програми Serial та Ethernet були протестовані, але інші повинні працювати з належною кількістю зусиль (клавіатура, диск, камера тощо). Композиційні пристрої також повинні працювати. Більше інформації див

Очікується, що робота буде об'єднана у версію ядра rpy-4.4 для функціональності OTG, щоб бути доступною OOTB для більш простого злому.

Більшість важкої атлетики проводилось у випуску Github raspberrypi / linux №1212 .


Привіт і ласкаво просимо. Дякую за ваш внесок Ви можете також зробити свій внесок і тут: raspberrypi.stackexchange.com/questions/38576/…
Ghanima


Чи можу я використовувати порт живлення як клієнт-пристрій, а інший порт як порт-хост? Було б здорово використовувати порт живлення як віртуальний Ethernet для підключення до ПК та іншого порту для підключення usb-пристроїв до pi.
алло

Ця відповідь заплутана, тим більше, що посилання не надають жодних підтверджуючих тверджень про те, що роз'єм живлення можна використовувати для даних. Більшість з них просто стосується впровадження режиму гаджетів OTG в ядро, яке зараз є стандартним і може бути виконано, але не через роз'єм живлення. Є лише один гніздо, який можна використовувати як для живлення, так і для даних, а не два.
золотинки

Я виправив відповідь. Справа в тому, що порт даних можна використовувати для живлення Raspberry PI Zero і як порт OTG
myroslav

4

На жаль, порти живлення зазвичай не працюють таким чином, тому ви не зможете використовувати порт USB USB ні для чого, крім джерела живлення.

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

Якщо ви детальніше описуєте те, чого ви намагаєтеся досягти, то ми можемо порадити найкращий метод цього зробити.


Просто гіпотетичний приклад, я хотів би використовувати Raspberry Pi як звукову карту. Я б звичайно писав драйвери для обох кінців, але мені потрібно якось підключити його до ПК.

1
Елегантним рішенням для цього було б передавати аудіо через SSH. Звичайно, ви також можете спробувати використовувати GPIO!
Відхилення

2

Так, ви можете використовувати модель A в якості підлеглого пристрою USB:

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

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


1

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


1

З часу запитання було зроблено багато роботи. Використання деяких моделей Rasberry Pi як периферійного пристрою USB (наприклад, масового зберігання даних, послідовного використання, Ethernet, клавіатури, миші) тепер можливе. Дивіться цю суть і цей посібник .


0

Чи може Pi Emulate HID-пристрій за допомогою USB?

Це можна зробити з будь-якого типу Пі

Найменш дорогим рішенням є використання Pi Zero.

Текст цього посилання занадто довгий для публікації тут, але нуль може бути будь-яким видом HID. Клавіатура, миша, флешка, камера, що ви можете придумати.

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

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

Зробити це клавіатурою чи мишкою дуже просто.


-2

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.