www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Microcontroller mit USB-Host feature


Autor: Mr. Edd (Gast)
Datum:

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

Autor: Carsten St. (carsten)
Datum:

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

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

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

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.

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
der SL811HS ( 28pol. PLCC ) oder SL811HST-AC ( 48pol. TQFP ) von Cypress
ist ein USB-Host oder USB-Slave Controller. Ideal für 8Bit MC.

Autor: Jens D. (jens) Benutzerseite
Datum:

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

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
noch vergessen:
zu dem SL811 von Cypress gibt es auch Sourcen, ( für HOST und SLAVE )
die man sich von der Homepage laden kann.

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

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

Autor: Mr. Edd (Gast)
Datum:

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

Autor: BernhardT (Gast)
Datum:

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

Autor: René König (Gast)
Datum:

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

Autor: Danyo (Gast)
Datum:

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

Autor: Mr. Edd (Gast)
Datum:

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

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

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

Autor: Mr. Edd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wo erhalte ich diesen Treiber?

Autor: Danyo (Gast)
Datum:

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

Autor: Simon F. (Gast)
Datum:

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

Autor: Dieter (Gast)
Datum:

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

Autor: Mr. Edd (Gast)
Datum:

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

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

Bewertung
0 lesenswert
nicht lesenswert
Du suchst nach der Spezifikation von "USB Mass Storage Devices". Das
ist eine der vordefinierten Geräteklassen, wie auch HID oder Audio.

Autor: Mr. Edd (Gast)
Datum:

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

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

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

Autor: Mr. Edd (Gast)
Datum:

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

Autor: Mr. Edd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich meinte natürlich leere BMP!! :-)

Autor: Dabuze Dabuze@gmx.de (dabuze)
Datum:

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

Autor: Mr. Edd (Gast)
Datum:

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

Autor: F01Qx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jens:
http://www.asahi-net.or.jp/~qx5k-iskw/robot/usbhost.html
USB-Host auf einem AT90S2313 @ 12MHz, noch ca. 50% des Flashspeichers
frei

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

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

Autor: Martin (Gast)
Datum:

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

Autor: Mr.Edd (Gast)
Datum:

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

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

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

Autor: Mr.Edd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da es eine Diplomarbeit werden soll, und einfache speichern auf eine
Karte evtl. zu "leicht" ist.

Autor: Mr.Edd (Gast)
Datum:

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

Autor: Simon F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht ist die "uPSD3400 Turbo Plus Serie" von STMicro. was
interessantes !?

Autor: Martin (Gast)
Datum:

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

Autor: Mr.Edd (Gast)
Datum:

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

Autor: Joern G. (Gast)
Datum:

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

Autor: Mr. Edd (Gast)
Datum:

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

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

Bewertung
0 lesenswert
nicht lesenswert
Bezugsquelle?

Autor: Mr. Edd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nach Anfrage bei einer Vertriebstelle von Cypress.
        Website: www.msc-ge.com

Autor: Mr. Edd (Gast)
Datum:

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

Autor: dose (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich würde auf einen ARM gehen. Da gibt es gute Varianten.
Von ST die Reihen STR71xF

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.