Fragender schrieb:> Sorry!> suche einen oder zwei Controller> was schätzt ihr bis wann die käuflich erhältlich sein werden?>> Danke!
Falls du damit Mikrocontroller meinst: wozu? Selbst High-Speed USB2.0
(480Mbit/sec) sind für nen Mikrocontroller viel viel zu viel. (zumindest
für "Bastler")
Hallo Freunde,
die Frage finde ich eigentlich sehr gut. USB 3.0 Controller.
Derzeit benutze ich den FX2 von Cypress, um Daten von einem FPGA via
USB2.0 in den Rechner zu kriegen.
Nun benötige ich eine höhere Datenübertragung.
Ich weiß, dass es einen Atmel-Controller geben soll mit USB 3.0.
Da ich mich jedoch in die FX2 Controller eingearbeitet, wäre mir Cypress
natürlich am liebsten. Hat jemand eine Idee?
Danke schonmal
olli.borg schrieb:> Da ich mich jedoch in die FX2 Controller eingearbeitet, wäre mir Cypress> natürlich am liebsten. Hat jemand eine Idee?
Dann sieh doch einfach auf der Webseite von Cypress nach, ob die
irgendwas in Richtung USB3 unternehme. Wenn es jemand weiß, dann die.
Hi Olli.borg
könntest du uns mit deiner Erkenntnis helfen? Laut Cypress würde es
schon vor über einem Jahr einen FX3 geben. Aber derzeit gibt es meines
Wissens noch nicht mal Engineering Sample, zumindest nicht für kleine
Firmen.
Wir verwenden derzeit auch schon den FX2 von Cypress und sind zufrieden
damit!
Auch ich bin über jeden Hinweis über USB 3.0 Controller dankbar!
Hinweis:
Eine reine FPGA Lösung mit/ohne TIs USB 3.0 Phy ist für uns wg. dem
benötigten IP Core nicht wirtschaftlich.
Gruß
MS
Ein FX3 ist in Entwicklung - erste Vormuster werden im April erwartet.
Das Ding hat dann aber keinen 8051 Kern mehr ... Preis ist knapp doppelt
so hoch und hat leider auch keine Beine mehr, dafür unzählige Ball's.
Gruß.
Mittlerweile gibts auch auf der Cypress Homepage was:
http://www.cypress.com/?id=3526
Preliminary Datenblatt ist auch verfügbar. Interessant ist, dass das
Slave FIFO Interface offenbar ziemlich kompatibel zum FX2 ist, nur halt
jetzt mit mehr Dampf. 100MHz/32 Bit....es entwickelt sich,
Genossen....mal sehen, wann es ein Demoboard gibt.
Die kommen vielleicht nicht so schnell auf die Pins. Beim Parallelbus
ist 100MHz schon sportlich. Könnte man noch mit DDR machen, aber
irgendwann ist dann Schluss. Zumal einem ja schon wieder schlecht wird,
wenn man das Datenblatt anguckt: Zeit die die Flags zum Setzen brauchen:
8ns. Setup-Zeit für die Steuersignale und Daten: 2ns. Herrlich, bei
100MHz hat man im worst case genau 0ns um zu überprüfen, ob der FIFO
voll ist, und das WE entsprechend wegzunehmen. So macht das Spaß, aber
das kennt man ja vom FX2 schon.
Auf Seite 3 des Datenblatts steht:
"It implements an ingenious architecture which enables data transfers of
320 MBps[1] from GPIF II to USB interface."
Ich hoffe die meinen Megabytes pro Sekunde? Megabits wäre ja unterhalb
von USB2.0 Bandbreite...
Jörg
Da es ein großes B in MBps ist, sind es MByte. Das ist ja aber noch
weniger dann. Das Interface erlaubt ja bis zu 400MByte/s. Naja,
wenigstens überhaupt ein Stand-Alone Device Controller. Die FPGA Cores
sind ja ziemlich preisintensiv, zumal da immer noch der DMA Core und der
USB 2.0 Core dazu gekauft werden muss...
320MByte/s sind schon sportlich..
ich nehme an das cypress da noch nachlegt, zumal die anfangs ja richtig
probleme gehabt haben sollen..
ein bus auf lvds basis wird bestimmt folgen, ich hoffe..
Naja, zumindest der aktuelle FX3 ist dafür nicht ausgelegt. Für schnelle
LVDS Verbindungen braucht man ja gescheite SERDES da drin...da wäre man
wann fast bei der FPGA Lösung. Ich hab auch noch nicht durchschaut, ob
es wie beim FX2 so ein Auto-OUT und Auto-IN gibt, so dass der ARM da
drin entlastet wird. Die Beispiele laufen über Interrupts....ob das dann
schnell genug geht, ist fraglich. Naja, mal ein DemoBoard abwarten...
Mars schrieb:> OK, danke. Hab ich irgendwie übersehen.
andere Leute nehmen Gigabit Ethernet zB für Kameras. Man muss darüber ja
kein IP fahren, und Jumbo Frames gibt es auch, um nicht zu viele
Interrupts zu erzeugen.
fchk
Interessant wäre auch, welchen Treiber der überhaupt nutzt? Läuft das
dann über den CyUSB.sys wie gehabt? Ich steck in der USB Stack Materie
nicht so drin, ist das eventuell auf der oberen Ebene dann egal, ob per
USB 2.0 oder 3.0 angeschlossen? Aber bei 3.0 gibts ja jetzt auch DMA
Transfers usw. Na mal sehen. Wir haben erst mal Samples angefragt, soll
es ja jetzt geben.
Vor dem Treiber Chaos fürchte ich mich jetzt schon. Ich habe CyUSB.sys
schon nicht gut in Erinnerung behalten...
Windows unterstützt weder xhci noch uasp. Falls man einen Treiber für
ein USB 3.0 Device schreiben will, muss man den proprietären Stack vom
Host-Controller Hersteller verwenden. Und ich wage zu bezweifeln, das
die verschiedenen Hersteller-Stacks kompatibel zu einander sind.
Btw.:Auch die ehci-Controller unterstützen DMA-Transfers.
Das ist dann allerdings bescheiden. Wie läuft das dann? Ich meine USB
3.0 Festplatten gibts ja auch viele mittlerweile. Und der NEC
Hostcontroller ist ja mittlerweile fast überall verbaut. Bringt dann wie
bei Bluetooth jeder HostController seinen eigenen Stack mit?
Ja, den Treiber für uasp liefert im Moment auch der Host-Controller
Hersteller. Dieser funktioniert halt nur mit dem xhci Stack vom
jeweiligen Controller Hersteller.
Na dann schaun wir mal. Die CyUSB macht ja bisher auch was eigenes, das
wird dann sicher ähnlich werden. Hoffentlich beheben die mal die
restlichen Bugs im Treiber. Der wirft immer noch ab und zu BlueScreens
unter XP und beißt sich besonders unter Windows 7 x64 stark mit den FTDI
Treibern....immer wieder spannend.
Ja der CyUSB macht immer wieder Probleme. Ich verwende inzwischen
WinUSB. Hab mir zwar das .Net Binding selber schreiben müssen,
funktioniert aber wesentlich besser als CyUSB.
Wir hatten leider noch keine Zeit, den WinUSB dafür anzupassen und die
Applikation umzuschreiben. Wird aber sicher auch noch, der CyUSB nervt
immer mal. Wir gehen schon direkt auf die IOControls des Treibers, das
API ist ja grauenhaft, besonder das .NET API.
Ja .Net Binding von CyUSB ist wirklich grauenhaft. Ich habe mir auch
kurz libUSB angesehen. Das .Net Binding ist auch nicht besser. Auch die
vorhandenen .Net APIs für WinUSB sind zum Teil grauenhaft, oder
unterstützen weder Overlapped IO, noch Cancelation.
So, jetzt reichts dem Ober-Softwareentwickler, wir bauen auch um auf
WinUSB. Der CyUSB Treiber, selbst in der aktuellen Version, schreibt
wild im Speicher rum, nachdem er gemeldet hat, das der asynchrone Read
beendet ist....grauenvoll. Eine Weile gings ganz gut jetzt, aber nun
fällt uns der Mist wieder auf die Füße. Hoffentlich gibts mit WinUSB
nicht solche Probleme.
Wie ist das überhaupt bei der Treibersignierung eines WinUSB Treibers?
Den Treiber an sich hat man ja selber gar nicht, der befindet sich ja
schon im System. Wird da nur das Paket (inf und coinstaller Dateien)
dann zu MS hochgeladen mit den Testergebnissen? Hat das schon mal wer
gemacht?
Mal als Status-Meldung: Die Umstellung auf WinUSB war erstaunlich
einfach, und was noch erstaunlicher ist: Schon ohne Optimierungen
liefert der WinUSB eine leicht bessere Performance als der CyUSB
Treiber. Seltsam. Und bisher noch keinerlei Probleme, selbst mit
riesigen Paketen nicht. Jetzt warten wir auf die Verisign ID (gibts
momentan für 99 USD in der Aktion) und dann kann der auch endlich mal
Win 7 fit gemacht werden. Zum Glück reicht es da dann, das inf zu
signieren, dann kommt nur noch die Nachfrage, ob man dem Hersteller
vertrauen will. Sehr bequem.
Heureka! Ich hab ein Cypress FX3 Dev-Board bekommen. Zwar nur als
Leihgabe für die Dauer der Evaluation, aber immerhin. Mal sehen, was
damit möglich ist.
Also das Board funktioniert erst mal. Bekommen haben wir es als Leihgabe
für die Dauer der Evaluierung direkt vom Cypress Vetreter in
Deutschland. Wir haben aber vorher auch schon ziemlich viele FX2
verbaut, deswegen ging das wahrscheinlich dann.
Ist alles noch im Beta Stadium, aber Eclipse mit ARM-GCC und dem FX3 SDK
geht gut, auch Debuggen über den J-Link klappt einwandfrei, nur bringt
nicht allzuviel, weil Windows dann immer mal Gerätefehler meldet, wenn
man in einem Breakpoint steht.
Die Doku ist noch unausgereift, es ist zum Beispiel nirgens erklärt, wi
die Register für den Slave FIFO Modus beschrieben werden. Da gibts zwar
Beispiele, aber da sind nur 32 Bit Hex-Werte ohne Erklärung drin.
Wir sind momentan dabei, eine Kabel-Verbidung zwischen dem 120-poligen
Samtec Stecker und unserer Hardware herzustellen, das dauert aber noch
etwas. Erst dann kann ich den Slave FIFO Modus nutzen.
Aber anscheinend geht der FIFO Modus (bisher?) nicht mit 32 Bit
Busbreite. Wenn das wirklich auf 16 Bit limitiert ist, sinkt die
maximale Übertragungsrate auf gerade mal 120 bis 140MB/s. Denn mit
100MHz kann man den kaum fahren, das Timing ist wieder mal grandios. Die
Flags brauchen max. 8ns zum Setzen/Rücksetzen, da hat man dann gerade
mal noch 2ns Zeit um das Schreiben/Lesen abzubrechen. Und 2ns ist aber
auch die minimale Setup-Zeit für RD/WR. Naja, etwas langsamer gehts
sicher. War ja beim FX2 genauso.
Ich melde mich wieder, wenn es was neues gibt. Anfangs wollten die ja
ein NDA haben und auch noch die Bestätigung, dass selbst der Abschluss
des NDA vertraulich ist. War aber dann doch nicht mehr nötig, weil die
meisten Infos mittlerweile eh auf der Homepage sind.
Richtig. Wobei ich mich schon bissl frage, wozu das gut sein soll? Im
Consumer-Bereich sehe ich da kaum Anwendungen und im industriellen
Bereich nimmt man dann gleich PCI Express External Cabling. Lässt sich
genauso leicht an jedem PC und Laptop nachrüsten.
Kleines Update meinerseits. Nachdem im Cypress Forum einige Tipps zur
Performance-Steigerung des FX3 gepostet wurden, habe ich mal testen
können. Ich erreiche im BULK Modus mit 16 Packets per Burst hier an
meinem Windows 7 x64 Rechner mit NEC xHCI Controller 160 MB/s IN und 108
MB/s OUT. Die gleichen Geschwindigkeiten liefert übrigens der WinUSB
Treiber ohne jegliche Modifikation. Offenbar kann der mit der normalen
BULK SuperSpeed Übertragung problemlos umgehen. 1GB in 6 Sekunden, das
geht ordentlich :)
Danke für die Infos.
Gibt es das Board oder den Chip mittlerweile irgendwo?
Ich träume davon, mit dem Teil so einen schnuckeligen
Mini-Logic-Analyzer zu haben, wie USBee oder Saleae, nur halt schneller.
;-)
Gibt es einen Mode, bei dem der Chip den Zustand möglichst vieler IOs
parallel abtastet und zum PC baggert?
Jörg
Noch gibt es den Chip nur als Sample und die Boards über Cypress an
Kunden auf Anfrage. Da der simple Logic Analyser über das GPIF Interface
lief, nehme ich an, dass lässt sich mit dem GPIF-II ebenfalls
realisieren. Die maximale Frequenz ist 100MHz beim FX3. Dafür aber dann
32 Bit breit. Schön ist auch die große Menge an RAM, es gibt keine
Hardware FIFOs, die Endpoint und GPIF Fifos sind im RAM und der Transfer
geht per DMA. Man kann bis zu 64kByte Speicher dafür reservieren.
Hallo Christian,
ich versuch mich auch gerade mal mit dem FX3 eva Board. Nicht ganz
leicht dort einen vernünftigen Einstieg zu finden bei den Dokus.
Nutzt du wirklich von Segger den JTAG Adapter oder geht das auch mit
anderen?
Wäre schön wenn wir etwas Erfahrungsaustausch betreiben können.
Grüße Marco
Hi,
ja ich nutze den gelben Segger zusammen mit der J-Link via GDB Software.
Geht ganz gut, bringt aber nur im Notfall was. Wenn man nämlich in einen
Breakpoint läuft, bricht die USB Kommunikation zusammen und Windows
meldet Fehler. Mittlerweile habe ich 160MB/s IN BULK geschafft. Hast du
die aktuelle Doku und das SDK von dem FTP? Wichtig ist auch das Forum,
ich bin ja dort auch viel unterwegs (Chris R.).
Hi,
ja ich habe mir die Doku runter geladen. Ich steh noch ganz am Anfang
und muss sagen, mit dem FX2 war das alles einfacher. Jetzt habe ich mir
mal den Schematic besorgt um mal meinen Xilinx JTAG Adapter dran zu
hängen, aber so richig wills nicht funktionieren. Da wird wohl
zwangsläufig so einer von Segger fällig werden. Das nächste ist der
Samtec Connector. Nirgends ist beschrieben was für ein Typ das ist. Ich
wollte mir mal einen Adapter besorgen um ein Spartan6 Board mit dran
zuhängen... das wird wohl auch noch Probleme geben.
160MB/s mehr geht nicht? Oh got, ich habe gehofft die 320 vom GIPF2 kann
man voll ausreizen. Hmm da werde ich wohl parallel noch mal mit dem PLX
testen müssen.
Gruß Marco
Welcher Samtec das ist, steht im Schaltplan. Bei Samtec gibts auch
passende HighSpeed Kabel dazu. Aber so viel einfacher war der FX2 auch
nicht. Klar, der ARM9 ist eine Ecke schärfer als der 8051, aber durch
das API eigentlich recht durchsichtig programmierbar. Xilinx JTAG wird
nicht gehen, es sei denn, du bekommst den gdb-server irgendwie dazu, den
zu benutzen. Amontec JTAG Key und auch sonstige ARM-Billig-Debugger
sollten aber alle klappen.
Im Forum hat einer mal 220...260MB/s geschafft, aber das konnt ich nicht
rausholen. Die 320MB/s ist der theoretische Wert am GPIF II, der schafft
ja nichtmal die 100MHz im 32 Bit Modus.
Hallo Christian du hattest recht mit dem JTAG Adapter. Danke.
Jetzt frage ich mich nur was du für ein Kabel für den samtec genommen
hast. Die wollen mir eine Custom Lösung für 5k Doller andrehen weil es
angeblich keine Standard Kabel gibt.... Da ätz ich mir glaube ich lieber
eine eigene Leiterplatte.
Gruß Marco
Ich hab noch gar kein Kabel genommen. Ich hab nur mal in den Katalog
geschaut, und gesehen, dass man die bei Samtec machen lassen kann. Von
der Stange gibts die eigentlich nie. Wir bekommen da eigentlich immer
2...3 als Muster, sind aber auch gute Kunden bei Samtec, Preise kann ich
daher keine nennen. Für die Verbindung zu unserer bisherigen Elektronik
muss ich auch bissl basteln, ich werd eine Platine machen, die die
beiden Mictor-Stecker bedient und von der Platine mit einem vorhandenen
Samtec Kabel weggehen.
Hallo Christian,
jetzt versteh ich dich mit dem grandiosen Timing :) ... 8ns brauchen die
flags zum Setzen. Da bleiben noch 2ns Zeit zum Abbrechen... so lang sind
vielleicht schon die Signallaufzeiten wenn es bissel warm ist.
Der Asynchrone Mode sieht noch viel schlimmer aus. twrl ist dort
20ns...gehts noch, da geht ja gar nichts rüber...
Wie hast du eigentlich das GIPF getestet ohne Hardware?
Gruß Marco
Ich hab einfach einen Quarzoszillator drauf löten lassen (mit
doppelseitigem Klebeband befestigt) und mit CuL Draht die Steuersignale
fest verdrahtet, dass der immer IN Transfer macht. An die Widerstände da
kommt man ganz gut ran.
Naja, das mit den Flags ist nicht so wild, wenn man davon ausgehen kann,
dass Werte, die in das volle FIFO geschrieben werden, auch wirklich
nicht übernommen werden. Das haben wir im FPGA Forum schon mal für den
FX2 diskutiert. Wenn man das Signal mit einem FF übernimmt, kommt man
hin. In unserer Anwendung werden wir aber mit 62,5MHz und 32 Bit fahren,
da entspannt sich das sowieso. Ich vermute, mehr als die 160...200MB/s
wird der eh nicht schaffen, da bringen 100MHz IFCLK nix. Zumal das GPIF
II ja nur bis 320MB/s spezifiziert ist...
Der Cypress FX3 ist jetzt offenbar verfügbar. Kostet 40 Dollar in
kleinen Stückzahlen. Seit gestern gibts auch das SDK in der Version 1.0
zum offiziellen Download. Außerdem wurde der Controller vom USB IF
zertifiziert.
Hallo
> Seit gestern gibts auch das SDK in der Version 1.0
zum offiziellen Download.
Seit wir das neue SDK verwenden geht kaum noch was.
-I2C macht ständig andere Spannungspegel
-I2C 1MHz mode hängt sich ständig auf
-UART verschlugt nach ersten USB-DMA Transfer ständig Zeichen und
printet dann nur noch Mist
...und und und
Ein Grauen mit diesem Teil
Gruß Marco
Ich musste auch erst mal einiges umarbeiten für das Release SDK. Vor
allem die FastEnum Geschichte, weil wir auch einen Set Feature Request
haben. Aber jetzt klappts, und das Sync Slave FIFO funktioniert. Was
bissl dämlich ist, ist die Flag-Latenz da, ist aber in den griff zu
bekommen.
Weiss jemand, ob es das Board jetzt auch schon über einen
Online-Shop gibt, oder braucht man immer noch Beziehungen,
um eins zu bekommen ? Oder gibt es zumindest schon einen Preis,
was das Ding kosten soll / wird ?
Im Forum hat der Moderator geschrieben, dass die alten Boards
(Alpha-Stadium) alle sind und die neuen noch nicht fertig. Da stand aber
was, dass man sich in dringenden Fällen da hin wenden kann. Klappt aber
sicher nur, wenn man schon guter Kunde ist.
Den Chip an sich gibts jetzt für 40 USD.
'nabend allerseits.
Hier sind auch die Volumenpreise:
1-10 - $38.45
11-100 -$34.60
101-1000 -$31.14
1001 + - $27.30
Quelle: Cypress Webseite.
Wenn ich so lese, welchen Spaß Ihr mit dem Teil habt, bin ich froh dass
sich mein Projekt verschoben hat und ich nicht schon wieder als erster
durchs nasse Gras laufen muss. Aber dieses Jahr muss ich an diese
Baustelle auch ran und bessere Chips sind auch noch nicht abzusehen,
nachdem TI einen Rückzieher gemacht hat..
Naja, wir haben ja auch am Beta Test teilgenommen. Das Demoboard ist
beta, der Chip an sich, die Datenblätter, das SDK. Mittlerweile ist
alles als Release verfügbar und da klappt das eigentlich alles. Und wie
bei jedem anderen Chip auch, gibts natürlich ein paar Einschränkungen
und Seltsamkeiten. Das war beim FX2 nicht besser. Trotzdem ist es DER
HighSpeed Controller, das wird beim FX3 nicht anders. Bisher gibts
nichtmal eine Ankündigung anderer Hersteller.
Hallo,
es gibt noch eine PCIe to USB3.0 Bridge von PLX. Aber ob die besser ist,
kann ich nicht sagen.
Auf die Volumen Preise würde ich nichts geben. Wir haben von unserem
Distributor ganz andere Preise bekommen.
Gruß Marco
Hallo Christian,
wie läufts? Ich habe über Buschfunk gehört, dass Cypress mit der
nächsten Version (Ende 2012) nur noch 16Bit GPIF mit DDR und höhren Takt
unterstützen will. Hast du auch schon sowas gehört? Ich werde gleich auf
der Embedded mal nachbohren.
Viele Grüße
Marco
Hi,
läuft gut, ich konnte mittels Demoboard und Adapterplatine den FX3 in
die bestehende Hardware integrieren. Bei Nutzung des 16 Bit Slave FIFO
Interfaces musste nichts an der Software auf PC Seite geändert werden.
Läuft perfekt mit WinUSB. Den verbuggten Cypress Treiber braucht man
nicht. Für unsere neue Hardware wird dann gleich der 32 Bit Bus
verwendet. Das Gerücht kenne ich nicht, woher kommt das? Wäre mir
persönlich egal, da ist eh ein FIFO dran. Ansonsten haben wir jetzt auch
eine Platine gemacht, um das Demoboard mit dem QSH Stecker über Kabel an
die FMC der Xilinx Boards anzuschließen. Just nachdem das fertig war,
kündigt Cypress ein FMC Board eines Partners an. Das soll wohl Ende März
lieferbar sein. Auch gut, mal sehen, was das kostet:
http://solutions.inrevium.com/products/fmc/peripherals_debug/index.html
Hi,
das mit dem FMC Board habe ich auch schon gesehen. Meine Platine ist
auch schon drei Wochen da und geht gut. Lesen und Schreiben übers GPIF
klappt ganz gut, bis auf paar Kleinigkeiten die ich nich mit dem Support
klären muss. Wir nutzen den USBIO von Thesycon. Der funzt super. Ein
Kollege von mir ist gerade bei einem Standardisierungs Treffen. Da
stellt sich gerade raus, dass viele diesen Cypress nutzen und einige das
Thema aufgebracht haben. Die scheinen schon mit Cypress gesprochen zu
haben. Im FX3 ist das umstellen kein Akt, im FPGA wird auch noch gehen
aber das Anpassen des Hardware Layouts nervt mich jetzt schon und kostet
wieder.
hi,
eventuell etwas für euch,
www.usb3x.de habe das eben gesehen und dachte mir das ist ein kleine
alternative.
Der Preis steht wohl noch nicht fest, aber man kann es sich auf der
embedded schon mal ansehen.
grüsse aus Bavaria
hirsch5 schrieb:> hi,> eventuell etwas für euch,>> www.usb3x.de habe das eben gesehen und dachte mir das ist ein kleine> alternative.> Der Preis steht wohl noch nicht fest,
mindestens 70EUR inkl. Versand
> aber man kann es sich auf der> embedded schon mal ansehen.>
ansehen werde ich mir beim Cypress
Servus,
mittlerweile hat FTDI seinen FT600 vorgestellt. Mit bis zu 4 Endpoints
könnte der richtig wuppen.
Allerdings scheint es noch keinen Treiber zu geben..
Naja, mehr als der Cypress kann der auch nicht. Man hat halt nur die
Firmware nicht zu machen. Das ist aber mit dem FX3 SDK kein Problem. Der
Preis wäre natürlich interessant, als einziger Anbieter langt Cypress ja
richtig hin.
Frank Dranbin schrieb:> mittlerweile hat FTDI seinen FT600 vorgestellt.
Abgesehen von der Vapourware, ein eigener Thread dafür wäre sinnvoller,
als einen nur halbherzig zum Thema passenden, 3 Jahre alten auszugraben.