Hallo an alle, ich habe hier im Forum gelesen das sich bereits einige von euch mit dem ez-usb fx2lp (CY7C6801xA) beschäftigt haben. Die maximale Datenrate liegt bei dem Chip ja bei USB2.0 (480MBit/s = 60MByte/s). Wieviele Nutzdaten kann ich den mit diesen Baustein dann über USB senden (Protokoll Overhead)? Welche Datenrate habt ihr hingekommen (praktisch)? Ich würde ca. 64MBit/s=8MByte/s Nutzdaten versenden wollen. Denkt ihr das ist ohne größere Probleme machbar? Kennt ihr zufällig Tutorials wo ich ein bisschen was zur programmierung des Chips etc. erfahren kann? Danke für eure Antworten.
Hallo. Im asynchronen Modus mit 16 Bit Datenbus, Slave-FIFO-Modus und Quad-Buffer schaffen wir hier je nachdem, was Windows gerade zu tun hat, 15 bis 17 MByte/s. Ist also locker drin, was du brauchst. Lad dir am besten die Beispiel-Applikationen herunter, und das ganze Entwickler-Paket, da steht alles ganz gut beschrieben. http://download.cypress.com.edgesuite.net/design_resources/developer_kits/contents/cy3681_ez_usb_fx2_development_kit_15.zip
Allgemein hilft nach den Begriffen 'sdcc' und 'fx2' zu suchen. Ein interessanter Link den Google listet und wo man auch Beispielcode findet ist hier: http://www.atlas.uni-wuppertal.de/~dopke/files/ Dann hat Cypress auch ganz gute Dokumente zur Einführung. Dann sei auch noch das GNU Radio Projekt erwähnt, das den FX2 nutzt: http://gnuradio.org/trac
Das klingt ja ganz gut. Sind diese 15-17 MByte/s reine Nutzdaten oder kommt da noch das ganze USB Protokoll hinzu? Mit wieviel Protokolloverhead muss man so rechnen? Mit welchen Übertragungsmodi arbeitest du? Gibt es Probleme wenn ich den Isochronen Transfer nutzen möchte um eine kontinuierliche Datenrate von 8Mbyte/s zu garantieren? Reicht dafür der 4kb Fifo oder brauche ich noch externen fifo? Die Daten sollen natürlich nicht velohren gehen? Ist dann noch viel implementierungsaufwand erforderlich?
Die ~16MByte/s sind Nutzdaten. Was da an Overhead dran ist, weiß ich nicht, macht ja der Chip ohne Nutzer-zutun. Isochron ist dann ganz schlecht, da wird einfach alles rausgeblasen, und nicht geschaut ob´s ankommt. Wir nutzen den internen FIFO mit 4xBuffer für einen IN-Endpoint und schieben die Daten kontinuierlich zum PC. Das klappt bestens. Im Asynchronen Modus allerdings. Geht auch nix verloren, wenn man sich an das kranke Timing des 68013 hält.
Danke für eure hilfe und Tips. Werde mich dann mal nächste woche ransetzen und mein Glück probieren.
Bin hier gerade erst drauf gestossen, aber: Ich entschuldige mich an der Stelle gerade mal, dass die weiter oben zitierte Seite nicht wirklich auf einem aktuellen Stand gehalten wurde - habe selber seit drei Jahren nichts mehr mit dem FX2 gemacht, was aber demnaechst mal ansteht. In dem Rahmen will ich dann mal versuchen, ein paar mehr Resourcen zu dem Geraet und allgemein zum USB-Interfacing zu sammeln - wer dazu beitragen mag, kann mir gerne 'ne Mail schicken (Die addy findet man auf der oben verlinkten Seite), nur nicht direkt die Dateien, dann stirbt meine Mailbox. Nebenbei ist mein Code nie fuer Geschwindigkeit gemacht worden - und fuer schnelle Interfaces wuerde ich auch eher auf einen USB2.0 Fifo von Cypress gehen - er war mehr dafuer gedacht damit aktiv zu kommunizieren und Programmablaeufe zu starten (auf dem Controller)...
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.