Super Duper Vdd-Versteifung für 555-Timer erforderlich. Was ist der beste Weg?

10

Ich verwende einen 555-Timer für einen (16-Bit-) Frequenzsensor / -zähler.

Es zählt die Anzahl der Impulse, die in der von einem 555-Timer eingestellten Abtastzeit von 125 ms gelesen wurden. zurücksetzen & wiederholen ...

Ich benutze den Timer in einem stabilen Betrieb.

  • TH (Zeitimpuls hoch) ist das Abtast-EIN-Signal.

    Diese Zeit wird mit einem hochwertigen POT eingestellt und getrimmt (+/- 5% Einstellbereich).

  • Die fallende Flanke TL (Zeitimpuls niedrig) löst einen Daten-Latch-Lesevorgang aus -> dann einen Zähler-Reset-Vorgang

Geben Sie hier die Bildbeschreibung ein

Im Moment habe ich es auf einem Brotbrett. Ich mache eine Leiterplatte für das endgültige Design und möchte das folgende Problem für das PCB-Design ausbügeln.

Hier ist das Problem:

Die gemessene Frequenz ist nicht sehr stabil (+/- ~ 3 Hz bei 25 kHz) und es dauert eine Weile, bis sie sich eingestellt hat.

Ich denke, das liegt daran, dass die Abtastzeit durch das Rauschen auf der Vdd-Schiene beeinflusst wird. Ich habe Entkopplungskappen an allen ICs, aber es befindet sich auf einem Brotbrett, so dass dies zu erwarten ist. Für das PCB-Layout möchte ich sicherstellen, dass der 555-Timer auf soliden 5 V steht und der DCDC-Wandlerausgang stabil ist.

Hier sind einige Ideen, wie ich das machen kann.

  1. Verwenden Sie einen Rail-Rail-Opamp und eine 4v7-Referenz, um den Timer Vdd @ 4v7 zu regeln
  2. Verwenden Sie Ferritperlen, um den Timer und alle anderen ICs weiter voneinander zu entkoppeln.
  3. Verwenden Sie einen separaten DCDC-Wandler für den Timer.
  4. Verwenden Sie einen Linearregler-IC für den Timer Vdd.

Welche davon ist die beste Vorgehensweise, um einen konstanten Vdd-Wert für den Timer zu gewährleisten?

Tony
quelle
17
Vielleicht solltest du stattdessen einen Kristall verwenden. Ich bin tatsächlich beeindruckt, dass es nur +/- 3 Hz bei 25 kHz ist. Das ist großartig, wenn man bedenkt, dass Sie einen 555-Timer verwenden.
Harry Svensson
3
Eine VDD-Versteifung hilft möglicherweise nicht: Es kann sich um einen thermischen Effekt handeln (Kondensator oder Erwärmung des Chips selbst). in der Tat "braucht einige Zeit, um sich niederzulassen" legt dies nahe. Die anderen Antworten sind absolut richtig: Wenn 3 Hz bei 25 kHz nicht gut genug sind, möchten Sie wirklich eine grundlegend bessere Quelle (z. B. einen Kristalloszillator bei 32,768 kHz).
Brian Drummond
1
Genial, ich fühle mich jetzt viel besser in Bezug auf meine Schaltung, nachdem ich herausgefunden habe, dass ich ziemlich gute Ergebnisse erhalte, obwohl ich einen 555-Timer als Referenz verwende. In Rev. 2 werden ein Kristall und ein Zähler verwendet, um die Abtastzeit einzustellen. Ich kann den Abtastzeitbereich auch anpassen, indem ich das zu verwendende Zählerbit auswähle!
Tony

Antworten:

21

Ihre gemessene Kurzzeitstabilität beträgt ca. +/- 0,01%, was für einen nicht kompensierten RC-Timer nicht schlecht ist.

Sie können es verbessern, indem Sie Widerstände und Kondensatoren mit niedrigem Temperaturkoeffizienten in der Zeitschaltung verwenden, möglicherweise indem Sie Pin 5 gegen Masse umgehen, indem Sie die Schaltung thermisch und elektrisch isolieren, die Temperatur in einem Ofen extrem regeln und sie von einer Batterie mit einem Strom versorgen Rauscharmer Linearregler und Kapazitätsmultiplikatorstufe mit Optoisolation an den Ausgängen.

Aber das ist nur albern. Verwenden Sie einen Kristall, sie sind billig und um Größenordnungen besser. Zum Beispiel ein 100-kHz-Kristall , ein Oszillator ( 74HCU04 + ein paar Widerstände + Lastkappen ) und eine Division durch vier (z. B. ein 74HC74). Die Toleranz (absolute Genauigkeit) dieses bestimmten verknüpften Kristalls beträgt +/- 30 ppm oder etwa 0,75 Hz bei 25 kHz. Die kurzfristige Stabilität wird wieder viel besser sein.

Es gibt auch programmierbare Oszillatorprodukte, die Sie bestellen können. Möglicherweise gibt es eines in einem für Sie nützlichen Bereich.

Spehro Pefhany
quelle
" Ihre gemessene Kurzzeitstabilität beträgt ungefähr +/- 0,01%, was für einen nicht kompensierten RC-Timer nicht schlecht ist. " - Wie würde man sie kompensieren, um sie stabiler zu machen?
Harry Svensson
7
@HarrySvensson Sie können es von thermischen Effekten wie Luftströmen isolieren und bewusst temperaturempfindliche Komponenten einführen, um die Drift des Kondensators und der Widerstände (und in geringerem Maße des IC) auszugleichen. Wenn Kristalle (und Keramikresonatoren) nicht so billig und verfügbar wären, könnten solche Techniken sinnvoll sein. Eine andere Methode besteht darin, eine nach der Temperatur gesteuerte Nachschlagetabelle zu verwenden, die im EEPROM gespeichert ist, um einige Parameter zu trimmen.
Spehro Pefhany
1
Besser als ein 100-kHz-Kristall und 74HCU04, ein 74HC4060 und ein 6,4-MHz-Kristall. Nehmen Sie Ihre Uhr aus Q8 und Bobs Onkel.
TimWescott
@ TimWescott gute Option, kann auch einen robusten HC49-Kristall mit höherem maximalen Antrieb verwenden.
Spehro Pefhany
14

Ich glaube nicht, dass Sie jemals die Genauigkeit und Stabilität erhalten werden, die Sie von einem 555-Timer erwarten. Die Impulsbreite wird durch die Werte der Widerstände und eines Kondensators bestimmt, und die Werte dieser Elemente ändern sich mit der Temperatur und im Laufe der Zeit.

Für eine genaue Pulsdauer sollten Sie einen Quarzoszillator mit einem digitalen Zähler betrachten, um den gewünschten Puls zu erzeugen.

Elliot Alderson
quelle
3

Obwohl ich viele gute Erinnerungen an die Verwendung eines 555-Timers habe, sind unglaublich billige Mikrocontroller mit Kristall heutzutage leider fast immer die bessere Wahl für Timer.

Die PIC16-Serie hat einige Mitglieder, die einen sehr weiten Spannungsbereich (3,3-18 V +) haben und für einen Dollar und Wechsel erhältlich sind.

Andrew Lentvorski
quelle
1
Einverstanden, aber ich bemühe mich, keine MCUs zu verwenden, wenn ich nicht muss. Ich mache IC-Tester-Boards. Dies ist wie eine handliche Peripherieschaltung, die ich einfach kopieren und in neue Designs einfügen kann, ohne etwas flashen zu müssen. Ich muss also kein großes, teures Oszilloskop verwenden, um die Frequenz zu messen.
Tony
2

Dies ist eher eine Schlussfolgerung als eine Lösung ...

Ich hatte nicht genug Zeit, um eine neue Schaltung mit einem Kristall zu entwerfen, also habe ich die Leiterplatte mit den folgenden Änderungen hergestellt, um sie besser zu machen:

  1. Hochpräzise, ​​temperaturstabile Filmkappen. Ich habe 2 parallel geschaltet, um die Kapazität stabiler zu machen. Wenn ein Kondensator mehr Strom senkt / liefert, erwärmt er sich und die Kapazität sinkt ... wodurch der andere Kondensator mehr Strom sinkt / liefert. Sie haben also eine gewisse Regulierung. Dies ist bei Keramikkondensatoren NICHT immer der Fall, was ich vorher verwendet habe.

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

  1. Widerstände mit höherer Präzision für die RC-Schaltung. Ich habe eher 0,1% Toleranz als 1% verwendet. Sie hatten auch 4x die Temperaturstabilität.

  2. 4V Spannungsregler für den 555 Timer. Dadurch wird die 555-Spannungsschiene um den Faktor 100 vom Rest des digitalen Materials isoliert (1% Leitungsregelung).

  3. Verwendete 5k Pot anstelle von 20k Pot, um die Pulszeit zu verkürzen. Reduziert den durch die Topfinstabilität verursachten Fehler.

  4. Gepufferter Ausgang für das 555-Timer-Impulssignal. Ich habe einen LT1630 verwendet, um den Zeitimpuls zu allen Gates zu treiben, damit der Timer-IC keinen Strom ansteuert. Die Gate-Eingänge können miteinander interagieren, wenn die Impedanz des Eingangsantriebs nicht niedrig genug ist. Ich habe ~ 7 Gate-Eingänge mit dem Timing-Impuls verbunden, also wollte ich ein starkes Signal garantieren.

Ergebnis: Ich bin herumgekommen Genauigkeit von 0,04% (1-Bit-Umschaltung bei ~ 2500dec am Bus). Bei der ersten Schaltung erreichte ich eine Genauigkeit von ca. 0,5% (die Genauigkeit, die ich ursprünglich angegeben hatte, war falsch) und der Wert driftete ständig. Die neue Schaltung weist keine merkliche Drift auf. Abschließend habe ich mit Komponenten von besserer Qualität die Genauigkeit um das ~ 10-fache erhöht und sie stabil und tatsächlich verwendbar gemacht.

Ich weiß, dass dies nicht die beste oder sogar einfachste Methode ist, um einen Frequenzzähler herzustellen, aber es ist billig und effektiv. Ich werde es wahrscheinlich wieder verwenden, wenn ich eine grobe Frequenzmessung durchführen muss.

Der Wert wird vom DB25-Port mit 8-Bit-Hi / Lo-Auswahl gelesen. Die LEDs dienen nur zum Debuggen. Ich füge immer LEDs hinzu, wo immer es mir das Leben erleichtern kann.

Geben Sie hier die Bildbeschreibung ein

Tony
quelle
Schönes Design, ich liebe das wirklich :)
VillageTech