(Logikpegel) Gaten des Ausgangs eines 900-Hz-Oszillators (5 V p2p).

Scheint ein ziemlich einfaches Problem zu sein, und vielleicht ist alles, was benötigt wird, eine Bestätigung des Ansatzes (obwohl eine bessere Lösung immer geschätzt wird). Also das Problem:

  1. Ich habe einen 555-basierten Rechteckwellen-Oszillator (mit ungefähr 900 Hz 5 V p2p getaktet), den ich zum Aktivieren / Sperren des Leistungsverstärkerabschnitts des Designs (nur für Audiozwecke) zum Aktivieren / Sperren des Ausgangs benötigen muss. Ich kann keinen speziell getakteten PWM-Ausgangspin auf der MCU verwenden (alles wird für andere Zwecke verwendet).

  2. Ich habe nicht wirklich Platz, um ein UND-Gatter zum Ausgang (auf der Zielplatine) zu schieben, also dachte ich an einen klassischen Emitterfolger (npn) mit dem „Kollektor“, der vom Ausgang des 555, der „Basis“, gespeist wird ' Angetrieben von einem MCU (Arduino 5V) Ausgangslogikpin und der Ausgang zum Leistungsverstärker über den Emitter und den Emitterwiderstand. Meiner Meinung nach ist der Transistor bei Low (vom 555), der dem Kollektor zugeführt wird, ausgeschaltet und der Emitter wird entweder über den Emitterwiderstand oder den niedrigen Oszillatorausgang (abhängig vom Vb-Logikpegel von der MCU) auf Low gezogen.

Nicht spektakulär begeistert über den Vbe-Abfall, kann aber damit leben (wenn es um die 0,6 V erwartet wird).

Wie auch immer, die Frage (n) a) ist der richtige Weg, um fortzufahren, oder gibt es eine bessere Lösung (unter Berücksichtigung des geringen verfügbaren Leiterplattenplatzes und meiner Zurückhaltung, Platz für ein 8-Pin- oder 14-Pin-Standard-Logikgatter zu schaffen?

b) Gibt es einen anderen Ansatz zum Generieren eines logikaktivierten 900-Hz-Audiotons? (Ich habe festgestellt, dass die Verwendung eines NAND-Oszillators mit Freigabe, der an den ersten NAND gespeist wird, nicht zuverlässig für schnelles Logikschalten von der MCU ist - ich vermute, weil das Laden / Entladen des RC-Netzwerks an Gate 2 unterbrochen wird -, aber gerne geführt).

Hoffe, das alles hat irgendwie Sinn gemacht, habe das unangenehme Gefühl, dass mir eine offensichtliche Lösung dafür fehlt.

Antworten (5)

Wenn Sie einen Timer haben, der bereits von etwas anderem verwendet wird und einen Interrupt bei einem geraden Vielfachen von 900 Hz auslösen kann, verwenden Sie einen Interrupt, um einen Stift umzudrehen, um Ihr Signal zu erzeugen.

Eine andere Möglichkeit besteht darin, den Ausgang des 555 mit einem Eingang zu verbinden und diesen mit einem Pin-Wechsel-Interrupt, der aktiviert oder deaktiviert werden kann, auf einen Mikrocontroller-Ausgang zu kopieren.

Andernfalls würde ich Andys Lösung verwenden, jedoch ohne den FET: Da Sie ein 5-V-tolerantes Arduino verwenden, können Sie einen Pin so einstellen, dass er einen Logikpegel ausgibt oder hochohmig (Eingang) ist. Verbinden Sie nun diesen Pin mit dem "C"-Kondensator des 555. Stellen Sie es so ein, dass es eine logische 0 ausgibt, um die Oszillation zu deaktivieren, und setzen Sie es auf High-Z, um es zu aktivieren. Kostenlose Lösung ohne Teile!

Ich glaube, ich antworte einfach b):

Gibt es einen anderen Ansatz zum Generieren eines logikaktivierten 900-Hz-Audiotons? (… für schnelles logisches Umschalten von der MCU )

Sie haben bereits eine MCU. Praktisch alle mir bekannten MCUs enthalten mindestens eine, typischerweise mehrere unabhängige PWM-Einheiten . Diese sind so ausgelegt, dass sie Rechteckwellen mit einstellbarer Frequenz und einstellbarem Arbeitszyklus erzeugen.

Mit anderen Worten: Lassen Sie die verdammte 555 fallen und verwenden Sie einfach entweder Ihre vorhandene MCU, um einen 900-Hz-Ton zu erzeugen, oder ersetzen Sie die 555 durch eine wirklich billige MCU und einen geeigneten Tiefpassfilter, um Rechteckwellen in Sinuswellen umzuwandeln.

Beachten Sie, dass 900 Hz aus Sicht einer MCU sehr langsam sind. Sie können dies, insbesondere wenn Sie andere Timer/Zähler übrig haben, ganz einfach in der MCU-Software tun. Der mögliche Jitter spielt keine Rolle, da es sowieso eine hochfrequente Komponente wäre, die weggefiltert werden müsste.

Aber in (1) sagte OP bereits: "Ich kann keinen speziell getakteten PWM-Ausgangspin auf der MCU verwenden (alle für andere Zwecke verwendet)", also können sie das nicht. Ich muss ablehnen, fürchte ich, MM
@TonyM: Das kann ich verstehen, denn ich hätte sagen sollen "ersetze die 555 durch eine andere MCU"
@TonyM, nein, danke, ich habe die Frage gelesen und gerade angefangen zu tippen, dann die Frage vergessen und meine Antwort beendet. Ohne Sie wäre die Antwort bestenfalls schlecht!

Verwenden Sie einfach den Reset-Pin am 555.

Ich dachte also an einen klassischen Emitterfolger (npn), bei dem der "Kollektor" vom Ausgang des 555 gespeist wird, die "Basis" von einem MCU-Ausgangslogikstift (Arduino 5V) angesteuert wird

Ein 555, der als astabiler Selbst-Reset über den Entladestift verwendet wird, wie folgt: -

Geben Sie hier die Bildbeschreibung ein

Legen Sie also einen kleinen MOSFET über den Kondensator (der über R2 und Pin 7 zurückgesetzt wird) und aktivieren Sie diesen von der MCU. Oder verdrahten Sie den MOSFET direkt mit Pin 7 und Masse.

Geben Sie hier die Bildbeschreibung ein

Beachten Sie den internen Transistor im 555, der mit Pin 7 verbunden ist - die Verwendung eines externen Transistors gibt Ihnen die Funktionalität, die Sie benötigen, ohne die Ausgangsspannung zu verzerren.

Ich habe schon eine Weile nicht mehr mit einem 555 entworfen, also hier.

Meiner Meinung nach ist der einfachste Ansatz der von @RoyC - verwenden Sie den Reset-Pin. Es gibt andere Ansätze; Leiten Sie den Ausgang zB an ein einfaches Dioden-/Widerstands-UND-Gatter und verwenden Sie diesen Ausgang, um das anzusteuern, was Sie antreiben - das sind drei Teile: ein Paar Schaltdioden (zB 1N4148s und ein Pull-up-Widerstand). Einige Anmerkungen zum 555:

Sie erhalten niemals eine Rechteckwelle (mit einem Offset), selbst wenn Sie Steuerdioden verwenden, um das Laden / Entladen des Kondensators zu steuern. Wenn Sie wirklich etwas mit genau 50 % Arbeitszyklus wollen, müssen Sie das Signal an ein Flip-Flop ausgeben und die Frequenz durch 2 teilen. Und dann müssen Sie je nach verwendeter Technologie möglicherweise die 555er umgehen Ausgang mit einem kleinen Kondensator auf Masse (ich habe Scheibenkeramik verwendet); Wenn nicht, kann es passieren, dass Sie ein falsches Flip-Flop-Triggern erhalten (Schule der harten Schläge hier). Beim Start muss sich der Kondensator auf etwa 2/3 Vcc aufladen; Es entlädt sich dann auf etwa 1/3 Vcc, zurück auf 2/3 Vcc, nach unten usw.

All dies ist in den Originaldatenhandbüchern dokumentiert.

Warum nicht Pin 5 (Steuerung) des 555 hoch treiben? Dies hält sich von der Timing-Schaltung fern und erfordert keine zusätzlichen Teile, solange der Antrieb hochohmig werden kann, um den 555 zu aktivieren.