mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik USB Kartenleser


Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe nun meine Schaltung zum Schreiben und Lesen auf eine SD-Karte 
fertig. Nun würde ich gerne mit einer USB Schnittstelle auf diese Karte 
zugreifen wollen. Eigentlich soll er am PC als Massenspeichermedium 
angezeigt werden, so wie es ein normaler Kartenleser auch macht.

Würde das gerne mit Hardware lösen. Kennt jemand einen IC der so eine 
Art USB - SPI Wandlung macht oder Atmel Projekte ?

Hab leider keine Ahnung wie man soetwas realisieren könnte.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Öh keiner ne Ahnung davon ?

Autor: Miu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt USB - SPI Wandler, aber nicht als einzelnes IC...

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wäre es mit dem Vinculum?!
Ist von FTDI

Autor: Philipp Karbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hää?? das ding nennt sich kartenleser und kostet in jedem PC Geschäft 
5€. kaufen, auseinander nehmen und vielleicht anschlüsse am SD Stecker 
anzapfen für deine schaltung. Versteh dein Problem nicht

Autor: Miu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Interessant, hatte ich bisher noch nicht gesehen...

Autor: Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Matthias
hast du vielleicht Interesse daran, dein Projekt zu veröffentlichen? 
Hört sich ganz interessant an, die Möglichkeit Daten auf SD-Karten 
speichern zu können.

Werner

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist nicht neu.
Schon mal in die Codesammlung geschaut ?

Autor: Karl-j. B. (_matrixman_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der AT32AP7000 kann das in einem Chip!

Der hat ne USB Schnittstelle und ne SD Schnittstelle.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Werner

ich empfehle holger Klabundes Multi Fat System echt super sache

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Philipp Karbach

Ich dachte halt jemand weiss vielleicht was für ein Chip in den 
Kartenlesern verwendet wird, damit ich die Schaltung auf meiner Platine 
nachbauen kann. Wenn das so einfach nicht geht, dann nehm ich deine 
Lösung und kauf mir so ein  "günstiges" Ding und hängs mit dran, das 
wäre ja nicht das Problem

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe gerade das hier gefunden:

http://www.heise.de/mobil/artikel/56261/0

jetzt frag ich mich schon, was innerhalb der Karte geschieht, dass sie 
mit USB kommunizieren kann ?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>jetzt frag ich mich schon, was innerhalb der Karte geschieht, dass sie
>mit USB kommunizieren kann ?

Da ist ganz einfach ein USB Controller mit drauf !

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also wenn ich einen USB controller hernehme, könnte ich meine SD Karte 
also mit dem PC verbinden.

1.) Welcher käme da in Frage, ich hab von USB Controllern wirklich gar 
keine Ahnung

2.) WIe stehts dann mit Treibern, kann ich dann einfach eine Verbindung 
mit meinem PC herstellen, bzw. wird die Karte und deren Inhalt in 
Windows lesbar sein.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich finde dieser IC hört sich gut an:

http://www.maxim-ic.com/quick_view2.cfm/qv_pk/4751

Die Frage ist: Derzeit schreibe ich per SPI auf eine SD Karte. 
Vielleicht könnte man mit diesem IC über SPI auf einen USB Stick 
schreiben ?

Meint ihr das wäre möglich ?

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das wollten wir auch mal bauen. Scheiterte dann an der Verfügbarkeit. Es 
gibt nur einige wenige Chips dafür, z.B. den USB2227 von SMSC. Aber da 
haben wir nur 5 Samples bekommen, die nächst größere Stückzahl war dann 
900 Stück im Tray. Soviele brauchten wir aber nicht. Haben das dann mit 
CF-Karte und einem normalen Cypress USB-ATA (68300C) gemacht.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Matthias:
Das ist ein USB-Device-Controller. Damit kann man Geräte aufbauen, die 
via USB an einen USB-Host (beispielsweise einen PC) angeschlossen 
werden.

Mit anderen USB-Geräten kann man darüber aber NICHT kommunizieren.

Dafür bedarf es eines USB-Host-Controllers, was eine sehr aufwendige 
Programmierung (USB-Host-Stack) voraussetzt.

Die sinnvolle Alternative heißt hier VNC1L. Das ist ein 
USB-Host-Controller mit "Eigenintelligen" von FTDI, der nicht nur den 
USB-Host-Stack enthält, sondern -je nach geladener Firmware- auch gleich 
Unterstützung für FAT-Dateisysteme und ähnliches. Damit lässt sich ein 
USB-Stick mit recht wenig Aufwand ansprechen - und natürlich auch eine 
SD-Karte in einem USB-Kartenleser.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK wie wird so ein chip programmiert bzw. eingestellt.
Hat jemand mit dem Ding Erfahrung bzw. kennt jemand gute Weblinks (nicht 
nur die vom Herstller) bzw. Projekte mit diesem Chip. Vielen Dank im 
Voraus

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>@Matthias:
>Das ist ein USB-Device-Controller. Damit kann man Geräte aufbauen, die
>via USB an einen USB-Host (beispielsweise einen PC) angeschlossen
>werden.

ALso wie in einem Kartenleser oder ?

Das Ding würde ja erstmal reichen für meine Kartenleserfunktion

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sicher, "reichen" würde das. Du müsstest lediglich auf Deinem µC einen 
USB-Device-Stack und die Funktionalität eines MSD ("mass storage 
device") implementieren.
Und bedenken, daß auf das Dateisystem der Karte solange nicht von 
"außen" zugegriffen werden darf, wie das Gerät mit dem PC verbunden ist.
Der hat nämlich während dieser Zeit die Oberhoheit über das Dateisystem 
auf der Speicherkarte und bekommt nicht mit, wenn ihm hinterrücks 
dazwischengeschrieben wird - das führt so zu einem garantiert 
inkonistenten Dateisystem.

Wenn Du Dir nur aus Spaß an der Freud einen USB-SD-Karten-Leser bauen 
willst, also definitiv nicht noch von anderswo auf die Karte zugegriffen 
wird, dann kannst Du das sicherlich so machen. Es gibt für ARMe mit 
USB-Device-Controller auch Beispielcode für die Implementierung eines 
MSD, möglicherweise kannst Du den ja an den verwendeten 
USB-Device-Controller und den verwendeten µC anpassen.

Insgesamt: Was soll Dein Gerät denn überhaupt machen/werden? Soll es 
wirklich nur ein USB-Kartenleser werden? Oder soll das Gerät noch 
irgendeine andere (geheime?) Funktionalität aufweisen, mit der mit der 
SD-Karte bzw. einem anderen angeschlossenen Massenspeicher herumgemacht 
wird?

Was ein 10-EUR-Kartenleser bietet, wirst Du so leicht nicht nachbauen 
können - Du wirst eine SD-Karte so schnell ansteuern können (der 
schnelle 4-Bit-Modus ist nicht frei zugänglich dokumentiert), auch wirst 
Du zumindest Schwierigkeiten bei der Implementierung eines 
USB2.0-High-Speed-Betriebes haben.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Am einfachsten wird es für Einzelstücke mit so einem USB 2.0 Media 
Controller. Das Gehäuse ist bissl groß, aber wenn´s darauf nicht 
ankommt....man bekommt die USB2227 beispielsweise ganz gut als Samples. 
Da muss nix programmiert werden, ist alles komplett fertig drin.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist der nicht ein bisschen überdimensioniert mit 128 PINS. Ich habe ja 
nur eine SD-Karte und will nur eine USB Schnittstelle zum PC erzeugen. 
Keine Sonderfunktionen oder irgendwelche Anschlussmöglichkeiten für 
weitere Karten.

Ich dachte der MAXIM wäre dafür genau geeignet, schön klein und günstig.
Gibt es von FTDI denn auch einen einfachen "USB Device Controller". Wenn 
ich obrige Ausführungen richtig verstanden habe, bräuchte ich ja nur 
einen Device Controller.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, einfache USB <-> SD Controller kenn ich auch nicht. Aber 
vielleicht lässt sich ja was mit dem 68013 von Cypress programmieren. Da 
gibts immerhin ein Referenz-Design zum Anschluss einer 
CF-Karte/ATA-Festplatte per USB 2.0 samt Windows-Treiber. Wenn man das 
hernimmt, und statt der ATA-Funktionen die SPI-Routinen 
reinprogrammiert, müsste man ja leicht auf SD-Karten zugreifen können.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist bestimmt theoretisch möglich, wäre aber nicht so in meinem 
Sinne. Der Programmieraufwand wäre nicht wirklich rentabel, da wie oben 
bereits geschrieben, dann die Alternative "Gerät kaufen, ausbauen, 
anstöpseln" zum Tragen kommen würde. Naja habs versucht, aber so ne 
wirkliche leichte Alternative scheint es da ja nicht zu geben.

Allerdings verstehe ich immer noch nicht, warum der Maxim Baustein für 
meine Zweck nicht ausreicht. Dieser "USB Device Controller" müsste doch 
in Zusammenhang mit einem PC als Host die Daten auf der Speicherkarte 
abfragen können. Das SPI Interface ist ja dabei. Kann mir jemand nochmal 
erklären warum es mit diesem Baustein nicht geht, damit ich ihn ndlich 
aus meinem Gedächtnis streichen kann  ;-)

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Baustein selbst macht ohne Programmierung durch Dich gar nichts.

Du musst den USB-Device-Stack (ein ziemlicher Haufen Software) sowie die 
"mass storage device"-Geräteklasse per Software auf Deinem 
Microcontroller implementieren.

Das ist ein nicht zu unterschätzender Aufwand.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann danke ich euch vielmals und werde Philipp Karbach´s Rat befolgen. 
Ich auf mir so ein "Mistding" und nehm es auseinander. Für 5 € hock ich 
mich echt nicht Stundenlang hin und programmier das. Erst recht nicht 
mit meinen "nur leicht fortgeschrittenen" Programmierkenntnissen.

Ich danke vielmals für die Aufklärung

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.