FPGA > GPIF(SlaveFifo) > FX3 > PC: USB 3.0 zuviel Daten?

OP #3912082
Lesenswert?

Hallo zusammen

Ich bin daran mein FX3-FPGA-Board unter USB 3.0 in Betrieb zu nehmen. 
Vom FPGA sende ich Daten in relativ grossen Einheiten (100 KByte - 900 
MByte) über das Slave-Fifo-IF via FX3 zum PC, jeweils gestuffed auf 
Packet (1024 Byte für USB 3.0), gefolgt von einem Leerpacket (PKTEND 
ohne Daten).

PC-seitig lese ich jeweils 2 MByte-Pakete 
(FX3Device.dataInEndpoint.XferData), d.h. N-1 Pakete a 2 MByte plus der 
Rest. Das funktioniert für USB 2.0 tipp-topp, in der USB 3.0 Version 
kriege ich aber immer noch zusätzliche Daten (in den beobachteten Fällen 
immer '0'). Es scheint als würde ergänzt, und zwar so, dass die 
Gesamtlänge (X*65536)-(j*8) Bytes gross ist (j normalerweise 1, es wurde 
auch schon bis zu j=4 beobachtet). Mit dem SignalTap sehe ich, dass die 
zusätzlichen Daten nicht im FPGA generiert werden, d.h. dort ist alles 
sauber. Hat jemand schon was Ähnliches gesehen? Idee was ich verbocke?

Zum Zweiten ganz was praktisches: Ich benutze das 
standard-GPIF-SlaveFifo-I/F welche für USB 3.0 eine 
DMA-Buffer/Fifo-Grösse von 1024 Byte, für USB 2.0 eine von 512 Byte hat. 
In einem ersten Schritt habe ich mein FPGA für meine USB3.0-Tests fix 
auf 1024-er-Blöcke angepasst, frage mich aber ob das sinnvoll 
automatisiert werden kann, ohne dass das FPGA wissen muss, ober der FX3 
im 2.0 oder 3.0-Mode ist. Was ist hier "best practice"?

Merci!
#3916521
Lesenswert?

Das könnte auch sein. Ich hatte das wahrscheinlich mal. Als ich ganz zu 
Beginn das VHDL Modul vom FX2 auf den FX3 umgesetzt habe, hatte ich das 
noch so drin, dass wie beim FX2 nötig, das PKTEND Signal erst 2 Takte 
nach dem letzten Word des Short Packet aktiviert wird, da ging auch nix 
richtig am FX3, denn da muss das zusammen mit dem letzten Wort kommen. 
Dann gehts korrekt. Mag sein, dass ZLP nicht klappt.
Gast #3918389
Lesenswert?

Christian R. schrieb:
> Seriell wäre schon manchmal schicker, aber das erfordert
> dann immer einen FPGA mit MGT o.ä. als Gegenstelle.

MGT meinte ich auch gar nicht ;-)
Mit normalem LVDS reicht ja schon ein kleines FPGA ohne MGT, spart 
trotzdem einige Pins bzw. bringt RX+TX gleichzeitig.
(und man könnte es umschaltbar gestalten für parallel)
#3918580
Lesenswert?

Naja gut, dann brauchste aber ein FPGA mit SERDES drin, und musst dich 
erst ma syncen usw. wäre aber durchaus sinnvoll, da geb ich dir recht. 
100MHz 32 Bit ist auf dem Layout auch ziemlich blöde, und der FX3 hat ja 
sogar Probleme mit dem internen Substrat-Rauschen und/oder Ground 
Bouncing, wenn man das GPIF mit 3,3V laufen lässt, dann steigt die USB 3 
PLL aus.
OP #3920176
Lesenswert?

Wenn ich den in

http://www.cypress.com/?app=forum&id=167&rID=87073&start=21

erwähnten Delay von >125us draufschlage funktioniert das Ganze soweit, 
dass mit der USB3.0 nicht ständig abschmiert, aber die "known Problems 
and Solutions" helfen da wenig weiter. Werde mich wohl am gegenwärtigen 
"works for me" Status erfreuen und dann gelegentlich ein MyCase starten 
um mehr dahinter zu blicken und die Ursachen verstehen.
OP #4036743
Lesenswert?

Nachtrag zur ursprünglichen "Aufgabenstellung":

Es hat sich herausgestellt, dass bei mir (auf 2 verschiedenen PCs) die 
Kombination von ASMedia Host Controller und dem zugehörigen Treiber 
1.10.0.0 für die Probleme verantwortlich war.

Da die "Suche nach Treiber im Netz" immer mit "ist auf dem neuesten 
Stand" reagiert hat, war mein Verdacht zuerst mal auch nicht auf diesen 
gefallen.

Ein Zwangsupdate auf 1.16.22.0 (!) hat das Problem dann behoben. 
Zwischenzeitlich eingebaute Karten mit Renesas und VIA Host Controllern 
haben ebenfalls problemlos gearbeitet. Ebenfalls problemlos funktioniert 
ein Motherboard mit Intel Host Controller.
Gast #4037037
Lesenswert?

Ich habe ähnliche Erfahrungen gemacht mit anderen USB-3 SuperSpeed 
Geräten.
Manche USB-3 Controller arbeiten nicht sauber, insbesondere günstige 
Steckkarten.
Renesas funktioniert gut, und man sollte wohl die 2A Version nehmen.
Bestens gehen die von Intel im Chipsatz eingebauten Chips z.B. QM-77 und 
ähnliche.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren