Hallo, ich kombiniere mal zwei Fragen in diesem Thread. Das erste betrifft die Ist-Situation: Ich habe einen Ausgang mit SPI Protokoll und einer 62.5 MHz Clock. Derzeit führe ich auf diesen Clock-Ausgang direkt den Ausgang der PLL, die den Takt aus 125 MHz erzeugt. Das ganze funktioniert aber es würde mich aus theoretischen Gründen interessieren, ob das suboptimal ist. Ich denke da in die Richtung lange Signalwege von der PLL zum Ausgangspin oder unterschiedliche HIGH-LOW zu LOW-HIGH Zeiten oä. Weiß hier jemand etwas diesbezüglich? Das zweite betrifft einen notwendigen Umbau: Die Clock läuft derzeit die ganze Zeit und soll jetzt nur für die Datenübertragung aktiviert und danach wieder abgeschalten werden. Mir schwebt vor, ein Output DDR Register dazwischenzuschalten, dessen beide Eingänge ich während der Idle-Zeiten auf '0' lasse, sobald Frames gesendet werden sollen schalte ich einen der beiden Eingänge auf '1' und aktiviere damit die Clock. Das kommt mir recht elegant vor aber gibts damit Probleme bzw geht das noch besser? LG Matthias
Kannst du mit halbem PLL-Takt als SCK leben?
Ich habe einige Möglichkeiten, das zu machen, ich habe den 125 MHz Takt auch in die Entity geführt, also könnte ich auch ein Register damit togglen. Warum mir der DDR Ansatz gut gefällt ist dass ich im Idle-State sicher sein möchte, dass die Clock auf logisch '0' ist, das ist mit den DDR einfach zu erreichen, wenn ich das Register toggle könnte es schon komplizierter werden.
Hast du mal eine Beschreibung, wie das DDR genau funktioniert und angesteuert wird? Vielleicht sogar ein Datenblatt?
Oh, sorry, hab vergessen zu sagen dass es sich um ein Xilinx Virtex 5 FPGA handelt. Ich hab an zwei anderen Taktausgängen schon DDR Register, die sich dort bewährt haben, jetzt ist eben ein Umbau notwendig weil ich den Takt abschaltbar machen muss. Die ganze Thematik macht mir schon ziemlich Kopfweh, der Empfänger nimmt so ziemlich jeden Blödsinn als Paket an, den man ihm schickt und der Effekt eines falschen Pakets kann alles ruinieren, also zb ein Spike auf der Enable-Leitung im falschen Moment und ein Tag Arbeit sowie Material um einige 100 Euronen ist beim Teufel. Daher auch der Bedarf, den Takt abzuschalten, um die Wahrscheinlichkeit so eines Ereignisses zu verringern.
Dann würde ich vorschlagen den Takt direkt vom Ausgang eines Registers zu nehmen. Alles, was mit Generierung und Aktivierung zu tun hat kommt vor das Register. Vorteil: keine Spikes auf der Taktleitung Nachteil: maximal halber PLL-Takt Auf jeden Fall achte dadrauf, das die Protokolle korrekt generiert werden. Aber das hast du selbst in der Hand. Der Besucher
Naja, Output DDR sollte das Spike-Problem erschlagen, es geht aber auch um die Probleme auf einer anderen Leitung. Gerade bin ich dabei, das ganze noch näher anzuschauen, da wie gesagt ein falscher Puls alles ruinieren kann muss man da unheimlich aufpassen, zb stellt sich die Frage des genauen Einschaltverhaltens. Ich bin inzwischen bei der Frage angelangt, was die Ausgänge des DS90LV047A sind, wenn mein FPGA während der Konfigurationsphase 'Z' an die Eingänge legt. Leider schweigt sich das Datenblatt hier aus. Nachdem es sonst keine Einwände gegen die DDR Lösung gab plane ich das mal so umzusetzen.
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.