mikrocontroller.net

Forum: FPGA, VHDL & Co. PLL direkt auf Ausgang und abschaltbare Clock mit Output DDR Registern


Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Der Besucher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kannst du mit halbem PLL-Takt als SCK leben?

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Der Besucher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du mal eine Beschreibung, wie das DDR genau funktioniert und 
angesteuert wird? Vielleicht sogar ein Datenblatt?

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Der Besucher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.