Mit einem USB-Kabel kommunizieren und Daten austauschen

OP #1966386
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
Gast
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
OP
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
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?
OP
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
Persönliche Seite
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.
OP
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?
Persönliche Seite
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?
OP
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
Gast
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.
Persönliche Seite
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.