Quarzoszillator mit 7404 ist instabil

Ich baue gerade ein kleines Z80-Mikroprozessorsystem und benötige eine Art Takterzeugung. Es ist nicht mein erstes Design: Früher habe ich einen Arduino-Pin verwendet, der eine langsame Uhr oder einen 555-Timer erzeugt. Frühere Designs enthielten jedoch nur den Z80 und etwas RAM und ROM.

Jetzt möchte ich darauf aufbauen und Peripheriegeräte einbeziehen. Deshalb habe ich mich für einen 3686,4 kHz Quarz entschieden, damit ich ihn später über einen Frequenzteiler teilen kann, um nicht nur meinen Prozessortakt, sondern auch meinen UART-Takt zu erzeugen.

Ich habe im Internet recherchiert, einige Bücher und Schaltpläne gelesen und herausgefunden, dass die meisten einen Pierce-Oszillator oder einen Serienresonanzoszillator verwenden. Für mein Design möchte ich einfache 74xx- oder 74LSxx-Chips verwenden, weil ich sie herum habe und einsatzbereit bin. Glücklicherweise wurden die meisten Bücher für den Z80 und Websites auch mit 74xx-Chips erstellt. Also habe ich versucht, sie nachzubauen. Mein Pierce-Design funktionierte überhaupt nicht, also änderte ich mein Setup schnell auf einen Serienresonanzoszillator.

Für meinen Oszillator verwende ich einen einzelnen 7404-Wechselrichter mit einem 100-nF-Entkopplungskondensator, der zwischen 5 V und GND angeschlossen ist. Dann habe ich einfach die Schaltung von "Build Your Own Z80 Computer" Seite 94 kopiert und eingefügt. Ich habe den Kondensator hinzugefügt, nachdem ich ihn auf vielen Schaltplänen gesehen hatte, und ohne ihn fing er sowieso nicht an zu schwingen. Ich habe mein Schema unten angehängt (es zeigt nicht den Entkopplungskondensator zwischen 5 V und GND)

Schema meines Oszillators mit einem 7404

Wenn ich jetzt etwas Spannung an diesen Schaltkreis anlege, beginnt er tatsächlich zu schwingen. Allerdings ist die Frequenz überhaupt nicht stabil, scheint 200 kHz unter der angegebenen zu liegen und der Duty Cycle beträgt keinesfalls 50%. Sie können die Ausgabe meines Logikanalysators unten sehen.Ausgang des Logikanalysators

Während der logische High-Zustand ziemlich stabil zu sein scheint, mit einem instabilen Zyklus, der am rechten Ende des Diagramms zu sehen ist, variiert der Aus-Zustand ziemlich stark.

Ehrlich gesagt weiß ich nicht, wie ich das beheben soll, da ich nicht viel Erfahrung mit Oszillatoren habe. Ich habe jedoch das Gefühl, dass der Kondensator einen ziemlichen Einfluss hat. Als ich es von 100 pf auf 22 pf änderte, war die Frequenz völlig instabil. Als ich es auf einen höheren Wert änderte, sah ich überhaupt keinen großen Unterschied. Ich habe auch versucht, den 7404 gegen einen 74LS04 auszutauschen, da einige Schaltpläne ihn verwenden, aber das hat nichts geändert.

Wenn mich jemand auf meinen Fehler hinweisen könnte, wäre ich sehr froh.

Zusatzinfo: Im Datenblatt der Quarzrufe steht CL=20pf und Rr < 120 Ohm.

Siehe electronic.stackexchange.com/questions/363305/… Antworten. Es funktioniert viel besser mit CMOS-Gattern.
@ crj11 Das OP möchte möglicherweise beim Build "retro" bleiben. Allein die Tatsache, eine 7404 in der Hand zu haben, lässt mich darauf schließen. Aber es könnte auch einfach Unwissenheit sein und nur alte Z80-Diagramme sehen.
Trunyx, wie bereits erwähnt, möchten Sie wahrscheinlich auf eine Parallelschaltung umstellen. Beachten Sie auch, dass die Widerstände vom Wechselrichterausgang zum Wechselrichtereingang den Vorspannungspunkt festlegen. Wenn Sie dazu kommen, eine parallele Anordnung zu verwenden, kann es auch wichtig sein, dass Sie daran arbeiten, den Vorspannungspunkt dorthin zu bringen, wo Sie ihn benötigen, um stabile und gleichmäßige Ein- und Ausschaltperioden zu erhalten. (Eigentlich ist es auch wichtig für Ihre bestehende Schaltung.)
@jonk Ja, ich beabsichtige tatsächlich, "retro" zu bleiben. Ich weiß, dass mit moderneren Lösungen manches einfacher wäre, aber ich bin ziemlich fasziniert von älterer Technik. Meine früheren Builds verwendeten aktuellere Teile, enthielten aber auch nie eine Oszillatorschaltung. Im Moment habe ich Mühe, das parallele Setup zum Laufen zu bringen, da ich nicht ganz verstehe, wie ich die Widerstände für den Vorspannungspunkt auswählen soll. Ich folge dieser Anleitung
Da Sie bereits Erfahrung haben, gehe ich davon aus, dass Sie genug wissen, um kein lötfreies Protoboard für einen solchen Oszillator zu verwenden.
@Trunyx: Die im Text genannten Kondensatorwerte sind 100 n F, 22 p F und 100 p F, der Wert im Diagramm ist 100 p F. Welchen Wert hast du tatsächlich verwendet?
@Curd Wie in einer Antwort vorgeschlagen, verwende ich jetzt 10 nF. Ich habe mit 100 nF angefangen und dann zu kleineren Werten gewechselt, um die Wirkung zu beobachten.

Antworten (5)

Etwas, auf das Sie bei der Verwendung des Saleae-Geräts achten müssen, ist, dass es Proben nimmt , keine kontinuierlichen Messungen. Bei 24 MHz nimmt es ungefähr alle 41 ns eine Probe. Die Periode für Ihren 3,686-MHz-Takt beträgt 271 ns. Ich würde Aliasing erwarten, da das Verhältnis zwischen den beiden 6,6:1 beträgt.

Ein Oszilloskop wäre eine bessere Testoption.

Dies soll Ihnen nur beibringen, warum Ihr TTL-Oszillator in diesem Resonanzmodus der Pierce-Serie versagt. Sie müssen sehen, wie TTL funktioniert.

Behebt

  • Ändern Sie 100 pF auf 10 nF, um die Phasenverschiebung bei 3,5 MHz zu eliminieren
  • 2,4k-Eingang zu Masse hinzufügen, um Ausgang >> 2,0 V auf 2,4 V zu ziehen (opt.)

Die Impedanz von 100 pF ist zu hoch und = 1 k bei 3,5 MHz, sodass Sie zweimal eine schlechte Phasenverschiebung von 45 erhalten und die nicht invertierende Schleife nicht mehr in Phase ist, um das Barkhausen-Kriterium zu erfüllen, um zu oszillieren. (Av> 1 bei 0 Grad .)

Dies ist das Design des TTL-Wechselrichters 7404 mit 2 Widerständen am Eingang und an der Koppelkappe.

Geben Sie hier die Bildbeschreibung ein

Sie haben die Ströme, Widerstandswerte und Bias-Methoden später mit Schottky-Dioden geändert, aber die Stromverhältnisse waren immer 10: 1 und die Eingangsschwelle war / ist immer 2 Diodenabfälle oder Vbe-Abfälle = 1,5 V +/- 0,1, abhängig von Bias-Strom und Temperatur .

Parallelresonanz-XTAL-OSCs oder -XOs werden am besten mit CMOS bis zu 20 MHz und Reihenresonanztransistor-XOs über diesem f verwendet, um eine Empfindlichkeit gegenüber Streukapazitäten zu vermeiden.

Danke für deine Erklärung. Es scheint jedoch, dass mein Kristall nicht dafür ausgelegt ist, in einem Reihenresonanzoszillator zu arbeiten, sondern eher in einem Parallelresonanzoszillator. Also werde ich meine Schaltung grundlegend ändern müssen

Ich habe ein altes Z80-Computerdesign aus den 80er Jahren (den mc CP/M-Computer) nachgeschlagen. Es wurde auch ein Oszillator mit 7404 Gates verwendet:

Oszillator des mc-CP/M-Computers

Der dort verwendete Kondensator hat 10nF. Werte im pF-Bereich halte ich daher für viel zu klein.

Sie haben einen Serienresonanzoszillator, und der Kristall soll mit einem Parallelresonanzoszillator verwendet werden, da er eine Lastkapazität von 20 pF erfordert. Wechseln Sie entweder zu einem Parallelresonanzoszillator oder ändern Sie den Kristall zu einem, der für Serienresonanz bestimmt ist.

Ich habe einen 2-MHz-Quarz und einen 4-MHz-Quarz, nicht Ihren 3.ungerade MHz. Mit ungeraden Kontakten auf einem Steckbrett konnte ich Ihre Schaltung zuerst nicht zum Laufen bringen, aber ich habe eine, die fast wie Ihre ist, indem ich nur diesen Kondensator ganz entfernt habe. Und es funktioniert jedes Mal perfekt ohne diesen Kondensator.

Wenn ich Sie 100 pF verwende, bekomme ich ein sehr schmutziges Signal auf den 2 MHz. Wenn ich die Kapazität auf 10 nF erhöhe, wie jemand vorgeschlagen hat, sieht es besser aus. Aber je höher die Kapazität dort ist, desto mehr nähert es sich bei MHz-Frequenzen an, überhaupt keine Kapazität zu haben.

Einer, der unter meiner früheren Version dieser Antwort kommentiert wurde, sagte, meine Schaltung hier funktioniert nicht, aber ich hatte nur meine analogen Oszilloskopeinstellungen falsch, also habe ich eine viermal höhere Frequenz gemessen. Aber das war nur ein Bedienungsfehler eines Anfängers.

Ehrlich gesagt sehe ich keinen Sinn in all dem zusätzlichen Zeug, wenn das hier viel zuverlässiger und einfacher funktioniert. Keine Kondensatoren, um sich über die Frequenz Gedanken zu machen.

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Ich weiß nicht, warum alle die komplexeren und schwieriger zu handhabenden Schaltpläne zeigen. Möglicherweise hat es etwas mit der Abnutzung des Kristalls zu tun.

Gemäß Ihrer eigenen Frage hier funktioniert diese Schaltung nicht wie erwartet.
Es war das einzige, das für mich funktionierte, wenn auch mit einer seltsamen Frequenz. :)
Tatsächlich hat es 100% perfekt funktioniert! Wie bei dieser anderen Frage war die eigentliche Antwort überhaupt nichts Magisches, ich hatte einfach nicht die richtigen Oszilloskopeinstellungen und froh, dass ich ein Bild gepostet habe und froh, dass @glen_geek meinen Fehler entdeckt hat. Also, ja, diese Schaltung funktioniert bei mir einwandfrei und keiner der anderen bisher.