Forum: Mikrocontroller und Digitale Elektronik Was ist einfacher? USB oder SD-Karte?


von Luca B. (lucabert)


Lesenswert?

Hallo, Leute!

Eine Frage: wenn ich eine Menge Daten speichern will, die ich später mit 
einem ATMega lesen will, was ist einfacher zu verwalten (von 
Mikrocontroller)? Eine SD-Karte oder ein USB-Stick?

Vorteil von USB-Geräte ist, daß ich jede USB-Storage anschließen kann 
(USB-Stick, USB-Kartenleser, USB-Platten, usw).

Aber wenn ich dann das Programm schreibe, mit welcher Variante werde ich 
schneller fertig (und ein kleineres Programm kriegen)?

Danke
Luca Bertoncello

von Peter D. (pdiener) Benutzerseite


Lesenswert?

Die SD-Karte ist viel einfacher anzusprechen (SPI-Modus) als ein 
USB-Speichermedium. Die SD-Karte wird direkt bzw. bei 5 Volt Systemen 
mit einem Pegelwandler an den ATmega angeschlossen.

Bei USB hat man bei einem ATmega schon das Problem, dass dieser keinen 
USB-Port hat, man braucht also einen externen USB-Slave Controller. Für 
diesen und natürlich für die USB-Massenspeicherklasse braucht man 
Treiber. Trotzdem ist das natürlich nicht unmöglich und es gibt auch 
schon ICs, die auf diese Anwendung zugeschnitten sind, z.B.
http://www.ftdichip.com/Products/ICs/VNC1L.htm

Grüße,

Peter

von mko (Gast)


Lesenswert?

definitiv mit der sd-karte.

der mega wird so schnell keinen usb-host drauf bekommen. dafür bräuchte 
man dann einen chip, der über z.b. spi angschlossen wird. in der elektor 
wurde vor einiger zeit mal sowas vorgestelle...

mfg michael

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Grundsätzlich ist die SD-Karte einfacher, allerdings benötigst du auch 
ein FAT-System, wenn du die Karte mit dem PC auslesen willst. Sowohl für 
die SD-Karten-Ansteuerung als auch die FAT-Implementierung gibt es aber 
genug brauchbare Beispiele für den AVR.

Eine andere einfache Lösung für USB-Speichermedien sind die 
Vinculum-Chips von FTDI.

http://www.vinculum.com/

Diese besitzen sowohl einen USB-Stack als auch die Unterstützung für FAT 
und können einfach über eine serielle Schnittstelle angesprochen werden 
- damit kann man auch recht passabel erst mal am PC probieren mittels 
Terminal-Programm.

Eine andere Alternative wäre LUFA, ein USB-Stack für AT90USB-Controller. 
Dort sind viele Beispiele enthalten, auch das was du suchst.

http://fourwalledcubicle.com

von Luca B. (lucabert)


Lesenswert?

OK, besten Dank!

Also, ich werde eine SD-Karte nutzen.

Kann jemand mir vielleicht ein Schaltungsbeispiel (und vielleicht sogar 
den passenden C-Code) empfehlen, um mit einem ATMega32 eine SD-Karte (>= 
2GB) zu lesen?
Erstmal will ich nicht unbedingt schreiben.

Danke
Luca Bertoncello

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Luca Bertoncello schrieb:
> Kann jemand mir vielleicht ein Schaltungsbeispiel (und vielleicht sogar
> den passenden C-Code) empfehlen, um mit einem ATMega32 eine SD-Karte (>=
> 2GB) zu lesen?
> Erstmal will ich nicht unbedingt schreiben.

http://www.mikrocontroller.net/articles/AVR_FAT32

von Luca B. (lucabert)


Lesenswert?

Wunderbar!

Besten Dank!
Luca Bertoncello

von Luca B. (lucabert)


Lesenswert?

Nur eine Frage noch (ich bin dabei die Schaltung zu planen).

In dem Artikel sehe ich, daß ich einen HC4050 nutzen soll. In Eagle habe 
ich aber den Chip nicht gefunden.
Kann jemand mir sagen, wo ich eine Eagle-Library finden kann, mit dem 
Chip?

Besten Dank!
Luca Bertoncello

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Luca Bertoncello schrieb:
> In dem Artikel sehe ich, daß ich einen HC4050 nutzen soll. In Eagle habe
> ich aber den Chip nicht gefunden.
> Kann jemand mir sagen, wo ich eine Eagle-Library finden kann, mit dem
> Chip?

Eventuell mal auf der Cadsoft-Seite schauen bei den User-Bibliotheken, 
ansonsten selber zeichnen.

Ich würde aber eher darüber nachdenken, den AVR mit 3,3V zu betreiben, 
dann brauchst du keine Pegelwandler.

von anno (Gast)


Lesenswert?

Wie wärs mit: selbst erstellen? Einarbeitungszeit in den 
Eagle-Bauteileditor vielleicht 30min und wieder was für die Zukunft 
gelernt ;)

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.