Ich habe kürzlich ein ZYBO-FPGA-Board gekauft, nur um herauszufinden, dass es genau sechs reguläre Single-Ended-GPIO-Leitungen gibt, die mit dem FPGA verdrahtet sind. Im Gegensatz dazu stehen 18 Differenzleitungen zur Verfügung. Das Referenzhandbuch des Boards besagt, dass die Single-Ended-Kommunikation über die Differenzleitungen funktioniert, aber "erhebliches Übersprechen" aufweist. In diesem Fall wird empfohlen, eine Leitung des Differentialpaars zu erden, aber dies wird offensichtlich den ganzen Zweck zunichte machen, mehr Single-Ended-IO-Leitungen zu haben.
Was genau ist also „signifikantes“ Übersprechen? Wie schnell könnte ich kommunizieren (Single-Ended)? Würde Hochgeschwindigkeits-I2C gut funktionieren? 2 Mbit SPI? Was ist mit einer 25 MHz parallelen Datenübertragung? Kann irgendetwas anderes getan werden, um Übersprechen zu vermeiden oder zu korrigieren?
Obwohl die Leitungen als differentielle Paare geführt werden, ist dies nicht unbedingt ein Killer für Ihre Art von Anwendung. Das Ausmaß des Übersprechens dürfte tatsächlich noch recht gering sein, da Diff-Paare oft näher an der Grundplatte als aneinander geführt werden. Es ist nicht so, als wären sie ein verdrillter Draht ohne Abschirmung, bei dem die Signale effektiv viel besser miteinander gekoppelt sind. Und die Spuren sind wahrscheinlich relativ kurz, stelle ich mir vor (wenn Sie eine parallele Übertragung in Betracht ziehen).
Ich würde vorschlagen, dass Sie problemlos einen parallelen 25-MHz-Bus mit einem in Reihe geschalteten Takt einrichten könnten, um dem Gerät am anderen Ende zu signalisieren, die Daten zu speichern. Treiben Sie die Daten auf eine Kante, verriegeln Sie sie auf der gegenüberliegenden Kante, Sie haben 20 ns Zeit für Übersprechen und Reflexionen, um sich zu beruhigen). Sie könnten die negative Seite des Takttreibers auf '0' treiben und ihn vom Datenbus entfernt platzieren, um dieses Signal so sauber wie möglich zu halten. Es hört sich nicht so anders an, als wie wir früher asynchrone SRAM-Datenbusse geroutet haben (alle Drähte verlaufen sehr eng zusammen mit einer flankengetriggerten Schreibfreigabeleitung) und das hat früher gut funktioniert :)
Die Drähte in den Differentialpaaren werden sehr nahe beieinander verlegt, sodass Signale von einem Draht auf den benachbarten Draht gekoppelt werden können. Der größte Teil des Übersprechens ist wahrscheinlich kapazitiv. Stellen Sie sich die beiden Drähte als Platten in einem Kondensator vor. Eine plötzliche Änderung in einem Draht wird auf den anderen "durchsickern". Eine solche Kopplung ist frequenzabhängig. DC wird überhaupt nicht koppeln. Langsame Flanken können ein wenig koppeln. Sehr schnelle Flanken können sehr stark koppeln. Wenn Sie eine Rechteckwelle mit sehr schnellen Flanken auf einen Draht legen, erhält der benachbarte Draht scharfe positive und negative Flanken, gefolgt von exponentiell abfallenden Flanken. Die positiven Spitzen entsprechen der steigenden Flanke der Rechteckwelle, die negativen Spitzen entsprechen der fallenden Flanke.
Wenn Sie gezwungen sind, differenzielle E/A als Single-Ended-E/A zu verwenden, müssen Sie einige Überlegungen anstellen. Wenn die Gesamtlänge der Spur kurz ist, können die Effekte so klein sein, dass sie ignoriert werden können. Wenn die Spur lang ist, müssen Sie möglicherweise etwas tun, um das Übersprechen zu verringern. Eine einfache Lösung besteht darin, nur einen Draht aus jedem Paar zu verwenden. Der andere Draht kann auf Masse getrieben werden, oder die beiden können auf dem gleichen Logikpegel getrieben werden. Dadurch reduziert sich jedoch die Anzahl der verfügbaren I/Os um den Faktor 2. Eine andere Möglichkeit besteht darin, die Anstiegsgeschwindigkeit der Ausgangs-I/O-Pins zu verringern. Xilinx-FPGAs haben mehrere Auswahlmöglichkeiten für die Antriebsstärke und die Anstiegsgeschwindigkeit. Drehen Sie die Anstiegsgeschwindigkeit auf die niedrigste Einstellung, quietio. Versuchen Sie auch, die Antriebsstärke zu verringern. Sie können auch versuchen, die 50-Ohm-Quellenimpedanz einzuschalten, da dies begrenzt, wie viel Strom aus dem Stift fließen kann.
Es ist schwer zu sagen, wie schnell du laufen könntest, ohne deutlich mehr Informationen darüber zu haben, was du zu tun versuchst. Leider kenne ich mich mit dem Board nicht gut genug aus, um dir eine Einschätzung geben zu können. Es sieht so aus, als könnten die Spuren ziemlich kurz sein.
Um eine Vorstellung davon zu bekommen, wie viel Übersprechen Sie auf einem Paar bekommen können, stellen Sie den FPGA so ein, dass er einen auf einem konstanten Pegel (GND oder VDD) hält und den anderen auf ein paar MHz umschaltet. Stellen Sie die Anstiegsgeschwindigkeit am IO-Pin auf schnell ein. Schließen Sie dann ein Zielfernrohr an den "Opfer" -Stift an und messen Sie die Höhe der Spitzen. Wenn es viel weniger als VDD ist, verursacht es möglicherweise keine Probleme.
Wenn Sie ein einzelnes Kabel und eine Rückleitung (Masse) haben und Daten übertragen, wird das durchschnittliche elektrische Feld an jedem Punkt entlang der Länge des Kabels von der Datenleitung und der Masse stammen - in einfachen Worten, wenn die Daten 5 V pp waren, die elektrische Feld wäre die Hälfte dieses Wertes. Dies ist nicht direkt am Draht, sondern in einiger Entfernung von dem Paar.
Bei einem differenziell angesteuerten Kabelpaar sind die Signale gegenphasig, dh wenn eines bei 5 V liegt, liegt das andere bei -5 V - das elektrische Nettofeld ist über die gesamte Länge des Kabels Null, außer wenn es sich in der Nähe des einen oder anderen Kabels befindet.
Dasselbe gilt für normale gegenphasige Logikpegel - Sie können sich vorstellen, dass 2,5 V der Mittelpunkt ist - ein Draht liegt 2,5 V über dem Mittelpunkt, während der andere 2,5 V unter dem Mittelpunkt liegt.
Wenn also ein differenziell angesteuerter Draht kein signifikantes elektrisches Feld erzeugt, gibt es kein Übersprechen. Das ist die einfache Version. Es ist auch das Magnetfeld zu berücksichtigen, aber da der Strom einen Draht hinauf und umgekehrt auf den anderen fließt UND die beiden Drähte gleiche Geometrien haben, ist das Nettomagnetfeld in einer kürzeren Entfernung theoretisch Null.
Was genau ist also „signifikantes“ Übersprechen? Wie schnell könnte ich kommunizieren? Würde Hochgeschwindigkeits-I2C gut funktionieren? 2 Mbit SPI? Was ist mit einer 25 MHz parallelen Datenübertragung? Kann irgendetwas anderes getan werden, um Übersprechen zu vermeiden oder zu korrigieren?
Sie können den gleichen Chip von TI bekommen, aber er hat eine andere Nummer und sie sind austauschbar.
sonnenseite
Andi aka
FarhadA