Hallo Leute,
ich möchte Daten über USB 3 zum PC übertragen. Dazu verwende ich einen
Virtex 5 und einen FT601 von FTDI (USB 3 to parallel).
Die USB 3 Buchse enthält neben den USB 3 Signalen parallel auch die USB
2 Signale. Das ist sehr praktisch, da ich auch einige UARTS benötige.
Daher wollte ich einen FT4232H von FTDI verwenden. Der Baustein erzeugt
3 UARTs und 1 JTAG Interface aus den USB 2 Bus. Über das JTAG Interaface
möchte ich die Firmware auf den FPGA hochladen.
Und nun zu meinem Problem:
Ich benötige eine galanische Trennung. Und genau hier fängt das Problem
an. USB 2.0 ist leider nur Halbdublex fähig und besitzt keine 8b/10b
Codierung. Ich habe von Samtec das FireFly Kabel ausgewählt. Dies
funktioniert jedoch nur mit Signalen die eine Frequenz von mehr als 1GHz
haben. Dies ist bei USB 2.0 leider nicht so. Zudem muss das Signal eine
8b/10B Codierung besitzen, ansonsten funktionieren die optischen
Umsetzer auch nicht zuverlässig. Des weiteren sollen die optischen
Umsetzer Probleme mit HotPlug and Play haben.
Daher habe ich das optische Kabel von Corning ausprobiert. Die
Datenübertragung funktioniert sehr gut. Nur leider ist es so wenn ich
den USB Stecker aus der PC Buchse herrausziehe und wieder reinstecke,
dann wird die USB Verbindung leider nicht mehr erkannt. Es muss immer
der PC neu gestartet werden. Dies ist für ein Produkt nicht wirklich die
optimale Wahl, daher wollte ich die optische Umsetzung auch selber
machen.
Jetzt stehe ich vor einem großem Scherbenhaufen. Es gibt mehere
Möglichkeiten. Ich lasse die USB 2.0 Schnittstelle weg. Dies hätte zur
Folge, das ich keine UART-Converter von FTDI benutzen kann und zudem
auch kein JTAG-Interface zur Verfügung habe. Zudem benutze ich einen
gekauften Touchcontroller der ein USB 2.0 Interface besitzt. Diesen kann
ich dann auch leider nicht mehr verwenden.
Die UARTs könnte der FPGA bereitstellen. Für die Umsetzung müste ich
einen weiteren FT601 Chip verwenden. Das JTAG-Interface kann man über
eine XMEGA32 Mikrocontroller realisieren. Die FPGA Firmware wird dann
über das USB 3 Interface in den FPGA übertragen dort in UART konvertiert
und dann an den XMEGA übertragen und der wandelt es in JTAG um. Ich
würde dann einen externen SPI FLASH für den FPGA verwenden. Wenn der
Upload jedoch schief geht, dann ist der Inhalt im Flash defekt, der FPGA
stellt dann kein UART- Interaface mehr zur Verfügung und demnach kann
ich dann auch keine FPGA Firmware mehr flashen.
Einfacher würde es gehen wenn es einen USB3 zu UART Konverter gibt. Der
auch gleichzeitig ein JTAG Interface zur Verfügung stellt.
1. Kennt einer von Euch einen USB 3.0 zu UART Konverter?
2. Hat einer von Euch vielleicht einen Rat wie ich die galvanische
Trennung über Glasfaser hinbekomme? Gibt es vielleicht einen Baustein
der das USB 2 Signal in einen 8b10B Datenstrom umwandelt?
Michael schrieb:> Daher habe ich das optische Kabel von Corning ausprobiert. Die> Datenübertragung funktioniert sehr gut. Nur leider ist es so wenn ich> den USB Stecker aus der PC Buchse herrausziehe und wieder reinstecke,> dann wird die USB Verbindung leider nicht mehr erkannt. Es muss immer> der PC neu gestartet werden. Dies ist für ein Produkt nicht wirklich die> optimale Wahl, daher wollte ich die optische Umsetzung auch selber> machen.
Und der Fehler liegt am PC oder dessen USB-Stack oder dem Kabel oder auf
der anderen Seite beim FTDI, dessen USB-Stack etc.?
Workaround von der Corning-Seite ausprobiert? "USB3.Optical cables by
Corning are optimized to work in hi-speed (480Mb/s) and superspeed
(5.0Mb/s) systems. The cable can support lower speed USB 1.1 & 1.0
peripherals (<12Mb/s) with use of a wall-powered intermediate hub
(either USB2 or USB3). Alternatively, an unsupported work around, if
wall power is not available, is to use a bus-powered USB 2 hub that
reports itself to the computer as a self-powered hub and is directly
powered from our cable. Dedicated USB 2 hubs typically consume very
little power themselves and will allow direct connection of one or two
at the most very low power consuming (<50mA) USB 1.1/1.0 peripherals.
Some examples of 1.1 peripherals are keyboards, mice and serial
converters."
http://www.corning.com/optical-cables-by-corning/worldwide/en/help.html#faqs> Jetzt stehe ich vor einem großem Scherbenhaufen. Es gibt mehere> Möglichkeiten. Ich lasse die USB 2.0 Schnittstelle weg. Dies hätte zur> Folge, das ich keine UART-Converter von FTDI benutzen kann und zudem> auch kein JTAG-Interface zur Verfügung habe. Zudem benutze ich einen> gekauften Touchcontroller der ein USB 2.0 Interface besitzt. Diesen kann> ich dann auch leider nicht mehr verwenden.
Muss es da High Speed USB sein (klingt bei UARTs und Touch nicht so)?
Dann u.U. auf der "Ausgangsseite" (Richtung FPGA) der FTDIs isolieren,
was man auch beim FT6xx versuchen könnte, Full Speed USB auf der
Kabelseite bspw. ADuM3160.
Ansonsten könnte man auch einen kleinen Controller mit USB-Host, der die
Touch-Daten annimmt und UARTs bereitstellt, einsetzen, der die Daten
passend für das FPGA aufbereitet, das sie dann über den FT6xx raus
gehen.
Wie machst du das überhaupt dass du die 2.0 Signale aus der USB Buchse
heraus für andere Devices als den FT601 nimmst? Das gehört doch zusammen
zu einem Port, auch ein 3.0 Device braucht für die Enumeration
eigentlich die 2.0 Signale. Geht das denn?
Wir haben hier auch die Corning Kabel, die gehen sehr gut, schnell und
für 3.0 und 2.0 Geräte. ABER: Die sind nicht galvanisch getrennt. Die
Stromversorgung für den optischen Receiver wird per Kupferkabel
übertragen. Nur die Datenleitungen sind optisch.
Richtig galvanisch getrennt geht nur mit Icron, dann aber ohne 2.0!
http://www.icron.com/products/icron-brand/usb-extenders/fiber/usb-3-0-spectra-3022/
Das Workaround von Corning habe ich nicht ganz verstanden. Kannst Du
dazu vielleicht noch ein paar Worte schreiben.
Es muss leider USB2.0 High Speed sein (480MBit) Und zwar aus folgendem
Grund. Ich verwende schnelle ADCs. Der FPGA bereitet den ADC Datenstrom
auf und übergibt den Datenstrom dan an den FT601 (32Bit to USB 3
Konverter). Ein aufgenommenes Bild wird dann an den PC übertragen.
Anschließend wird per UART ein neues Bild angefragt. Würde ich eine
12MBit USB 2.0 Interface verwenden, dann würde die Übertragung vom PC
zum Gerät deutlich länger dauern und die Framerate würde sehr viel
geringer seind. Das ist leider keine Option.
Ich verwende die 5V von den optischen USB 3 Kabel selber nicht auf
meinen Baords. Somit hängt auch keine zu große Last an den 5V.
Bei den optischen Kabel lag ein kleines Handbuch bei. In dem Handbuch
selber steht, das das Laufwerk vorher ausgeworden soll, bevor ich den
USB Stecker aus dem PC ziehe. Also genau wie bei einem USB Stick. Jedoch
kann ich es nicht auswerfen, da es nicht in der Taksleiste angezeigt
wird.
Die Notwendigkeit von 3.0 ist mir schon klar. Was nicht so recht klar
ist, wie du ein 3.0 Device (FT601) und ein 2.0 Device (USB UART) an
einen Host-Anschluss angeschlossen hast. Da muss ja normalerweise ein
Hub rein.
Wenn du jetzt solltest die 3.0 Leitungen des Downstream ports an den
FT601 angeschlossen haben und die 2.0 Leitungen des gleichen Ports an
das 2.0 USB UART, dann wundert mich ehrlich gesagt gar nix, denn das ist
komplett außerhalb der Spec und vom Stand des Mondes und anderen
zufällen abhängig, die Host und Devices darauf reagieren.
Zeichne doch mal ein Bild!
Zu dem Corning Kabel wollte ich dir nur den Hinweis geben, dass das halt
NICHT galvanisch getrennt ist. Lediglich die Datenleitungen sind
optisch, weil die 5GBit/s über Kupfer halt wesentlich schwieriger zu
realisieren sind. Die Masse und +5V sind per Kupferkabel verbunden.
Deine galvanische Trennung ist also im Falle von Corning keine. Steht
übrigens auch so (allerdings etwas versteckt) im Anschlussbild, siehe
Anhang.
Hallo Christian,
das hört sich doch sehr interessant an. Endlich jemand der auch die
Kabel von Corning verwendet und mit dem man sich mal austauschen kann.
:-)
Wenn ich die 5V nicht auf meinem Board anschließe dann ist es doch
galvanisch getrennt. Ich könnte auf meinen Board auch einen Optokoppler
hinzufügen, dann sind die 5V auch galvanisch getrennt.
Verdammt ich habe die USB 2.0 Leitungen nicht an dem FT601 Chip
angeschlossen. Und das Board ist schon in der Fertigung :-(. Ich dachte
die Informationen werden über die USB 3.0 Leitungen ausgetauscht. Dann
wird das wohl nicht funktionieren. Ich glaube da benötige ich eine neue
Boardrevision.
Ich habe direkt an der USB 3 Buchse einen USB 3.0 Hub von Micron
angeschlossen. In den Hub gehen die USB 2 und USB 3 Signale rein. Der
Hub besitzt 4 unabhängige USB 3 und USB 2 Ports.
An zwei USB 2 Ports habe ich zwei FT4232H angeschlossen (Somit habe ich
7 UARTS und ein JTAG Interface) Das hat auch schon funktioniert. An 2
USB 3 Ports habe ich zwei FT601 Chips angeschlossen. Somit kann ich zwei
unterschiedlich Bildquellen über 1 USB Kabel übertragen und habe
zusätzlich die Möglichkeit über USB 2 UART Befehle zu übertragen.
@ Christian
Hast Du den schon mal das Corning Kabel vom PC abgezogen (PC ist dabei
eingeschaltet) und anschließend nach 20 Sekdunden wieder in den PC
gesteckt? Bei mir wird das Corning Kabel dann leider nicht mehr erkannt.
Ich muss immer den PC neu starten. Ich habe es schon bei unterschiedlich
PCs ausprobiert. Alle PCs zeigen das selbe Verhalten.
Michael schrieb:> Wenn ich die 5V nicht auf meinem Board anschließe dann ist es doch> galvanisch getrennt. Ich könnte auf meinen Board auch einen Optokoppler> hinzufügen, dann sind die 5V auch galvanisch getrennt.
Nee, denn dann fehlt ja das Bezugspotenzial für die Datenleitungen. Du
müsstest die Masse auch wegnehmen. Die 5V könnte man bei einem self
powered Device in der Tat über Optokoppler machen, aber ohne GND wird
das mit den Datenleitungen nix.
Es gibt meines Wissens keine galvanisch getrennte Lösung, die USB 3.0
und USb 2.0 kann. Entweder oder. Beides bei Icron zu haben.
Michael schrieb:> Verdammt ich habe die USB 2.0 Leitungen nicht an dem FT601 Chip> angeschlossen. Und das Board ist schon in der Fertigung :-(. Ich dachte> die Informationen werden über die USB 3.0 Leitungen ausgetauscht. Dann> wird das wohl nicht funktionieren. Ich glaube da benötige ich eine neue> Boardrevision.
Das wird nicht klappen. Wir arbeiten zwar mit dem FX3, aber die
Enumeration läuft immer über USB 2.0 Signaling, erst später schaltet der
Host wenn verfügbar nach SuperSpeed.
Ich glaube die fehlen da ein paar USB Grundlagen...
Michael schrieb:> @ Christian>> Hast Du den schon mal das Corning Kabel vom PC abgezogen (PC ist dabei> eingeschaltet) und anschließend nach 20 Sekdunden wieder in den PC> gesteckt? Bei mir wird das Corning Kabel dann leider nicht mehr erkannt.> Ich muss immer den PC neu starten. Ich habe es schon bei unterschiedlich> PCs ausprobiert. Alle PCs zeigen das selbe Verhalten.
Kann ich morgen mal testen, ich kann mich aber nicht erinnern, sowas
gesehen zu haben. Welches OS verwendest du? Bei Windows 7 ist das mit
USB 3.0 alles Glücksspiel. Wir haben bei uns auf Windows 10 umgestellt,
seitdem klappt USB 3.0 zuverlässig überall. Bis auf die recht lange
Enumerationsphase an 2.0 Geräten klappt das Corning Kabel sehr gut. Vor
allem an 3.0 Geräten geht es rasend schnell. Auch an 2.0 schafft man die
40MB/s. Das schaffen die Icron Wandler leider nicht. Allerdings halt
keine galvanische Trennung. Muss man das kleinere Übel für seine
Applikation wählen.
Falls ich das Testen morgen vergesse, bitte PN an mich.
Ich habe bereits einen USB3 Grafikchip verwendet. Dort habe ich auch nur
die USB 3 Leitungen angeschlossen und die USB 2 Leitungen nicht
verbunden. Trotzdem wird der Chip im Gerätemanager richtig angezeigt.
Der FT601 Chip wird ja auch sehr schnell im Gerätemanager erkannt.
Soetwas habe ich bei USB 2.0 Geräten bisher noch nicht gesehen. Ich habe
ein FT601 SDK Board. Ich werde dort auch mal testen die USB 2.0
Leitungen durchzuschneiden.
Du must bei einem USB 3 Kabel "nur" die beiden USB 2 Adern durchtrennen.
Interessant, dass das geht. Ist sicher im Standard so nicht vorgesehen,
aber zum Basteln OK. Geht halt dann nur an 3.0
Ich hab eben mit dem Corning Kabel getestet. Alles prima, Kabel am PC
abziehen, Gerät wird nach etwa 1 sek. abgemeldet, wieder anstecken,
sofort da. Ebenso bei Gerät am Ende des Corning Kabels abziehen.
Hab das 10m Kabel und Windows 10 Enterprise mit Intel xHCI Controller
(HP Elitedesk 800 G2 Tower).
Danke für den Test,
Ich habe 2x die 10m Variante und 1 mal die 30m Variante. Alle haben sich
bei mir gleich verhalten ich werde es am Donnerstag noch mal testen
Galvanische Trennung und USB ist ätzend.
Du solltest Gigabit Ethernet verwenden. Galvanische Trennung ist da sehr
einfach, zuverlässig und funktioniert millionenfach. Gigabit Ethernet
wird z.B. bei Videokameras verwendet (GigE). Du musst ja nicht unbedingt
IP verwenden, auch wenn das das ganze erleichtert. Mit Hotplug wirst Du
auch niemals Probleme haben.
Und wenn Gigabit nicht reicht, gibts ja immer noch 10 Gigabit.
fchk
Das Problem ist leider das 1GBit zu langsam ist und 10GBit im Konsumer
Bereich nicht vorhanden ist. Dann lieber Thunderbolt mit 40 GBit da gibt
es auch Kabel von Corning :-)
Michael schrieb:> Daher wollte ich einen FT4232H von FTDI verwenden. Der Baustein erzeugt> 3 UARTs und 1 JTAG Interface aus den USB 2 Bus.
Da hätte ich zuerst mal probiert was der an USB 1.1 Full Speed so sagt,
und einen ADUM4160 als Isolator dazwischen geschaltet. Die 3*UART + 1x
JTAG hören sich für mich nicht so an als würde man High Speed zwingend
brauchen.
Zum Testen könnte man enweder einen steinalten USB 1.1 Hub oder ein
ADUM4160/ADUM3160 Modul aus dem Internet nutzen. Datenblatt des FT4232H
sagt aber: USB 2.0 Full Speed wird unterstützt.
Michael schrieb:> Wenn man Produkte in gewissen Branchen verkaufen möchte dann ist dies> zwingend eine Vorraussetzung.
Also doch kein Consumer-Bereich.
fchk
Wie ich bereits oben beschrieben habe, muss die UART Latenz so gering
wie möglich sein.
Wenn ich da einen Isolator von Analog Device dazwischen schalte erhöht
sich die Latenz deutlich (sies hängt mit der um Faktor 20 geringeren
Übertragungsrate von 12MBit zusammen).
In dem Gerät sind 7 Mikrocontroller verbaut die alle eine UART mit
921000 Baud benutzen.
Michael schrieb:> In dem Gerät sind 7 Mikrocontroller verbaut die alle eine UART mit> 921000 Baud benutzen.
Ohne die Details zu kennen, klingt mir das sehr nach einer aufgebohrten
Frickellösung bzw. Schwächen im Systemdesign.
Wenn man den Einsatz der vielen Mikrocontroller valide begründen kann,
sieht meine Einschätzung möglicherweise anders aus.
Duke
Das System funktioniert schon perfect nur mit einem anderen Interface
nach Außen. Und nein es ist keine Frickellösung. Wir können Daten mit
bis zu 900MB/s in Richtung PC übertragen und gleichzeitig ein Display
Signal vom PC in das Gerät übertragen und parallel mit 7 Mikrocontroller
kommunizieren. Da kann man nun wirklich nicht von Bastellösung sprechen.
Das obrige Konzept arbeitet genauso gut ist jedoch von den kosten im 3
stelligen Bereich günstiger. Das Problem ist nur noch die galvanische
Trennung.
Zudem kann es bei dem USB Konzept Probleme beim ESD Test geben da so
viele Konverter und Hubs vorhanden sind die getörrt werden können. Aber
wenn man die alle auf ein Board unterbringt und gut schirrmt dann sollte
es funktionieren.
Es dürfte zwar wegen der parallelen Datenbusse der FT601 recht aufwendig
sein, aber vielleicht ist es doch einfacher, die galvanische Trennung
erst hinter den FT601 / FT4232 einzufügen. Dann liegen nämlich eindeutig
definierte Signale vor.
Man braucht dann zwar eine gute Handvoll galvanischer Isolatoren (à la
http://www.ti.com/product/iso7740), sie nehmen einiges an Platz weg
(immerhin gibt es sie im 0.635mm-SSOP) und sie kosten in Stückzahlen
knapp 2 USD, aber ich bin mir recht sicher, daß so eine Lösung
zuverlässiger und kostengünstiger ist als irgendwelche
Spezial-Glasfaser-USB-Kabel von Corning.
Das mit dem ISOLATOR hinter den FT601 ist leider keine gute Lösung. Denn
es müssen dann ca. 110 Leitungen mit Isolatoren versehen werden. Ich
habe jetzt noch nicht den Isolator angeschaut, jedoch muss die
Schaltfrequenz mindestens 100MHz sein.
Außerdem muss dann auch die Spannung von den ICS galcanisch getrennt
werden.
So ein Hub wäre noch eine Möglichkeit. Wir haben jedoch leider nur ein
recht begrenzte Menge Platz im Gerät. Zudem müssen wir +-8kV Kontakt und
+-15kV Luft bei der ESD Entladungstest bestehen.
Der USB-4630 ist "nur" mit -4kV Kontakt und +- 15kV Luftentladung
spezifiziert. Aber interessant wäre hier sicherlich der Inhalt und die
Lösung :-)
@ Christian R
Hallo Christian,
ich habe auf Arbeit das SDK Board von FT601. Ich wollte ja testen ob der
FT601 die D+ und D- Leitungen benötigt. Dies habe ich gemacht indem ich
beim USB 3 Kabel die D+ und D- unterbrochen habe (einfach die Leitungen
im Kabel durchtrennt)
Der FT601 wurd auch ohne D+ und D- Leitungen einwandfrei im
Gerätemanager angezeigt. Ich kann auch mit dem Tool vom FTDI auf den
Chip zugreifen und den Chip konfigurieren.
Ahja. Gut zu wissen. Muss ich im neuen Jahr mal beim FX3 ausprobieren.
Gibt's eigentlich inzwischen endlich mal USB 3.0 Hubs mit Transaction
Translator? Also dass man ausschließlich mit 3.0 ankommt aber trotzdem
2.0 Geräte betreiben kann? Das würde solche Anforderungen wie du sie
hast, vereinfachen.
Der isolierte Hub von Advantech kann ja auch wieder nur 3.0
Da habe ich leider noch keinen gefunden. Meine Hoffnung war ein USB 3.0
zu USB 2 Bridge Chip. Da habe ich leider aber auch noch keinen gefunden.
Oder halt USB 3.0 zu UART Konverter. Der FT4232H als USB 3 Variante wäre
schön. Ich glaube das werde ich FTDI mal im Forum vorschlagen.
Hast Du schon Übertrager gefunden die für die 5GHz USB 3.0 Signale
geeignet sind? Damit kann man auch eine galvanische Trennung machen.
Wir haben gerade für Ethernet eine rein passive galvanische Trennung
gekauft die mit Übertragern funktioniert. Die Lösung ist sehr klein
(Stecker Übertrager Stecker). Die Lösung kann bis zus 6kV ab und 1GBit
Datenübertragung.
Wäre es für deinen Fall nicht einfacher, PCIe über Glasfaser zu leiten?
Das ist fertig kaufbar und du kannst dahinter in den Gerät eine kleine
PCIe USB 3.0 Karte einbauen...
Z.B. https://www.samtec.com/optics/optical-cable/pcie/pcie
Michael schrieb:> Wir haben gerade für Ethernet eine rein passive galvanische Trennung> gekauft die mit Übertragern funktioniert. Die Lösung ist sehr klein> (Stecker Übertrager Stecker). Die Lösung kann bis zus 6kV ab und 1GBit> Datenübertragung.
Ethernet kommt immer mit Übertragern. Man darf nur nicht den Schirm
verbinden.
Und wenn man es so richtig krachen lassen will benutzt man einfach LWL
entweder über einen Konverter oder indem man gleich einen SFP Slot
vorsieht, dann kann man auch schnell die Module austauschen falls man
eine andere Wellenlänger möchte.
Das Problem an Ethernet ist der immense Entwicklungsaufwand und wenn man
eine gesicherte Übertragung haben will, muss man auch noch hohe Latenzen
in Kauf nehmen, dann geht es nicht mehr über UDP.
Und selbst UDP mit einem Speed der USB 3.0 zumindest ähnlich ist, ist
ein riesen Aufwand im FPGA, da ist es an vielen Stellen einfacher einen
USB 3.0 Chip für 30€ zu verbauen. Vom Plug&Play selbst am kleinsten
Laptop ganz zu schweigen.
Was spricht denn eigentlich dagegen das Corning Kabel umzubauen, also
die Stromversorgung aufzutrennen?
Die Signale laufen da drin doch schon galvanisch getrennt über die
Glasfasern. Ob der Transceiver vom Host, oder vom Device versorgt wird
sollte egal sein. Die Stromversorgung wird Corning da nur mitführen weil
ein reguläres Device keine Versorgung ausgibt. Das modifizierte Ende
sollte man dann vielleicht fest verbauen, dann gibt es auch kein Problem
mit nicht standardkonformen Anschlüssen.
@Christian,
das Problem ist einfach das eine PCIe Karte leider nicht in Frage kommt,
da der Tren leider zu All In One PCs geht.(wie z.B. der IMAC von Apple).
Die Produktmanager möchten keine Desktop PCs mehr dem Kunden anbieten
die sehen nicht mehr stylisch genug aus :-). Daher bleiben nur noch die
Schnittstellen die im so einem System verbaut sind wie z.B. USB 3 oder
Thunderbolt.
Wir haben früher Camera Link verbwendet. Das war total einfach und sehr
Leistungsstark. Da gehen mehr alls 900MByte/s drüber, jedoch benötigt
man da auch eine PCIe Karte im PC. Camera Link wurde dann noch abgelöst
durch einen deutlich schnelleren Standard, jedoch benötigen die alle
PCIe Karten.
USB 3.2 wird sehr interessant werden, da die Bandbreite durch einen
zusätliches Leitungspaar verdoppelt wird. Somit kann man mit 2 FT601
Chips 10GBit übertragen. Ich hoffe ja noch darauf das FTDI bald einen
Nachfolger vorstellt der SuperSupeed+ (10GBit) kann. Dann sind mit USB
3.2 20GBit möglich. Vor allem soll die Nettorate gegenüber USB3.1 Gen1
mit 5GHz deutlich besser sein.
Ich wünsche frohe Weihnachten.
Ich hoffe es auch. Wenn die IP Cores nicht so teuer wären (man braucht
ja 3.0 oder 3.1 Core, 2.0 Core und DMA Core), kann man 3.1 ja auch im
aktuellen FPGAs direkt machen. Mit Parallelbus wie beim FT601 oder FX3
ist ja dann eh Schluss. Da müsste der externe Chip dann per MGT
angebunden sein.
Wir nehmen statt des FT601 lieber den FX3, ist einfach universeller, da
kann man halt selber die Firmware machen, ist nicht auf Rumpeltreiber
angewiesen, sondern kann WinUSB oder auch LibUSB nehmen. Nachteilig ist
halt dass man eine eigene VID braucht. Aber bei professionellem Einsatz
ist das ja kein allzu großer Invest.
Michael schrieb:> Wie ich bereits oben beschrieben habe, muss die UART Latenz so gering> wie möglich sein.>> Wenn ich da einen Isolator von Analog Device dazwischen schalte erhöht> sich die Latenz deutlich
Ähm, hust, hau mal einen USB2.0 high speed Hub vor den Isolator und
miss die Latenzen erneut. BTDT, das Ergebnis war (für mich) eine
Überraschung.
Die Latenzen bei USB haben weniger mit der Übertragunsrate selbst zu
tun. Da geht es vor allem ums DMA-Scheduling im Host Controller, und
durch den USB2.0 Hub nimmt er das (etwas) fixere 2.0 Scheduling - denn
die Verbindung Hub-PC ist jetzt High Speed.
Mit einem USB 3 Hub habe ich das Ganze noch nicht probiert - wäre
eventuell einen Versuch wert.
So ich habe das Board bestückt. Und was soll ich sagen es funktioniert.
Im Gerätemanager werden die beiden FT601 Chips angezeigt, obwohl ich nur
die USB 3.0 Leitugnen am Chip angeschlossen habe. Die USB 2.0 Leitungen
von FT601 Chip habe ich nicht angeschlossen.
Vielleicht ist es besser in Zukunft die Leitungen auf GND zu legen. Das
muss ich noch mal überlegen.
Michael schrieb:> Vielleicht ist es besser in Zukunft die Leitungen auf GND zu legen.
Möglich. Aber bei solchen Experimenten würde ich 0-Ohm-Widerstände
vorsehen, falls es dann doch nicht klappt.
Duke