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: (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: (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!
Nein, das ist keine gute Idee. Erstens verwenden Sie analoge Multiplexer, die einen ziemlich hohen haben , 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.
(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.
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).
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.
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).
Dean
Dean
Schubham
Kevin Vermeer
Connor Wolf