Forum: Mikrocontroller und Digitale Elektronik Mit einem USB-Kabel kommunizieren und Daten austauschen


von Markus B. (rusticus)


Lesenswert?

Hallo,

ich würde gerne für ein Projekt eine SD-Karte oder ähnliches nehmen und 
dann über eine USB-Schnittstelle darauf zugreifen, als Mass Storage 
Device, gleichzeiig will ich mit dieser einen Verbindung aber auch mit 
meinen µC kommunizieren. Wie das von statten geht, ob per Chip, per vUSB 
oder ob ich die neuen von Ateml mit eingebauten USB-Kontroller nehm, 
weiß ich noch nicht, tendenz geht zu den ersten beiden, da ich gerne 
wieder den AT90CAN128 nutzen würde.

Ich habe schon geschaut und habe herausgefunden das ich wohl einen Chip 
brauch um per USB mit der SD-Karte zu kommunizieren, also quasi nen 
Card-Reader als Chip, dieser scheint aber schwer zu bekommen zu sein was 
ich bisher gesehen habe.

Desweiteren brauche ich wohl noch einen USB-Hub-Controller wie hier:
Beitrag "USB HUB Selbstbau mit TUSB2036"



Lohnt sich das? Ist das noch realisierbar? Oder muss ich mir dann Teile 
mühselig aus Fernost holen?! Ideal wäre Conrad.


Gibt es inzwischen Alternativen? Kann zB der Atmel das übernehmen? 
Geschwindigkeit wär jetzt nicht mein Hauptaugenmerk



Danke schon mal im Vorraus!

mfg Rusticus

von Ralf (Gast)


Lesenswert?

Wieso machst du das SD-Interface nicht direkt mit dem USB Controller?
Er muss nur genug USB-Endpunkte haben um sowohl die SD-Karte als auch 
dein Wunsch-Interface (HID, VCP, etc.) bedienen zu können...

Ralf

von Markus B. (rusticus)


Lesenswert?

Der Anschluss einer SD-Karte ist doch nicht direkt mit dem von USB 
kompatibel? Wieso bräuchte ich sonst Card-Reader?

von Oliver J. (skriptkiddy)


Lesenswert?

Markus B. schrieb:
> Der Anschluss einer SD-Karte ist doch nicht direkt mit dem von USB
> kompatibel? Wieso bräuchte ich sonst Card-Reader?

Er sprach von Mikrocontrollern mit USB, nehme ich an.

von Markus B. (rusticus)


Lesenswert?

Sry wenns nicht verständlich war!


Ich will mit dem µC, vorzugsweise einem AT90CAN128 per USB 
kommunizieren. Quasi UART, das entweder mit einem FTDI - Chip oder vUSB

Außerdem soll sich die SD-Karte beim Anstecken als "Mass Storage Device" 
anmelden.


Haken dabei: Ein Kabel


So nun ist die Frage, was ich dafür brauche

von Karl H. (kbuchegg)


Lesenswert?

Markus B. schrieb:

> Außerdem soll sich die SD-Karte beim Anstecken als "Mass Storage Device"
> anmelden.

Und die SD Karte wird jetzt wo angesteckt?

Ich nehme mal an am AVR.
Das heißt der AVR muss Vermittler spielen und dem Windows zusätzlich 
noch ein Mass Storage Device vorgaukeln und alle Anforderungen an dieses 
Device auf der SD Karte abwickeln.

So richtig?

von Markus B. (rusticus)


Lesenswert?

Das ist eine möglichkeit

Die einzige vorgabe an die SD-Karte ist, das sie sich als "Mass Storage 
Device" anmelden kann, wie ist egal, sie wird halt über einen SD-Slot 
mit auf der Platine verbaut

Ob nun direkt per USB oder über den AT is mir egal, wobei ich 2te 
Variante, also das der AT den Controller übernimmt, am interesantesten 
aber wohl auch am schwierigsten finde

von Ralf (Gast)


Lesenswert?

> Haken dabei: Ein Kabel
Kein Haken mit dem Kabel, sondern mit deinem Wunsch nach dem AT90CAN128. 
Wenn du einen AVR mit USB nimmst, hast du alle Wünsche abgedeckt. Oder 
bist du auf den AT90CAN128 gezwungen?

Ralf

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Markus B. schrieb:
> Die einzige vorgabe an die SD-Karte ist, das sie sich als "Mass Storage
> Device" anmelden kann, wie ist egal, sie wird halt über einen SD-Slot
> mit auf der Platine verbaut

Wenn es für die Funktion des Gerätes unbedeutend ist, daß der µC mit der 
Karte kommunizieren kann, dann kannst Du natürlich auch die Kombination 
USB-Hub und USB-SD-Kartenleser verwenden; irgendwie bezweifle ich aber, 
daß so etwas wirklich gewünscht sein dürfte.

von Markus B. (rusticus)


Lesenswert?

Nein das ist eben nicht relevant, das ich darauf zugreifen kann, es muss 
nur auf einer Platine sein


Also sollte ich eine USB-Hub-Lösung anstreben?

Welche Chips bekommt man denn leichter? Hättet ihr ein paa Vorschläge 
auf Lager? Oder Suchtipps?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Markus B. schrieb:
> Nein das ist eben nicht relevant, das ich darauf zugreifen kann, es muss
> nur auf einer Platine sein
>
> Also sollte ich eine USB-Hub-Lösung anstreben?

Das ist dann die geradlinigste Lösung.

> Welche Chips bekommt man denn leichter? Hättet ihr ein paa Vorschläge
> auf Lager? Oder Suchtipps?

http://www.reichelt.de/?ARTICLE=58423

Das allerdings "nur" ein USB1.1-Hub (12 MBit/sec), der Zugriff auf die 
zusätzlich anzuschließende SD-Karte (nebst Kartenleserinnereien) wird 
also etwas langsam ausfallen.

Was ist das für eine ... merkwürdige Vorgabe, daß da ein autarker 
Kartenleser mit im Gerät untergebracht werden soll?

von Markus B. (rusticus)


Lesenswert?

Danke Rufus, bringt mich schon einen großen Schritt weiter!
Dann brauch ich aber noch einen USB-SD-Treiber oder?

Die SD  - Karte soll wohl aus optischen Gründen mit ins Gehäuse/Platine 
um dort das entsprechende Windowsprogramm abzuspeichern oder so

von Robi-Wan (Gast)


Lesenswert?

Bezieht der µC seine Betriebsspannung über diese USB-Leitung?
Wenn nicht, könntest du die Datenleitungen Trennen / Atmel deaktivieren 
wenn das USB Kabel eingesteckt ist.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Markus B. schrieb:
> Dann brauch ich aber noch einen USB-SD-Treiber oder?

Richtig, so einen Chip, wie er in USB-Kartenlesern zu finden ist.

Eine Möglichkeit wäre z.B. 
http://www.realtek.com.tw/products/productsView.aspx?Langid=1&PNid=15&PFid=25&Level=4&Conn=3&ProdID=49


Außerdem wird es natürlich windowsseitiges Genörgel geben, wenn ein 
High-Speed-Gerät (480 MBit) an einem Full-Speed-Hub (12 MBit) betrieben 
wird, was bei Verwendung des TI-Hub-Bausteines der Fall wäre.

Das hier http://www2.renesas.com/usb/en/product/upd720112.html ist ein 
USB2.0-Hub, der anstelle o.g. TI-Hub-Bausteines zu verwenden ist.

In beiden Fällen wäre natürlich die Bezugsquelle zu klären.


Alternativvorschlag: Anstelle der SD-Karte wird gleich ein USB-Stick 
verwendet.

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.