Hallo zusammen, da ich ein Design plane, bei dem ein FPGA (SPARTAN 6) über eine relativ lange Leitung konfiguriert (Boot-Flash schreiben) und auch via CHIP-SCOPE ausgelesen werden soll, möchte ich die JTAG-Schnittstelle per LVDS verbinden. Single-Ended ist mir zu unsicher. Der FPGA hat natürlich eine Single-Ended Schnittstelle, aber intern besitzt er ja LVDS-Buffer. Gibt es eine praktikable Möglichkeit auf einen zusätzlichen LVDS-Baustein zu verzichten? Ich habe schon überlegt die JTAG-Schnittstelle wieder auf FPGA Pins zu führen intern LVDS-Buffer zu nehmen und wieder auf anderen Pins rauszugehen. Dazu muss er natürlich einmal entsprechend konfiguriert sein. Gibt es da Fallstricke die ich übersehen habe? Viele Grüße!
Die von dir vorgesehenen internen Verbindungen sind nur dann vorhanden, wenn das FPGA seine Konfiguration erfolgreich geladen hat. Somit kannst du mit einem "leeren" FPGA nicht kommunizieren. Hinzu kommt noch, das für die Programmierung des Flashes wahrscheinlich ein Flash-Programmer in das FPGA geladen wird... und dann sind deine internen Verbindungen auch weg.
@ fpga (Gast) >da ich ein Design plane, bei dem ein FPGA (SPARTAN 6) über eine relativ >lange Leitung konfiguriert Wie lang? >(Boot-Flash schreiben) und auch via >CHIP-SCOPE ausgelesen werden soll, möchte ich die JTAG-Schnittstelle per >LVDS verbinden. Single-Ended ist mir zu unsicher. Naja, soooo viel besser ist LVDS da auch nicht, hat auch nur knapp 1V Common Mode Voltage Toleranz. RS485 ist da deutlich besser. Warum glaubst du, dass es Single Ended nicht schafft?
Hannes schrieb: > Die von dir vorgesehenen internen Verbindungen sind nur dann > vorhanden, > wenn das FPGA seine Konfiguration erfolgreich geladen hat. Somit kannst > du mit einem "leeren" FPGA nicht kommunizieren. Hinzu kommt noch, das > für die Programmierung des Flashes wahrscheinlich ein Flash-Programmer > in das FPGA geladen wird... und dann sind deine internen Verbindungen > auch weg. Hallo Hannes, So etwas habe ich geahnt. > Wie lang? vermutlich bis zu 3 Meter. Die genaue Länge weiß ich allerdings jetzt noch nicht. > RS485 ist da deutlich besser. > Warum glaubst du, dass es Single Ended nicht schafft? Das mit dem RS485 habe ich auch schon angedacht. Im Grunde will ich auf Nummer sicher gehen, da ich mit langen Programmierkabeln schon verschiedentlich Probleme hatte und das Ganze solide funktionieren soll. Auch wenn es EMV-Einflüsse gibt, die ich jetzt noch nicht absehen kann, ist mir ein differenzielles Übertragungsverfahren lieber. Da werde ich wohl um einen extra Baustein nicht herum kommen.
> ft2232 und dann per USB...?
Hi Grendel,
Dann bräuchte ich ja auch einen extra Baustein.
@ fpga (Gast) >vermutlich bis zu 3 Meter. Die genaue Länge weiß ich allerdings jetzt >noch nicht. Naja, ist schon mal was. >Das mit dem RS485 habe ich auch schon angedacht. Im Grunde will ich auf >Nummer sicher gehen, da ich mit langen Programmierkabeln schon >verschiedentlich Probleme hatte und das Ganze solide funktionieren soll. Ich hatte auch mal Probleme mit sowas. Das Problem ist, dass die JTAG-Pins mit der gleiche Technologie aufgebaut sind wie die normalen User-IOs. Damit sind sie SAUSCHNELL und reagieren auf jeden Zappler, gerade beim Takt. Lösung. Einfache RC-Tiefpässe mit ein paar MHz Grenzfrequenz, danach Schmitt-Trigger direkt auf dem Board. Dann ist es solide und man kann selbst mieseste JTAG-Signale noch sauber nutzen. Damit lief ein 2m Programmierkabel Marke Eigenbau 100% stabil, während das Original von Xilinx instabil war. >Da werde ich wohl um einen extra Baustein nicht herum kommen. Wo ist das Problem? Mal wieder nur noch 0,3mm^2 Platz frei?
Falls du dich für differentielle Datenübertragung entscheidest, dann denk bitte an den Anwendungsfall, dass dein Programmieradapter nicht angeschlossen oder abgeschaltet ist. LVDS- oder RS485-Empfänger würden in diesem Fall die differentielle Eingangsspannung 0V "sehen"... womit die minimale Eingangsdifferenzspannung unterschritten wird. Ich würde daher "fail-safe"-Empfänger einsetzen (siehe MAX9171/MAX9172) oder mittels externer Beschaltung sicherstellen, dass keine unerwünschten Signaländerungen an den JTAG-Eingangspins auftreten (siehe dazu snla051b.pdf von TI oder AN-5046.pdf von FAIRCHILD). Ausserdem solltest du darauf achten, dass die Pegel der differentiellen Empfänger bzw. des differentiellen Senders mit VCCAUX des FPGA harmonieren.
fpga schrieb: >> Wie lang? > > vermutlich bis zu 3 Meter. Die genaue Länge weiß ich allerdings jetzt > noch nicht. Grundsätzlich kannst DU dir eine LVDS Umgebung basteln. Du musst aber auch darauf achten, dass Du nicht aus dem Common-Mode Bereich herauskommst, (z.B) getrennte Massen aufgrund von Potentialunterschieden, womit Du ggfs. dann doch wieder einen Massebezug zwischen den entfernt aufgabauten Systemen herstellst... Die Frage die sich mir stellt, macht das ganze Sinn? Zum Programmieren kann man in den meisten Fällen einen Laptop geschwind neben das System stellen. Zum Debuggen mit dem Chipscope bietet sich dann an, einen (Chipscope) Server auf jenem Laptop laufen zu lassen und vom Entwicklungsrechner via Netzwerk (TCP/IP) darauf zuzugreifen... Das funktioniert wenns sein soll auch einmal quer über den Globus mit Internet. Gruß Vanilla
Danke für die vielen Rückmeldungen! > Falls du dich für differentielle Datenübertragung entscheidest, dann > denk bitte an den Anwendungsfall, dass dein Programmieradapter nicht > angeschlossen oder abgeschaltet ist. LVDS- oder RS485-Empfänger würden > in diesem Fall die differentielle Eingangsspannung 0V "sehen"... womit > die minimale Eingangsdifferenzspannung unterschritten wird. Ich würde > daher "fail-safe"-Empfänger einsetzen (siehe MAX9171/MAX9172) oder > mittels externer Beschaltung sicherstellen, dass keine unerwünschten > Signaländerungen an den JTAG-Eingangspins auftreten (siehe dazu > snla051b.pdf von TI oder AN-5046.pdf von FAIRCHILD). Ausserdem solltest > du darauf achten, dass die Pegel der differentiellen Empfänger bzw. des > differentiellen Senders mit VCCAUX des FPGA harmonieren. @ Hannes, An die Fail-Save-Schaltung hätte ich jetzt vermutlich gar nicht gedacht. Danke für den Hinweis. Die werde ich auf jeden Fall noch vorsehen um einen definierten Pegel im besagten Fall zu erzeugen. Die von dir genannten Chips sehen gut aus. Allerdings würde ich davon 3 Stück benötigen. Vielleicht finde ich Chips wo 3 Empfänger und 1 Sender in einem Gehäuse untergebracht sind. > Zum Programmieren kann man in den meisten Fällen einen Laptop geschwind > neben das System stellen. > Zum Debuggen mit dem Chipscope bietet sich dann an, einen (Chipscope) > Server auf jenem Laptop laufen zu lassen und vom Entwicklungsrechner via > Netzwerk (TCP/IP) darauf zuzugreifen... > Das funktioniert wenns sein soll auch einmal quer über den Globus mit > Internet. Das Problem ist, dass der FPGA sich in einem unzugänglichen Bereich (hermetisch abgeschlossenes System) befinden wird.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.