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