Hiho, ich möchte 5 ATmega16-16PU als Spaltentreiber und einen ATmega32-16PU als Zeilentreiber für eine RGB LED Matrix verwenden. Dazu ist es, soweit ich es verstanden habe, nötig die uCs synchron zu betreiben. Ich wollte die Controller dazu gemeinsam mit einem Quartz betreiben. Leider konnte ich dazu noch keine Schaltungen finden. Gruß cptrick
Hagbard Celine schrieb: > ich möchte 5 ATmega16-16PU als Spaltentreiber und einen ATmega32-16PU > als Zeilentreiber für eine RGB LED Matrix verwenden. Aua. > Ich wollte die Controller dazu gemeinsam mit einem Quartz betreiben. > Leider konnte ich dazu noch keine Schaltungen finden. Da wirst Du wohl auch keine finden, das ist zu einfach. Externen Taktgenerator einstellen und externen Quarzgenerator benutzen. Evtl. kann man auch einen der Controller als Master benutzen und mit einem oder mehreren Gattern den Takt verteilen. Michael
Michael H. schrieb: > Da wirst Du wohl auch keine finden, das ist zu einfach. Externen > Taktgenerator einstellen und externen Quarzgenerator benutzen. > Evtl. kann man auch einen der Controller als Master benutzen und mit > einem oder mehreren Gattern den Takt verteilen. Also einen Master wird es geben, einen Arduino. Die uCs wollte ich über I2C kommunizieren lassen, bzw. die 6 controller als Slave und den Arduino als Master. Das ganze ist so aufgebläht, weil es auch möglich sein soll die LEDs umzupolen und als Photodioden zu betreiben, Stichwort Touch Interface.
Es git das zur Zeit ein Projekt http://www.mikrocontroller.net/articles/Word_Clock. Sollte dir weiterhelfen.
Du kannst den Oszillator eines Controllers mit externem Quarz im Full-Swing-Modus (CKOPT=0) betreiben und an den XTAL2-Ausgang weitere Controller anschließen, die für external Clock konfiguriert sein müssen. Wieviele davon der XTAL2-Ausgang treiben kann, weiß ich nicht. Möglicherweise musst du noch einen Treiber in Form eines Logikgatters o.ä. dazwischenschalten.
Eduard Scheske schrieb: > Es git das zur Zeit ein Projekt > http://www.mikrocontroller.net/articles/Word_Clock. Sollte dir > weiterhelfen. Hmm nicht wirklich das, was ich vorhabe. yalu schrieb: > Du kannst den Oszillator eines Controllers mit externem Quarz im > Full-Swing-Modus (CKOPT=0) betreiben und an den XTAL2-Ausgang weitere > Controller anschließen, die für external Clock konfiguriert sein müssen. Das klingt interessant. Würde sich auch mit der Master/Slave Konstellation decken.
@ Hagbard Celine (cptrick) >ich möchte 5 ATmega16-16PU als Spaltentreiber und einen ATmega32-16PU >als Zeilentreiber für eine RGB LED Matrix verwenden. Ist unsinnig. Nicht nur dass einfache Schieberegister vollkommen ausreichen und billiger sind, nein, deine AVRs laufen nicht so synchron wie du denkst. >Dazu ist es, soweit ich es verstanden habe, nötig die uCs synchron zu >betreiben. Jain. Aber dein Ansatz ist untauglich. >Ich wollte die Controller dazu gemeinsam mit einem Quartz betreiben. >Leider konnte ich dazu noch keine Schaltungen finden. Nimm einen QuarzOSZILLATOR, dort hängst du einen Treiber ala 74HC04 dran und schon kannst du Dutzende AVR mit dem sleben Takt betreiben. MfG Falk
Falk Brunner schrieb: >>Dazu ist es, soweit ich es verstanden habe, nötig die uCs synchron zu >>betreiben. > > Jain. Aber dein Ansatz ist untauglich. > >>Ich wollte die Controller dazu gemeinsam mit einem Quartz betreiben. >>Leider konnte ich dazu noch keine Schaltungen finden. > > Nimm einen QuarzOSZILLATOR, dort hängst du einen Treiber ala 74HC04 dran > und schon kannst du Dutzende AVR mit dem sleben Takt betreiben. Schieberegister kosten zuviel Zeit zum Schalten, wenn ich auf 30 pins SoftPWM mache. Ok, man könnte die Controller über I2C synchronisieren, also ein KillByte senden, bei dem die Spalten ausgeschaltet und eine Zeile weiter gesprungen wird.
@Hagbard Celine (cptrick) >Schieberegister kosten zuviel Zeit zum Schalten, wenn ich auf 30 pins >SoftPWM mache. Nöö, ausserdem gibt es Soft-PWM Mfg Falk
Warum nimmst du nicht einfach einen AVR mit genügend Pins? Mein Gott, ist das immer ein Umstand hier mit euch ;)
Falk Brunner schrieb: >>Schieberegister kosten zuviel Zeit zum Schalten, wenn ich auf 30 pins >>SoftPWM mache. > > Nöö, ausserdem gibt es Soft-PWM Können Schiebergister denn bidirektional betrieben werden? Und mir ist nicht klar, wie ich 150 (50xRGB) PWM Channel ohne PWM in Software sonst realisieren kann. Deshalb 5 uCs für die Spalten und 1 uC für die Zeilen. In diesem Setup sehe ich kein Problem die LEDs bidirektional anzusteuern und wenn bei 30 PWM Kanälen auf einem ATmega16 noch Rechenleistung übrig ist, könnte man noch etwas Berechnung für die Animation auslagern.
Simon K. schrieb: > Warum nimmst du nicht einfach einen AVR mit genügend Pins? Mein Gott, > ist das immer ein Umstand hier mit euch ;) Welcher AVR hat denn 160 GPIO pins und kann 150 PWM Kanäle verwalten? Edith: Und kein SMD;)
@ Hagbard Celine (cptrick) >Können Schiebergister denn bidirektional betrieben werden? Wozu? >Und mir ist nicht klar, wie ich 150 (50xRGB) PWM Channel ohne PWM in >Software sonst realisieren kann. Naja, das ist schon "etwas" viel für einen AVR. Nimm 30 PWM-Kanläe in Soft-PWM, dann hast du bei einem AVR MEGA16 noch zwei Pins frei. Dort kannst du per I2C oder UART Daten reinschicken. Mit 5 AVRs bist du dabei, ein sechster schickt dann Daten an die fünf Arbeitstiere. >Deshalb 5 uCs für die Spalten und 1 uC für die Zeilen. Ist trotzdem nicht sehr sinnvoll. > In diesem Setup >sehe ich kein Problem die LEDs bidirektional anzusteuern und wenn bei 30 >PWM Kanälen auf einem ATmega16 noch Rechenleistung übrig ist, könnte man >noch etwas Berechnung für die Animation auslagern. Kann man. MFG Falk
Falk Brunner schrieb: > Naja, das ist schon "etwas" viel für einen AVR. Nimm 30 PWM-Kanläe in > Soft-PWM, dann hast du bei einem AVR MEGA16 noch zwei Pins frei. > Dort kannst du per I2C oder UART Daten reinschicken. Mit 5 AVRs bist du > dabei, ein sechster schickt dann Daten an die fünf Arbeitstiere. Das ist genau das, was ich beschrieben habe (bzw. noch einen für die Spalten, wobei das auch der Master sein kann, der hat ja nicht so viel zutun). Und warum soll das nicht sinnvoll sein? Falk Brunner schrieb: >>Können Schiebergister denn bidirektional betrieben werden? > > Wozu? Schrieb ich bereits: LEDs umpolen und als Photodioden nutzen.
@ Hagbard Celine (cptrick) >Das ist genau das, was ich beschrieben habe. Und warum soll das nicht >sinnvoll sein? Nein, das hast du nicht. Du hast ein LED-Matrix beschrieben, da du von zeilen und Spalten redest. Ich schrieb eas über das direkte Ansteuern von 30 LEDs/AVR. >Schrieb ich bereits: LEDs umpolen und als Photodioden nutzen. Geht mit den meisten Schieberegistern nicht. Aber wenn man 30/AVR hat, kann man das leicht machen, indem man die Masse der LED über einen dicken MOSFET-Treiber schaltet. MFG Falk
Falk Brunner schrieb: >>Das ist genau das, was ich beschrieben habe. Und warum soll das nicht >>sinnvoll sein? > > Nein, das hast du nicht. Du hast ein LED-Matrix beschrieben, da du > von zeilen und Spalten redest. Ich schrieb eas über das direkte > Ansteuern von 30 LEDs/AVR. Achso, das hatte ich überlesen. Aber das Umschalten zwischen den PWM Zyklen betrifft ja auch nicht die Zeilentreiber, diese "denken" sie steuern die ganze Zeit eine Reihe von 50 RGB LEDs. >>Schrieb ich bereits: LEDs umpolen und als Photodioden nutzen. > > Geht mit den meisten Schieberegistern nicht. Aber wenn man 30/AVR hat, > kann man das leicht machen, indem man die Masse der LED über einen > dicken MOSFET-Treiber schaltet. Also das Schalten ginge nicht über die 5 AVRs, dort sind mit 30xPWM und I2C bereits alle GPIO pins belegt und dann könnte man die Masse auch gleich an den Master anlegen, das erleichtert auch das Messen (Nur noch ein ADC und Operationsverstärker dazwischen).
Travel Rec. schrieb:
> Nun laßt ihn doch die 6 AVRs nehmen, ATMEL wird´s freuen ;-)
Bin auch neu bei der ganzen Sache und versuche daher die Hardware
möglichst felxibel zu konzipieren um dann viel über software
umzufunktionieren.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.