welches ist das einfachste "USB-Kochrezept"?

OP #517912
Lesenswert?

Liebe Mit-Bastler,

ich habe mich etwas belesen zum Thema USB am AVR und 3 generelle Ansätze 
gefunden: mit dem AVR selbst (wenn er USB hat),

mit schnellem Assembler-Programm
http://www.obdev.at/products/avrusb/index.html

oder mit externen Chips (FT232, "Vinculum" usw.)

Viele von Euch haben schon Erfahrung auf dem Gebiet, daher die Frage, 
welche Variante Eurer Meinung nach einfacher (wieviele km Quelltext) und 
welche bastelfreudiger (SMD, extra Boards benötigt, Beschaffbarkeit, 
Preis) ist.

Ich will Sektoren von CF-Karten per PC mit USB lesen und später evtl. 
auch schreiben. Die Anbindung der Karten an den uC habe ich im Griff 
(also vom uC aus kann ich Sektoren lesen und scheiben). Jetzt brauche 
ich eine PC-Anbindung, aber der uC muß trotzdem auch (parallel, aber 
nicht gleichzeitig) auf die Karte zugreifen können. Ich will aus 
Performance- und anderen Gründen nicht mit FAT oder Laufwerksbuchstaben 
arbeiten (dann könnte ich einfach einen Kartenleser nehmen), sondern vom 
PC aus will ich einfach eine Routine / dll oder was auch immer aufrufen 
wie

lies_sektor_vom_usb_geraet(zu_lesende_Sektornummer, 
Puffer_fuer_die_Daten)

und der uC soll die Daten von der Karte sozusagen an den PC/USB 
"durchreichen". Wie man das notwendige Protokoll dazu auf dem uC 
integrieren müßte, ist mir auch noch nicht klar, aber dazu wäre es 
schön, wenn Ihr Eure Erfahrungen kurz schildern könntet, oder auch, wenn 
etwas sehr mühsam war..

danke vorab!
Gast #517915
Lesenswert?

Also ich habe sowas (zwar mit MMC aber egal) schonmal mit einem Silabs 
8051 (F34x) gemacht. Die haben einen gute USB Implementierung und auf 
www.silabs.com gibt es auch viele AN zu dem Thema.

Außerdem hab ich auch einen FT232RL benutzt als USB->Seriell Wandler. 
Handhabung sehr einfach, da du am PC einfach einen Com-Port hast und am 
µC den normalen UART nutzt.

Zu AVR/ARM USB-Implementierung kann ich leider nix sagen. Aber ich halte 
es so, bei viel USB-Transfer (und relativ wenig Rechenlast)nutze ich 
einen F34x (der mit immerhin 48MHz schon was kann), bei einfacheren 
Aufgaben einen FTDI (Statusausgabe etc.), wobei ich über den FTDI auch 
schon >1Mbps geschossen habe.
Gast #517919
Lesenswert?

Deinem Link folgend "Fully USB 1.1 compliant low-speed device". Wenn ich 
das richtig Seh dann ist das IGOR Plug gegen Cash.

Was ich bestätigen kann ist die "low speed", very low. Ich denke das 
kommt nicht in Frage für deine Anwendung.
Gast #517931
Lesenswert?

es gibt noch zwei implementierungen wie igor plug, dessen methode 
übrigens auch in den atmel appnotes steht. eine kostet teilweise, die 
andere ist hier mal im forum aufgetaucht, wenn ich recht erinnere.
OP #518082
Lesenswert?

Danke für Eure Hinweise! Die Lösung mit "Silabs F34x" sieht 
professionell aus, aber so gar nicht bastelfreundlich (Beschaffung, 
spez. Board, SMD, spezielle Programmierung), oder? Ich bin ja kein Profi 
mit Profi-Budget..

Ich hab inzwischen noch eine andere Idee: Ich nehme doch einen einfachen 
Kartenleser und bau mir eine Art "Umschalter", so daß entweder der uC 
oder der PC die Karte ansprechen kann. Bischen fummelig aber sollte 
gehen.

Andere Ideen? - herzlich willkommen!
Persönliche Seite #518192
Lesenswert?

Wichtig ist hierbei nur, daß der µC "die Pfoten" von der Karte lassen 
muss, wenn der Kartenleser am PC angeschlossen ist. Der nämlich bekommt 
es nicht mit, wenn ihm "hinterrücks" auf der Speicherkarte 
herumgeschrieben wird. Also: Sobald erkannt wird, daß der Kartenleser am 
PC hängt (USB-Versorgungsspannung auswerten o.ä.), sofort den Betrieb 
des µC einstellen und erst nach Trennung des Kartenlesers vom PC wieder 
aufnehmen.
Gast #518221
Lesenswert?

Für den F34x ist ein bisschen was nötig. Bekommen tut man sie recht gut 
(auch als Sample) z.B. bei DigiKey oder Mouser. Farnell wenn man geld 
rausschmeißen möchte. Zusätzlich braucht man aber noch von Silabs den 
Debugger ($49). IDE ist kostenlos und unterstützt SDCC.

Am schnellsten ist aber die Variante mit dem Kartenleser.
Gast #518418
Lesenswert?

> Zusätzlich braucht man aber noch von Silabs den Debugger ($49).

Das ist der alte Adapter mit RS232. Der neuere USB Debug Adapter kostet 
aktuell bei Mouser nur noch $35 und bei DigiKey EUR 27,13.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren