Forum: Mikrocontroller und Digitale Elektronik Auswahl einer Speicherkarte (SD,MMC,CF,USB-Stick)


von Oli (Gast)


Lesenswert?

Hallo,

Ich bin gerade dabei ein Gerät zu entwickeln, welches mir ausgewertete 
Daten auf ein mobiles Speichermedium schreiben soll.
Bin jetzt am überlegen, welches der 4 (die ich zur Verfügung habe) am 
geeignetsten wäre. Zur Auswahl habe ich USB, SD, MMC oder CF Karte.

Natürlich habe ich schon fleißig gegoogelt, aber ein paar Fragen bleiben 
doch noch offen.

Kann ich  mit einem µC (ATmega) auf eine USB-Stick Daten schreiben. Hab 
mal was gelesen, dass ich dafür einen "Host" brauch. Heißt das ich 
brauch einen extra Controller??

Ist bei der CF-Karte eine IDE-Schnittstelle erforderlich?Falls ja, 
wieviele Pins müsste ich letztlich an den µC schließen???

Gibt es große Unterschiede bezüglich der Schreibgeschwindigkeiten, 
welche ich mit meinem µC mit 20 MHz erreichen kann?

Gibt es große Unterschiede der Speicherkapazitäten? Oder sind 
mittlerweile alle Typen mit rel. großem Speicher ausgestattet/zu 
erhalten??

Was ist am einfachsten zu implementieren?


Würde mich über Antworten freuen!!

Grüße

Oli

von Benedikt K. (benedikt)


Lesenswert?

Oli wrote:
> Kann ich  mit einem µC (ATmega) auf eine USB-Stick Daten schreiben. Hab
> mal was gelesen, dass ich dafür einen "Host" brauch. Heißt das ich
> brauch einen extra Controller??

Es kann sein, dass es mittlerweile irgendeine Software gibt die einen 
USB Host für einen USB Stick macht, aber selbst wenn, dann ist das 
relativ aufwendig und somit langsam. An externen ICs gibt es da den 
Vinculum, aber der ist meiner Meinung nach noch nicht ganz ausgereift.

> Ist bei der CF-Karte eine IDE-Schnittstelle erforderlich?Falls ja,
> wieviele Pins müsste ich letztlich an den µC schließen???

CF Karten kennen mehrere Modi. Einer davon ist IDE kompatibel, die 
anderen sind IDE ähnlich, haben aber z.B. anstelle der 16bit z.B. nur 
8bit als Interface.

> Gibt es große Unterschiede bezüglich der Schreibgeschwindigkeiten,
> welche ich mit meinem µC mit 20 MHz erreichen kann?

Ohne die Anwendung genauer zu kennen, würde ich sagen CF ist am 
schnellsten (da parallel), danach kommen SD und MMC. USB Stick ist 
abhängig von der Implementierung aber die sind meinen Erfahrungen nach 
alle langsamer.

> Gibt es große Unterschiede der Speicherkapazitäten? Oder sind
> mittlerweile alle Typen mit rel. großem Speicher ausgestattet/zu
> erhalten??

Die dürften alle ähnlich sein. Bei SD Karten sollte man die Grenze von 
2GB beachten, darüber gibt es nur noch SDHC Karten die ein wenig anderst 
angesteuert werden.

> Was ist am einfachsten zu implementieren?

CF und SD. CF ist 8bit + CS\ + RD\ + WR\ + ein paar Adressleitungen für 
die Register. SD ist im Prinzip ähnlich, verwendet aber SPI (oder auch 
andere lizenzgeschütze Modi).
SD dürfte kostenmäßig am besten sein, daher ist dafür wohl auch der 
meiste Code zu finden. Ich würde daher zu SD Karte greifen.

von Falk B. (falk)


Lesenswert?

@ Oli (Gast)

>geeignetsten wäre. Zur Auswahl habe ich USB, SD, MMC oder CF Karte.

SD und MMC sind prakisch gleich, werden beide meist über SPI 
angesprochen. Im Netz gibt es dazu Dutzende Implementierungen.

CF ist ähnlich einfach, abrucht auber viel Verdrahtungsaufwand. Macht 
man nur, wenn man hohe Datenraten braucht.

Das Ansprechen auf unterster Ebene (Sektoren) ist das Eine, das 
Dateisystm das Andere. Praktisch immer FAT/VFAT32. Gibt es auch viele 
fertige, frei Lösungen im Netz.

>Kann ich  mit einem µC (ATmega) auf eine USB-Stick Daten schreiben.

Da fehlt ein Fragezeichen. Direkt per AVR geht das nicht, man braucht 
eine USB-Host, siehe USB.

>Ist bei der CF-Karte eine IDE-Schnittstelle erforderlich?Falls ja,
>wieviele Pins müsste ich letztlich an den µC schließen???

Ca. 16+10.

>Gibt es große Unterschiede bezüglich der Schreibgeschwindigkeiten,
>welche ich mit meinem µC mit 20 MHz erreichen kann?

Sicher. SD/MC per SPI ist bitseriell, CF ist 16 Bit breit!

>Gibt es große Unterschiede der Speicherkapazitäten? Oder sind
>mittlerweile alle Typen mit rel. großem Speicher ausgestattet/zu
>erhalten??

Defniniere realtiv gross. 1GB gibte bei alen für'n Appel & Ei.

>Was ist am einfachsten zu implementieren?

AFAIK CF, dicht gefolgt von SD/MMC. USB ist mit Abstand am 
aufwändigsten.

MFG
Falk

von Entsetzter (Gast)


Lesenswert?

Hallo Falk,

ich mache es mal so arrogant wie Du:

> CF ist ähnlich einfach, abrucht auber viel Verdrahtungsaufwand.

blablabla

> man braucht eine USB-Host

blablabla

> Defniniere realtiv gross. 1GB gibte bei alen für'n Appel & Ei.

blablabla

von Teplotaxl X. (t3plot4x1)


Lesenswert?

Was ist daran so schlimm, wie Falk die Beiträge kommentiert.
Ich halte seine Art der Kommtentierung für sehr übersichtlich und 
Praxisnah.

von Falk B. (falk)


Lesenswert?

@ Entsetzter (Gast)

Hat dich Mutti nicht mehr lieb?

MfG
Falk

von Oli (Gast)


Lesenswert?

Danke für die Antworten!!
Wurde ja alles beantwortet was ich wissen wollte!
Grüße Oli

von Matze (Gast)


Lesenswert?

Ich kann dir das uALFAT von GHIelectronics empfehlen. Anfangs habe ich 
es gehasst, aber mittlerweile ist es ganz OK. Lesen und schreiben mit 
bis zu 100Kb möglich. Es übernimmt die Steuerung der SD-Karte, oder des 
USB-sticks, und verwaltet das Dateisystem zuverlässig. Als Benutzer 
musst du nur Kommandos wie "öffne Datei", "Lese die nächsten 100Bytes", 
... senden.
Welche Datenrate benötigst du?

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.