Bagaimana saya bisa mengirim pembaca kartu SD ini ke RaspberryPi?

11

Saya perlu menambahkan pembaca kartu SD kedua ke Raspberry Pi saya untuk proyek www.samplerbox.org (RPi akan disematkan dalam sebuah kotak, jadi saya memerlukan pembaca kartu -SD- pengguna ).

Inilah yang ingin saya gunakan:

masukkan deskripsi gambar di sini

Bagaimana cara mengirim ini ke RaspberryPi? Melalui GPIO? (jika demikian, bagaimana?) Melalui port USB? (jika demikian, bagaimana cara memasang pin ini ke colokan USB standar?)

UPDATE : Berikut adalah pin 2 * 8 GND, 3V3, 5V, CS, MOSI, SCK, MISO, GND::

masukkan deskripsi gambar di sini

Basj
sumber
Apakah Anda berencana untuk boot dari kartu SD eksternal? Atau apakah Pi untuk boot dari kartu SD internal. Untuk apa kartu SD eksternal digunakan?
joan
@ Joan Tidak. Saya tidak berencana untuk boot di atasnya, kartu SD eksternal akan ada di sana untuk membiarkan pengguna memuat / menyimpan beberapa data. Pengguna tidak akan mengakses kartu SD internal (RPi tertanam dalam kotak). Lebih mudah dipahami dengan gambar: www.samplerbox.org
Basj
1
Anda bisa menghemat banyak masalah jika Anda hanya memberi pengguna tongkat USB untuk data. Menerapkan antarmuka kartu SD kedua akan sangat sulit. Cukup bawa port USB ke luar kotak Anda.
joan
1
Anda selanjutnya dapat menggunakan adaptor SDCard ke USB, yang merupakan pertukaran antara keduanya. Hanya google SDCard USB adapter.
user236012
4
Sementara saya setuju mungkin lebih mudah menggunakan USB stick, seharusnya tidak sulit untuk antarmuka SD Card. Semua dukungan SD SPIdan berjalan pada 3.3V (banyak dari papan ini memiliki konverter level untuk antarmuka ke 5V). Saya telah menggunakan adaptor serupa di Arduino, dan saya akan mencoba Pi. Ada perangkat lunak FAT untuk Arduino. (CATATAN Saya tidak berharap untuk mengaksesnya melalui driver kernel standar.)
Milliways

Jawaban:

6

Sepertinya itu adalah perangkat SPI. Anda harus terlebih dahulu mengaktifkan SPI menggunakan raspi-config. Maka Anda harus mengirim:

(Reader) GND  --  GND       (GPIO-Raspberry Pi2) 
         3V3  --  3.3 V (Pin 1)
         5V   --  NC
         CS   --  GPIO8 (Pin24)
         MOSI --  GPIO10 (Pin 19)
         SCK  --  GPIO11 (Pin 23)
         MISO --  GPIO9 (Pin 21)
         GND  -- NC
KeremE
sumber
2
Adakah ide tentang cara memiliki kecepatan transfer yang lebih baik dari 1 megabyte / detik dengan teknik seperti itu? Apakah ada cara lain selain USB SD reader yang dapat memungkinkan 10 MB / detik?
Basj
kecepatan tinggi sekitar lebih dari satu baris untuk data kartu SD, tampaknya Anda tidak memilikinya di sini, dan itu bukan pengaturan kabel sederhana melalui antarmuka SPI
Alexey Vesnin
6

Pinp Raspberry pi

Anda harus menghubungkan GND, 5V dan 3V3 ke pin yang sesuai pada pi. Kemudian MOSI dan MISO juga ditandai dalam gambar, SCK harus terhubung ke SCLK (ini adalah jam 10MHz yang harus didorong oleh pi) dan akhirnya menghubungkan pin CS ke CS0 (Chip-Select, sehingga Anda dapat menghubungkan 2 SD atau perangkat lain yang mendukung SPI).

Menurut balasan pertama pada utas ini , jika Anda menjalankan versi kernel lebih besar dari 3.2.20 itu harus mendukung perangkat keras SPI di papan tulis dan akan memberi Anda throughput 1MB / s dengan sedikit beban CPU, yang mengesankan.

Jika kernel Anda adalah versi yang lebih tinggi tetapi dikompilasi tanpa dukungan perangkat SPI Anda harus mengkompilasi ulang dengan konfigurasi yang sesuai (lihat utas yang disebutkan lagi).

Yigal
sumber
2
Terima kasih atas jawaban ini! Tapi 1 MB / s terlalu rendah (dibandingkan dengan pembaca USB), dan untuk proyek saya, saya perlu memuat 100MB dalam waktu yang sangat singkat (ini dimungkinkan dari pembaca microSD RPi, mungkin dari pembaca kartu SD USB, jadi Saya memerlukan hal yang sama dari pembaca SD PCB ini)
Basj
Anda tidak akan melihat kecepatan yang lebih cepat dengan pembaca SD ini dan kombinasi pi. 1MB / s dicapai dengan menggunakan perangkat keras antarmuka SPI khusus pada pi. Jika Anda menggunakan konektor GPIO lain, Anda harus menerapkannya dengan CPU, mencapai tingkat yang jauh lebih rendah, sekitar 180KB / s. Jika Anda membutuhkan kecepatan lebih tinggi, gunakan pembaca USB seperti yang disarankan orang lain, yang seingat saya membuat saya sekitar 4MB / s tetapi mungkin orang lain dapat memberikan angka yang lebih tepat.
Yigal
1
Arghh ... Sedih sekali kita tidak bisa mendapatkan lebih dari 1MB / s dengan pembaca ini. Apakah mungkin mengubah pembaca ini menjadi pembaca SD USB (dengan komponen tambahan?)
Basj
1
Anda bisa mendapatkan modul yang menangani SPI (dan protokol lainnya) ke USB seperti yang Anda miliki dengan harga sekitar $ 20: digikey.co.il/product-search/en?v=768&mpart=VA800A-SPI Tapi saya tidak akan seperti itu. Saya tidak membaca spesifikasi jadi saya tidak tahu apakah modul mengidentifikasi dirinya sebagai kelas Mass Storage, atau kelas USB lain yang lebih umum dalam hal ini Anda harus membungkusnya dengan driver Anda sendiri. Akan jauh lebih mudah untuk mendapatkan pembaca kartu SD USB sederhana.
Yigal
1
Tentu, tetapi saya memerlukan pembaca kartu SD USB yang dapat dipasang di PCB (tidak hanya untuk saya, tetapi proyek samplerbox.org saya akan menjadi sumber terbuka, jadi saya ingin mudah bagi siapa saja untuk sumber komponen)
Basj
1

Tanpa tahu banyak tentang card reader itu sendiri, saya akan memberikan jawaban terbaik yang saya bisa.

Pembaca tampaknya memiliki tanda di sebelah pin GPIO. Hubungkan mereka ke pin yang sesuai pada RPI menggunakan beberapa kabel jumper perempuan-perempuan (atau metode yang lebih permanen untuk aplikasi Anda). Jika mereka tidak memiliki pin yang sesuai, pasang pin tersebut ke pin gratis di pi dan catat.

API untuk pembaca mungkin perlu beberapa konfigurasi tambahan untuk memungkinkan transfer file melalui pin lain, tetapi saya tidak dapat membantu Anda dengan bagian ini.

Semoga ini berhasil!

angussidney
sumber
Saya menambahkan label pin dan foto dalam pertanyaan. Apakah mungkin untuk beralih dari pin ini ke GPIO atau ke USB?
Basj
1

Berdasarkan pada deskripsi kebutuhan Anda dan mengunjungi halaman proyek Anda, alternatifnya adalah membuat RPi Anda boot dari USB stick dan menggunakan pembaca kartu internal untuk menerima kartu dari pengguna.

Bruno Bronosky
sumber
Terima kasih atas jawaban Anda. Bisa jadi ide, kita perlu memikirkannya. Memasukkan / mengeluarkan kartu microSD mungkin terlalu kecil / sulit untuk digunakan setiap hari. Untuk proyek saya, saya membutuhkannya semudah memasukkan / mengeluarkan kartu SD dari kamera digital. Saya akan memikirkannya ... PS: dapatkah Anda menambahkan tautan tentang "cara mem-boot USB stick" pada RPi dalam jawaban Anda, untuk referensi di masa mendatang?
Basj