Board-Layout-Hilfe: Mux mit 64 Ausgängen! (für möglichen Einsatz in 8x8x8 LED Cube)

Also habe ich mich nur zum Üben entschieden, einen Mux mit 64 Ausgängen in Eagle zu entwerfen. Ich dachte mir, wenn er gut ist, könnte er in Zukunft nützlich sein. Auto-Router habe ich nicht verwendet.

Hier ist die Platine: Leiterplatte(Klicken zum Vergrößern)

Unten links sind die Interface-Pins: Power, Gnd, Selektoren.
Es besteht aus 2 Ebenen von Muxes mit 8 Ausgängen (insgesamt 9).
Datenblatt für verwendete analoge Muxes (CD4051): http://www.datasheetcatalog.org/datasheets/120/109150_DS.pdf

Hier ist das Schema, auf dem es basiert: Schema(Zum Vergrößern klicken)

Die Größe des Layouts beträgt 4,4 "x 2,4", was für einen Amateur sehr teuer werden würde, um es zu drucken. Ich habe irgendwie das Gefühl, dass diese ganze Idee unpraktisch ist, aber ich weiß nicht, was ich davon halten soll. Ist es überhaupt sinnvoll, dies zu tun?

Ist das ein gutes Design?
Ich plane, damit einen 8x8x8 LED-Würfel zu machen. Würde dieses Design zu viel Ausbreitungsverzögerung verursachen, da sich die Leiterbahnen häufig durch Vias einfädeln?
Gibt es eine Möglichkeit, dies noch kompakter oder effizienter zu machen? Oder nur eine allgemeine Verbesserung?

Jeder Beitrag ist willkommen! Danke!

Der erste Link zum Anzeigen des PCB-Layouts in voller Größe funktioniert nicht.
Auch nicht die zweite. Sie müssen den Bildern die öffentlichen Anzeigeberechtigungen erteilen, wie es aussieht.
Links behoben, sollte jetzt funktionieren!
@Shubham: Danke für das Korrigieren der Links, aber wir ziehen es vor, die Bilder auf dem SE-Konto zu hosten. Verwenden Sie [STRG]-[G] oder die Bildschaltfläche, um sie dort zu verlinken.
Ich sehe keinen einzigen Bypass-Kondensator in dieser Schaltung. Du brauchst sie!

Antworten (5)

Nein, das ist keine gute Idee. Erstens verwenden Sie analoge Multiplexer, die einen ziemlich hohen haben R Ö N , wie 125 Ω . Sie bestehen zwei Ebenen davon, also sind es 250 Ω . Kein Grund zur Sorge, könnte man sagen, ich brauche sowieso einen Vorwiderstand für die LED. Richtig, aber Sie müssen auch einen hohen Strom durch ihn treiben. Sie multiplexen 64 LEDs nacheinander, das ist also ein Tastverhältnis von 1,6 %. Sie müssen sie mit hohen Strömen pulsieren, um etwas Licht aus ihnen herauszuholen, möglicherweise sogar hoch genug, um die Lebensdauer der LED ernsthaft zu verkürzen.

Eine bessere Lösung wäre eine Matrix . Die Säulen könnten von einem ULN2803 angetrieben werden , der hohe Ströme aufnehmen kann. Sie können die Spalten einzeln einschalten und für die Zeilen die Zeilenausgänge für die LEDs, die Sie in der aktuellen Spalte beleuchten möchten, auf hoch setzen. Eine Zeile wird also nur 1 LED gleichzeitig ansteuern, eine Spalte 8 LEDs gleichzeitig. Ihre Einschaltdauer hat sich auf 12,5 % erhöht, sodass Sie diesen übermäßig hohen Spitzenstrom nicht mehr benötigen. Es wird jedoch immer noch mehr sein, als Ihr Mikrocontroller liefern kann, sodass Sie für jede Zeile einen PNP-Transistor benötigen.

Da Sie jeweils nur eine Spalte ansteuern, können Sie einen Demultiplexer wie einen 74HC238 verwenden , sodass Sie dafür nur 3 Leitungen benötigen. Zusammen mit 8 Reihenleitungen sind das insgesamt 11. Das wäre für 64 LEDs in Ordnung, aber Sie benötigen 8 davon für den 8x8x8-Würfel, und das wäre kostspielig in der Mikrocontroller-Ausgabe. Lösung: Verwenden Sie SIPO- Schieberegister
(Serial In-Parallel Out) wie den 74HC595 für die Zeilendaten. Kaskadieren Sie sie für die 8 Matrizen, sodass Sie 64 Werte durch sie verschieben können. Wenn das letzte Bit verschoben wurde, speichern Sie die Daten und wählen die Spalte aus. Während die LEDs für diese Spalte leuchten, können Sie bereits die Daten für die nächste Spalte einschieben. Latchen Sie zum Zeitpunkt des Cue die Daten und wählen Sie erneut die nächste Spalte aus.
Platzieren Sie alternativ die 74HC595 parallel und verschieben Sie gleichzeitig 8 Bit in ihnen. Dies erfordert 8 Bits der E/A Ihres Mikrocontrollers anstelle von nur 1, aber Sie benötigen keine 64 Verschiebungsoperationen, sondern nur 8.

Hinweis: Sie benötigen eine ULN2803 pro 64-LED-Matrix; es kann keine 8x8 Reihen fahren.

Wird die Helligkeit vom menschlichen Auge nicht auf einer logarithmischen Skala erfasst? Selbst bei einem Arbeitszyklus von 1% würde die LED also immer noch 1 / log (100) = 1/2 so hell erscheinen? Wenn das stimmt, ist das für mich in Ordnung.
Und es sieht so aus, als hätte ich viel zu recherchieren. Ich habe viele Anleitungen auf 8x-Würfeln mit Schieberegistern gesehen, aber ich habe sie nie benutzt, also habe ich versucht, sie zu vermeiden, aber sie scheinen die praktischste Lösung zu sein, also werde ich lernen!
@Shubham - über die scheinbare Helligkeit: Wenn das der Fall wäre, könnten die meisten LEDs mit 0,2 mA anstelle der üblichen 20 mA auskommen. Entweder 0,2 mA oder 20 mA bei 1 % Einschaltdauer, Sie werden feststellen, dass es viel zu schwach ist.
@Shubham, etwas, das die Hälfte des Lichts ausstrahlt, erscheint halb so hell. Die LED-Helligkeit ist ziemlich linear mit dem Strom und offensichtlich mit dem Arbeitszyklus (gemittelt über eine Zeitspanne, für die ein Auge empfindlich ist).
Weitere Informationen zur LED-Helligkeit im Vergleich zum Arbeitszyklus finden Sie unter Führt das Pulsen einer LED bei höherem Strom zu einer größeren scheinbaren Helligkeit? .

(A) Dies scheint ein guter Zeitpunkt zu sein, um den Sprung zur Oberflächenmontage zu wagen. Probieren Sie es aus, es wird Ihnen gefallen !!!.


(B) Fahreralternativen anzeigen.

35 LEDs, die von einem einzigen Gehäuse angesteuert werden, das von einem einzigen Ausgangspin angesteuert wird.

Wenn Sie den ganzen Spaß verderben und eine kompakte Lösung erhalten möchten, die funktioniert (aber Ihre Board-Layout-Fähigkeiten möglicherweise nicht so sehr herausfordert, ziehen Sie Lösungen in Betracht wie:

  • MM5450 35 LED-Treiber . Datenblatt Dies ist mein Favorit von weit zurück. Sobald Sie eines davon verwenden, werden Sie verwöhnt. 35 LEDs von einem Ausgangspin ! :-). In Bezug auf Kosteneffizienz und Einfachheit des Antriebs ist kaum etwas vergleichbar. Auf Lager bei Digikey für 4,39 $/1 in DIP40 und auch auf Lager in PLCC 443,78 $/1. Verkettbar mit ein wenig Arbeit. Benötigt fiktiv 3 Leitungen, um es zu steuern, aber die übermäßig Begeisterten können es mit 1 Leitung und ein paar RC-Verzögerungen tun. Es klappt :-). Sie sagen: Daten werden seriell über 2 Signale übertragen; Uhr und serielle Daten. Die Datenübertragung ohne die zusätzlichen Unannehmlichkeiten eines externen Ladesignals wird durch die Verwendung eines Formats mit einer führenden „1“, gefolgt von den zulässigen 35 Datenbits, erreicht. Diese 35 Datenbits werden zwischengespeichert, nachdem das 36. übertragen wurde. Dieses Schema stellt eine nicht gemultiplexte, direkte Ansteuerung der LED-Anzeige bereit. Die aktuell angezeigten Zeichen (also die Datenausgabe) ändern sich nur, wenn sich die seriellen Datenbits von den zuvor übertragenen unterscheiden. Beachten Sie den Tippfehler beim Ausschneiden und Einfügen auf Seite 5 des Datenblatts. Wie man mit einem Ausgangspin fährt - siehe am Ende.

  • TLC59282 16-Kanal-Konstantstrom-LED-Treiber Der TLC59282 von Texas Instruments ist ein 16-Kanal-Konstantstrom-Senkentreiber. Datenblatt hier. Jeder Kanal kann individuell über ein einfaches serielles Kommunikationsprotokoll gesteuert werden, das mit 3,3-V- oder 5-V-CMOS-Logikpegeln kompatibel ist, je nach Betriebs-VCC. Sobald der serielle Datenpuffer geladen ist, überträgt eine steigende Flanke an LATCH die Daten an die LEDx-Ausgänge. Der BLANK-Pin kann verwendet werden, um alle OUTn-Ausgänge während des Einschaltens auszuschalten und Daten zu speichern, um unerwünschte Bildanzeigen während dieser Zeiten zu verhindern. Der Konstantstromwert aller 16 Kanäle wird durch einen einzigen externen Widerstand eingestellt. Mehrere TLC59282 können kaskadiert werden, um zusätzliche LEDs von demselben Prozessor zu steuern.

  • TLC59281 . Ähnlich.

Geben Sie hier die Bildbeschreibung ein

  • Allegro 6276 Funktional verdächtig ähnlich. Die A6276EA und A6276ELW wurden speziell für LED-Display-Anwendungen entwickelt. Jedes BiCMOS-Gerät enthält ein 16-Bit-CMOS-Schieberegister, zugehörige Datenlatches und 16-npn-Konstantstrom-Senkentreiber. Das CMOS-Schieberegister und Latches ermöglichen eine direkte Verbindung mit mikroprozessorbasierten Systemen. Bei einer 5-V-Logikversorgung liegen typische serielle Dateneingangsraten bei bis zu 20 MHz. Der LED-Treiberstrom wird durch die Auswahl eines einzelnen Widerstands durch den Benutzer bestimmt. Ein serieller CMOS-Datenausgang ermöglicht Kaskadenverbindungen in Anwendungen, die zusätzliche Treiberleitungen erfordern. Für die Zwischenziffernaustastung können alle Ausgangstreiber mit einem ENABLE-Eingangshoch deaktiviert werden. Ähnliche 8-Bit-Geräte sind als A6275EA und A6275ELW erhältlich

Ein-Pin-Laufwerk

Manche ICs mit Takt-/Latch-/Daten-/Reset-Steuerleitungen scheinen oft gefällig angeordnet worden zu sein, so dass die Polarität der Steuersignale Zeitverzögerungen und eine einzelne Eingangsleitung zur Steuerung des ICs zulässt. Im schlimmsten Fall mit weniger gefälligen ICs können einige Inverter benötigt werden.

Das Takten auf einem MM5450 erfolgt an der steigenden Flanke. Daten werden von der Eingangsleitung über eine RC-Verzögerung zugeführt, wobei t delay um ein Vielfaches größer ist als die erreichbare Taktrate. Wenn die Eingangsleitung für Td hoch gehalten wird, gehen die Daten hoch. Wird nun der Eingang abgesenkt und angehoben, wird ein High eingetaktet. Wird stattdessen die Taktleitung so schnell wie möglich nach der letzten Taktflanke abgesenkt und für Td auf Low gehalten und dann angehoben, wird ein Low eingetaktet. Ein Reset oder Frameload oder welches Signal auch immer durch eine längere Verzögerung von sagen wir Treset erreicht werden kann. Das Halten des Eingangs auf dem Reset-Pegel (ob hoch oder niedrig) für > Treset aktiviert das Zurücksetzen oder Frame-Laden oder eine andere Funktion. Die Rücksetzverzögerung kann neu gestartet werden, indem eine Diode über dem Ladewiderstand verwendet wird, so dass die Rücksetzaktion jedes Mal erneut eingeleitet wird, wenn ein Ausschaltzustand auf der Eingangsleitung auftritt.Das obige Schema kann jedoch verwendet werden, um einen Anzeige-IC über ein einzelnes Paar in einer Entfernung zu betreiben. Für zusätzliche Punkte kann das gleiche Paar für die Stromversorgung verwendet werden. Das Einschalten und die volle Kontrolle von 35 LEDs an einem Paar ist ein guter Trick, wenn Sie es tun können. Mit einem MM5450 ist das möglich. Vor langer Zeit war dies in manchen Fällen eine attraktive Lösung. Jetzt, im Zeitalter von Mikrocontrollern für 50 Cent (oder weniger) , ist es möglicherweise vorzuziehen, einen Controller am "fernen Ende" zu platzieren.


Helligkeit & Strom:

LEDs werden mit zunehmendem Strom ungefähr linear heller. Es wird ein Strom von 15 mA pro Segment angegeben (was ein Mindestwert ist, maximal 25 mA+). Viele moderne LEDs sind mit 20 mA max. kontinuierlich spezifiziert. Ein Verhältnis von 3:4 (= 15 mA : 20 mA) ist für das Auge praktisch nicht wahrnehmbar, und die Effizienz der LEDs ist ein weitaus größerer Faktor als kleine Stromänderungen.

Bei beispielsweise 10 mA gibt es viele moderne rote LEDs, die so hell sind, wie Sie möchten - und weitaus heller als LEDs früherer Generationen. Schauen Sie sich an, was Leute wie Nichia & Cree am oberen Ende anbieten, und Sie werden gebührend beeindruckt sein.

Allerdings ist die Leistung des IC begrenzt, wenn Sie alle 35 Segmente gleichzeitig benötigen. Mit 15 leuchtenden Segmenten können Sie 20+ mA erhalten (Abb. 7).

35 LEDs mit einem Pin! das ist einfach ein Wahnsinniger! Ich habe das Datenblatt für MM5450 durchgelesen und leider liegt der Ausgangsstrom mit 15 mA am unteren Ende, und LEDs benötigen 20 mA, wenn ich mich nicht irre. Aber ich schaue mir andere LED-Treiber und Schieberegister an
@Shubham: Re 20 mA. Nein. LEDs werden mit zunehmendem Strom ungefähr linear heller, ein Verhältnis von 15:20 ist für das Auge praktisch nicht wahrnehmbar, und die Effizienz der LEDs ist ein weitaus größerer Faktor als kleine Stromänderungen. Bei beispielsweise 10 mA gibt es viele moderne rote LEDs, die so hell sind, wie Sie möchten - und weitaus heller als LEDs früherer Generationen. Schauen Sie sich an, was Leute wie Nichia & Cree am oberen Ende anbieten, und Sie werden gebührend beeindruckt sein. Allerdings ist die Leistung des IC begrenzt, wenn Sie alle 35 Segmente gleichzeitig benötigen. Mit 15 leuchtenden Segmenten können Sie 20+ mA erhalten (Abb. 7).

Abgesehen von dem Problem, dass dies nicht der Weg ist, LEDs anzusteuern, müssen Sie beim Entwerfen einer Leiterplatte für große Kanalzahlen einen Bottom-up-Ansatz verwenden, beginnend mit dem Layout, und nicht mit einem Schaltplan mit netten, logischen oder willkürlichen Pinbelegungen. Die Kanalzuordnung kann einfach in der Software durchgeführt werden, also legen Sie das PCB so an, dass das Tracking am saubersten und einfachsten ist, kommentieren Sie dann den Schaltplan zurück und verwenden Sie eine Nachschlagetabelle, um ihn zuzuordnen.

Dieser 5x5x5-LED-Würfel für ein XMOS-Gerät verwendet zwei STP16CPS05-Chips und fünf BD140-BJTs. Es wird von SPI angetrieben. Hier ist meine Version des Schaltplans, ich dachte daran, eine Leiterplatte dafür zu entwerfen. Es könnte leicht zu einem 8x8x8-Würfel erweitert werden.

Dieses von ihm verwendete XMOS XK-1-Board kostet 59 US-Dollar, einschließlich der XTAG-2-Schnittstelle, die zum Programmieren und Debuggen erforderlich ist. Ich habe zwei davon.

Ihr Schaltplan scheint nur eine 5x25-Matrix anzusteuern. Gibt es etwas Besonderes an XMOS dazu? Anscheinend kann das jeder Mikrocontroller. Nur neugierig.
Natürlich würde jedes Gerät mit einem SPI-Port tun. Der XMOS-Chip bietet viel Leistung zu geringen Kosten (400 MIPS), was für solche Dinge ideal ist. Es wird die STP16CPS05-Geräte problemlos mit maximal 30 MHz antreiben.

Wenn Sie ein Schieberegister verwenden, dessen High-Side- und Low-Side-Treiberströme beide ausreichen, um eine LED mit einem Arbeitszyklus von 1/4 anzusteuern, würde ich vorschlagen, jede 8-Lichterkette mit vier Drähten zu verdrahten. Zwei Drähte sollten mit dedizierten Schieberegisterausgängen verdrahtet werden (unter Verwendung von Strombegrenzungswiderständen, falls erforderlich), und die anderen zwei Drähte sollten für alle 8-Lichterketten gemeinsam sein, mit sehr starken, unabhängig gesteuerten High- und Low-Side-Treibern . Ein solcher Ansatz würde die Anzahl der für jede vertikale Lichterkette benötigten Drähte minimieren (vier vertikale Drähte könnten bis zu zwölf Lichter ansteuern, aber die Schaltung dafür wäre komplexer).

Selbst bei Verwendung von Schaltchips mit 8 Ausgängen würde man nur 16 Chips benötigen, um den gesamten Würfel anzusteuern (plus ein paar diskrete Ausgänge, um die großen High- und Low-Side-Treiber zu steuern).