uwefed:
Das kannst Du nicht, Du mußt sie in Reihe schalten.
Mega pin 51 (MOSI) -> SIN (Tlc pin 26)
Sout kommt auf den Sin des nächsten. Also kein Problem.
alle anderan Pin müssen paralell auf alle TLCs geschaltet werden:
Mega pin 52 (SCK) -> SCLK (Tlc pin 25)
Mega pin 11 (OC1A) -> XLAT (Tlc pin 24)
Mega pin 12 (OC1B) -> BLANK (Tlc pin 23)
Mega pin 9 (OC2B) -> GSCLK (Tlc pin 18)
Also muss ich alle 24 TLCs in Reihe schalten?
Kann ich Pin 52 vom Mega dann an den ersten TLCs klemmen, und von ihm aus weiter an den zweiten TLC oder sollte ich lieber Pin 52 auf einem separaten Breadboard anklemmen und das dort zentral verwalten?
uwefed:
Ich sagte bereits, daß ein Ausgang des Arduino nicht 24 Eingänge bedienen kann, weil er zuwenig Strom liefert. Du brauchst einen Treiber.
Grüße Uwe
Ich war mal wieder zu schnell
Weißt du wieviele ein Arduino Mega 2560 ca leisten kann? Und wieviele Treiber brauche ich dann? (ich weiß leider nicht, wie man das ausrechnen kann, evtl. kannst du mir helfen?)
Also Benutze einen nicht invertierenden Treiber oder Bustreiber der 74HC Familie zB:
74HC4050, 74HC541 ecc
Aber die Ausgänge nicht paralellschalten. Vom Arduino auf 5 Eingänge und jeden Ausgang auf 5 TLC Eingänge ( 1 bleibt übrig) Wahrscheinlich funktioniert auch Arduino - 4 Treiber-Eingänge und 1 Ausgang an 6 TLC-Eingänge. Bei Oktal-Bustreibern brauchst Du nur 2 ICs.
Durch jede LED fließen nur 20mA darum würde ich zwischen LED und TLC Flachbandkabel nehmen (zb Laufwerkskabel aus alten PCs)
Die TLC würd ich sowieso in der Nähe der LED plazieren und diese auch nicht zu weit weg vom Steuerarduino.
Also Benutze einen nicht invertierenden Treiber oder Bustreiber der 74HC Familie zB:
74HC4050, 74HC541 ecc
Aber die Ausgänge nicht paralellschalten. Vom Arduino auf 5 Eingänge und jeden Ausgang auf 5 TLC Eingänge ( 1 bleibt übrig) Wahrscheinlich funktioniert auch Arduino - 4 Treiber-Eingänge und 1 Ausgang an 6 TLC-Eingänge. Bei Oktal-Bustreibern brauchst Du nur 2 ICs.
den MOSI braucht Du nicht zu verstärken da dieser auf den SIN des ersten TLC geht und der SOUT des ersten TLS auf den in des 2. TLC ecc. Im Bild die orange Verbindung.
Du mußt die anderen 4 Signale vertärken, die paralell an alle TLC gehen.
zb: pin 13 des Arduino auf A1, A2, A3, A4, A5 des 74HC4050 und dann Y1 auf die SCLK-Eingänge von 5 TLCs. das gleiche mit den Ausgängen Y2 bis Y5.
Ah meinte ich ja, hab nur die obersten 4 abgetippt. Sry, ok gut. Supi. Dann werd ich das mal testen und mich wieder melden, sobald ich mehr weiß bzw. wieder Hilfe brauche.
Aufpassen musst du nur, weil je 2 LEDs an einem der LPD8806 Controller hängen. Die sind zwar beide getrennt steuerbar, aber Du hast beide LEDs in einem Segement und kannst die nicht trennen.
Wenn ich das später per Ethernet steuern will hab ich ein Problem: Ich kann etweder TLC5940 oder das Ethernet-Shield.
Wie bekomme ich beides parallel angeschlossen? Hab zwar was gelesen mit, dass man die Boards modifizieren kann, aber funktioniert das dann auch sauber?
Mal gespannt, ob ihr hierfür auch eine Lösung wisst ;D
Ich kann dir zwar nicht die Antwort geben aber mit einem gewissen technischen Verständnis solltest du dir dies selbst überlegen können: Welche Pins werden für den TLC verwendet und werden diese Pins gleichzeitig auch für das Ethernet shield verwendet?
Die Pins für die serielle Ausgabe dürfen nicht von dem ethernet shield verwendet werden, alle anderen Pins kann man umkonfigurieren.
an Pin10 hängt Blank und an Pin 9 XLat. Beide Pins gehören zu Timer1.
Diese Pins könntest du z.b. auf Timer4 verlegen, also dann Pin 6 und 7.
dann mußt du in der Library überall OC1A durch OC4A ersetzen und OC1B durch OC4B.
Du kannst auch jeden anderen Timer verwenden , wichtig ist nur, dass beide
pins zum gleichen Timer gehören, da es einen wichtigen Zusammenhang zwischen dem Blank und dem Xlat Puls gibt.
Blank und Xlat hängen nicht zusammen.
Eine Synchronisation braucht es zwischen GSCLK und BLANK. Ein BLANK-Impuls alle 4096 GSCLK Impulse.
Darum können die Pin 3 und 10 nicht getauscht werden.
Pin 10 am Ethernet ist das CS signal. Das kann ohne größere Probleme auf ein anderes Pin gelegt werden.
Des weiteren kann der TLC über die SPI Schnittstelle angeschlossen werden oder über andere Pins. Beides ist möglich aber andere pins sind einfacher. Über SPI muß ein CS über ein zusätzliches AND-Gatter emuliert werden.
Also GSCLK und BLANK müssen auf 3 und 10 bleiben, (Timer für PWM Signale)
SIN, SCLK und XLAT können auf x-beliebige pins. (serielle übertragung Daten)
Ethernet 11,12 und 13 müssen bleiben, 10 muß umgelötet und auf ein x-beliebiges Pin geleitet werden.
XLAT ist der kurze Puls, der im langen BLANK Puls liegt. Daher sind auch beide an einem Timer.
Die Sync zwischen GSCLK und XLAT und BLANK ergibt sich durch die Timerkonfig von T1 und T2.
Insofern verstehe ich deine Aussage nicht ganz..
Beim H-Pegel des XLAT wird die Daten vom Eingangsregister auf die GS bzw DC Register übernommen. Die Datenübertragung ins Eingangsregister kann während eines PWM-Zyklus erfolgen, die Übernahme ins GS oder DC Register aber nicht. Ein BLANK Impuls stoppt den PWM Zyklus. Daum sollte XLAT mit Blank synchronisiert sein, benötigt aber bein besonderes timing.
Lies Dir mal die Links durch , die ich vorgeschlagen habe.