Forum: Mikrocontroller und Digitale Elektronik Ansteuerung einer (oder mehrerer) SD Karten über einen RasPi


von Michael (Gast)


Lesenswert?

Guten Tag zusammen!

Ich würde gerne ein Projekt realisieren bei dem ich von einem Raspberry 
Pi aus über die GPIOs auf eine, bevorzugt aber mehrere SD Karten 
zugreifen kann.

Konkret ginge es dabei um eine Art mobiles NAS für Fotos von einer 
Digitalkamera. Die Daten würde ich gerne von der SD Karte der Kamera auf 
die SD Karte(n) (im Prinzip wie eine interne Festplatte), kopieren. Das 
ganze sollte sehr mobil sein, also klein, leicht, stoßfest und mit Akku 
(deswegen auch keine externe FP). Außerdem sollte das ganze halbwegs 
günstig sein (deshalb keine SSD).

meine Frage ist nun, ob ich über die GPIO ansatzweise an sinnvolle 
Datenraten rankommen könnte, und ob sich das (relativ) einfach 
bewerkstelligen ließe? Oberhammer wäre es dann natürlich, wenn mehrere 
SD karten als RAID/JBOD miteinander kombinierbar wären.

mfg Michael

von Scelumbro (Gast)


Lesenswert?

Michael schrieb:
> meine Frage ist nun, ob ich über die GPIO ansatzweise an sinnvolle
> Datenraten rankommen könnte, und ob sich das (relativ) einfach
> bewerkstelligen ließe? Oberhammer wäre es dann natürlich, wenn mehrere
> SD karten als RAID/JBOD miteinander kombinierbar wären.
>
> mfg Michael

Mir ist, es gab projekte SD Karten über SPI Anzusprechen, schnell war 
das nicht und ich hab keinen Link. Warum kein USB Kartenleser?

von Peter II (Gast)


Lesenswert?

Michael schrieb:
> meine Frage ist nun, ob ich über die GPIO ansatzweise an sinnvolle
> Datenraten rankommen könnte, und ob sich das (relativ) einfach
> bewerkstelligen ließe? Oberhammer wäre es dann natürlich, wenn mehrere
> SD karten als RAID/JBOD miteinander kombinierbar wären.

Und ein USB-Hup + USB-Kartenleser ist dir zu einfach? Damit könnte man 
auch ein Software-Raid bauen - für sinnvoll halte ich es aber nicht.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

@Peter: Sehe ich auch so.

Und wegen der Speicher-Kosten schlage ich eine SSD vor.

Für SD Karten über SPI braucht man keinen Raspi, da reicht zur Not ein 
STM32F030F4P6 für 50ct, sogar mit DMA.

: Bearbeitet durch User
von Michael (Gast)


Lesenswert?

Scelumbro schrieb:
> Warum kein USB Kartenleser?

Ein SD Kartenleser würde vmtl. wesentlich mehr Palt benötigen. Wie 
gesagt, je kompakter, desto besser. Wenn das ganze nicht anders möglich 
ist, bleibt das Plan B.

von Peter II (Gast)


Lesenswert?


von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

@Peter II: Cooles Teil :-)

@Michael:
Falls SD per SPI statt SSD und Du noch Slots brauchst,
hätte ich welche übrig:
http://www.aliexpress.com/snapshot/6280279008.html

Unsere Nachrichten gingen über Kreutz, gesehen?

von Michael (Gast)


Lesenswert?

Also im klartext:

SD Karte über SPI/I²C wäre sehr (unbrauchbar) langsam? Die bessere 
alternative wäre  micro SD+Adapter oder SSD + adapter, sehe ich das 
richtig so?

von Scelumbro (Gast)


Lesenswert?

Michael schrieb:
> Ein SD Kartenleser würde vmtl. wesentlich mehr Palt benötigen. Wie
> gesagt, je kompakter, desto besser. Wenn das ganze nicht anders möglich
> ist, bleibt das Plan B.

Nimm einen kleineren SBC, z.B. den Olinuxino Micro oder Nano. Die haben 
auch gleich Schaltung zum Betrieb aus Lipo Akkus an Board. Den geparten 
Platz nutzt du für einen USB-HUB und Kartenleser.

Torsten C. schrieb:
> Für SD Karten über SPI braucht man keinen Raspi, da reicht zur Not ein
> STM32F030F4P6 für 50ct, sogar mit DMA.

Mit FAT implementation, auch für SDHC? Glaube irgendwie da braucht man 
schon ein bisschen mehr. Wie lange dauert es bei so einem System 4 GB 
von einer Karte auf die andere zu schieben? Und dann fragt sich ob der 
TO das Layouten / Programmieren kann.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Michael schrieb:
> SD Karte über SPI/I²C wäre sehr (unbrauchbar) langsam?

I²C geht nicht, aber SPI. Es gibt auch 4-Bit-paralleles SPI (SDIO). Das 
geht dann ohne USB-Umweg direkt per µC und kann mit DMA maximal schnell 
sein, z.B. mit einem

  STM32F103V8T6 ab 163ct (64 kB Flash)

Kann der RasPi 4-Bit-paralleles SPI out-of-the-box an separaten 
SD-Slots?

Scelumbro schrieb:
> Mit FAT implementation, auch für SDHC?

Mit 16KB Flash? Sollte gehen.
Ich habe aber keine Ahnung ob es dafür eine fertige Lib gibt.

Scelumbro schrieb:
> Wie lange dauert es bei so einem System 4 GB
> von einer Karte auf die andere zu schieben?

Das hängt m.E. im Wesentlichen von der Karte ab.

Scelumbro schrieb:
> Und dann fragt sich ob der TO das Layouten / Programmieren kann.

Klar. Aber wie ist die Frage gemeint? Das kannst Du nicht wissen und ich 
auch nicht. Und keiner außer er selbst kann wissen, ob er es ggf. lernen 
will.

Das war ja auch nur ein Hinweis. Falls der TO das nicht kann, ist er 
vielleicht für Mitleser mit einem ähnlichen Problem interessant.

: Bearbeitet durch User
von Michael (Gast)


Lesenswert?

Scelumbro schrieb:
> Und dann fragt sich ob der
> TO das Layouten / Programmieren kann.

Programmieren kann ich nur bedingt, sprich die Grundlagen von PHP, C# 
und JS sind da. Das wars aber auch. Mit lernen hätte ich jetzt keine 
Probleme, dem Problem bin ich aber von vorn herein (größtenteils) damit 
ausgewichen, dass ich einen Raspi als Basis verwenden möchte. 
Performance, Layout (abgesehen von einem externen Board für SD slots) 
sowie die Softwarebasis sind hier kein Problem.

Grundlegende Kenntnisse in der Elektronik besitze ich ebenfalls aber ans 
Layouten habe ich mich bisher nicht getraut. Wie auch beim Programmieren 
gilt: Interessant ist es allemal.

Torsten C. schrieb:
> Das hängt m.E. im Wesentlichen von der Karte ab.

d.h. Lese-/Schreibraten von mehreren MB sind möglich?

mfg

von Michael (Gast)


Lesenswert?

Oh, und weil ich es vergessen habe:

Linux ist auch kein Problem für mich.

von Scelumbro (Gast)


Lesenswert?

Michael schrieb:
> Programmieren kann ich nur bedingt, sprich die Grundlagen von PHP, C#
> und JS sind da. Das wars aber auch.

Das dachte ich mir schon. Für ein Projekt mit dem von Thorsten C. 
vorgeschlagenen Mikrocontroller müsstest du dich erstmal ordentlich in C 
einarbeiten, das Datenblatt des Microcontrollers lesen und verstehen 
lernen, eine passende Platine designen und layouten und diese fertigen 
(lassen).

Wenn du das alles lernen willst, wünsche ich dir ehrlich viel Freude und 
Geduld. Aber ich glaube mit einem SBC kommst du wohl schneller zum Ziel 
(und billiger wenn man die Kosten für Fehlschläge berücksichtigt)

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Scelumbro schrieb:
> Aber ich glaube mit einem SBC kommst du wohl schneller zum Ziel

Da stimme ich soweit zu. Aber wieviele SD-Karten sollen es denn sein? 
Und wie sollen die ohne eigenes PCB-Layout angeschlossen werden? Über 
Kabel und USB-Hubs? Es gibt diese lustigen Hubs in Männchen-Form. ;-)

Scelumbro schrieb:
> eine passende Platine designen und layouten

Die 'minimum system boards' gibt es für ein paar hundert Cent fertig.

Michael schrieb:
> Lese-/Schreibraten von mehreren MB sind möglich?

Grundsätzlich steht im Datenblatt:
 'Data transfer up to 48MHz'

Das wären m.E. 192MByte/s

Diese Datentransferrate gibt es nur einmal pro µC, zum Beispiel zum 
Lesen.

Beim Schreiben könnte man ...

Aber falls die Bastelei für Dich eh nicht in Frage kommt, lass uns das 
vertagen.

von Michael (Gast)


Lesenswert?

Torsten C. schrieb:
> Aber wieviele SD-Karten sollen es denn sein?

Grundsätzlich zwei. Dann könnte man zumindest softwareseitig RAID 0/1 
bzw. JBOD aufbauen. (falls das hier überhaupt möglich ist)

Torsten C. schrieb:
> Und wie sollen die ohne eigenes PCB-Layout angeschlossen werden? Über
> Kabel und USB-Hubs?

Kable und Hubs möchte ich auf keinen Fall (Strom- und Platzverbrauch).

In dieser Hinsicht wäre ein eigenes Design als "Erweiterungsplatine" für 
den RasPi durchaus interessant. Was würde ich da an sich benötigen? 
Außer 2 SD Kartenslots und einer Stromversorgung kann ich mir da nicht 
wirklich was zusammenreimen...

mfg

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Michael schrieb:
> Außer 2 SD Kartenslots und einer Stromversorgung kann ich mir da nicht
> wirklich was zusammenreimen

Eben. Das passt auch, denn was ich damit sagen wollte: Man kann die 
Buchhsenleisten z.B. für so ein maple mini auslegen, statt für einen 
RasPi. Das wäre der einzige Unterschied.

http://www.aliexpress.com/item/-/32214664071.html

Vielleich sogar wahlweise?

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

PS: Sorry, ist mir erst aufgefallen als ich schon im Auto saß:
Der 'maple mini'^^ hat kein SDIO. Bei Interesse suche ich ein anderes 
Board mit einem 100-Pinner raus, aber das Board ist dann preislich 
dichter am RasPi oder zum 'selbst bestücken'.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

So, nochmal mit SDIO, ich habe diese Boards:
http://www.aliexpress.com/item/-/2038449638.html

Fertig bestückt für rund 10€, aber für so viel Geld bekommt man schon 
ein NUCLEO-F411RE und muss nicht auf China warten.

von holger (Gast)


Lesenswert?

>In dieser Hinsicht wäre ein eigenes Design als "Erweiterungsplatine" für
>den RasPi durchaus interessant.

Schwachsinn. Alles was du an den Erweiterungsport hängst
wird grottenlangsam sein, egal was es ist. Und dann noch Raid?
Viel Spass da einen eigenen Treiber zu schreiben.

Die einzig sinnvolle Lösung wurde schon genannt:
USB Hub und SD Kartenleser.

von Scelumbro (Gast)


Lesenswert?

Der Link z.b 
https://www.raspberrypi.org/forums/viewtopic.php?f=44&t=8837 beschreibt 
das verbinden von SD Cards über GPIOs an den Pi. Es ist wirklich kaum 
mehr als den Kartenslot mit den richtigen GPIOs zu verbinden.
Allerdings geht wohl nicht mehr als 1 MB/s. Musst du wissen ob das 
reicht. Also ich würde die USB variante vorziehen.

Michael schrieb:
> Grundsätzlich zwei. Dann könnte man zumindest softwareseitig RAID 0/1
> bzw. JBOD aufbauen. (falls das hier überhaupt möglich ist)

Wieso glaubst du das zu brauchen?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.