Forum: Mikrocontroller und Digitale Elektronik Über welche Art 101 Mikrocontroller miteinander verbinden?


von Flitzii (Gast)


Lesenswert?

Hey,

ich komm nicht weiter :/
Ich will insgesamt 101 Mikrocontroller miteinander verbinden.

Ein Master und 100 RGB Controller. Das ganze soll eine riesige LED-RGB 
Matrix geben.

Welches Protokoll nehme ich dafür?

UART, I2C.....?

I2C geht nur bis 127 Adressen. Aber wenn ich das ganze mal erweitern 
will :/


LG

von Peter II (Gast)


Lesenswert?

Rechne erstmal wie schnell die die Daten übertragen musst. Eventuell 
wird du mehr als ein Bus brauchen.

von Flitzii (Gast)


Lesenswert?

Also die Daten die zu jedem Controller hin müssen, sind ja nur 4 Werte.
(Adresse, R-Wert, G-Wert, B-Wert)

Dann muss der Controller aber noch einen Wert zurück geben.

von Flitzii (Gast)


Lesenswert?

UART wird denke ich schnell genug sein. DMX kann man darüber ja auch 
übertragen. Und da gehen 512 Adressen mit 20 - 25 Frames pro Sekunde.

von Andreas B. (myratz)


Lesenswert?

Hallo,

mir fällt da spontan das SPI Interface ein. Ein Master erzeugt den Clock 
und die Slaves Senden gleichzeitig mit dem Master in die andere 
Richtung. Bildlich gesehen so wie eine Seilbahn in den Alpen.

Jeder Slave der nichts zu senden hat legt 0xFFFF ins Senderegister, alle 
Tx und RX Leitungen werden mit Open-Drain und PullUp verbunden. Der 
Master Sendet ein Adress/Command Token und der Slave Antwortet bei der 
nächsten Übetragung.

Kommt dann allerdings noch auf die Geschwindigkeit und die Leitungslänge 
an....

Gruss,
Andreas

von troll (Gast)


Lesenswert?

Flitzii schrieb:
> I2C geht nur bis 127 Adressen. Aber wenn ich das ganze mal erweitern
> will :/
Es gibt doch 10 Bit I2C oder irre ich mich?

Den Hinweis von Peter II beachten...

von Peter II (Gast)


Lesenswert?

Flitzii schrieb:
> Also die Daten die zu jedem Controller hin müssen, sind ja nur 4 Werte.
> (Adresse, R-Wert, G-Wert, B-Wert)

dachte es soll eine große anzeige weden, also an jeden controller sind 
selber noch mal viele RGBs angeschlossen.

Wenn es nur 4Werte sind, dann spielt die geschwindigkeit keine rolle. 
Aber dafür kannst du doch gleich RGB controller verwenden.

von Reinhard Kern (Gast)


Lesenswert?

Flitzii schrieb:
> Das ganze soll eine riesige LED-RGB
> Matrix geben.

Kommt drauf an, was du darstellen willst - für HD-Video liegst du da im 
Gigabit/s Bereich. Also rechne mal Farbtiefe x 3 x Pixelzahl x 
Framerate. Dann kann man weitersehen.

Gruss Reinhard

von Flitzii (Gast)


Lesenswert?

Einfache Animationen sollen darauf dargestellt werden.

Kein HD Video :D

Leitungslänge zwischen dem Master und den "Pixeln" maximal 35 cm.

Wäre dafür das SPI gut geeignet?

von Dummschwaetzer (Gast)


Lesenswert?

das wird wohl mit den meisten Bussen nix, oder du baust noch ein paar 
Treiber ein oder der Bus ist sehr langsam. Du hast nämlich das problem, 
dass ein Ausgang viele eingänge (Kapazitäten) treiben muss.

von Peter II (Gast)


Lesenswert?

Flitzii schrieb:
> Einfache Animationen sollen darauf dargestellt werden.

dann überleg mal ob es wirklich sinn macht 100µC zu Programmieren. Es 
gibt schon fertig ICs die man einfach einlöten braucht für soetwas. Dann 
erübrigt sich auch die suche nach der Schnittstelle, dann nimmt man 
einfach das was geboten wird.

von Scanner (Gast)


Lesenswert?

Flitzii schrieb:
> Ein Master und 100 RGB Controller. Das ganze soll eine riesige LED-RGB
> Matrix geben.

Wenn ich mal kurz überschlage was das kosten wird und dann deinen 
Kenntnisstand berücksichtige....

von Nervenarzt (Gast)


Lesenswert?

Der hat grad seine manische Phase ...
was kommt danach ...?

von Andreas B. (myratz)


Lesenswert?

Gugst Du hier:
Beitrag "Leitungslänge mit SPI Bus"

Es kommt auf die Taktfrequenz und Auf die Größe der Pullups, "je 
niederohmiger, desto lang und schnell" und auf die Leitungskapazitäten.

Ein Grundlagenartikel zu SPI gibts hier:
http://www.mct.de/faq/spi.html

Gruß,
Andreas

von Wilhelm F. (Gast)


Lesenswert?

Flitzii schrieb:

> I2C geht nur bis 127 Adressen. Aber wenn ich das ganze mal erweitern
> will :/

CAN wäre für eine Vielzahl einzeln adressierbarer Knoten geeignet und 
auch sehr komfortabel. Es hat auch schon alleine nur per Hardware HD6, 
da muß man in Software nichts mehr groß an Fehlerkorrektur 
berücksichtigen. UART geht aber bspw. in einem Ringnetz auch, mit 
entsprechendem Protokoll und Adresse drin. Allerdings gibt es da immer 
auch eine Höchstmenge an Bandbreite.

Ich habe bspw. drei alte Boards Opto-Net-Mini mit dem 80C517A hier 
liegen, die kann man am UART mit Glasfaser zum Ringnetz verbinden. Die 
ollen Dinger machen dann über UART 1,5 Megabaud. Und das ist fast 20 
Jahre alt. Die ollen Kamellen können aber mit dem 8051-Core nicht so 
schnell rechnen und Daten schieben, wie es der UART eigentlich kann.

von Ralf (Gast)


Lesenswert?

>> Also die Daten die zu jedem Controller hin müssen, sind ja nur 4 Werte.
>> (Adresse, R-Wert, G-Wert, B-Wert)
> DMX kann man darüber ja auch übertragen. Und da gehen 512 Adressen mit 20
> - 25 Frames pro Sekunde.
Bei DMX fällt zwar die Adresse weg (einzelne Adressierung nicht 
möglich), allerdings ist jedes Byte eine Adresse.
Ergo sind es 300 der 512 verfügbaren Adressen, die schonmal weg sind, 
bleiben noch 70 RGB-LEDs übrig (512 - 300 = 212 -> 212 / 3 = ~70).

Ralf

von Einkäufer (Gast)


Lesenswert?

Flitzii schrieb:
> Das ganze soll eine riesige LED-RGB
> Matrix geben.

Wieviel m² sollns denn werden?

von Olof G. (ole)


Lesenswert?

Flitzii schrieb:
> Ein Master und 100 RGB Controller. Das ganze soll eine riesige LED-RGB
> Matrix geben.

Moin,

ich hab hier grade eine 16x12 (192 LEDs)RGB-Matrix vor mir liegen und 
ich kann dir nur sagen, dass ich mich dabei total verschätzt haben.

Nein, nicht der Aufwand ist das Problem, die Auflösung ist einfach viel 
zu gering!!!

Wenn du nun eine 10x10 Matrix baust, dann kannst du darauf grade mal 
einen Buchsten/Zahl oder ähnliches darstellen.

Ich weiß nicht was du mit "einfache Animationen" meinst, aber viel 
solltest du davon nicht erwarten.

Viele Grüße,

Olof

von Karl H. (kbuchegg)


Lesenswert?

Olof Gutowski schrieb:

> Wenn du nun eine 10x10 Matrix baust, dann kannst du darauf grade mal
> einen Buchsten/Zahl oder ähnliches darstellen.
>
> Ich weiß nicht was du mit "einfache Animationen" meinst, aber viel
> solltest du davon nicht erwarten.

Vielleicht sowas hier
http://www.youtube.com/watch?v=DTb0k_P1wlY

Da ist die Framrate sicher nicht das große Problem.

Mich schreckt eher das hier
> Ich will insgesamt 101 Mikrocontroller
> Ein Master und 100 RGB Controller.

Wozu braucht man da 101 µC?

von Olof G. (ole)


Lesenswert?

Moin nochmal,

sorry, das Wichtigste vergessen, nämlich den Bezug zur Frage von 
Flitzii.

Ich würde dir unbedingt dazu raten, etwas zu nehmen, was noch Potential 
nach oben hat.
Bei mir ging es los mit 6x6 und das war gar nichts... dann eben 16x12 
und da ich die WS2812 / WS2811 Stripes benutze, ist das einfach nur ein 
zusammenlöten von ein paar Stücken.


Viele Grüße,

Olof

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Flitzii schrieb:
> Also die Daten die zu jedem Controller hin müssen, sind ja nur 4 Werte.
> (Adresse, R-Wert, G-Wert, B-Wert)
Und wie viele Adressen gibt es pro Controller?

von Wilhelm F. (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:

> Mich schreckt eher das hier
>
>> Ich will insgesamt 101 Mikrocontroller
>> Ein Master und 100 RGB Controller.
>
> Wozu braucht man da 101 µC?

Das kommt ganz auf die Anlagentopologie an.

Ich schlachtete auf dem Schrott mal eine Kiste mit vielen großen 
Anzeigen. Das waren mehr als 10 Kästen in der Größe einer kleinen 
Lautsprecherbox, jeder hatte zwei riesige Siebensegment-Anzeigen mit 
über 10cm Höhe, um 0 bis 99 anzuzeigen. Keine Ahnung, woher das war. 
Vielleicht aus dem Sportbereich, Pferderennbahn, oder Industrie 
Fließband. In Arztpraxen und im Meldeamt gab es sowas mal, die haben 
aber heute schon LCD-Monitore. Aber jedes Kästchen hatte einen 68705P3. 
Diese waren gesteckt, und nur die nahm ich mit. Das ganze Gebilde war 
wohl mal über einen UART oder primitivere getaktete geshiftete Logik in 
Sternform geschaltet.

von Galon (Gast)


Lesenswert?

> Wilhelm Ferkes (ferkes-willem)

> Ich schlachtete auf dem Schrott mal eine Kiste mit vielen großen
> Anzeigen.

Wow!

von Wilhelm F. (Gast)


Lesenswert?

Galon schrieb:

> Wow!

Jep!

von c-hater (Gast)


Lesenswert?

Flitzii schrieb:

> Also die Daten die zu jedem Controller hin müssen, sind ja nur 4 Werte.
> (Adresse, R-Wert, G-Wert, B-Wert)

Also 32Bit. Mal 100 Controller=3200 Bit für ein komplettes Update der 
Farbwerte aller Controller.

Wenn du, wie du schreibst, Animationen darstellen willst, brauchst du 
wenigstens 15fps (Stummfilmniveau von vor 130 Jahren). Also pro Sekunde 
15*3200= rund 50kBps. Netto natürlich, dazu kommt der Protokolloverhead, 
sagen wir mal rund 20%, dann sind wir bei rund 60kBps Brutto.

Das ist an sich noch kein Problem, wird aber zum Problem, wenn die 
Leitungen lang und vielleicht sogar noch verzweigt sind. Da kann es bei 
einfachen single-ended-Signalen mit Logikpegel sehr leicht passieren, 
daß alle Teilnehmer vor lauter Reflexionen auf dem Bus nur noch Bahnhof 
verstehen.

Deswegen fällt ein wirklicher Bus wie etwa I2C wohl für diese Anwendung 
aus. Was aber gehen könnte, sind RS232 oder SPI als Ring. Also: Jeder 
horcht, was ihm seiner rechter Nachbar erzählt und erzählt es brühwarm 
Byte für Byte seinem Nachbarn zur Linken weiter. Nebenbei analysiert 
jeder noch, ob das aktuelle Paket eventuell ihn selber betrifft, macht 
dann was er soll und packt eine eventuelle Antwort mit in das Paket, 
wenn er es weiter schickt.

Diese Topologie sorgt für kurze und nicht verzweigte Leitungen. 
Allerdings: Ausfall eines einzelnen Teilnehmers kann bereits den 
Totalausfall der Kommunikation bedeuten. Aber dafür ist der Fehler dann 
besonders leicht zu finden: Es muß wohl dann der linke Nachbar des Chefs 
sein. Oder die Strippe dorthin...

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
Noch kein Account? Hier anmelden.