Hallo Leute. Ich sitze vor folgendem Problem: Ich brauche eine Hardware die mir eine Paralleles Druckersignal (ähnlich wie die PC-Druckerschnittstelle LTP) in Form einer BMP-Datei auf einen USB-Stick speichert. Ich habe schon etliche Seite durchstöbert und meistens nur Microcontroller mit USB-Devise Funktion gefunden. Wer hat also schon mal einen Microcontroller als USB-HOST laufen lassen, um einen USB-Stick anzustecken? Für konkrete Antworten wäre ich sehr Dankbar! (Atmel und Cypress bieten sowas an, aber ich steig noch nicht ganz durch, deswegen bitte konkrete Antworten)
Sorry dass ich dich enttäuschen muss, aber ich habe noch keine µC mit Host-Funktion gesehen. Wenn, dann waren das immer embedded PCs. Vielleicht gibt es ein Host-IC? Aber falls du doch sowas findest, ich suche auch so was.
Doch, es gibt µCs mit USB-Host-Unterstützung. Das sind oft etwas größere ARMe, wie beispielsweise http://www.atmel.com/dyn/products/product_card.asp?part_id=2983 Mir erscheint das für die Aufgabenstellung aber gelinde gesagt etwas Overkill zu sein. IMHO wäre ein anderer Lösungsansatz für die Aufgabe der Verzicht auf einen USB-Stick und stattdessen die Verwendung einer SD-Card. Diese ist nicht teuer als ein USB-Stick und es gibt dafür Lesegeräte, die auch mit eingesteckter SD-Card nicht größer sind als ein USB-Stick. Wie SD-Cards zu beschreiben sind, kann den Codebeispielen aus der Codesammlung entnommen werden.
der SL811HS ( 28pol. PLCC ) oder SL811HST-AC ( 48pol. TQFP ) von Cypress ist ein USB-Host oder USB-Slave Controller. Ideal für 8Bit MC.
es wurde angeblich auch schon auf einem AVR ein USB HOST ans laufen gebracht nur bezweifel ich die performane und ob da noch etwas anderes reinpasst
noch vergessen: zu dem SL811 von Cypress gibt es auch Sourcen, ( für HOST und SLAVE ) die man sich von der Homepage laden kann.
Der von Jens erwähnte USB-Host auf einem AVR ist ein Low-Speed-Host, mit dem eine USB-Maus angesteuert werden kann. Link hab' ich hier mal irgendwo zitiert, einfach nach "verrückter Japaner" suchen. Daraus kann man wohl kaum einen für den Betrieb mit Mass Storage Devices geeigneten Host bauen, da dafür AFAIK "Full Speed" (12 MBit/sec) anstelle von "Low Speed" (1.5 MBit/sec) erforderlich ist. Dann gibt es noch das hier http://www.ghielectronics.com/USBwiz.htm
Danke, Danke. Ich hab noch von einer anderen Quelle eine andere Möglichkeit erfahren, die USB OTG also "USB on the Go" heißt. Dies soll für kleinere USB-Host's für nur ein USB-Device sein. Schon mal davon gehört? Erfahrungen gemacht? Ich werd mich mal auf www.usb.org schlau machen.
Ich kopier hier mal ein Werbemail ungeprüft rein Gruß Bernhard Sehr geehrter Glyn Kunde, ... ########### Weitere Neuigkeiten ########### - FUJITSU Mikrocontroller mit USB Mini-Host und kostenlosen Treibern: FUJITSU bietet 16-Bit Mikrocontroller mit USB Host Funktion an. Damit ist es möglich, USB Devices wie Drucker, Tastaturen usw. ohne Vorhandensein eines PC Hosts an die Embedded Applikation anzuschließen. Über die Firma Thesycon stellt FUJITSU kostenfrei USB Host Treiber für USB1.1 und USB2.0 für die MCUs zur Verfügung. Die komfortable Library wird vorkompiliert und im Sourcecode kostenlos zum Download zur Verfügung gestellt. Die USB Device Funktion ist ebenfalls verfügbar. Diese Funktion ist verfügbar bei den Controllern MB90F334APFF-G und MB90F337PFM-GE1. Starterkit: EVBMB90F337 zu 60,-
> Dies soll für kleinere USB-Host's für nur ein USB-Device sein.
Das hat nichts mit groß oder klein zu tun. OTG versetzt "lediglich"
Deine USB Function in die Lage, bei Bedarf als Host zu arbeiten. Du
bist dann sozusagen Master und Slave in einer Person.
Ich kann den Philips ISP1160 USB Host Controller empfehlen. Gibts bei Reichelt schon für 7,25. Ich denke, dass in deinem Fall ein OTG-Controller (z.B. Philips ISP1362) nicht notwendig ist, da du ja eh nur als Host ein Device ansprechen kannst und daher auf die Device-Funktionalität verzichten kannst. Außerdem ist der OTG teurer (ca. 13) und ist auch schwieriger zu bekommen. Falls du einen 8bit uC nutzt, ist sicherlich der SL811, den Steffen erwähnte, auch keine schlechte Wahl, wenn es da anscheinend schon Sourcen im Netz gibt. Persönlich aber habe ich bisher nur mit dem ISP1160 gearbeitet.. Danyo
Habt ihr auch eine Ahnung wie man Daten so auf den Stick schreibt dass mann es unter Windows als Datei z.b txt oder bmp lesen kann? Habt ihr da irgendwelche Libs? Sind die bei den Microcontroller dabei?
Du musst -zusätzlich zum USB-Stack- auch einen Dateisystemtreiber auf Deinem µC laufen lassen. Entweder FAT16 oder FAT32-Unterstützung ist erforderlich, je nach Größe des USB-Sticks.
:-) Ich glaube, den wirst du, wenn du ihn nicht von einer Software-Bude für ein paar tausend Euro kaufen willst, wohl selber schreiben müssen. Unter Umständen wirst du ein paar Fragmente im Netz finden, die du verwenden kannst. Ansonsten schön Datenblätter lesen! Das wichtigste wäre erst mal die USB Specification 2.0.
Ich hab mich mal ne Woche lang in USB 2.0 eingelesen. Mr. Edd: Vergess es. USB ist ne verdammt komplexe Geschichte. Nur so ein Tipp: Du wirst dran scheitern....Les die USB Spezifikation, dann weisst Du was ich mein. (Ok, ich kenn deine tatsächlichen kenntnisse nicht) Überleg dir lieber was anderes.
"Nur so ein Tipp: Du wirst dran scheitern....Les die USB Spezifikation, dann weisst Du was ich mein." So ein Quark. Der für so eine Aufgabe relevante Teil ist nicht so umfangreich. Zum einen ist in der Spec sehr viel BlubbBlubb, zum anderen erledigen die USB-Chips schon sehr viel in Hardware. Also: Nicht abschrecken lassen!
Also ich hab mich jetzt für den oben schon genannten Fujitsu nC MB90F337 entschieden mit dem Evaluationboard EVBMB90F337, da er schon eine Mini-USB-HOST-funktion hat und laut Glyn die Datensystemtreiber bald erhältlich sind. Fals die Datensystemtreiber zu teuer sind, werd ich versuchen sie selbst zu schreiben. Fals alle Stricke reißen Schreib ich die Daten hald auf eine SD-Karte, da sollte dann doch leichter Treiber aufzutreiben sein. Das Protokoll für die Anmeldung werd ich größtenteils warscheinlich ignorieren können, da ich sowieso nur eine USB-Stick anschließe, und nur für diesen Treiber vorgebe. Also interessiert mich von der ganzen Anmeldung und Identifizierung nur ob es ein Stick ist, und vielleicht noch spezifische Endpunkte. (Da bin ich mir noch nicht so Sicher da ich für USB-Sticks noch keine Spezifikationen gefunden habe. Aber vielleicht unter usb.org, mal sehen)
Du suchst nach der Spezifikation von "USB Mass Storage Devices". Das ist eine der vordefinierten Geräteklassen, wie auch HID oder Audio.
Ja. Hab ich jetzt auch gefunden. Steht viel über Schreib und Lese befehle drin. Ich muss nur noch rausfinden wie ich in die Fat schreibe und wohin die Daten auf dem Stick. Mit dem Control Endpoint geb ich die Befehle ein, und mit dem BULK OUT Endpoint übertrage ich die Daten. Mir ist nur noch nicht ganz klar wie ich in einen FAT formatierten Speicher schreibe.
Die "Mass Storage Device"-Geräteklasse spezifiziert nur den blockweisen Zugriff; wie Du einen FAT16/FAT32-Dateisystemtreiber zu programmieren hast, hat nichts mit USB zu tun. (Den Punkt hatten wir in diesem Thread doch schon?) Beispiele dafür finden sich beispielsweise in vielen festplattenbasierten mp3-Playern. Dabei sind auch mehrere OpenSource-Projekte, also solltest Du mit etwas Suchaufwand auch eine brauchbare Lösung finden können.
Mit >> wohin auf dem Stick schreibe >> hab ich eigentlich nur gemeint, wie mann im Speicher nach dem Format Fat die Daten abspeichert. Das es nichts mit dem USB an sich zu tun hatte war mir schon klar. Aber danke für den Tip mit den MP3-Playern. Ich glaub da werd ich Finden wie mann Daten abspeichert und wie genau das mit dem FAT läuft. Mercy noch mal. Ich überleg auch, eine lehre BMP mal vom PC auf den Stick zu speichern, und die Übertragung mal mit dem OSZI auszulesen. Nochmal Danke an Alle !!! Ihr hab mir echt weiter geholfen.
Hallo Leute, hab ein ähnliches Problem. Ich brauche einen Controller mit dem es möglich ist eine serielle Schnittstelle auszulesen, auszuwerten und Daten auf einem USB Stick zu speichern. @ Mr. Edd Wie sind deine Fortschritte, bist du mit dem Evaluation Board zufrieden, wie kommst du mit dem Dateisystem zurecht?
Bin noch am Kucken. Ich werd mir das Evaboard von Glyn holen(das oben beschrieben ist). Es wird noch etwas dauern bis ich richtig loslegen kann. Werd aber meine Fortschritt hier Posten. Im Punkto Dateisystem hoffe ich das Glyn mit den Dateisystemtreibern bald fertig wird und ich diese günstig bekomme. Ansonsten werd ich sie wohl selber schreiben müssen. Ich hab mich jetzt schon etwas in das Thema Fat reingearbeitet, aber wie und wo was genau steht, und ob ich das überhaupt wissen muss werd ich erst wissen wenn ich mich mit dem EVAboard und dem MiniHost beschäftige.
@Jens: http://www.asahi-net.or.jp/~qx5k-iskw/robot/usbhost.html USB-Host auf einem AT90S2313 @ 12MHz, noch ca. 50% des Flashspeichers frei
Das meinte ich mit dem "verrückten Japaner". Ist aber hier ziemlich nutzlos, da nur ein "Low-Speed"-Host mit 1.5 MBit/sec. Damit kann man HIDs wie Tastaturen und Mäuse ansteuern, mehr aber nicht. Für ein Mass Storage Device benötigt man einen "Full-Speed"-Host mit 12 MBit/sec oder einen "High-Speed"-Host mit 480 MBit/sec.
Sandisk bringt eine SD-Flash-Karte heraus, die man in der Mitte knicken kann und zum vorschein kommt ein USB-Stecker. Also in euer Schaltung einfach per SPI Karte beschreiben und dann direkt ab damit in die USB Schnittstelle am PC. Beispielcode gibt es ja auch genug für FAT und SD-Karte.
Also zur Auswahl hab ich jetzt folgende 3 mirocontroller: Atmel: AT43USB370 (EVAboard: AT43DK370) Cypress: CY7C67200 (oder 300) (EVAboard: CY3663) GLYN/Fujitsu: MB90F334APFF-G (EVAboard: EVBMB90F337) Glyn ist zwar der günstigste aber ich denke ich werde mich für Atmel entscheiden, da er viel verbreiteter ist(mehr fertiger Code vorhanden). Was meint Ihr?
Zum AT43USB370 sagt Atmel dies: "Not recommended for new designs replaced by AT43USB380" Abgesehen davon: da Dir hier einige leichter zu implementierende Alternativen für Deine Aufgabenstellung genannt wurden, warum willst Du jetzt doch den kompliziertesten aller Wege gehen?
Da es eine Diplomarbeit werden soll, und einfache speichern auf eine Karte evtl. zu "leicht" ist.
Ich hab mir jetzt mal die Preise kommen lassen. Cypress fällt mit 2500 auf jedenfall flach. Das EVA-Board von Atmel kostet ca. 500 und der MC scheint mir doch dann etwas übertrieben.
Vielleicht ist die "uPSD3400 Turbo Plus Serie" von STMicro. was interessantes !?
Für ein Diplomarbeit muss man ja schlau sein. Schlau ist der jenige, der es am Kostengünstigsten (Hardware- und Entwicklungskosten) hinbekommt. :-D kleiner Scherz
@Simon F >>Vielleicht ist die "uPSD3400 Turbo Plus Serie" von STMicro. was >>interessantes !? Schönes Kit aber leider ohne Host funktion nur Low-Speed USB-Mass-Device. Trotzdem Danke.
Das scheint nicht zu stimmen. Es gibt so viele wenig marktgerechte Diplomarbeiten - auf eine mehr oder weniger kommt es da nicht an (leider). Dabei gäbe es so viele sinnvolle Dinge, die man tun könnte - bei uns im Arbeitsbereich schaffen wir die Forschungsprojekte gar nicht alle, die gut gebraucht werden könnten. Wenn es komplizierter und Diplomarbeit sein soll, dann bau doch mal eine einfach zu integrierende Datenschnittstelle, mit der man einfach einen Controller, FPGA oder DSP (also Hardwaremässig z.B. per einfachem parallelen Datenbus (wie FTDI245)) an eine Standardschnittstelle des PCs kostengünstig anschliessen kann, also USB2.0 oder Firewire. Ziel sollten unbedingt mögliche Datenraten über 10MByte/s sein. Das ganze PC-mässig dann ebenfalls möglichst einfach (ohne eigene Treiberentwicklung) in verschieden Programme integrierbar! vielleicht sogar per COM-Server oder zumindest universell in Delphi, Visual. Sowas könnte man sinnvoll in tausenden Projekten einsetzen. Einfache Lösungen gibt es heutzutage eigentlich nur für USB1.1. Teure Industrielösungen gibt es dann auch noch, aber meist sind da 1000,-EUR Startbetrag fällig. Mit sowas könntest du nicht nur eine sauber Arbeit hinlegen, sondern sogar noch Geld verdienen, da es immer mehr Bedarf für sowas gibt. Wirklich gute Lösungen gibt es bei hohen Geschwindigkeiten kaum. jörn
Hab mich jetzt für das (in meinen Augen) beste EVA-Board entschieden. CY4640 von Cypress Es ist ein USB EZ-Host Mass Storage Reference Design Kit mit dem schon erwähnten CY7C67300 Host controller. Das ganze Paket inclusive Software mit Datensystemtreiber für 199 Das Kit ist exakt für meine Anwendung. Danke an alle die mitgepostet haben. MFG
Nach Anfrage bei einer Vertriebstelle von Cypress. Website: www.msc-ge.com
Also Statusbericht: Dieses Board von Cypress CY4640 ist optimal für jeden der sich mit USB-Host und USB-OTG beschäftigen will. Die mitgelieferte software ist umfangreich und die Treiber schön übersichtlich in C geschrieben. Ich kann dieses EVA Board nur weiter empfehlen.
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.