Open-Collector-Ausgänge mit Logikgattern, die ein Endlosschleifen-Szenario verursachen

Zu meinem Projekt:

Ich arbeite an einem Projekt, bei dem mehrere LEDs mit zwei Intel Edison-Mikrocontrollern und einer Komparatorschaltung gesteuert werden. Es gibt insgesamt fünf LEDs, die von vier Relais gesteuert werden. Drei LEDs sind mit dem NO-Pin jedes Relais verbunden, während die Fehler-/Status-LEDs mit den NO- und NC-Pins desselben Relais verbunden sind. Siehe Schema unten.

Der erste Edison-Chip ist auf einem Mini-Breakout-Board installiert, das steuert, wann die LEDs durch Relais eingeschaltet werden, die von GPIO-Pins ausgelöst werden. Der zweite Edison ist auf dem Arduino Breakout Board montiert, das die Spannung über den LEDs mit analogen Eingängen misst.

Unter Verwendung des LM2903 als Fensterkomparator und einiger Spannungsteiler als Eingänge ist die Schaltung so ausgelegt, dass sie eine Fehler-LED einschaltet (Relais 4 ist NC), wenn die Spannung an den drei Haupt-LEDs außerhalb der empfohlenen Mindest- und Höchstwerte von fällt LED-Datenblatt.

Ich verwende die Logikgatter der 7400LS-Serie zusammen mit einem bidirektionalen Pegelumsetzer von Sparkfun ( BOB-12009 ). Der Pegelumsetzer wird verwendet, um die Spannung von der Mini-Breakout-Platine zu erhöhen, die eine 1,8-V-Logik verwendet.

Das Problem:

Die Hauptidee besteht darin, einen Fehler im System anzuzeigen, indem alle drei LEDs deaktiviert werden, es sei denn, bestimmte Bedingungen sind erfüllt, dh das 4. Relais kann nur eingeschaltet werden, wenn sowohl Edisons als auch der Ausgang der Komparatorschaltung hoch sind. Wenn jedoch der Komparatorausgang (offener Kollektor) ausgelöst (niedrig gezogen) wird, wird das Relais ausgeschaltet, was dann die Relais zu den drei LEDs ausschaltet, was bewirkt, dass der Ausgang des Komparators in einen hohen Zustand zurückkehrt, weil, wenn der Komparator-Chip ist ausgeschaltet, sein Ausgangszustand ist hoch, entweder aufgrund eines schwebenden Eingangs zum UND-Gatter oder eines 10k-Pull-up-Widerstands. Wenn also der Komparator hoch zurückkehrt, werden die Relais wieder aktiviert und der gesamte Vorgang wiederholt sich.

Ich fange an zu glauben, dass diese Schaltung nur funktionieren kann, wenn die Fehler-LED einmal aufleuchtet und der Benutzer die Schaltung zurücksetzen muss, um die LEDs wieder zu aktivieren. Ich kann die Fehler-LED einschalten, indem ich den Komparatorausgang direkt mit dem Gate des p-Kanal-MOSFET (IRDF9210) am NC-Pin von Relais 4 verbinde, aber dann können sowohl die Status-LED (die keine Probleme anzeigt) als auch die Fehler-LED gleichzeitig eingeschaltet sein.

Meine Fragen:

  1. Wenn möglich, wie kann ich die LEDs deaktivieren, wenn ein Fehler vorliegt, und die Funktionalität automatisch wiederherstellen, wenn das Problem behoben ist?
  2. Ist es möglich, einen Transistor einzubauen, der als Schalter zwischen dem Eingang des UND-Gatters und dem Ausgang des Komparators dient?
  3. Gibt es andere besser geeignete Vergleichschips für diese spezielle Anwendung?

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Muss die größte Schaltung sein, die ich in CircuitLab gesehen habe ...
Sie können versuchen, dem Komparator eine gewisse Hysterese hinzuzufügen. Wenn es zum ersten Mal auslöst, wird es aller Wahrscheinlichkeit nach etwas langsam sein, sodass jede Störung den Ausgang zurücknehmen kann. Es gibt einige Geräte mit eingebauter Hysterese. Beispiel: linear.com/product/LTC6752
Meine erste Bemerkung zu dieser Schaltung ist, dass es 2 Komparatoren (im selben Paket) gibt, die unterschiedliche Status haben können ("1" und "0" Logik), die Ihre Komparatoren verbrennen können. Versuchen Sie, ein ODER-Gatter einzusetzen, um dies zu vermeiden
@PeterSmith Ich bin mir nicht sicher, ob ich verstehe, wie das Hinzufügen von Hysterese das Problem lösen könnte. Nach dem Lesen der Anwendungshinweise zum LTC6752 scheint es, als würde das Hinzufügen von Hysterese nur verhindern, dass Rauschen von den Eingängen des Komparators den Ausgang zufällig auslöst, aber ich habe keine Probleme mit verrauschten Eingängen. Was meinst du mit "jede Störung kann die Ausgabe zurücknehmen"?
Die Komparatoren haben Open-Drain-Ausgänge, aber ich sehe keinen Pull-up-Widerstand. Beginnen Sie dort.
@PaulB Das Schema auf Seite zwei des Datenblatts für den LM2903 zeigt deutlich den Ausgang, der mit dem Kollektor eines npn-Transistors verbunden ist. Aus diesem Grund habe ich angegeben, dass der Ausgang des Komparators ein Open-Collector ist. Ich habe den Schaltplan so bearbeitet, dass er einen 10k-Pullup-Widerstand am Ausgang der Komparatoren enthält, aber genau das verursacht eine Schleife in der Logik. Wenn der Ausgang des Komparators getriggert wird, zieht er auf Masse, was eine 0 am UND-Gatter ergibt, das den Strom zum Komparator-IC abschaltet, wodurch der Ausgang aufgrund des Pull-up-Widerstands wieder hoch wird.
Wenn Sie die LEDs ausschalten, wie können Sie feststellen, ob der Fehler weiterhin besteht?

Antworten (2)

Sie benötigen ein Flip-Flop und einen Reset-Knopf. Sie brauchen nichts Ausgefallenes wie ein Latch oder Master-Slave-Flip-Flop (in 7400-Begriffen Flip-Flop genannt). Einfach 2 NAND- oder NOR-Gatter reichen aus.

  1. Das Problem besteht darin, dass der Stimulus für den Fehler abgeschaltet wird, sobald ein Fehler erkannt wird. Sobald die LEDs stromlos sind, gibt es keine Spannung zum Testen und keine Möglichkeit, automatisch neu zu starten.
  2. Ein einfaches Flip-Flop mit zwei Transistoren würde funktionieren. Zum Beispiel. Alternativ könnte ein einzelner IC, wie z. B. ein 74AHCT74, nach Ihrem letzten UND-Gatter hinzugefügt werden, um eine Verriegelungsfunktion bereitzustellen. Der Fehlerausgang würde mit PRESET verbunden, der Reset-Schalter mit CLEAR. Der Eingang und der Takt wären "egal" und würden entweder mit Versorgung oder Masse verbunden.
  3. Das Problem ist die Rückkopplungsschleife, die durch den Fehlerausgang entsteht, der den Spannungseingang beeinflusst und nicht mit Ihren Komparatoren zusammenhängt.