Hallo, bitte verschieben wenn es nicht hierher passt. Das Problem: In einem PC steckt eine Karte und auf dieser Karte von NI sitzt als Huckepackmodul noch eine kleine Platine mit zwei schnellen DA Wandlern und zwei 16Bit Registern. Über das Huckepackinterface, gehen dafür 20 IOs. 16 der IOs sind der Wert für die DA Wandler, die weiteren 4 IOs sind die 4 Clocks. Je eine Clock für eines der 16 Bit Register und je eine Clock für den DA Wandler. Das läuft so, es werden neue Daten auf die 16 Bits angelegt, dann kommt die Clock für das Register in das die Daten geschrieben werden sollen und etwas später kommt dann die Clock für den entsprechenden ADC. Ich brauche extern möglichst genau die Werte beider DACs. Also hatte ich 2016 eine Platine gebaut die ich zwischen Trägerplatine und Huckepackplatine stecken kann und die alle 20 IOs abgreift. Diese Platine habe ich extern mit 3,3V versorgt, das lokal mit Kondensatoren gestützt und dann sind da drei MC74VHC245 https://www.onsemi.com/pub/Collateral/MC74VHC245-D.PDF drauf. Die bekommen die 20 IOs und geben die Signale dann über ca. 1 Meter IDE-Kabel zu meiner Platine mit FPGA. Im FPGA sind dann quasi die beiden Register nachgebaut und ich erhalte die Daten. Das funktioniert auch alles, aber da ich das vielleicht in einer neuen Version bauen werde, stelle ich mir die Frage, ob ich auch diesen Teil überarbeiten sollte. Vielleicht LVDS Treiber verwenden oder galvanisch trennen, ... wie geht man da als Profi ran? Die Datenrate beträgt maximal 20 MHz.
Gustl B. schrieb: > Im FPGA sind dann quasi die beiden > Register nachgebaut und ich erhalte die Daten. Du erhältst die Daten … Wo? An einem PC? Ein Mikrocontroller? Statt der Platine mit den MC74VHC245 hätte ich einen keinen Controller eingesetzt. Der liest die parallelen Daten und sendet sie, wohin auch immer. Im Falle von einem PC: ein Nano und die daten direkt über USB senden Im Falle eines Mikrocontroller: eventuell per UART, RS485 oder TOSLINK
Thomas W. schrieb: > Wo? > An einem PC? > Ein Mikrocontroller? Na im FPGA. Da brauche ich die Daten. Thomas W. schrieb: > Statt der Platine mit den MC74VHC245 hätte ich einen keinen Controller > eingesetzt. OK, wie genau? Auch zwischen PCI Karte und Huckepackplatine? Und wie würdest du von dort die Daten (maximal 16 Bit bei 20 MHz) von dort den einen Meter zum FPGA übertragen? Leider brauche ich die Daten im FPGA.
Gustl B. schrieb: > Das funktioniert auch alles, aber da ich das vielleicht in einer neuen > Version bauen werde, stelle ich mir die Frage, ob ich auch diesen Teil > überarbeiten sollte. Warum, wenn es gut läuft? > Vielleicht LVDS Treiber verwenden oder galvanisch > trennen, Ist das dein Fetisch, die galvanische Trennung? https://de.wikipedia.org/wiki/Fetischismus_(Religion) >... wie geht man da als Profi ran? Die Datenrate beträgt > maximal 20 MHz. Schon ganz ordentlich, aber bei 1m Kabel mit ausreichend Masseadern gescheit verteilt ist das kein Thema. Man könnte das Ganze auf einen 24:3 Mux mit Channel Link umbauen, aber was bringt das am Ende? Dünnes Ethernetkabel statt 40pol. Flachband. Lohnt sich nicht. http://www.ti.com/interface/lvds-m-lvds-pecl/serdes-channel-link/products.html#p1389=Channel-Link%20I
Na muss ja nicht galvanisch getrennt werden. Ich dachte mir das aus folgendem Grund: Diese Platine im PC mit den Leitungstreibern ist dort mit der Masse im PC verbunden. Über viele Adern im Flachbandkabel aber auch mit der Masse der FPGA Platine. Diese FPGA Platine ist über USB aber noch an einem weiteren PC angeschlossen, ist also auch mit dessen Masse verbunden. Klar, läuft und muss ich nicht anfassen. Aber das hatte ich 2016 gebaut und ... damals hatte ich noch weniger Ahnung als jetzt. Würde man das als Profi so bauen? Nur weil es funktioniert heißt ja nicht, dass es eine schöne Lösung ist. Ist ein IDE Kabel, also 40 Adern. Davon ist die eine Hälfte, also jede 2. Ader für die Übertragung belegt und dazwischen von den verbleibenden 20 Adern habe ich 16 auf Masse gelegt und auf 4 habe ich die 3,3V Versorgung gelegt. Auf der FPGA Platine ist das AC-Terminiert, also Widerstand und dann Kondensator gegen Masse.
Gustl B. schrieb: > als Profi so bauen? Nur weil es funktioniert heißt ja nicht, dass es > eine schöne Lösung ist. Das ist so vollkommen OK! > Ist ein IDE Kabel, also 40 Adern. Davon ist die eine Hälfte, also jede > 2. Ader für die Übertragung belegt und dazwischen von den verbleibenden > 20 Adern habe ich 16 auf Masse gelegt Ist ideal. > und auf 4 habe ich die 3,3V > Versorgung gelegt. Auf der FPGA Platine ist das AC-Terminiert, also > Widerstand und dann Kondensator gegen Masse. Braucht man nicht, du hast eine Punkt zu Punkt Verbindung, da ist Serienterminierung ideal. AC-Terminierung hat bei normalen Signalen so ihre Tücken, bei Takten ist sie eher unkritisch. Siehe Wellenwiderstand.
Wunderbar, vielen Dank!
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.