Forum: Projekte & Code USB Host Stack für Eingebettete Systeme (LGPL)


von Benedikt S. (Firma: embedded projects GmbH) (flopper)


Lesenswert?

Hallo,

im Rahmen meiner Diplomarbeit hab ich einen freien USB Host Stack für 
eingebettete Systeme entwickelt. Enstanden sind die Grundstukuren,
d.h. ein Treiber für den SL811HS von Cypress, ein Klassentreiber für 
Massenspeicher (USB-Flash-Sticks), ein einfacher Treiber für den 
FT232BM.

Vielleicht hat ja jemand Lust mitzubasteln.

http://www.embedded-projects.net/usbport

Gruss Benedikt

von Thomas P. (pototschnig)


Lesenswert?

Das Projekt sieht echt interessant aus!

Da hätt ich aber gleich eine Frage zu:"[...] Host-Controller-Treiber für 
den AT90USB1287 Mikrcocontroller von Atmel."

Geht das nur mit AVRs, die das USB-OTG haben? Die Verwendung als 
USB-Host muss von der Hardware vorgesehen sein, oder?

Ich les mir grad deine Diplom-Arbeit durch ... das ist genau das, was 
ich schon länger gesucht habe :-)

Mfg
Thomas Pototschnig

von Benedikt S. (Firma: embedded projects GmbH) (flopper)


Lesenswert?

Ja genau, aber ich hab ein Host-Controller für Lowspeed Geräte mal 
gesagt bekommen. Ich such den Link mal. Damit kann man wie mit den AVR 
USB Implementierungen genauso mit jedem AVR  USB-Geräte ansteuern.

Man müsste für diese Software Host-Controller Implementierunh nur ein 
Host-Controller-Treiber schreiben.

Gruss Bene

Ich weiss, dass es noch viele Sachen zu machen gibt, dass es eine Chance 
hat eine gute Konkurenz zu den komerziellen zu sein, aber denke das ist 
machbar. Ich würd mich freuen, wenn da der eine oder andere Lust hat mit 
weiterzubasteln.

von Jörg (Gast)


Lesenswert?

Ich finde das auf jeden Fall interessant, habe heute die Rockbox-Crew 
(zu der ich auch mal gehörte) hierauf aufmerksam gemacht. Es gibt 
mp3-Player mit einem integriertem USB-OTG Chip, den wir bisher noch 
nicht nutzen können.
Mit einem geeigneten USB-Stack könnte Rockbox externe Platten benutzen. 
Code für Filesystem ist ja schon vorhanden.

von Jörg (Gast)


Lesenswert?

Nachtrag:
Ein USB-Stack für Rockbox ist ein laufendes Google Summer-of-Code 
Projekt, siehe hier:
http://www.rockbox.org/twiki/bin/view/Main/UsbSoftwareStack
Der Focus ist zunächst ein Device Stack, für die Player die keine 
Hardware-Bridge haben. Host wäre die Kür... ;-)

von Jörg H. (idc-dragon)


Lesenswert?

Noch ein Nachtrag:
Ich habe mich jetzt endlich mal "richtig" bei mikrocontroller.net 
angemeldet, kein Gast mehr.
So erkennen mich die Rockbox-Kollegen wenigstens.  ;-)

von Benedikt S. (Firma: embedded projects GmbH) (flopper)


Lesenswert?

Da wahnsinn, genau sowas suche ich auch schon lange.

Mein erster USB Stack war der hier:

http://usbn2mc.berlios.de

Vielleicht wollt Ihr den auch mit in eure Liste aufnehmen, dann kann ich 
euch verlinken.


Gruss Bene

von Benedikt S. (Firma: embedded projects GmbH) (flopper)


Lesenswert?

Wo liegt denn euer Quelltext?

Gruss Bene

von Jörg H. (idc-dragon)


Lesenswert?

Du meinst sicher den USB-Teil, nicht das svn-Repository oder dessen 
Tarballs. Wende dich mal an Christian Gmeiner oder Peter D'Hoye. Im IRC 
erwischt man die Entwickler sehr zuverlässig.

Kennst du eigentlich diesen Stack (auf AVR, per Bitbanging):
http://www.obdev.at/products/avrusb/index.html

von Benedikt S. (Firma: embedded projects GmbH) (flopper)


Lesenswert?

Wie das wird im Rahmen des Summer of Code geschrieben? oder steh ich 
gerade auf dem Schlauch?

Gruss Bene

von Jörg H. (idc-dragon)


Lesenswert?

Für Rockbox ja.

Der Stack von Objective Development nicht, ist was anderes, hat nichts 
damit zu tun, falls dich das verwirrte.

von Benedikt S. (Firma: embedded projects GmbH) (flopper)


Lesenswert?

ah ok und wo ist der usb stack von Rockbox? Oder die haben doch so ein 
hübsches Bild da ....

Gruss Bene

von Jörg H. (idc-dragon)


Lesenswert?

Christians Arbeitsfeld scheint hier zu sein:
http://www.christian-gmeiner.info/soc/
Aber bitte setze dich doch mit ihm in Verbindung.

von Gast (Gast)


Lesenswert?

Tolle Sache. Ich werde es zwar nicht verwenden (Zeit und fehlende 
Anwendung) finde es aber sehr interessant. Und die Arbeit scheint auf 
den ersten Blick gut strukturiert und übersichtlich...Vielleicht heute 
Nachmittag mal lesen :-)

von Jörg T. (Gast)


Lesenswert?

Hallo Benedikt,
suche schon seit einigen Monaten nach einer USB-Host Lösung mit 'nem µC.
Bisher ohne Erfolg - bis Du nun mit Deiner Arbeit daher kommst.
Alle Achtung! Werde mir bald Deine Diplomarbeit näher anschaun.

Was ich bisher in den Foren las war eher nach dem Motto "USB Host - viel 
zu kompliziert". Ich muss sagen, dass ich von USB-Programmierung (in 
welcher Art  auch immer) generell noch nicht viel gemacht habe. Bisher 
habe ich noch alles mit RS232 und TCP/IP erledigen können. Bis jetzt. In 
meinem aktuellsten Vorhaben (Projekt ist vielleicht schon zu hoch 
gesprochen) will ich eine Kommunikation µC <-> PDA über USB realisieren. 
Fast alle PDA's haben nämlich ein USB Device, d.h. mein µC muss 
irgendwie ein Host sein. Jetzt lese ich Deinen Beitrag und habe wieder 
Hoffnung...

Ich würde gerne Deine Experimentierplatine dazu aufbauen. Könntest Du 
eine Bauteileliste freigeben? Vielleicht ist eine in der brd-Datei (hab 
aber kein Eagle o.ä.). Eine Frage noch dazu. Kann ich das 
Experimentierboard mittels AVR Dragon programmieren/debuggen? Das habe 
ich vor ein paar Tagen bei spoerle erworben.

Vielen Dank für die Antworten/Infos
Gruß
Jörg

von Benedikt S. (Firma: embedded projects GmbH) (flopper)


Lesenswert?

Hallo Jörg,


hier ist mein Eagle kram:
http://svn.berlios.de/svnroot/repos/usbport/trunk/boards/evaluationboard/

Wenn du willst, kann ich mal die Grössen und Werte der Bausteine 
draufschreiben, die fehlen grad.

Das Boards kannst du mit dem AVR Dragon programmieren. Wenn sich noch 
der ein oder andere findet könnte ich mal 10 Platinen oder so machen 
lassen. Es gab auch noch 4 kleine Fehler auf der Platine den müsste man 
noch entfernen.

Ich kann nachher mal ein Foto von meiner Platine Online stellen.

Gruss Bene

von Jörg T. (Gast)


Lesenswert?

Hallo Benedikt,

vielen Dank für die schnelle Antwort.
Ich würde gerne am Di Abend die Bauteile bestellen.
Könntest Du bis dahin mir die Bauteilgrößen nennen bzw. eine 
Bauteilliste geben oder ins berlios stellen? Das wäre super nett.
Eine Info bzgl. der 4 kleinen Fehler wäre natürlich hilfreich :-)

Habe gestern auch mal im www nach dem Cypress gesucht aber nirgends 
gefunden (reichelt, schuricht,...). Hast Du da eine Idee wo man den 
bestellen kann?

Super, das klingt ja alles schon sehr vielversprechend.

Grüße
Jörg

von Benedikt S. (Firma: embedded projects GmbH) (flopper)


Lesenswert?

Hallo Jörg,


http://www.ixbat.de//files/admin/projekte/usbport/usbport.jpg

Ja die Fehler kann ich nachher zusammenschreiben. Geb dir dann bescheid.

http://catalog.digikey.com/scripts/partsearch.dll?Detail?name=428-1721-ND

Ich hab damals einfach Samples geordert. Für den SL811 ist der erste 
Hosttreiber ja geschrieben, aber eigentlich kann man flexibel 
verschiedene Bausteine integrieren. Aktuell arbeite ich an einen fuer 
den AT90USB von Atmel, oder hab auch einen ISP1161 von Phillips da. Für 
den könnte man auch mal einen Treiber schreiben. Gerne kann ich mal ein 
Wochenende investieren fuer sowas.

Gruss Bene

von Benedikt S. (Firma: embedded projects GmbH) (flopper)


Lesenswert?

Ahso mit faellt gerade ein ich kenne auch ein Projekt das mit IO Ports 
des AVR ein Host anbietet. Würde eigentlich fuers erste testen auch 
reichen.

Wäere das was? Dann würde ich mal beginnen dafuer einen Treiber zu 
schreiben.


Gruss Bene

von Benedikt S. (Firma: embedded projects GmbH) (flopper)


Lesenswert?


von Jörg T. (Gast)


Lesenswert?

Hallo,

jetzt wird es spannend :-)
Natürlich wäre mir der Atmega32 als (SW-)USB Host sehr lieb.
Zumal könnte ich dann mit meinem STK500 beginnen
(das Anfang Oktober eintreffen soll). Dann müßtest Du Dir nicht mehr die 
Mühe machen die Fehlerliste und Bauteilliste bereitzustellen - und ich 
brauch keine Platine aufbauen (abgesehen von dem Lochraster-Platinchen 
"Hex Tri-State Buffer" das kriege ich noch in meinem Keller hin :)

Du sagst, du müsstest dafür einen Treiber schreiben? Ist das notwendig?
Ist das viel Aufwand? Würde der Treiber dann die Software der
SIAM32-Truppe "wrappen"? Oder verstehe ich das jetzt falsch mit dem 
Treiber?

Grüße
Jörg

von Benedikt S. (Firma: embedded projects GmbH) (flopper)


Lesenswert?

Ja genau, da nehm ich nur die Routinen und baus bei mir ein. Hab vorhin 
mal ein Adapter begonnen zu loeten.

Man muss es auch nicht in meinen Stack bauen. Man kann genauso die 
Firmware von denen verwenden, wobei ich durch meinen Stack erhoffe das 
man viele Treiber mit der Zeit zusammensammeln kann und die man in den 
wildesten Konfigurationen (Hardware) verwenden kann.


Also du hast recht ich wueder das nur wrappen, die Funktionsaufrufe 
passen super zu meiner Struktur.

Gruss Bene

von Jörg T. (Gast)


Lesenswert?

Klasse.

Deine Treiber-Architektur und der Gedanke dahinter gefallen mir sehr 
gut. Ich würde dann ersteinmal - bis auf das Platinchen,etc. - nichts 
bestellen und auf mein STK500 warten. Kannst Dich ja dann mal melden, 
wenn es einen Treiber-Update gibt :-)
Gruß
Jörg

von Jörg T. (Gast)


Lesenswert?

Hi,

habe jetzt jede Menge Kram bestellt, um eine kleine Platine mit ATmega32 
aufzubauen, die ich mit dem Dragon ansprechen werde.

Gruß
Jörg

von Jörg T. (Gast)


Lesenswert?

Hallo Benedikt,

leider habe ich keinerlei Lebenszeichen mehr von Dir seit dem 17.9. 
bekommen.
Vielleicht bist Du auch im Urlaub. Ich habe nur die Befürchtung, dass es 
doch nicht so einfach ist die Treiber zu erstellen.
Wenn dem so ist, so gib mir kurz bescheid, dann würde ich jetzt anfangen 
die SIAM32-Lib für meine Zwecke zu erweitern/anzupassen. Der Stand bei 
mir ist, dass ich das SIAM32 Zeug geflashed habe und jetzt anfange über 
USART mir gezielt ein paar Debug-Infos auszugeben. Mal schaun, ob ich so 
eine Anbindung an ein USB Device (Maus o.ä.) hinkriege.

Wäre nett, wenn Du Dich mal melden könntest.
Gruß
Jörg

von Benedikt S. (Firma: embedded projects GmbH) (flopper)


Lesenswert?

Hallo Jörg,

nein habs hier vor mir liegen. Hab gerade einiges um die Ohren. Muss 
arbeiten und nächste Woche geht mein Studium weiter. Hast du deine 
Platine schon fertig gelötet?


Gruss Bene

von Jörg T. (Gast)


Lesenswert?

Hallo Benedikt,

dann haben wir ja beide eine zeitliche Nebenbedingung :-)
Nächste Woche sind meine Kinder und meine Frau wieder aus der Kur da, 
dann wird es mit meiner Zeit wieder sehr eng...

Also. Meine Platine ist aufgebaut, habe allerdings noch einen Fehler 
entdeckt, den ich morgen korrigieren werde. Diese Platine beinhaltet 
nicht viel: ATmega32, Quad-Buffer (74HC126), 15MHz Quarz, passive 
Bauteile, USB-Buchse, Stiftleisten, ... (für einen Nicht-Hardwerker 
vielleicht schon viel)

Mittlerweile ist auch mein STK500 da, aber nun ist halt meine Platine 
fertig. Das STK500 benutze ich aber dennoch, da dort eine USART-RS232 
Umsetzung mit nem Maxim uC drauf ist. So bekomme ich meine Debug-Infos 
auf meinen PC. Das funktioniert auch schon ansatzweise.

Habe aber noch kein USB-Device angeschlossen. Das kommt wahrscheinlich 
morgen (besser heute, also Fr!). Erst noch o.g. Fehler korrigieren , 
RS232 noch etwas austesten, aber dann kommt eine USB-Maus dran und dann 
mal schaun, ob ich die Kommunikation aufbauen kann...

D.h. ich beschäftige mich nun doch tiefer mit der SIAM32 Software. Mein 
Projekt muss ich dann anpassen, wenn Deine Treiber fertig sind. Schade, 
denn ich hatte die Hoffnung, dass es mit Treiber einfacher wäre. O.k., 
so lerne ich mehr über USB....
Aber die Interrupts (Studium, Beruf) haben halt höhere Prio, ist ganz 
klar. Bei mir ab nächste Woche auch wieder stärker :-)


Gruß
Jörg

PS: Danke für Dein Lebenszeichen :-)

von Benedikt S. (Firma: embedded projects GmbH) (flopper)


Lesenswert?

Hallo Jörg,

super wenn du was herausbekommst, dann sag bescheid. Das ist ja auch die 
Pionierarbeit die jemand mal leisten muss, das einmal komplett zum 
laufen zu bringen. Wie gesagt das Interface ist wirklich passend 
gemacht. Ich schreib mir mal einen dicken Zettel das ich morgen dran 
denk. Das wäre schon eine sau praktische Sache.




Gruss Bene

von Jörg T. (Gast)


Lesenswert?

so, das war ein langer Abend...

aber es sieht schon ganz gut aus
der Atmel kommuniziert irgendwie mit meiner USB-Maus bzw. dem USB-Stick.
Bei der Maus blinkt die LED (optische Maus) im Takt der Kommunikation 
aber die Daten die ich mir anschaue (Descriptor, etc.) sind alle leer 
(Nullen).
Bei dem Stick hingegen bekomme ich Daten, die habe ich versucht mit dem 
zu vergleichen, was mir die Windows-Systemsteuerung liefert aber da sehe 
ich noch keine Übereinstimmung. Ich bekomme folgende Debug-Daten 
geliefert (s.u.). Jetzt bist Du gefragt Benedikt, meine Kenntnisse über 
USB sind noch sehr spärlich, hatte meine Zeit mit dem Übrigen verbracht. 
Auf was muss ich jetzt schaun? Mich wundert es, dass die rechten 7 Bytes 
immer Null sind. Aber vielleicht hast Du ja eine Idee...?

So, jetzt ins Bett!
Gruß
Jörg

>> Ask for the first 8 bytes of the Device Descriptor
datapacket: 0x80 6 0 1 0 0 40 0
pushing a SETUP
pushing an IN
doing transactions...
  0x00000000000001010000000000000000
  0x000000000000fdfe0100000000000000
resetting...
idling...
>> set address to 1
datapacket: 0x0 5 1 0 0 0 0 0
pushing a SETUP
sending status.
sending status.
sending status.
doing transactions...
  0x00000000000001000000000000000000
  0x000000000000fdff0100000000000000
  0x000000000000f97f0100000000000000
  0x000000000000f53f0200000000000000
>> Ask for the first 18 bytes of the Device Descriptor
datapacket: 0x80 6 0 1 0 0 12 0
pushing a SETUP
pushing an IN
pushing an IN
pushing an IN
sending status.
doing transactions...
  0x00000000000001010000000000000000
  0x000000000000fdfe0100000000000000
  0x000000000000f9fc0200000000000000
  0x000000000000f5fa0000000000000000
  0x000000000000e1f00600000000000000
>> Ask for the first 9 bytes of the Device Descriptor
datapacket: 0x80 6 0 2 0 0 9 0
pushing a SETUP
pushing an IN
pushing an IN
sending status.
doing transactions...
  0x00000000000001020000000000000000
  0x000000000000fdfc0100000000000000
  0x000000000000f9fa0300000000000000
  0x000000000000f5f00300000000000000
>> Ask for a Report Descriptor
datapacket: 0xa1 1 0 1 0 0 8 0
pushing a SETUP
pushing an IN
sending status.
doing transactions...
  0x00000000000000010000000000000000
  0x0000000000007efe0100000000000000
  0x0000000000007cfd0200000000000000
>> set address to 1
datapacket: 0x0 9 1 0 0 0 0 0
pushing a SETUP
sending status.
sending status.
sending status.
doing transactions...
  0x00000000000001000000000000000000
  0x000000000000fdff0100000000000000
  0x000000000000f97f0100000000000000
  0x000000000000f53f0200000000000000

von Jörg T. (Gast)


Lesenswert?

alles quatsch

habe meine Webcam auch mal dran gemacht...

das Ergebnis: die Debug-Ausgabe ist absolut identisch.
ich denke der Descriptor enthält Vendor-ID, etc so dass hier ein 
Unterschied sein müsste.

hier stimmt also irgendwas noch nicht :-(

aber jetzt ins Bett !

von Jörg T. (Gast)


Lesenswert?

Hallo,

habe Antwort von den SIAM32-Leuten bekommen.
Hier ein Auszug:

>> It's possible that the hardware connection is
>> somehow flawed -- can you scope the D+ and D- lines?

Vielleicht ist mein Aufbau nicht gut genug?
Ein Freund baut das gleiche auch gerade auf - mit dem STK500.

Hattest Du inzwischen mal Zeit für das Projekt?

Gruß
Jörg

von Benedikt S. (Firma: embedded projects GmbH) (flopper)


Lesenswert?

Hallo,

ne hab irgendwie viel zu wenig Zeit leider gerade. Aber es liegt hier am 
Schreibtisch. Ich werd es die Woche wirklich mal versuchen, bin selber 
schon ganz gespannt drauf.


Gruss Bene

von Benedikt S. (Firma: embedded projects GmbH) (flopper)


Lesenswert?

Mir ist gerade beim Frühstück eingefallen, du darfst da nur LowSpeed 
Geräte dranhängen an die Schaltung! Bei den anderen kann er nichts 
erkennen würde ich jetzt mal sagen.

Gruss Bene

von Benedikt S. (Firma: embedded projects GmbH) (flopper)


Lesenswert?

Hallo Jörg,
hab heut mal die Schaltung fertig gelötet. Morgen abend wird getestet.

Bin gespannt.

Gruss Bene

von Benedikt S. (Firma: embedded projects GmbH) (flopper)


Lesenswert?

Hallo Jörg,

was muss man denn da alles machen? Kannst du das schnell mal 
Stichpunktartig erzählen? Hab alles in den Startlöchern. Wenn du mir das 
schnell sagen könntest kann ich mir die arbeit sparen das anzupassen. 
Oder hast du das angepasst? ich krieg da ein paar Fehler.

Gruss Bene

von Jörg T. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Benedikt,

in dem SIAM32-Projekt gibt es (leider) mehrere main-Dateien.
Das ist etwas verwirrend. Und zwar zum Debuggen der einzelnen Treiber 
Schichten. Ich habe das oberste Level (client) hier getestet, d.h. 
"test_client_avr.c". In der Haupt-Routine "test_hc_sie_interaction()" 
kann man die einzelnen Schritte (Anforderung des Descriptors, etc.) der 
Kommunikation debuggen. Das Makro "debug" schiebt über die UART die 
Debug-Kommentare heraus, die ich mir über das RS232-Spare des STK500 und 
dann mit dem Windows-Tool "putty" anschaue. Bei putty kann man in den 
Optionen das  Linefeed einschalten.

Das Makefile des SIAM32 ist für alle main-Projekte und daher (für mich 
zu unübersichtlich). Ich kenn mich mit make auch nicht so gut aus. Ich 
habe Dir aber mal mit dem AVR-Studio ein Makefile exportiert 
(Makefile_new). Für den Fall, dass Du auch mit dem AVR-Studio arbeitest, 
habe ich auch mein Arbeits-Projekt gezippt.

Mein Freund hatte auch noch eine Idee. Vielleicht müssen in den D+/D- 
noch Reihenwiderstände eingefügt werden, da lt. Spezifikation 3,3V auf 
den USB-Datenleitungen sein sollten, nicht 5V. Vielleicht kriege ich 
damit auch mehr mit meiner Maus hin, habe ich aber noch nicht 
ausprobiert.

Gruß
Jörg

PS: Sorry, dass ich mich erst jetzt melde, aber ich war einige Tage 
krank.

von Benedikt S. (Firma: embedded projects GmbH) (flopper)


Lesenswert?

Ja das hab ich mir auch schon gedacht, dass das nicht sauber ist mit den 
5V auf D+ und D-.

Wie gross müsste man die Widerstaende machen? Ich bin Informatiker :-)

von Benedikt S. (Firma: embedded projects GmbH) (flopper)


Lesenswert?

Die haben ein 15 MHz Quarz. Das müssten wir auch machen. Sonst können 
wir die Zeit nicht erreichen.

Hab gerade keinen 15 MHz Quarz da muss mir erst einen besorgen.

Vieleicht ist das auch von denen ein Fehler....

von Jörg T. (Gast)


Lesenswert?

Hi,

habe einen 15MHz Quarz eingelötet.
Na ja, funktioniert ja auch nicht wirklich :-)

von Jörg T. (Gast)


Lesenswert?

Hi,

bei meinem Freund reagiert die USB-Maus wie bei mir: die LED blinkt 
hektisch (irgendwelche Daten kommen wohl an) aber es kommt nichts 
zurück. Wie gross die Widerstände sein müssen, weiss ich auch nicht 
genau. Vielleicht so um die 100Ohm jeweils als Serienwiederstand in D+ 
und D-. Man müsste sich das dann im Oszi anschaun, habe aber zur Zt. 
keines zur Verfügung. Alternativ könnte man evtl. den TriHexBuffer mit 
3,3V betreiben - könnte doch evtl. auch klappen, oder?

Bin gespannt auf Dein Resultat.
Jörg

von Benedikt S. (Firma: embedded projects GmbH) (flopper)


Lesenswert?

Ja bei mir ist das gleiche die Maus blinkt unkoordiniert. Irgendwie bin 
ich noch nicht so überzeugt von dem Zeug :-)

Ich würds auch nicht als blinken bezeichnen sondern eher zuckeln :-)

von Jörg T. (Gast)


Lesenswert?

ja, aber ist doch schon Mal was :-)
vielleicht probieren wir das nocheinmal mit den Widerständen und mal die 
Signale mit dem Oszi anschaun

die Antworten von den SIAM32-Junx sind auch eher knapp :-(


und wenn's nicht geht...
...ich kenn da noch eine schöne Diplomarbeit :-)

von Henrik Haftmann (Gast)


Lesenswert?

Ein frei verfügbares praktisches Beispiel für die Ansteuerung eines 
SL811HST von einem ATmega32 gibt's eigentlich schon länger in Form von 
meinem LPT->USB-Konverter:
http://www-user.tu-chemnitz.de/~heha/bastelecke/Rund%20um%20den%20PC/USB2LPT/lpt2usb.htm
Hier in Assembler. Kein LGPL, sondern PD.

Der SL811HST ist jedoch ziemlich lahm, teuer und umständlich 
beschaffbar, sodass ich heutzutage das gleiche Projekt eher mit einem 
passenden ARM7, dem LPC2388, lösen würde.

henni

von Markus F. (schrotti1982)


Lesenswert?

Hallo Benedikt,

ich habe mir jetzt mal deine Diplomarbeit herunter geladen und ein bissl 
gelesen. Da ist vor allem der Punkt 6.2.4 Hub Treiber für mich 
interessant.

Vielleicht erst mal zu meinem Problem:

Ich mache gerade eine Diplomarbeit zum Thema EMV und USB. Dabei möchte 
ich folgende Strecke aufbauen, die dann einen stetigen Datenstrom 
übertragen soll (Bulk Transfer).

USB Host -> Hub -> Hub -> USB Mass Storage

Das schaut jetzt vielleicht ein bisschen umständlich aus, aber die Hubs 
sind wichtig für den Testaufbau. Es geht also um den physical layer des 
USB (Störabstrahlung usw.) und nicht um Protokolle und Software.

Ich habe mir für den USB Host und das USB Mass Storage zwei Eval Boards 
der Firma Cyan Technologies besorgt mit dem eCOG1X14Z5 Microcontroller.

Diese Boards können sowohl als USB Host als auch als USB Device dienen.
Als Beispielprojekt ist ein USB Stack für Mass Storage Devices und ein 
Mass Storage Host implementiert. D.h. man sollte die zwei Boards 
zusammenschalten können, damit diese kommunizieren können (Einer als 
Host das andere als Device). Hoffe ich jedenfalls.

Es gibt aber keinen USB Stack für USB Hubs.

Jetzt meine Frage:
In deiner Diplomarbeit hast du geschrieben, dass du schon ein Gerüst für 
einen Hub Treiber implementiert hast. Hast du da eventuell mittlerweile 
einen komplett funktionierenden Hub Treiber, den ich verwenden könnte, 
um das System zum laufen zu bringen? Ich habe noch keine Ahnung von 
Microcontroller Programmierung, deswegen wäre ich für ein bissl Support 
sehr dankbar (Links, Dokus, Tuts).

Also schon mal vielen Dank für die Antwort!!

Grüße

Markus

von Bene (Gast)


Lesenswert?

Das ist leider mein letzter Stand:

http://svn.berlios.de/svnroot/repos/usbport/trunk/drivers/class/hub.c

Gruss Bene

von Markus F. (schrotti1982)


Lesenswert?

Alles klaro!

Danke erstmal, ist besser als ganz bei 0 anzufangen!

Grüsse

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.