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
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!
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
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
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
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.