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!
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.
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.
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.
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!
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).
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.
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.
> 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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.