mikrocontroller.net

Forum: FPGA, VHDL & Co. Xilinx Cpld mit Komparatoreingang


Autor: Stefan R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bastle gerade an einer einfachen Pll mit einem Xilinx-Cpld
(xc95xx). Dabei habe ich noch das Problem, das Signal des VCOs in den
Clock-Pin zu geben. Die sauberste Lösung ist da ja ein schneller
Komparator, den wollte ich mir aber sparen. Schaut man sich
verschiedene pll-Schaltungen z.B. aus dem Amateurfunkbereich an, wird
dort zur Verstärkung und Wandlung in ein ttl-Signal gerne ein
rückgekoppelter Inverter benutzt, der somit quasi im Analogbetrieb als
schneller Verstärker arbeitet. Nun frage ich mich, ob ich das nicht
auch mit dem cpld hinbekomme (ich weiss, das wäre ein
quick-and-dirty-hack, aber wenn es funktioniert...):
Ich habe direkt neben meinem Clock-Pin einen Output, der einfach das
invertierte Clock-Signal ausgibt (nicht getaktet, also in vhdl
einfach:
output<=not(clk);
)
Diesen verbinde ich mit einem sagen wir mal 10k Widerstand mit dem
Clock-Eingang, und an diesen koppele ich mit einem Kondensator das
vco-Signal ein.
Kann das so funktionieren? Lässt die interne Struktur des cplds einen
solchen Analogbetrieb überhaupt zu?

Gruß,
Stefan

Autor: FPGAküchle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du willst PWM Signal glätten und damit einen VCO ansteuern?
Faszienierender Gedanke, ob die VCO mit dem welligen Signal
zurechtkommt.

Eine (nicht zu Ende gedachte Idee) zur DA Wandlung am CPLD Input:
  -die schaltschwelle wird bei FPGA's von Vio bestimmt (?) -> diese
Spannung extern ändern lassen (I2C - Poti als Ref für Spannungswandler)
und vom FPGA steuern.  Dann könnte man die Schaltschwelle ermitteln,
wird aber langsam sein.

In Aktion habe ich weder das eine noch das andere gesehen, wenn du das
ans Laufen kriegst wäre das eine Pionierleistung!

Autor: Stefan R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo FPGAküchle,

ich will auf was ganz anderes raus, aber deine Idee hat auch was, dazu
weiter unten mehr...
PWM verwende ich nicht, es ist halt eine ganz normale Pll:
Die Referenzfrequenz (von einem Quarz) wird runtergeteilt, die zu
regelnde Frequenz ebenfalls mit einstellbarem Teilerfaktor.
Beide Signale werden nun verglichen: Sind beide gleich 1 oder gleich 0
passiert nichts (Phasenlage ist gleich, Pll eingerastet). Sind beide
unterschiedlich, wird entweder ein pnp- oder npn-Transistor geschaltet,
die beide im Push-pull-Betrieb arbeiten. Am Ausgang dieser "Endstufe"
sitzt ein Tiefpassfilter (Schleifenfilter in Pll-Sprech), der daraus
die  Regelspannung für den VCO erzeugt. Soweit ist das auch alles
bekannte Sache, ein fertiger Pll-Chip z.B. im Radio macht das genauso.
Mein Problem ist nun, dass der VCO aus diskreten Bauteilen aufgebaut
ist und ein Sinussignal mit vielleicht ein paar -zig mV Amplitude
erzeugt. Dieses muss ich nun zu einem Rechteck wandeln, mit dem ich den
Clk-Eingang des Cplds füttern kann, ich brauche also einfach einen
Verstärker, der das Signal bis zur Begrenzung verstärkt.
Als solchen Verstärker kann man auch einen digitalen Inverter nehmen,
der mit einem Rückkopplungswiderstand wie ein ganz normaler Opamp
funktioniert.
Meine Idee war nun, dafür nicht extra einen eigenen Chip drauflöten zu
müssen sondern einen Inverter innerhalb des Cplds zu verwenden...

Nun noch was zu deiner Idee (vorrausgesetzt das geht so mit dem Ändern
von vio): Man könnte ja auch einfach den Spannungsregler von Vio z.B.
über einen Transistor kurzzeitig auf ein paar hundert mV unter normal
ziehen, danach laden sich die Kondensatoren am Ausgang "langsam"
wieder auf, der Pegel für ne 1 verschiebt sich nach oben und man kann
die  Zeit messen, bis wieder eine 0 gelesen wird (im Prinzip das selbe,
wie man es mit AVRs ohne ADC auch macht).
Allerdings sehe ich spontan noch keinen praktischen Verwendungszweck
;-)

Gruß,
Stefan

Autor: Volker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zum Thema Analogbetrieb fällt mir folgendes ein.


http://www.mikrocontroller.net/forum/read-9-195796.html#new

und

http://www.mikrocontroller.net/forum/read-9-306733.html#new

es kann also funktionieren, muss aber nicht.

Volker

Autor: Stefan R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielen Dank, das bringt mich weiter. Werde das Ganze einfach mal testen,
wenns nicht geht muss halt doch noch eine Pufferstufe her.
Wobei ich gegenüber dem Quarz am Cpld wohl noch im Vorteil bin, da ja
bei mir nix von selbst schwingen muss.

Gruß,
Stefan

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.