Variable Takterzeugung 1Hz..10MHz

Aug 22, 2004 19 Replies

Moin :)



Meine Problematik ist die folgende: ich möchte für eine Digitalschaltung auf TTL-Basis einen Takt erzeugen, der soll aber einstellbar sein. Und zwar möchte ich den Takt im unteren Bereich bis ca. 100Hz etwas differenzierter haben und auch so ab 1MHz etwas genauer (ein programmierbarer Frequenzteiler ala 74LS292 an 10MHz fällt also aus, da hätte ich im oberen Bereich so ziemlich keine Einstellmöglichkeiten). Der mittlerer Bereich darf dabei ruhig gröber überflogen werden. Ich habe mir schon die Oszillatoren aus der FAQ angeschaut aber der einzige bei dem überhaupt von der Frequenz die Rede war (der mit dem Schmitt-Trigger) hat das Problem dass ich bei so einem großen Bereich wenns überhaupt geht einen sehr großen Widerstand bräuchte um bis runter auf 1Hz zu kommen und damit wohl im unteren Bereich nicht sehr flexibel wäre. Und mein Digitalwissen hilft mir anscheinend im Moment hier nicht ganz weiter :>



Das ganze Einstellen soll natürlich mitten im Betrieb passieren.



Hintergrund ist, dass die Schaltung sicherlich einiges an Debugging braucht zu Anfang und ich deswegen mich im niedrigen Bereich bewegen muss, sobald das alles halbwegs steht, ich aber auch bis an die Grenze kommen will, also sehen will, wie weit ich den Takt treiben kann. Als Ziel denke ich da an irgendwas zwischen 1 und 10MHz, deswegen den angepeilten Regulationsbereich :)



Greetz und schonmal Danke Dennis


Dennis Bliefernicht schrieb:

Nimm *einen* Widerstand und *mehrere* Kondensatoren, die du mit einem Mäuseklavier zuschalten kannst. So solltest du die gewünschten Größenordnungen überstreichen können. Geht zwar nicht ohne Umschalten, brauchst du aber auch nicht.

Grüsse

Michael Redmann "I don't want ANY spam!" (Monty Python, 1970)

Narf, manchmal kommt man auf die simpelsten Dinge nicht :) Und dann einfach die simple Oszillatorschaltung aus der FAQ, werds probieren, danke auch :)

Hallo Dennis.

Vorab mal die Frage wofür/warum der Takt variabel sein muss. Und wie möchtest Du es verändern (Digital, Analog)? Vielleicht könnte man auch mit einem programmierbaren Teiler die Sache variabel gestalten. Hohe Frequenz rein, eingestellt teilen, gewünschte raus.

Mit freundlichen Grüßen, Thomas.

Wie gesagt, wird ne recht komplexe Schaltung, zum Debugging möchte ich im unteren Bereich variabel sein von 1Hz zum mitgucken bis zu ca. 100Hz zum schnelleren vorlaufen, im oberen Bereich ab 1MHz möchte ich dann sobald das ganze Ding läuft bis zum Limit gehen können.

Wäre beides in Ordnung, wobei im effektiv ausschließlich der User das ändern soll, also reicht analog, digital wäre wahrscheinlich mit dem DIP-Klavier garnicht so nett zu handeln...

War auch meine erste überlegung, mein Problem war dabei nur, dass wenn ich 10MHz habe bei den Teilern die ich so gefunden habe die nächste Stufe dann 5MHz wäre und dann 2,5 etc. und das wird spätestens unpraktisch, wenn ich gucken will, wieviele MHz ich rausbekomme :)

Greetz Dennis

Ein Microcontroller ist in der Lage, timergesteuerte Verzögerungen zu erzeugen und Takte so praktisch beliebig zu skalieren. Wichtig ist, dass die Taktfrequenz grösser ist als 10 MHz.

Robert

Gut möglich, aber das erfordert dann doch wieder einige teurere Teile und was zum Programmieren, oder?

Was ist viel? Ein ATMega kostet 4.25 Oiro und einen Ponyprog ist im Netz der Netze für Lau zu haben. Material gibt es in der Bastelkiste reichlich.

Tools zum Schreiben des Programmes auch. Hirnschmalz müsstest du noch dazulegen. Wenn das ein Problem ist...:-)

Robert

Ah, son Ding programmieren ist also weniger konstenintensiv als ich immer dachte, das muss ich mir dann tatsächlich mal angucken :)

Na irgendwas muss ich als Informatiker ja wohl hinbekommen ;)

Greetz & Danke Dennis

Georg Meister wrote: : >>> Ein Microcontroller ist in der Lage, timergesteuerte Verz?gerungen zu : >>> erzeugen und Takte so praktisch beliebig zu skalieren. Wichtig ist, dass : >>> die Taktfrequenz gr?sser ist als 10 MHz.

: Naja. Ganz so stimmt das nicht.

: Mit einem "nackten" AVR kannst du Verz?gerungszeiten in Vielfachen von 2 : Takten erzeugen, also bei 16 MHz bekommst du am Ausgang 8 MHz, 5.33 MHz, 4 : MHz, 3.2 MHz usw. Das ist nicht grade eine sehr feine Abstufung im f?r : Dennis interessanten Bereich.

: Ohne PLL wird das wohl nichts.

Wozu gibt es den Timer im AVR?

Uwe Bonnes bon@elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------

Naja. Ganz so stimmt das nicht.

Mit einem "nackten" AVR kannst du Verzögerungszeiten in Vielfachen von 2 Takten erzeugen, also bei 16 MHz bekommst du am Ausgang 8 MHz, 5.33 MHz, 4 MHz, 3.2 MHz usw. Das ist nicht grade eine sehr feine Abstufung im für Dennis interessanten Bereich.

Ohne PLL wird das wohl nichts.

Mein Hirnschmalz sagt mir, dass es wohl nicht viel Sinn macht, sich extra dafür in einen Microcontroller inkl. aller Entwicklungs- und Programmiertools einzuarbeiten, wenn man ein besseres Ergebnis mit 1/6

74HC14, einem Poti und etwas Hühnerfutter in 10 Minuten Lötarbeit hinbekommt.

Georg

Standardlösung DDS: AD9850 / AD9851

Wird aber viel zu modern für Dich sein, wenn es um TTL geht ;-)

Gruß Oliver

Oliver Bartels + Erding, Germany + obartels@bartels.de http://www.bartels.de + Phone: +49-8122-9729-0 Fax: -10

Hübsches Ding

Das sowieso ;) und etwas zu teuer im Gegensatz zu der Inverter-Lösung :)

Greetz Dennis

Hab ich mich vertan. Sind nur 8 MHz, 4 MHz, 2.66 MHz, 2 MHz, 1.6 MHz, usw.

Ich rede ja vom Timer. Hat bei fmax =16 MHz eine Auflösung von 125 ns. Siehe Datenblatt Seite 95:

foc = fclk / (2*n*(1+OCRn)

Da alle Eingangssignale mit der Taktfrequenz syschronisiert werden, kann man mit dem Timer auch nicht mit feinerer Auflösung messen.

Georg

Moin!

Oder mit einer 4046 PLL und einem einstellbaren Teiler (wer mag, kann hier ja trotzdem einen Mikrocontroller nehmen).

Gruß, Michael.

Hallo Dennis,

dieses Problem taucht immer wieder auf und ich habe mir dafür einen Standadbaustein ausgesucht weil dasd mit einem µP nicht direkt zu machen ist, den DS1077 (von Dallas/Maxim). Wenn Du unter seine Grungfrequenz kommen willst, dann kannst Du auch nachträglich runterteilen. Falls Du eine Anwendung mit µP und diesem Baustein möchtest, sende ich sie Dir gern zu.

MfG Manfred Glahe

Auch ein nettes Ding, dürfte aber wenn ich das richtig sehe über ein Poti oder ähnliches nicht ganz einfach anzusteuern zu sein, für nen µP wäre das natürlcih kein Problem. Danke, aber ich werde mich erstmal an der Inverterlösung versuchen, im Zweifelsfall komme ich nochmla drauf zurück ;)

Greetz Dennis

formatting link
-> LTC1799

Ist aber vermutlich Overkill, wenn Du zum Debuggen an Deinem normalen Oszillator einen anderen Kondensator parallel anklemmen kannst, sollte das eigentlich langen.

cu Michael

When life hands you lemons, ask for a bottle of tequila and salt.

Hallo dennis,

der wird über den SPI Datenbus angesteuert.

MfG Manfred Glahe

Jup und genau das ist wesentlich komplizierter wenn man einen Drehregler will im Gegensatz zu einem einfachen Poti ;)

Greetz Dennis

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required