www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik welches ist das einfachste "USB-Kochrezept"?


Autor: Carsten Pietsch (papa_of_t)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Logasta (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: kai (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Carsten Pietsch (papa_of_t)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich halte das mit dem Kartenleser für am Sinnvollsten. Auch damit kann 
man Sektoren lesen/schreiben (das Dateisystem macht schließlich der PC 
und nicht der Kartenleser).

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

Bewertung
0 lesenswert
nicht 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.

Autor: Logasta (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Propper (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

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.