Wie kann ich diesen SD-Kartenleser mit RaspberryPi verbinden?

11

Ich muss meinem Raspberry Pi für das Projekt www.samplerbox.org einen zweiten SD-Kartenleser hinzufügen (das RPi wird in eine Box eingebettet, daher benötige ich einen Benutzer- SD-Kartenleser).

Folgendes möchte ich verwenden:

Geben Sie hier die Bildbeschreibung ein

Wie verdrahtet man das mit dem RaspberryPi? Über GPIO? (wenn ja, wie?) Über USB-Anschluss? (Wenn ja, wie werden diese Pins an einen Standard-USB-Stecker angeschlossen?)

UPDATE : Hier sind die 2 * 8 Pins: GND, 3V3, 5V, CS, MOSI, SCK, MISO, GND:

Geben Sie hier die Bildbeschreibung ein

Basj
quelle
Planen Sie, von der externen SD-Karte zu booten? Oder soll der Pi von der internen SD-Karte booten? Wofür wird die externe SD-Karte verwendet?
Joan
@joan Nein, ich habe nicht vor, darauf zu booten. Die externe SD-Karte ist da, damit der Benutzer einige Daten laden / speichern kann. Der Benutzer hat keinen Zugriff auf die interne SD-Karte (RPi in einer Box eingebettet). Mit einem Bild leichter zu verstehen: www.samplerbox.org
Basj
1
Sie können sich viel Ärger ersparen, wenn Sie dem Benutzer nur einen USB-Stick für Daten geben. Die Implementierung einer zweiten SD-Kartenschnittstelle wird sehr schwierig sein. Bringen Sie einfach einen USB-Anschluss an die Außenseite Ihrer Box.
Joan
1
Sie können außerdem einen SDCard-zu-USB-Adapter verwenden, was ein Kompromiss zwischen beiden ist. Einfach googeln SDCard USB adapter.
user236012
4
Ich bin damit einverstanden, dass die Verwendung eines USB-Sticks möglicherweise einfacher ist, es sollte jedoch nicht schwierig sein, eine SD-Karte anzuschließen. Alle SD- SPIGeräte unterstützen und laufen mit 3,3 V (viele dieser Karten verfügen über Pegelwandler für die Schnittstelle zu 5 V). Ich habe einen ähnlichen Adapter auf Arduino verwendet und werde Pi ausprobieren. Es gibt FAT-Software für Arduino. (HINWEIS Ich erwarte nicht, über Standard-Kernel-Treiber darauf zuzugreifen.)
Milliways

Antworten:

6

Es scheint, als wäre es ein SPI-Gerät. Sie sollten SPI zuerst mit raspi-config aktivieren müssen. Dann müssen Sie verdrahten:

(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
quelle
2
Haben Sie eine Idee, wie Sie mit einer solchen Technik eine bessere Übertragungsrate als 1 Megabyte / s erreichen können? Gibt es einen anderen Weg als einen USB-SD-Leser, der 10 MB / s zulässt?
Basj
Bei hohen Geschwindigkeiten handelt es sich um mehr als eine Zeile für SD-Kartendaten. Anscheinend haben Sie diese hier nicht und es handelt sich nicht um eine einfache Verkabelung über die SPI-Schnittstelle
Alexey Vesnin,
6

Himbeer-Pi-Pinbelegung

Sie sollten GND, 5V und 3V3 an die entsprechenden Pins am Pi anschließen. Dann sind auch MOSI und MISO im Bild markiert. SCK sollte eine Verbindung zu SCLK herstellen (dies ist der 10-MHz-Takt, der vom pi angesteuert werden soll) und schließlich den CS-Pin mit CS0 verbinden (Chip-Select, damit Sie 2 SD oder anschließen können andere SPI-kompatible Geräte).

Laut der ersten Antwort auf diesen Thread sollte eine Kernel-Version größer als 3.2.20 die SPI-Hardware auf der Karte unterstützen und einen Durchsatz von 1 MB / s bei geringer CPU-Auslastung bieten, was beeindruckend ist.

Wenn Ihr Kernel eine höhere Version hat, aber ohne SPI-Geräteunterstützung kompiliert wird, sollten Sie ihn mit einer geeigneten Konfiguration neu kompilieren (siehe den genannten Thread erneut).

Yigal
quelle
2
Danke für diese Antwort! 1 MB / s ist jedoch viel zu niedrig (im Vergleich zu einem USB-Lesegerät), und für mein Projekt muss ich in sehr kurzer Zeit 100 MB laden (dies ist mit einem RPi-microSD-Lesegerät möglich, also mit einem USB-SD-Kartenleser Ich brauche das gleiche von diesem PCB SD-Leser)
Basj
Mit diesem SD-Reader und der Pi-Kombination sehen Sie keine schnellere Rate. 1 MB / s wird mithilfe der speziellen SPI-Schnittstellenhardware auf dem Pi erreicht. Wenn Sie andere GPIO-Anschlüsse verwenden, müssen Sie diese mit der CPU implementieren, um weitaus niedrigere Raten von etwa 180 KB / s zu erzielen. Wenn Sie schnellere Raten benötigen, verwenden Sie einen USB-Reader, wie andere vorgeschlagen haben. Wie ich mich erinnere, lag dieser Wert bei 4 MB / s, aber andere können möglicherweise genauere Zahlen angeben.
Yigal
1
Arghh ... So traurig, dass wir mit diesem Reader nicht mehr als 1 MB / s erreichen können. Ist es möglich, diesen Leser in einen USB-SD-Leser (mit zusätzlichen Komponenten?) Zu
verwandeln
1
Sie können ein Modul, das SPI (und andere Protokolle) verarbeitet, für etwa 20 US-Dollar auf USB übertragen: digikey.co.il/product-search/en?v=768&mpart=VA800A-SPI Aber ich würde diesen Weg nicht gehen. Ich habe die Spezifikation nicht gelesen, daher weiß ich nicht, ob sich das Modul als Massenspeicherklasse oder als eine andere allgemeinere USB-Klasse identifiziert. In diesem Fall müssen Sie es mit Ihrem eigenen Treiber umschließen. Es wird VIEL einfacher sein, einen einfachen USB-SD-Kartenleser zu bekommen.
Yigal
1
Sicher, aber ich brauche einen USB-SD-Kartenleser, der auf einer Leiterplatte montiert werden kann (nicht nur für mich, sondern mein Projekt samplerbox.org wird Open Source sein, daher möchte ich, dass es für jeden einfach ist, die Komponenten zu
beschaffen
2

Ein exzellentes Blogpost-Tutorial wurde hier veröffentlicht:

http://blogsmayan.blogspot.com/p/interfacing-sd-card.html

Bitte lesen Sie diese ausführliche Veröffentlichung, um eine vollständige Antwort auf das Anschließen Ihres SD-Kartenlesers an den Pi zu erhalten.

Hier ist ein begleitendes You Tube-Video verfügbar:

https://www.youtube.com/watch?v=ihqXzQgaIaw

Kolban
quelle
Cooler Artikel in der Tat. Ich habe nur schnell nachgesehen, gibt es etwas über die Übertragungsrate @Kolban?
Basj
1

Ohne viel über den Kartenleser selbst zu wissen, werde ich die bestmögliche Antwort geben.

Der Leser scheint Markierungen neben den GPIO-Pins zu haben. Verbinden Sie sie mit einigen weiblichen Überbrückungskabeln (oder einer für Ihre Anwendung dauerhafteren Methode) mit den entsprechenden Stiften am RPI. Wenn sie keinen entsprechenden Stift haben, befestigen Sie sie an einem freien Stift am Pi und notieren Sie sich diesen.

Die API für den Reader muss möglicherweise zusätzlich konfiguriert werden, um die Dateiübertragung über die anderen Pins zu ermöglichen, aber ich kann Ihnen bei diesem Teil nicht helfen.

Hoffentlich sollte das funktionieren!

Angussidney
quelle
Ich habe die Stecknadeln und das Foto in die Frage eingefügt. Ist es möglich, von diesen Pins zu GPIO oder zu USB zu wechseln?
Basj
1

Basierend auf Ihrer Beschreibung Ihres Bedarfs und dem Besuch Ihrer Projektseite besteht eine Alternative darin, Ihr RPi von einem USB-Stick zu starten und den internen Kartenleser zu verwenden, um Karten vom Benutzer zu akzeptieren.

Bruno Bronosky
quelle
Vielen Dank für Ihre Antwort. Es könnte eine Idee sein, wir müssen darüber nachdenken. Das Einsetzen / Entfernen der microSD-Karte ist möglicherweise zu klein / schwierig für den täglichen Gebrauch. Für mein Projekt muss es so praktisch sein wie das Einlegen / Entfernen einer SD-Karte aus einer Digitalkamera. Ich werde darüber nachdenken ... PS: Könnten Sie in Ihrer Antwort einen Link zum Thema "Booten von einem USB-Stick" auf einem RPi hinzufügen, um später darauf zurückgreifen zu können?
Basj