Hallo, ich habe recht wenig Ahnung von Verkabelung und hätte darum gerne ein wenig Feedback für den Testaufbau, den ich mir überlegt habe. Getestet soll eine FPGA-Karte werden, die in einem PC im PCIe Slot steckt und von dem gepowert wird. Ein weiteres FPGA-Board soll ein Testdesign erhalten, das Stimuli für das DUT erzeugt. Da hier ein Vorgang im Minutenbereich durchprobiert werden soll und ich in der Simulation ungefähr das Verhältnis 1ms Simulationszeit pro 1h Rechenzeit habe, macht das aus unserer Sicht Sinn. Die Verbindung der beiden Boards möchte ich ganz einfach single-ended mit Flachbandkabel oder überhaupt einfachen Strippen machen, die mit 3,3 V single-ended arbeiten und auf Pins auf den SAM Steckerleisten auf den beiden Boards gehen. Es handelt sich um 3 Ausgangsleitungen vom DUT zum Testdesign und zwei Rückleitungen. Am kritischsten ist wahrscheinlich der 60MHz Takt, der vom DUT ans Testdesign geht und dort, über eine PLL geführt, die Taktung des Testdesigns übernehmen soll. Inzwischen habe ich mir überlegt, dass ich wahrscheinlich die 6 GND-Verbindungen der beiden Steckerleisten auch verbinden sollte (Stichwort Rückströme). Wenn ichs zusammenbringen vmtl diese GND-Verbindungen im Flachbandkabel zwischen die Signalleitungen. Macht das Sinn? Kann man noch mehr machen? Danke und lg Matthias
Hallo, ATA/ATAPI verwendet ab Version 5 80 polige Kabel, jede zweite Leitung ist eine Masseleitung. Und das bei 33 MHz. Du hast den doppelten Takt. Dann gibt es noch Abschlusswiderstände. Die Kabellänge ist auch begrenzt. Daran solltest du dich orientieren. Tom
Danke für die Antwort, nachdem ich ein wenig gegoogelt habe, habe ich das Gefühl, es könnte funktionieren oder auch nicht. Das mit den GND-Leitungen zwischen den anderen Leitungen ist wohl jedenfalls ein Muss, bei der Signalanordnung kann ich auch schauen dass ich zwischen die drei Signale mit vielen Flanken noch die beiden mit relativ wenigen Flanken setzen kann. Auf den FPGAs die Slew Rate auf Slow, evtl auch die Drive Strength runter. Die nicht vorhandenen Terminierungen machen mir noch Sorgen, evtl könnte ich da für den Fall, dass es nicht funktioniert noch aufs DCI Feature zurückgreifen, indem ich Strippen mit geeignetem Widerstand dazwischen von den VRP/VRN Pins, die auch auf den SAM Steckerleisten sind zu den 3,3V und GND verbinde und dann DCI aktiviere ... aber das kommt mir irgendwie ziemlich gebastelt vor. Aber wenn es sein muss ...
Dein FPGA hat doch sicher LVDS-Pins. Waurm muss es denn unbedingt single-ended sein? Wenn du eh zwischen jedem Signal eine Masse spendieren würdest, dann kannst doch gleich ein LVDS-Pärchen daraus machen.
Ich habe auf dem Testboard leider nur eine 3,3 V Bank zur Verfügung, auf die ich halbwegs leicht hinkomme. Beim DUT Board könnte man die I/O Bank auf 2,5 V umstellen, beim Testboard geht das leider nicht. Ich bin noch dazu leider draufgekommen, dass ich mich verschaut habe und beim Testboard werde ich auch das DCI nicht mit dem von mir genannten "Hack" benutzen können. Im schlimmsten Fall könnte ich wahrscheinlich auch noch dieses Testdesign einfach ins eigentliche Test-FPGA dazugeben und die externen Signale eben intern routen. Platz genug wäre in dem DUT FPGA. Wenn ich so darüber nachdenke vielleicht eh die bessere Wahl ... jetzt habe ich aber eh noch 2, 3 Tage Implementierung des Testdesigns vor mir. lg Matthias
Update: Ich will die Signale, wenn es geht, noch immer auf das zweite Board führen. Aus unserer Elektronikabteilung habe ich ein Cat 5e Ethernet Kabel bekommen, damit kann ich 5 Signalleitungen und 3 GND führen. Ich habe die 3 höherfrequenten mit den verdrillten Paaren auf GND geführt, die beiden anderen niederfrequenten sind in einem Paar (es hat typischerweise nur eines der beiden eine Flanke, darum hoffe ich, dass das jeweils andere das Übersprechen packt). An die beiden Signale, die nicht DCI können, habe ich einen 100 Ohm als source termination gelötet. Lage ist, dass 4 MHz sehr ordentlich ausschauen, bei 30 MHz Taktsignal bekomme ich aber nur mehr einen Spannungshub von 1V peak-to-peak mit Mittelwert bei ca 1.7V, es schaut also so aus, würden die Reflexionen alles überdecken. Die 3.3V bei 4 Mhz haben auch eine grauenhaft schlechte rise time. Aber andererseits habe ich noch keine Last dran. Ich will jetzt die Ausgangssignale vom Testdesign wieder in dieses zurückschleifen und damit eine LED ansteuern, damit bekomme ich evtl ein Gefühl, wie schlecht das ganze ist, wenn es auf einen CMOS Eingangspuffer trifft. Alles sehr spannend, gottseidank bin ich in einer Firmensituation, wo ich solche Spielereien machen kann. lg Mathias
Hmm, irgendwie komme ich da nicht mehr weiter. Bei höheren Frequenzen kriege ich die Dämpfung des Taktsignals nicht weg, anscheinend können die FPGA Ausgangstreiber schon nicht so schnell schalten, wie ich es gerne hätte oder bräuchte. Evtl wären eigene externe Treiberbausteine ein Weg, oder ich muss es doch in den FPGA zum DUT Design dazupacken. :( lg Matthias
So eine Leitung hat ja auch ne gewisse Kapazität. Und wenn die Treiberleistung deines Ausgansports nicht ausreichend ist, die Kapazität schnell genug umzuladen, dann "verwischt" es dir eben das Signal. Daher Treiberleistung hochdrehen.
Ich habe die Treiberleistung auf die maximalen 24 mA gestellt und SLEW = FAST. Das hat aber nichts gebracht. Anscheinend haben die Leiterbahnen auf dem Board vom FPGA bis zur Stiftleiste einfach eine Grenzfrequenz von gerade mal ein paar MHz (bei 4 MHz passt die Spannnung, bei 32 hab ich -10 dB Abfall). Insofern habe ich ja auch noch das Problem, dass selbst wenn das DUT einen 60 MHz Takt schön liefern kann und der auf der Stiftleiste für mich schön ausschaut ist das was der FPGA dann sieht wohl nicht mehr als Takteingang geeignet. Die Taktfrequenz runterstellen macht auch keinen Sinn, weil ich dann im DUT Design so viel ändern muss, dass ich wahrscheinlich erst einen Fehler mache. lg Matthias
>Anscheinend haben die Leiterbahnen auf dem Board vom FPGA bis zur >Stiftleiste einfach eine Grenzfrequenz von gerade mal ein paar MHz Du hast von deinem FPGA bis zur Stiftleiste (an der nichts angeschlossen ist) eine Dämpfung von 10dB auf dem Signal bei 32 MHz??? Das kann ich ja kaum glauben. 32 MHz kann man über ein paar cm Leiterbahn ohne Probleme übertragen, solange man das Signal natürlich nicht belastet. Oder hast du bei der Messung bereits das Flachbandkabel angeschlossen? Wie lange ist das überhaupt?
Ich habe verschiedene Messungen durchgeführt, am Anfang habe ich mal nur das Oszi an einen Pin gehängt, auf dem ich den 31.25 MHz Takt ausgegeben habe, GND Verbindung war bei allen Messungen auf einem GND-Pin auf dieser Stiftleiste. Da habe ich schon die erwähnte Dämpfung gehabt, dachte aber noch, dass das Reflexionen sind. Dann habe ich diverse Kombinationen ausprobiert, über einen Widerstand (ich kann ja die DCI Terminierung nicht nutzen), mit Kabel dran (das jetzt übrigens kein Flachbandkabel sondern ein Ethernetkabel Cat5e mit Länge ca 50 cm ist) und mit selbstgelöteten Steckern und über das Kabel rückgeschliffen in einen FPGA-Eingang auf dem Testboard, damit nicht einfach alles nur reflektiert wird (da konnte ich wenigstens eine deutliche Verbesserung der rise time beobachten). Immer sind die Spannungen, die rauskommen, im selben Bereich, daher mache ich entweder bei der Messung etwas falsch (aber ich wüsste nicht was) oder das Problem liegt wirklich schon auf der Platine. lg Matthias
Das klingt alles sehr merkwürdig.. Also heisst es nun, schrittweise vorgehen. 1. Hängen die Stiftleisten direkt an deinen PFGA-Pins oder ist an dem Netz noch was anderes angeschlossen (Widerstand, Kondensator, Induktivität,....) 2. Sind die FPGA-Pins richtig konfiguriert und passt auch die Versorgungsspannung der Bank? 3. Kann es sein, dass du falsch misst? Stichwort: Aliasing beim DSO 4. Sehen die Flanken an anderen FPGA-Pins genauso verkorkst aus? 5. Bandbreitenbegrenzung im DSO ausgeschaltet? 6. Tastkopfteiler richtig eingestellt? 7. Wieviel pf hat dein Tastkopf? 8. Welche Bandbreite hat dein Oszi? (Es gibt immer noch Krücken, die nur 20 MHz können) 9. Nochmal, wenn sichergestellt ist, dass alles oben geklärt ist, an der Stiftleiste messen OHNE irgendwelche angeschlossenenen Kabel. 10. Kannst du von dieser Messung eine Aufnahme machen und die mal posten?
Danke Schrotty, es war doch ein Messfehler, ich habe einfach nicht darauf geachtet, dass ich den Tastkopf bei 10x Teilung betreibe sondern habe ihn bei 1x Teilung betrieben, wo er nur 6 MHz Bandbreite hat. Ein dummer Fehler, möge er mir eine Lehre sein. lg Matthias
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.