Forum: Mikrocontroller und Digitale Elektronik Cypress EZ - USB FX2LP


von Thorsten E. (Gast)


Lesenswert?

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.

von Christian R. (supachris)


Lesenswert?

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

von Alban (Gast)


Lesenswert?

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

von Thorsten E. (Gast)


Lesenswert?

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?

von Christian R. (supachris)


Lesenswert?

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.

von Thorsten E. (Gast)


Lesenswert?

Danke für eure hilfe und Tips. Werde mich dann mal nächste woche 
ransetzen und mein Glück probieren.

von Jens D. (Gast)


Lesenswert?

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