mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik USB FX2 im Slave Mode


Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso. Naja, ein bisschen Einarbeitung muss man halt schon aufbringen. 
Aber gut.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.