Große Multiplexer / Datenselektoren

10

Ich suche einen Multiplexer-IC mit 128: 1 oder mehr Eingängen (256 wäre ganz nett). Ich hätte gedacht, dass ein solches Gerät durchaus üblich ist, aber es fällt mir schwer, es zu finden. Es könnte sein, dass ich an den falschen Stellen suche, aber irgendwie denke ich, dass mir etwas fehlt - vielleicht werden Multiplexer mit großem Eingang nicht so oft verwendet? Wenn ja, welche Alternative gibt es?

Die max. Ich konnte den vertrauenswürdigen alten 74150 mit 16 Eingängen finden.

Ich verstehe, dass ich einen großen Multiplexer bauen kann, indem ich mehrere Mux mit 16 Eingängen kombiniere - aber ich hoffe auf eine stärker integrierte Lösung.


Ich entwerfe einen Stromkreis, der in einem Fahrzeugkabelbaum auf Unterbrechungen und Kurzschlüsse prüfen kann. Ein typischer Kabelbaum kann ungefähr 200 Drähte enthalten. Derzeit verwendet die Schaltung 16 Multiplexer, um 128 Drähte zu handhaben.

Die Multiplexer sind mit einem einzelnen Multiplexer mit 16 Eingängen verbunden, der wiederum mit einem uC verbunden ist. In ähnlicher Weise gibt es am anderen Ende 16 Demultiplexer. Die Demultiplexer schalten die Drähte auf eine Spannung. Gleichzeitig wird dieser Draht über den Mux auf einen der uC-Eingänge geschaltet.

Wenn der Draht in Ordnung ist, sollte der uC an seinem Eingang ein Hoch sehen. Der uC überprüft dann alle anderen Drähte. Wenn einer von ihnen hoch ist, bedeutet dies, dass zwischen diesen beiden Drähten ein Kurzschluss besteht.

Hinweis: Diese Schaltung wurde nicht von mir entworfen. Dies wurde 2003 gemacht. Ich versuche nur, diese Schaltung zu verbessern. Beachten Sie auch, dass keiner der Kabelbäume einen CAN-Datenbus oder eine andere Art von Bus enthält. Es sind nur einfache Drähte für Strom und Signale.

Hier ist ein sehr grobes Blockdiagramm, das ich schnell nur für diesen Beitrag erstellt habe. Ich hoffe, dies macht das Problem klarer, da Englisch nicht meine Muttersprache ist und ich Probleme habe, Dinge per Text zu erklären. Obwohl das Diagramm nicht sehr gut ist, hoffe ich, dass es die Dinge besser macht. Die von der MCU seitwärts in den Demux und Mux verlaufenden Leitungen sind die Adressleitungen.

Beachten Sie, dass einer der Drähte in 3 geteilt ist. Ich habe dies absichtlich gemacht, um zu zeigen, dass einige Verbindungen eins zu viele und nicht nur eins zu eins sind. Das komplexeste, das ich gesehen habe, ist ein Draht, der in 60 Verbindungsstellen aufgeteilt ist. Aus diesem Grund haben Demux und Mux separate Adressleitungen. Der Demux könnte am Eingang Nr. 20, während der Mux zwischen 20, 21, 22 usw. umschalten kann. Überprüfen Sie alle Leitungen, die von Leitung 20 verbunden sind.

Geben Sie hier die Bildbeschreibung ein

Wenn Sie der Meinung sind, dass es einen besseren Weg gibt, dies zu gestalten, lassen Sie es mich bitte wissen.

Saad
quelle
Suchen Sie 128: 1 oder 128 mal 2: 1?
Majenko
128: 1. Entschuldigung, ich habe vergessen zu erwähnen. Ich entschuldige mich.
Saad
@saad Meine Erfahrung hat gezeigt, dass fast jedes Mal, wenn jemand nach so etwas fragt, es daran liegt, dass er etwas grundlegend Falsches tut. Ich schlage vor, anzugeben, was Sie erreichen möchten, und nicht, was Sie für die Lösung halten. Auf diese Weise können wir Ihnen möglicherweise eine bessere Lösung bieten, als eine Reihe von 16: 1-Muxes zu kaskadieren.
@ David Kessner, siehe die Bearbeitung. Ich habe mich vor ein paar Wochen tatsächlich nach dem Design auf dieser Seite erkundigt, aber wenig Resonanz. Würde mich über jede Form bei der Eingabe freuen.
Saad
1
Abhängig davon, wie schnell, wie oft und mit wie viel Aufmerksamkeit die Eingänge umgeschaltet werden, kann die Verwendung von kaskadierten Multiplexern das Routing erheblich vereinfachen. Anstatt 256 Signale an einen einzelnen Punkt auf der Platine weiterleiten zu müssen, könnte man 16 Signale an jeden der 16 Punkte weiterleiten, ein Signal von jedem dieser Punkte an einen Chip mit 16 Eingängen weiterleiten und vier gemeinsam genutzte Signale an alle weiterleiten Multiplexer. Die Verwendung eines Chips würde es theoretisch ermöglichen, eines der 256 Signale von Eingang zu Ausgang mit einer einzigen "Gate-Verzögerung" zu erhalten, die zwei in Reihe geschalteten Transistoren entspricht (N-Typ für fallende Flanke; P für ansteigendes Signal), aber ...
Supercat

Antworten:

12

Während ein riesiger Mux / Demux sicherlich funktionieren wird, ist das Anschließen einer Reihe von 16: 1-Muxen eine Menge Arbeit und weist einige Einschränkungen auf, die möglicherweise ein Problem darstellen oder nicht. Der konventionellere Ansatz wäre die Verwendung von Schieberegistern. Verwenden Sie ein Serial-In / Parallel-Out-Register für das "Treiber" -Ende und ein Parallel-In / Serial-Out-Register für das Empfangsende. Das Schöne an Schieberegistern ist, dass sie leicht verkettet werden können, um ein längeres Schieberegister zu erstellen. Ein 256-Bit- oder sogar 1024-Bit-Schieberegister ist überhaupt kein Problem. Mit etwas Pufferung kann der serielle Stream sogar über ein Kabel auf eine andere Leiterplatte übertragen werden (wenn dies die Herstellung Ihres Dings erleichtert).

Es gibt viele 8-Bit-Schieberegister-Chips wie die 74xx597, aber eine CPLD ist dafür VIEL besser. Sie benötigen jedoch keine riesige CPLD mit mehr als 256 Pins. Stattdessen können Sie mehrere kleinere CPLDs verwenden und diese miteinander verketten. Obwohl ich nicht nachgerechnet habe, bin ich mir ziemlich sicher, dass die Verwendung von mehr kleinen bis mittelgroßen CPLDs billiger wäre als eine große CPLD - und Sie müssen sich keine Sorgen um BGAs machen.

Diese CPLD wäre ziemlich Flip-Flop-intensiv. Dies bedeutet, dass eine normale CPLD-Architektur (wie sie Xilinx verwendet) nicht so gut ist wie etwas, das mehr FPGA-artig ist. Altera und Lattice haben beide CPLDs mit viel mehr Flip-Flops pro Dollar als Xilinx.

Obwohl Sie möglicherweise nicht viel Erfahrung mit CPLDs haben, ist dieses Design sehr einfach und die Vorteile der Verwendung einer CPLD sind enorm. Es wäre Ihre Zeit sehr wert zu lernen, wie man CPLDs dafür programmiert.

Auch die Vorteile der Verwendung eines Schieberegisters anstelle eines Mux sind anfangs nicht leicht zu erkennen. Meistens erhalten Sie viel Flexibilität beim Fahren und Erfassen der Kabel. Sie könnten sogar mehrere Kabelbäume gleichzeitig testen (wenn Sie über genügend Schieberegister verfügen). Alles, was Sie mit Muxes testen können, kann mit Schieberegistern durchgeführt werden, aber Schieberegister können mehr. Der einzige Nachteil von Schieberegistern ist, dass es langsamer ist, obwohl es immer noch schneller ist als Sie es benötigen (IE, der Typ, der den Kabelbaum verbindet und trennt, ist viel langsamer als die Zeit zum Testen mit Schieberegistern).

Ich sollte auch sagen, dass Schieberegister auch dann einfacher sind als Muxes, wenn Sie CPLDs verwenden. Die Hauptsache ist, dass sie kleiner sind - obwohl Sie, um den tatsächlichen Vor- / Nachteil zu sehen, das Design in beiden Fällen durchführen und sehen müssen, welche CPLD-Größe Sie benötigen. Dies hängt ziemlich stark von der Art der verwendeten CPLD-Architektur ab, sodass mit Xilinx vorgenommene Verallgemeinerungen nicht für Altera gelten.

Bearbeiten: Nachfolgend finden Sie einige Details dazu, wie der Test mithilfe von Schieberegistern tatsächlich durchgeführt wird ...

Um den Test durchzuführen, können Sie die Tatsache ignorieren, dass Sie Schieberegister verwenden, und nur berücksichtigen, dass Daten auf der "Fahrseite" angesteuert und hoffentlich auf der "Empfangsseite" gelesen werden. Wie Sie die Daten hin und zurück (über die Seriennummer) erhalten haben, ist weitgehend irrelevant. Wichtig ist, dass Sie Daten, die Sie fahren können, völlig willkürlich können.

Die Daten, mit denen Sie fahren, werden als "Testvektoren" bezeichnet. Die Daten, die Sie voraussichtlich lesen werden, sind ebenfalls Teil der Testvektoren. Wenn das Kabel mit einer 1: 1-Beziehung verdrahtet ist, erwarten Sie, dass die Fahrdaten und die Empfangsdaten mit denen übereinstimmen, die Sie fahren. Wenn das Kabel nicht 1: 1 ist, wäre es offensichtlich anders.

Wenn Sie einen MUX-basierten Ansatz verwendet haben, verwenden Sie immer noch Testvektoren, haben jedoch keine Kontrolle über die Art des Testvektors. Bei den Muxes wird das Muster als "Walking Ones" oder "Walking Zeros" bezeichnet. Angenommen, Sie haben ein 4-poliges Kabel. Mit gehenden Einsen würden Sie das folgende Muster fahren: 0001, 0010, 0100, 1000. Gehende Nullen sind gleich, aber invertiert.

Für einen einfachen Durchgangstest funktioniert das Gehen von Einsen / Nullen ziemlich gut. Abhängig davon, wie Ihr Kabel angeschlossen ist, gibt es andere Muster, die durchgeführt werden können, um den Test zu beschleunigen oder bestimmte Dinge zu testen. Wenn beispielsweise einige Pins niemals gegen andere Pins kurzgeschlossen werden können, können Sie das Testmuster so optimieren, dass diese Fälle nicht berücksichtigt werden und somit schneller ausgeführt werden. Der Umgang mit etwas anderem als einem Einsen / Nullen kann auf der Softwareseite kompliziert werden.

Die ultimative Methode zur Erzeugung von Testvektoren wird für JTAG-Tests durchgeführt. JTAG, auch Boundary Scan genannt, ist ein ähnliches Schema zum Testen der Verbindungen zwischen Chips auf einer Leiterplatte (und zwischen Leiterplatten). Die meisten BGA-Chips verwenden JTAG. JTAG verfügt über Schieberegister in jedem Chip, mit denen jeder Pin angesteuert / gelesen werden kann. Eine komplizierte und teure Software betrachtet die Netzliste für die Leiterplatte und generiert die Testvektoren. Ein hoch entwickelter Kabeltester könnte das Gleiche tun - aber das wäre eine Menge Arbeit.

Glücklicherweise gibt es für Sie eine VIEL EINFACHERE Möglichkeit, die Testvektoren zu generieren. Folgendes tun Sie ... Schließen Sie ein bekanntermaßen gutes Kabel an die Schieberegister an. Führen Sie ein Walking-Zero / Eins-Muster durch das Antriebsende. Notieren Sie dabei, was auf der Empfangsseite zu sehen ist. Auf der einfachen Ebene können Sie dies einfach als Ihre Testvektoren verwenden. Wenn Sie ein fehlerhaftes Kabel anschließen und die gleichen Einsen / Nullen ausführen, stimmen die empfangenen Daten nicht mit den zuvor aufgezeichneten Daten überein. Daher wissen Sie, dass das Kabel fehlerhaft ist. Dies geschieht unter mehreren Namen, aber alle Namen sind eine Variation des Begriffs "Lernen", wie Selbstlernen oder automatisches Lernen.

Bisher ist dies problemlos der Fall, bei dem ein Stift am Antriebsende zu mehr als einem Stift am Empfangsende führt, jedoch nicht der Fall, bei dem mehrere Stifte am Antriebsende miteinander verbunden sind. Dafür benötigen Sie einige spezielle Dinge, um Schäden durch Buskonflikte zu vermeiden, und alle Ihre Schieberegisterstifte sollten bidirektional sein (IE, fungieren sowohl als Treiber als auch als Empfänger). Folgendes tun Sie:

  1. Setzen Sie einen Pulldown-Widerstand auf jeden Pin. Etwas um 20K bis 50k Ohm sollte in Ordnung sein.

  2. Legen Sie einen Vorwiderstand zwischen CPLD und Kabel. Etwas um die 100 Ohm. Dies soll helfen, Schäden durch ESD und andere Dinge zu vermeiden. Eine 2700 pF-Kappe gegen Masse (auf der CPLD-Pin-Seite des 100-Ohm-Widerstands) hilft auch bei der ESD.

  3. Programmieren Sie die CPLD so, dass das Signal nur hoch und niemals niedrig wird. Wenn Ihre Ausgangsdaten eine '0' sind, gibt die CPLD diesen Pin in drei Zustände aus und lässt den Pulldown-Widerstand die Leitung auf Low bringen. Auf diese Weise tritt keine Beschädigung auf, wenn mehrere CPLD-Pins denselben Draht am Kabel hoch treiben (da die CPLD nicht auch denselben Draht niedrig treibt).

  4. Jeder Pin ist sowohl Treiber als auch Empfänger. Wenn Sie also ein 256-poliges Kabel haben, sind Ihre Schieberegister 512 Bit für den Treiber und 512 Bit für den Empfänger. Das Fahren und Empfangen kann in derselben CPLD erfolgen, sodass sich die Komplexität der Leiterplatte dadurch nicht wirklich ändert. Sie haben 3 oder 4 Flip-Flops pro Kabelstift in dieser CPLD, planen Sie also entsprechend.

Sie machen dann das gleiche Muster von Einsen / Nullen, während Sie die empfangenen Daten mit den zuvor aufgezeichneten vergleichen. Aber jetzt werden alle Arten von willkürlichen Verbindungen innerhalb des Kabelbaums verarbeitet.


quelle
Vielen Dank. Ich werde gleich mehr darüber lesen.
Saad
Ich habe darüber nachgedacht. Sie sagten, Sie sollten SIPO für das Fahren und PISO für den Empfang verwenden. Wenn ich das richtig verstehe, sollte ich SIPO an einen Ausgangspin der MCU und PISO an einen Eingangspin anschließen. Angenommen, die Drähte sind alle eins zu eins, dann sollte ich einige Daten über den Kabelbaum senden. Wenn ich diese Daten zurückerhalte, bestehen die Drähte den Test. Ist das eine gültige Methode? Wie sollte ich dies ändern, um Zeilen zu behandeln, die auf der Empfangsseite in mehr als 1 aufgeteilt sind? Ist es das, was Sie vorgeschlagen haben, oder bin ich völlig von der Strecke abgekommen?
Saad
Denken Sie mehr über diese Zeilen nach - nehmen wir an, wir haben 4 Eingangsdrähte und einer dieser (der 4.) teilt sich in 2 Drähte. Wir haben also 5 Drähte am Empfangsende. Angenommen, wir verschieben die Bits 0101 heraus. Wenn wir 01011 zurückerhalten, sind alle Drähte in Ordnung. Angenommen, das 3. Bit ist hoch (01111), dann wissen wir, dass der 3. Draht kurzgeschlossen ist. Dies sagt uns jedoch nicht, mit welchem ​​Draht es kurzgeschlossen ist. Vielleicht wäre ein besserer Weg, einfach "1" durch die Register laufen zu lassen. Also, am Anfang haben wir 1000 und wir rec. 10000. Dann kräuselt sich 1 durch und wir bekommen 0100 und 01000. Bis wir das letzte Bit erreichen, 0001.
Saad
Für diesen Fall wissen wir, dass wir 00011 erhalten sollten, da der letzte in zwei Teile gespleißt ist. Wenn es einen Kurzschluss auf der 4. Leitung gibt und wir 0010 senden, senden wir 00111 - was wir wissen, ist nicht korrekt und wir können einen Fehler anzeigen, der angibt, wo der Kurzschluss ist. Klingt diese Methode für Sie gut?
Saad
@saad Ich habe meine Antwort mit viel mehr Details aktualisiert, um Ihren Kommentar abzudecken.
7

Ich glaube nicht, dass es Single-Chip-Lösungen gibt. Sie wären wegen der großen Anzahl von E / A und wahrscheinlich auch wegen der geringen Nachfrage teuer. Die meisten Designs kaskadieren Multiplexer mit 8 oder 16 Eingängen.

Wenn Sie wirklich eine stärker integrierte Lösung wünschen, müssen Sie nach einer CPLD suchen . Es gibt CPLDs mit mehr als 256 E / A, wie den Xilinx CoolRunner XC2C512 , der in einer BGA-Version mit 270 Benutzer-E / A verfügbar ist. Denken Sie daran, dass Sie für einen Multiplexer mit 256 Eingängen zusätzliche 8 Eingänge für die Auswahlsignale benötigen, einen Ausgang natürlich und möglicherweise auch eine Freigabe, damit die 270 E / A nicht zu viele sind.

Sie müssen auch bedenken, dass Ihre Verpackung höchstwahrscheinlich BGA ist . Ich bin mir nicht sicher, ob dir das gefallen wird. Ich habe sowieso noch keine QFPs mit ungefähr 300 Pins gesehen ...

stevenvh
quelle
2
Vielen Dank. Ich hatte das Gefühl, dass dies der Fall sein würde. Ich denke, ich bleibe einfach dabei, aus 16 Eingängen einen größeren Mux zu machen.
Saad
@saad - das scheint Ihre beste Wahl zu sein, es sei denn, Sie greifen wie vorgeschlagen auf eine große PLD (Pin-Anzahl, keine Gates / Logikblöcke) zurück (Vorteile sind effizienter / Größe, tatsächlich wäre nur sehr wenig Erfahrung mit ihnen oder HDL erforderlich, aber Das Paket wäre in der Tat ein Pain-Dev-Board?)
Oli Glaser
Ich habe tatsächlich einige Erfahrungen mit HDL und FPGAs (Handel-C - was nicht angenehm zu arbeiten war) während der Schule. Ich habe allerdings noch nie an einer CPLD gearbeitet. Aber ich habe noch nie wirklich mit einem BGA-Paket rumgespielt und es scheint wirklich ein Schmerz zu sein. BEARBEITEN: Der XC2C512 ist auch in PQFP verfügbar - obwohl ich mich jetzt frage, ob jemand mit so wenig Erfahrung wie ich in HDL und FPGAs solche Geräte arbeiten kann. Es ist auch ziemlich teuer - es ist 60 Pfund wert bei Farnell UK.
Saad
@saad - Der PQFP hat nur 173 Benutzer-E / A. Ein Kollege von mir hat seine CPLD (einfache Anwendung: Adressdecoder) in Abel programmiert , was aus seiner Sicht viel einfacher zu sein scheint als VHDL oder Verilog. Wahrscheinlich nicht so leistungsfähig wie VHDL / Verilog, aber das sollte kein Problem für Ihre Anwendung sein
stevenvh
@stevenvh: Abel ist in mancher Hinsicht ein bisschen hässlich, aber das Festlegen des Pin-Verhaltens in Bezug auf Uhren und Gleichungen kann manchmal viel natürlicher sein, als Dinge ausführlicher in VHDL oder Verilog zu schreiben. Ich frage mich, warum Tools keine schönere gleichungsbasierte Sprache unterstützen.
Supercat
3

Obwohl CPLD / FPGA die richtige Idee für eine hohe Pin-Anzahl zu sein scheint, ist ein Fahrzeugkabelbaum normalerweise physisch ziemlich verteilt und die Steckverbinder mäßig groß. Anstatt von einem Gerät mit hoher Pinanzahl auf eine große Anzahl von Steckverbindern aufzufächern, a Ein modulares System mit beispielsweise 16 E / A in Schieberegistern, die durch die geringe Anzahl von Takt- / Schiebeleitungen miteinander verbunden sind, kann geeigneter und auch sehr skalierbar sein.
Bei Kabeltests sollten Sie außerdem eine Widerstandskette verwenden, um beispielsweise 16 Spannungen an 16 Leitungen anzulegen, und einen analogen Mux, um die Spannung an jedem anderen Ende zu überprüfen. Dies würde Öffnungen und Kurzschlüsse erkennen und billig sein.

mikeselectricstuff
quelle
Wollen Sie damit sagen, dass ich die Schieberegister in 16-Bit-Blöcken auf CLPDs implementieren soll? Ich werde höchstwahrscheinlich keine einzige große CPLD verwenden, um die ganze Arbeit zu erledigen. Ich möchte BGA-Pakete vermeiden und werde mich daher wahrscheinlich an die kleineren CLPDs halten. Derzeit wird für jeden neuen Kabelbaum, der benötigt wird, eine neue "Verbindungsplatine" entwickelt, auf der alle Steckverbinder montiert sind. Diese Verbinder werden dann wiederum mit der Schaltung verbunden, die ich in der obigen Frage beschrieben habe. Im neuen System werden wir diesen Mechanismus beibehalten. Welche Probleme treten auf, wenn ich eine große Anzahl von E / A auf einem Chip verbinde?
Saad
1

Die Verwendung eines Schieberegisters zum Lesen vieler Eingaben ist ein schönes Muster. Da David Kessner jedoch die Verwendung einer CPLD vorschlug, würde ich ein anderes Muster vorschlagen. Angenommen, Sie möchten, dass jede CPLD 32 Eingaben verarbeitet. Geben Sie jeder CPLD einen gemeinsamen Takteingang, einen individuellen Freigabeeingang, einen Freigabeausgang (der mit dem Freigabeeingang des nächsten Chips verbunden ist) und einen gemeinsamen Datenausgang. Jeder Chip hat einen Fünf-Bit-Zähler und eine Überlaufanzeige. Wenn der Freigabeeingang deaktiviert ist, löschen Sie den Zähler und die Überlaufanzeige. Wenn der Freigabeeingang aktiviert ist, die Überlaufanzeige jedoch nicht gesetzt ist, geben Sie den Status des vom Zähler angezeigten Eingangsbits aus. Wenn ein Takt empfangen wird und der Chip aktiviert ist und der Zähler nicht übergelaufen ist, stoßen Sie den Zähler an. Das Überlaufbit würde den "Freigabe" -Ausgang speisen. Der Nettoeffekt all dieser Logik besteht darin, dass man nur etwa 8 Makrozellen benötigt, um 32 Eingaben zu verarbeiten. Auf diese Weise können möglicherweise andere Funktionen in die CPLD integriert werden, die rechenintensiver oder registerintensiver sind, jedoch nicht viel E / A benötigen.

Wenn eine CPLD mit Pin-Keeper-Schaltkreisen vorhanden ist, kann möglicherweise ein ähnlicher Ansatz für die Ausgabe verwendet werden, insbesondere wenn die Ausgabe von einer Makrozelle an mehrere Pins ausgegeben werden kann (ohne dass für jeden Pin eine Makrozelle ausgegeben werden muss). Der Chip hätte gemeinsame Takt- und Dateneingänge, einen Freigabeeingang und einen Freigabeausgang. Intern würde es einen Fünf-Bit-Zähler, eine zusätzliche Kopie des unteren Zählerbits, das an der gegenüberliegenden Taktflanke der ersten fünf zwischengespeichert ist, ein Überlaufbit und ein gemeinsames Datensignal benötigen, das alle Pins speisen würde. Sieben Makrozellen und jedoch viele waren erforderlich, um das Eingangsdatensignal auf alle Pins zu kopieren (die Steuerungen für die Ausgangsfreigabe für die Pins würden als Latch-Freigabe dienen).

Ein schönes Merkmal dieses Ansatzes (der übrigens häufig in LCD-Treibern verwendet wird) ist, dass mehrere Datenleitungen Daten parallel bewegen können und immer noch nur eine einzige Verkettung zwischen Chips erforderlich ist. Es ermöglicht auch, eine Verriegelungsschaltung von jedem Eingang oder Ausgang zu entfernen.

Superkatze
quelle
1

Wie klingt dies für eine Idee, wenn man annimmt, dass die größte Gruppe von Pins, die verbunden werden sollen, z. B. 20 Pins ist: Verwenden Sie eine Reihe von Open-Collector-Schieberegister-LED-Treiberchips (jeweils einen Ausgang pro Pin) mindestens 2mA sinken; Schließen Sie einen 1K-Widerstand von jedem Pin an einen gemeinsamen Punkt an und verwenden Sie eine Schaltung, die ein Volt bei 20,1 mA liefert (es ist in Ordnung, wenn die Spannung höher ist, wenn der Strom niedriger ist, vorausgesetzt, es ist ein Volt bei 20,1 mA), und geben Sie an, ob ein Versuch vorliegt wird gemacht, um mehr als diesen Betrag zu ziehen. Bei einigen Kabelkonfigurationen kann es erforderlich sein, eine kleine Anzahl von "Ersatz" -Pins zu haben, die über 1K-Widerstände verfügen, jedoch nicht mit dem Kabel verbunden sind. Es kann wünschenswert sein, einen Ersatzstift mit einem 1K-Widerstand zu haben, einen mit einem 500-Ohm-Widerstand (oder zwei 2Ks parallel), einen mit einem 250-Ohm-Widerstand (vier 1K ').

Um das Kabel zu testen, formulieren Sie Szenarien, die dazu führen sollten, dass genau zwanzig Stifte nach unten gezogen werden, und Szenarien, die dazu führen sollen, dass genau zwanzig Stifte nach unten gezogen werden (die Ersatzstifte können hierfür nützlich sein), und bestätigen Sie, dass es sich um Szenarien mit zwanzig Stiften handelt Es wird nicht berichtet, dass mehr als 20,5 mA verwendet werden, aber die 21-Pin-Szenarien sind.

Nehmen wir zum Beispiel an, man hat einen Kabelbaum, der 1-2, 3-4, 5-6 usw. bis 39-40 verbinden soll. Suchen Sie nach Kurzschlüssen, indem Sie verschiedene Kombinationen von zehn Paar Stiften auswählen und beide Paare jedes Stifts nach unten drücken. Sie fahren 20 Pins niedrig, und es sollten keine Pins niedrig sein, außer denjenigen, die Sie fahren. Daher sollte der Strom immer unter 20 mA liegen. Wenn es vorbei geht, ist etwas kurzgeschlossen. Wenn man eine Kombination von zehn Paaren findet, die keinen Überstrom lesen, schalten Sie nacheinander ein aktives Paar aus und ein anderes Paar ein, bis etwas überströmt. Das letzte eingeschaltete Paar ist mit etwas kurzgeschlossen, das es nicht sein sollte.

Überprüfen Sie die Öffnung, indem Sie einen Ersatzstift nach unten drücken und dann verschiedene Kombinationen von zehn Paaren auswählen, wobei Sie einen Stift aus jedem Paar (manchmal den ungeraden und manchmal den geraden) ansteuern. Wenn es irgendwelche Öffnungen gibt, führt eine solche Aktion dazu, dass weniger als 21 Pins niedrig angesteuert werden und somit Unterstrom lesen. Wenn dies auftritt, nehmen Sie jedes Paar einzeln, wobei ein Draht angesteuert wird, und führen Sie stattdessen beide an. Wenn dadurch der aktuelle Messwert über 20,1 mA steigt, ist dieses Paar offen.

Man könnte eine CPLD für diese Anwendung verwenden, aber ein System wie das von mir beschriebene könnte besser sein. Es könnte weiter verbessert werden, indem Schaltkreise hinzugefügt werden, um den Strom tatsächlich zu messen (anstatt einfach einen Über / Unter-Indikator zu erzeugen). Eine solche Messung würde es ermöglichen, Toleranzwerte für den Widerstand einzustellen.

Superkatze
quelle
1

Ist es das, wonach du suchst?

Maxwell 81840 - 128-Kanal-Multiplexer

Daniel
quelle
Wahrscheinlich nicht. Dies ist ein analoger Multiplexer, obwohl Sie wahrscheinlich auch digitale Signale damit multiplexen können, wenn Sie die Geschwindigkeit des Geräts im Auge behalten. Auch dies ist ein rad-hartes Gerät, das teuer sein wird.
Stevenvh
Herzlich willkommen! Steven hat recht, es ist vielleicht nicht die richtige Lösung, aber schöner Fang!
Fügen Sie
Danke Clabacchio. Ich bin mir nicht sicher, wie detailliert ich die Komponente beschreiben kann. Ich habe es noch nie benutzt und habe noch keine ausreichende Erfahrung.
Daniel
sweeeeet chip :) Ich möchte einen in einem Digitalpiano-Projekt verwenden, aber wenn Sie den Preis nicht durch einfaches Googeln finden können, können Sie es sich nicht leisten!
Andrew Wagner