Bisakah saya menggunakan Raspberry Pi sebagai perangkat periferal USB?

44

Raspberry Pi memiliki port Micro USB untuk catu daya. Pertanyaan saya adalah apakah port ini hanya untuk keperluan listrik atau dapatkah itu digunakan untuk data juga? Saya ingin dapat melampirkan Raspberry Pi saya sebagai periferal USB ke komputer lain. Apakah ini mungkin melalui port daya? Jika tidak, dapatkah ini dilakukan dengan cara lain?

SDsolar
sumber
Saya tahu pertanyaan ini sudah lama ditutup, tetapi satu hal yang bisa Anda lakukan jika Anda benar-benar ingin memprogram Arduino dengan dua port serial untuk sekadar mengirim pesan. Sedikit retas, tetapi Anda harus bisa membuat sesuatu bekerja seperti itu.
Ryan Kennedy
Papan IO baru yang dikirimkan dengan Compute Module Development Kit tampaknya memiliki konektor USB slave ... bagaimana orang dapat membuatnya bekerja?
Kozuch
Port pada Pi hanya untuk keperluan daya, tetapi melalui adaptor dimungkinkan untuk terhubung ke Pi melalui koneksi serial untuk memiliki akses dasar ke Pi
Wilf

Jawaban:

29

Saya sudah melihat skema ; pin data untuk koneksi micro USB tidak terhubung ke apa pun. Oleh karena itu, tidak ada cara untuk memasang RPi sebagai perangkat eksternal.

Dimungkinkan untuk memasang hard drive RPi atau login melalui jaringan dengan menggunakan SSH.

Pin GPIO termasuk satu set jalur data UART, yang dapat digunakan untuk membentuk koneksi serial ke RPi dari PC Anda.

Bit-banging USB

Bit-banging USB telah dilakukan ( AVR V-USB ), namun, Anda perlu merancang papan ekspansi Anda sendiri yang menambahkan port USB lain. Bisa dibayangkan port ini bisa memberi daya pada RPi. Setelah melakukan ini, Anda harus menulis semacam driver. Semoga berhasil.

Jika Anda siap untuk pergi ke semua masalah ini, mungkin ada baiknya melihat Chip FTDI sebagai gantinya. Anda akan menghubungkan ini ke pin UART dari RPi. Dari perspektif perangkat lunak, Anda akan berkomunikasi dengan komputer seolah-olah itu adalah perangkat serial.

Alex Chamberlain
sumber
Kecuali mungkin menginstal ulang USB dengan GPIO?
2
Tidak ada harapan di sana. Anda tidak dapat menggigit-bang USB.
Alex Chamberlain
Diagram itu yang saya cari. Jawaban bagus.
Jivings,
1
@Alex, Bit-banging USB telah dilakukan. PIC 40MHz dapat melakukan USB kecepatan rendah. Mungkin ARM 700MHz bisa melakukan kecepatan normal?
finnw
3
dicks.home.xs4all.nl/avr/usbtiny - USB lain yang dibenturkan untuk AVR 12Mhz. Perhatikan bahwa itu hanya mungkin karena dalam mikrokontroler Anda memiliki kontrol penuh atas jam dan interupsi. Anda harus menjalankan RTLinux setidaknya untuk mendapatkan kontrol semacam itu. Anda juga harus menggunakan SPI bukan GPIO untuk melakukan ini.
Alistair Buxton
8

Karena pin data port micro USB tidak terhubung ke USB PHY SoC, Anda tidak dapat menggunakan port ini untuk data (dalam mode host atau slave).

Namun harus dimungkinkan untuk menggunakan port USB Tipe A pada Model A dalam mode slave.

Beberapa perincian lebih lanjut;

Model B menggunakan SMSC LAN9512 USB 2.0 Hub dan 10/100 Ethernet Controller IC untuk menyediakan beberapa port host USB fisik dari satu port USB OTG yang tersedia di Broadcom SoC. (Lihat skema di sini: http://www.raspberrypi.org/wp-content/uploads/2012/04/Raspberry-Pi-Schematics-R1.0.pdf )

Kehadiran IC hub ini mencegah port USB agar tidak digunakan dalam mode slave. Namun, karena Model A tidak memiliki IC ini dan sebagai gantinya hanya memiliki satu port USB yang terhubung langsung ke port OTG SoC, harus dimungkinkan untuk mengkonfigurasinya untuk bertindak dalam mode slave melalui perangkat lunak.

Karena Model A memiliki port USB host perempuan, kabel konversi HOST ke HOST akan diperlukan.

Silakan lihat utas Raspberry Pi Forum ini untuk lebih jelasnya: http://www.raspberrypi.org/phpBB3/viewtopic.php?f=63&t=15696

Rob_Bishop
sumber
5

Model A akan dapat menggunakan antarmuka gadget standar karena USB pada PI adalah OTG maka Anda bisa memaksanya ke mode perangkat.

Tapi ini berarti Anda kehilangan ethernet dan USB lainnya

Gordon
sumber
5

Model Rasberry PI A / A + / B / B + memiliki mode OTG dinonaktifkan dengan berbagai alasan:

  • Port USB ditempati dengan hub USB (ethernet),
  • hilang pin OTG ke-5 (ground), atau
  • pin data tidak terhubung (port daya).

Anda memerlukan Raspberry PI Zero untuk OTG atau yang disebut Mode Gadget. Port USB data dapat digunakan untuk OTG dan "daya". Pada saat penulisan ini, Serial dan Ethernet diuji, tetapi yang lain harus bekerja dengan jumlah upaya yang tepat (keyboard, disk, kamera, dll.) Perangkat komposit juga dapat bekerja. Lihat info lebih lanjut di

Pekerjaan ini diharapkan akan digabung ke dalam versi rpy-4.4 dari kernel untuk fungsionalitas OTG agar tersedia OOTB untuk peretasan yang lebih sederhana.

Mayoritas pengantongan berat dilakukan di Github raspberrypi / linux Edisi # 1212 .

myroslav
sumber
Halo dan selamat datang. Terima kasih atas masukannya. Anda mungkin ingin berkontribusi di sini juga: raspberrypi.stackexchange.com/questions/38576/…
Ghanima
@ Ganima: selesai;) raspberrypi.stackexchange.com/a/40626/39346
myroslav
Bisakah saya menggunakan port daya sebagai Perangkat Klien dan port lainnya sebagai Host-Port? Akan keren menggunakan port daya sebagai ethernet virtual untuk menghubungkan ke pc dan port lain untuk menghubungkan perangkat usb ke pi.
allo
Jawaban ini membingungkan, terutama karena tautannya tidak memberikan bukti pendukung untuk klaim bahwa colokan listrik dapat digunakan untuk data. Kebanyakan dari mereka hanya tentang menerapkan mode gadget OTG di kernel, yang sekarang standar dan dapat dilakukan tetapi tidak melalui colokan listrik. Hanya ada satu jack yang dapat digunakan untuk kedua daya dan data, bukan dua.
goldilocks
Saya sudah mengoreksi jawabannya. Faktanya adalah bahwa port data dapat digunakan untuk memberi daya Raspberry PI Zero dan sebagai port OTG
myroslav
4

Sayangnya port catu daya umumnya tidak bekerja dengan cara ini sehingga Anda tidak akan dapat menggunakan port micro USB untuk apa pun selain daya.

Saat ini saya tidak bisa memikirkan cara Anda dapat menggunakan Pi sebagai perangkat periferal, namun ada beberapa cara lain Anda dapat mengakses Pi termasuk SSH, FTP atau berbagi samba.

Jika Anda menguraikan apa yang ingin Anda capai maka kami dapat menyarankan metode terbaik untuk melakukannya.

Jivings
sumber
Sebagai contoh hipotetis, saya ingin menggunakan Raspberry Pi sebagai kartu suara. Tentu saja saya akan menulis driver untuk kedua ujungnya, tetapi saya harus menghubungkannya ke PC.
1
Solusi elegan untuk itu adalah menyalurkan audio melalui SSH. Tentu saja Anda juga dapat mencoba menggunakan GPIO!
Jivings,
2

Ya, Anda dapat menggunakan Model A sebagai perangkat pendukung USB:

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

Meskipun cukup terbatas hanya penggunaan sebagai perangkat penyimpanan massal (kartu SD) - tidak ada akses GPIO, tampilan atau bahkan penggunaan CPU ARM.

Mike Redrobe
sumber
1

Ya, Anda bisa jika Anda menggunakan beberapa Pengontrol Periferal USB dengan Antarmuka SPI seperti MAX3420E dan menulis driver untuk itu jika belum didukung di Linux dan menangani kelas USB tertentu yang ingin Anda terapkan.

avra
sumber
1

Banyak pekerjaan yang telah dilakukan sejak pertanyaan diajukan. Menggunakan beberapa model Rasberry Pi sebagai perangkat periferal USB (mis. Penyimpanan massal, serial, ethernet, keyboard, mouse) sekarang dimungkinkan. Lihat inti ini dan panduan ini .

Diomidis Spinellis
sumber
-2

Anda dapat melakukan koneksi jaringan sederhana dari PC ke Raspberry Pi dan menggunakan Pulse Audio untuk mentransfer suara melalui jaringan. Pulse Audio adalah Server Suara yang menawarkan transparansi jaringan. Jadi Anda dapat memutar file suara pada PC Anda dan mendengarnya dengan speaker yang terhubung ke Raspberry Pi Anda.

MrBlues
sumber