Parallelen Bus über größere Entfernung abgreifen.

OP #5763477
Lesenswert?
• ▲
▼
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.
#5763530
Lesenswert?
• ▲
▼
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
OP #5763663
Lesenswert?
• ▲
▼
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.
#5763670
Lesenswert?
• ▲
▼
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
OP #5763691
Lesenswert?
• ▲
▼
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.
#5763926
Lesenswert?
• ▲
▼
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.

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