Forum: Mikrocontroller und Digitale Elektronik USB FX2 im Slave Mode


von Gast (Gast)


Lesenswert?

Hallo,

kennt jemand ein Beispielprogramm, wie man einen EZ-USB FX2 im 
Slave-Mode betreibt?

Ich will eigentlich nur Daten, die von einem z.B. Microcontroller 
kommen, an den PC senden ...

Weiß da jemand was?

Grüße
Gast

von Christian R. (supachris)


Lesenswert?

Da sind doch genügend Beispiele im Entwicklungspaket von Cypress dabei. 
Unsere Quellcode kann ich dir leider nicht rausgeben, aber der Slave 
FIFO Modus ist das einfachste der Interfaces da. Allerdings könnte das 
mit einem µC etwas schwierig werden, denn der Takt muss min. 5MHz sein 
und immer durchlaufen. Lade dir einfach das Komplettpaket runter und 
installier es, da sind geüngend Beispiele. Bei Konkreten Fragen helfe 
ich gerne. Eine generische Lösung gibts da eh kaum, denn der FX2 lässt 
unzählige Konfigurationen zu.

von Gast (Gast)


Lesenswert?

Hallo Christian,

ganz so einfach ist es nicht. Es gibt in dem Dev-Kit zwar 
Beispielprogramme, aber nichts, was passend ist. Die 
Endpoint-Loop-Samples ist das Einzige, das etwas in die richtige 
Richtung geht.

Wenn ich das Richtig verstanden hab, dann brauch ich ein 8051er 
Programm, dass mir die Register im FX2 initialisiert, damit ich dann von 
außen den Slave-Mode aktivieren kann und Zugriff auf die Fifos habe?

D.h. ich könnte ein solches Loop-Programm in den FX2 laden und direkt 
dann den Slave-Mode verwenden?

Wenn ich das FIFO dann beschreibe, wird dann direkt ein Bulk-Transfer 
gemacht, oder muss ich noch was anderes machen?

Sorry, für die vielen Fragen ... Hab gestern einen ganzen Tag gegoogelt 
und nichts brauchbares gefunden. Der FX2 ist auf dem Nuhorizon 
Spartan3-Dev-Board für $99 drauf und die Softwareausstattung des Boards 
ist eine absolute Unverschämtheit ... Mal davon abgesehen, dass ein 
essenzielles Tool zum Uploaden der FPGA Firmware den Dienst komplett 
verweigert ... So ein Schrott ...

Grüße
Gast

von Christian R. (supachris)


Lesenswert?

Naja, du solltest dir das Technical Reference Manual anschauen. Um den 
Slave FIFO Modus zu aktivieren muss, ich glaube das IFCONFIG Register 
passend beschrieben werden, da war meines Wissens eine 0x03 rein, und 
dann hast du Slave FIFO. Natürlich musst du die entsprechenden Endpoints 
erst mal in der Assembler-Datei für die Descriptoren eingeben, und beim 
Start der Firmware auch im C-File aktivieren und einstellen, also 
Buffer-Größe usw. Dann wollen die FIFOINPOLAR oder sowas Register auch 
noch alle eingestellt werden. Am besten schaust du im Technical 
Reference Manual das Kapitel mit dem Slave FIFOs an, und da stehen alle 
Register und Beispiel-Programm-Schnipsel drin, die zu verwenden sind. 
Ich musste da auch eine Weile probieren und viel viel im TRM lesen, bis 
ich das raus hatte...

von Gast (Gast)


Lesenswert?

Ich glaub soviel Zeit hab ich nicht. Ich werd dann lieber eine 
ARM7-Lösung mit Fullspeed-USB an den FPGA flanschen. Das System ist mir 
bekannt und macht vermutlich weniger Stress. Einfach einen FIFO vom FPGA 
auslesen und 512Byte-weise die Daten an den PC senden.

Aber danke für deine Hilfe!

Grüße
Gast

von Christian R. (supachris)


Lesenswert?

Achso. Naja, ein bisschen Einarbeitung muss man halt schon aufbringen. 
Aber gut.

von Gast (Gast)


Lesenswert?

Ja Christian, da geb ich dir normalerweise recht.

Aber weißt du ... Ich muss auch immer Nutzen und Kosten abwägen und ich 
erreiche mit einem ARM7 innerhalb von 2h ein brauchbares und 
funktionsfähiges Ergebnis. Ich brauch die High-Speed nicht, da meine 
Datenrate bei 1,5MB/sec liegt.

Im übrigen würde ich einen FX2 sowiso nicht auf eine Platine bauen, die 
ich selbst designe ... Zumal der Typ, der da verbaut ist, schon 
abgekündigt ist.

Hatte halt gehofft, es würde etwas geben, damit man es mal schnell 
ausprobieren kann.

Grüße
Gast

von Thomas (Gast)


Lesenswert?

> Ich brauch die High-Speed nicht, da meine
> Datenrate bei 1,5MB/sec liegt.
Dann ist deine Frage nach Slave Mode Beispielen aber völlig daneben.
Eine einfache Bulk Anwendung ist in einer Stunde aus den Beispielen
extrahiert und angepasst.

Thomas

von Christian R. (supachris)


Lesenswert?

Naja, bei 1,5MB/s braucht man wirklich nicht den Slave FIFO Modus. Der 
ist für Datenraten jenseits von 30MB/s interessant. Das hättest du ganz 
am Anfang dazu schreiben können, dann hätten wir dir gleich davon 
abraten können. Der Slave FIFO Modus des FX2 ist eigentlich nur sinnvoll 
mit einem schnellen FPGA nutzbar, denn der FPGA muss dann ja den 
FIFO-Master spielen, sich noch um das Packet-End kümmern usw. Also mal 
eben schnell ist da sowieso nicht. Schnelle Ergenisse für µC usw. 
erreicht man mit dem GPIF und dem GPIF-Designer, es gibt auch 
quasi-fertige Anwendungen: 
http://www.braintechnology.de/braintechnology/ Aber das ist meiner 
Meinung nach ziemlich zurecht gefrickelt da.

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.