Einfache Oszillator-Designs

Ich möchte in der Lage sein, einfache Oszillatorschaltungen zum Takten in digitalen Schaltungen zu erstellen, und frage mich, was das einfachste Design ist, das die Leute kennen.

Ich könnte einen einfachen Ringoszillator verwenden, der ziemlich einfach ist

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

aber das würde viel schneller laufen als ich will - idealerweise um 0,1 Hz bis 10 Hz zu erreichen.

Im Moment verwende ich einen bistabilen Oszillator wie diesen:

schematisch

Simulieren Sie diese Schaltung

Das funktioniert gut und ich kann die Frequenz steuern, indem ich die Kondensator- und Widerstandswerte variiere. Ich frage mich nur, ob es bessere/einfachere Schemata gibt? Insbesondere hätte ich gerne solche ohne die Passiven, aber nichts Komplizierteres als die grundlegende Logik (NOT, NAND, NOR usw.).

Irgendwelche Beiträge/Ideen wären toll, danke!

Das einfachste Design, das ich kenne, ist die Verwendung eines SI501-Chips.
Sie können keinen Oszillator ohne Kondensator oder Induktor bauen, aber manchmal reicht die einem Gate innewohnende parasitäre Kapazität aus. Aber wenn es nicht speziell als solches entworfen wurde (innerhalb eines Chips), wird es nicht sehr stabil sein. Ich würde zu einem 555 oder HC4060 gehen. Oder (in witziger Stimmung oder zur besseren Genauigkeit) für einen kleinen Mikrocontroller mit internem Oszillator.
@Majenko-notGoogle Ihr SI501- Kommentar ist für diese Person völlig unangemessen und es ist klar, dass er nicht auf seine Anfrage eingeht und nicht nützlich sein soll. Was ist Ihre Absicht hier?
Eine Alternative vorzuschlagen, die industriell akzeptabel ist, anstatt "sich selbst zu rollen", was zwar eine bewundernswerte Übungsgröße für einen Lernenden ist, aber nicht etwas, was Sie tun würden, wenn Sie ein echtes Produkt entwerfen.
@Majenko-notGoogle: Ich glaube, Sie haben den Frequenzbereich verpasst, nach dem das OP sucht. Der SI501 passt nicht ins Bild.
@DaveTweed Sie haben Recht - ein kurzer Wegwerfkommentar, in dem die gewünschte Geschwindigkeit erwähnt wird - eine Geschwindigkeit, die lächerlich langsam ist;) Also ein SI501 und einige Frequenzteiler dann: P
Wenn Ihre Schaltung zufällig von einer 60-Hz-Niederspannungsversorgung gespeist wird, kommen Sie möglicherweise mit einer ziemlich einfachen und billigen Taktquelle mit einem 4017 "Johnson Counter" -IC davon. Sie würden den Eingangstaktstift dieses ICs von Ihrer Niederspannungs-Wechselstromquelle über einen Widerstand von vielleicht 20 K speisen. Die internen Klemmdioden des Chips konditionieren das Signal für Sie. Ein 4017 sequenziert im Grunde die Ausgänge an 10 seiner Pins mit jedem Impuls, sodass jeder dieser Ausgangspins 1/10 der 60 Hz oder 10 Hz liefert. Als Bonus haben Sie eine Uhr, die konsistent, vorhersehbar und ausreichend genau ist, um die Zeit anzuzeigen.
Wenn es auf Einfachheit ankommt, können Sie einen einzelnen Wechselrichter mit einem Widerstand vom Eingang zum Ausgang verwenden. Setzen Sie eine Obergrenze für den Eingang zu GND, um Ihren RC zu erhalten. Ich bin zu faul, um zu berechnen, ob dies für Ihre Zielfrequenzen funktioniert. Es kann sein, dass die Widerstands- und Kappenwerte unpraktisch werden. Wenn dies der Fall ist, können Sie immer schneller laufen und ihm einen oder zwei Taktteiler folgen (z. B. basierend auf einem T-Flip-Flop).
@Majenko-notGoogle: Leichtigkeit mag in anderen Genres in Ordnung sein, aber wie ich oft daran erinnert wurde, ist dies nicht der richtige Ort dafür. Das und eine scheinbar ziemlich leichtfertige und arrogante Haltung Ihrerseits ist ziemlich beunruhigend; insbesondere zu hören, dass die Anforderung des OP für einen bestimmten Bereich von Taktfrequenzen "lächerlich niedrig" ist.
@Randy 60Hz/10 = 6Hz. :)
Wenn Sie die diskreten Passive und alles andere als ein Minimum an einfachen Logikgattern eliminieren, werden Sie meiner Meinung nach ein unerreichbares Ziel für den von Ihnen erwähnten Frequenzbereich haben. Womit können Sie praktisch leben?
@EMFields Hoppla! :-) Nun ja. Ich wünschte, alle meine Rechenfehler würden genau so in der Mitte der Spezifikation landen!!! :-)
Warum willst du die Passiven vermeiden? Die Passive sind buchstäblich der einfachste Oszillator, der in jedem Elektronik-Lehrbuch an erster Stelle steht. der RC-Oszillator. Sie können sogar nur ein einzelnes Gate verwenden, wenn Sie es wie folgt zu einem Schmitt-Trigger wie dem 74HC14 machen. i.stack.imgur.com/hVDnt.png Logikgatter sind "unendlich schnell" im Vergleich zu dem gesuchten Frequenzbereich, Sie müssen die Signalausbreitung irgendwie verlangsamen und dafür wird es nicht einfacher als eine RC-Verzögerung .

Antworten (2)

Wenn Sie keine passiven Komponenten verwenden möchten, finden Sie hier eine vollständig digitale Lösung. Mir ist klar, dass die Verwendung der Zählerchips über Ihren Wunsch hinausgeht, nur einfache Logikgatter (NAND, NOR usw.) zu verwenden, und tatsächlich kann man die unten verwendeten Zähler aus diesen Elementen konstruieren, aber die Komplexität würde dies unpraktisch machen.

Nehmen Sie Ihren ersten Oszillator und fügen Sie zwei weitere Inverter hinzu. Die typische Ausbreitungsverzögerung t tpd eines 74HCT04-Inverters beträgt 14 ns. Dies führt zu einer Ausgangsfrequenz von ca. 70 MHz (die ich in CircuitLab simuliert habe). Der Grund für die Verwendung der niedrigeren Frequenz ist zweierlei; Es ermöglicht eine größere Auswahl an Teilen zum Unterteilen (zum Beispiel hat der 74HC4024-Teil unten eine maximale Frequenz von 90 MHz), und 70 MHz unterteilen unter Verwendung von Binärzählern näher an 1 Hz als 120 MHz.

Unter Verwendung eines 7-stufigen Ripple-Zählers 74HC4024 verwenden Sie den Q4-Tap, um die 70 MHz durch 32 zu teilen, was eine Frequenz von ungefähr 2,19 MHz ergibt.

Verwenden Sie dann einen CD4521 24-Stufen-Zähler und verwenden Sie den Q18-Tap, um 2,19 MHz durch 262144 zu teilen, was eine Frequenz von 8,34 Hz ​​ergibt. Unter Verwendung des Abgriffs Q21 erzeugt das Teilen von 2,19 MHz durch 2097152 1,04 Hz. Unter Verwendung des letzten Abgriffs Q24 ergibt das Teilen von 2,19 MHz durch 16777216 0,13 Hz.

Also nicht ganz der volle Bereich, nach dem Sie gefragt haben (0,1 bis 10 Hz), aber nahe dran (0,13 bis 8,34 Hz, einschließlich 1 Hz fast genau), und es gibt vier zusätzliche Abgriffe dazwischen, die verwendet werden können.

Dies würde drei ICs benötigen - die fünf Inverter in einem 74HCT04 und die beiden Zähler.

Geben Sie hier die Bildbeschreibung ein

Ich würde dringend empfehlen, für diese Aufgabe ein CPLD zu verwenden. Der CPLD-Chip allein erledigt alles, was Sie brauchen, in einem IC zu einem sehr günstigen Preis.

Wie von Tcrosley erwähnt, erhalten Sie bei Verwendung von 5 NOT-Gattern in Reihe etwa 70 MHz, und von dort aus müssen Sie sie herunterteilen. Es wird jedoch mit ziemlicher Sicherheit nicht 70 MHz sein und hängt davon ab, welche CPLD Sie auswählen, wenn Sie dies tun, und Sie müssen natürlich auf der Grundlage der jeweiligen Ausbreitungsverzögerung rechnen.

Wenn Sie 23 Flip-Flops als Teiler in Reihe verwenden, wird dies auf 8,34 Hz ​​heruntergeteilt, und wenn Sie 29 verwenden, erhalten Sie 0,13 Hz.

Soweit ich gehört habe, enthalten CPLDs normalerweise 1 Flip-Flop pro Makrozelle, daher benötigen Sie mindestens 29 Makrozellen.

Tatsächlich hat eine der billigsten Optionen von Lattice Semi , die für 1,20 $ pro Chip erhältlich ist, 32 Makrozellen.

Und nicht zuletzt können Sie das Design und damit die Frequenz Ihres Oszillators einfach ändern, indem Sie einfach neuen Code hochladen, ohne dass Sie etwas neu verkabeln müssen.

Bearbeiten

Und tatsächlich müssten Sie in diesem Fall nicht einmal Logikelemente verwenden, um die Inverter zu erstellen, da viele CPLDs bereits Taktelemente enthalten. Kodieren Sie einfach die Uhr, um eine Verbindung zu Ihrer Teilerkette herzustellen, und senden Sie die Ausgabe an Ihre E/A.