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


von Mr. Edd (Gast)


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)

von Carsten S. (carsten)


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.

von Rufus Τ. F. (rufus) Benutzerseite


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?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.

von Steffen (Gast)


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.

von Jens D. (jens) Benutzerseite


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

von Steffen (Gast)


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.

von Rufus Τ. F. (rufus) Benutzerseite


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

von Mr. Edd (Gast)


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.

von BernhardT (Gast)


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,- €

von René König (Gast)


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.

von Danyo (Gast)


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

von Mr. Edd (Gast)


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?

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Mr. Edd (Gast)


Lesenswert?

Und wo erhalte ich diesen Treiber?

von Danyo (Gast)


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.

von Simon F. (Gast)


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.

von Dieter (Gast)


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!

von Mr. Edd (Gast)


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)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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

von Mr. Edd (Gast)


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.

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Mr. Edd (Gast)


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.

von Mr. Edd (Gast)


Lesenswert?

Ich meinte natürlich leere BMP!! :-)

von Dabuze D. (dabuze)


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?

von Mr. Edd (Gast)


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.

von F01Qx (Gast)


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

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Martin (Gast)


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.

von Mr.Edd (Gast)


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?

von Rufus Τ. F. (rufus) Benutzerseite


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?

von Mr.Edd (Gast)


Lesenswert?

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

von Mr.Edd (Gast)


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.

von Simon F. (Gast)


Lesenswert?

Vielleicht ist die "uPSD3400 Turbo Plus Serie" von STMicro. was
interessantes !?

von Martin (Gast)


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

von Mr.Edd (Gast)


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.

von Joern G. (Gast)


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

von Mr. Edd (Gast)


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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Bezugsquelle?

von Mr. Edd (Gast)


Lesenswert?

Nach Anfrage bei einer Vertriebstelle von Cypress.
        Website: www.msc-ge.com

von Mr. Edd (Gast)


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.

von dose (Gast)


Lesenswert?

Hallo,

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

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
Noch kein Account? Hier anmelden.