Ist es möglich, analoge Multiplexereingänge zu überwachen, ohne das Selektorsignal zu ändern?

Wenn Sie 8 analoge Eingangssensoren (oder 2 oder 9 oder 738479) haben, gibt es einen Chip / ist es mit Mikroprozessorprogrammierung möglich, alle Kanäle aktiv zu überwachen? Angenommen, Sie hätten 8 Drehpotentiometer an jedem I / O-Pin des Mux, müssten Sie die Auswahleingänge jedes Mal ändern, wenn Sie ein anderes Potentiometer verwenden wollten? Es scheint, als würde dies einen Mux viel weniger nützlich machen, als ich dachte. Wenn ich also den Pot auf I/O-Pin 1 und dann den Pot auf I/O-Pin 8 unmittelbar nach dem ersten verwenden wollte, Ich müsste dem Mikrocontroller / Prozessor sagen, dass er zum Lesen von Pin 8 wechseln soll, bevor ich das daran angeschlossene Peripheriegerät verwenden könnte? Oder gibt es eine Möglichkeit, alle E / A-Pins gleichzeitig zu überwachen, sodass ich das Peripheriegerät an Pin 1, dann an Pin 7 und dann an Pin 2 verwenden kann, ohne irgendetwas tun zu müssen, um den zu lesenden IO-Pin zu ändern , solange ich nur einen nach dem anderen verwende?

CD74HC4051MM96EP ist der Mux, den ich bereits habe, und ich verwende Teensyduino (Arduino-Codebibliothek) / Teensy 3.1, um Midi-Nachrichten zu senden. Ich möchte alle Arten von verschiedenen Eingangssensoren lesen.

Wie schnell wollen Sie die Potentiometer drehen? Sie nacheinander zu lesen, sollte in Ordnung sein, solange die *duino-Software sie nicht zu sehr verlangsamt.

Antworten (2)

Die Idee hinter der Verwendung eines Multiplexers ist, dass Sie alle Eingänge in einer Sequenz sehr schnell lesen und dann eine Schleife machen und es erneut tun würden. Es ist ein Kompromiss zwischen Bandbreite und Latenz gegenüber der Anzahl der Ports. Damit können Sie die verfügbare Bandbreite und den erforderlichen Port-Countdown durch denselben Faktor dividieren. Wenn Sie einen ADC haben, der mit 10 KSps abtasten kann, und einen 8-Port-Mux, dann können Sie mit 1 Eingang an diesem Eingang mit 10 KSps abtasten, mit 2 Eingängen können Sie an beiden Eingängen mit 5 KSps abtasten, mit 4 Eingängen können Sie abtasten bei 2,5 KSps an jedem Eingang usw. Ein Nebeneffekt ist, dass die Samples zeitlich verschachtelt sind, da Sie nicht alle Eingänge genau zur gleichen Zeit betrachten können. Bei 2 Eingängen gibt es einen Versatz von 1 Abtastperiode zwischen den Messwerten auf abwechselnden Kanälen, wobei die erste Abtastung von Eingang 1 bei „T=0“ auftritt,

Wenn Sie nur versuchen, von POTs zu lesen, sollten Sie in Ordnung sein, da sich die von ihnen kommenden Signale sehr langsam ändern. Alles, was Sie tun müssen, ist eine for-Schleife zu schreiben, die alle Mux-Einstellungen durchläuft und den entsprechenden analogen Wert einliest.

Vielen Dank für die ausführliche Erklärung, ich hatte über etwas Ähnliches nachgedacht, wusste aber nicht, dass Adcs in der Lage sind, so schnell zu sampeln oder den relevanten Suchbegriff zu googeln, wie schnell sie Signale lesen können (was ich jetzt weiß). ksps / sps / msps)

Angenommen, Sie hätten 8 Drehpotentiometer an jedem I / O-Pin des Mux, müssten Sie die Auswahleingänge jedes Mal ändern, wenn Sie ein anderes Potentiometer verwenden wollten?

Ja, wenn Sie ändern möchten, welcher Eingang mit dem Ausgang eines Mux verbunden ist, müssen Sie die Eingänge auf die ausgewählten Signale ändern.

Oder gibt es eine Möglichkeit, alle E / A-Pins gleichzeitig zu überwachen, sodass ich das Peripheriegerät an Pin 1, dann an Pin 7 und dann an Pin 2 verwenden kann, ohne irgendetwas tun zu müssen, um den zu lesenden IO-Pin zu ändern , solange ich nur einen nach dem anderen verwende?

Sie könnten 8 verschiedene Monitorschaltungen (ADC-Eingänge?) Und überhaupt keinen Mux verwenden.

Oder Sie könnten eine Schaltung erstellen, um die 8 Eingänge zu summieren und das Summensignal zu überwachen. Dies kann hilfreich sein, wenn Sie eine Abfrage vermeiden möchten, ob Ihre Eingaben überhaupt aktiv sind. Wenn jedoch zwei Eingänge gleichzeitig aktiv sind, können Sie nicht unterscheiden, welcher aktiv war.

Sie könnten einen Zähler verwenden, um einen kontinuierlich inkrementierenden digitalen Bus zu erstellen, der an die MUX-Auswahlstifte angelegt wird, und vermeiden, dass der uC Anweisungen zum Ändern dieser Signale verwendet. Aber Sie möchten wahrscheinlich Ihre "Überwachungs" -Aktivität mit dem Zähler synchronisieren, damit Sie nicht versehentlich eine Messung vornehmen, während der Mux umschaltet.

"Sie könnten 8 verschiedene Monitorschaltungen (ADC-Eingänge?) Und überhaupt keinen Mux verwenden." Beachten Sie jedoch, dass ein Mikroprozessor mit 8 ADC-Eingängen eigentlich ein ADC mit einem internen Mux auf 8 Pins ist.
@markrages, das stimmt wahrscheinlich, aber 1. Wir wissen nicht einmal mit Sicherheit, dass die "Monitor" -Schaltung tatsächlich ein uC-ADC-Eingang ist. und 2. Es kann weniger Befehle erfordern, um den internen Mux zu schalten, als die Steuerpins für den externen Mux zu schalten.