mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mehrere uCs an einem Quartz synchron


Autor: Hagbard Celine (cptrick)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Michael H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Hagbard Celine (cptrick)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Eduard Scheske (schneehase)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es git das zur Zeit ein Projekt 
http://www.mikrocontroller.net/articles/Word_Clock. Sollte dir 
weiterhelfen.

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Hagbard Celine (cptrick)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  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

Autor: Hagbard Celine (cptrick)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Hagbard Celine (cptrick)

>Schieberegister kosten zuviel Zeit zum Schalten, wenn ich auf 30 pins
>SoftPWM mache.

Nöö, ausserdem gibt es Soft-PWM

Mfg
Falk

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum nimmst du nicht einfach einen AVR mit genügend Pins? Mein Gott, 
ist das immer ein Umstand hier mit euch ;)

Autor: Hagbard Celine (cptrick)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Hagbard Celine (cptrick)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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;)

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  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

Autor: Hagbard Celine (cptrick)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  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

Autor: Hagbard Celine (cptrick)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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).

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun laßt ihn doch die 6 AVRs nehmen, ATMEL wird´s freuen ;-)

Autor: Hagbard Celine (cptrick)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.