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
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.
@ 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
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
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?