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
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.
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
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...
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.
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
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?
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.
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.
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....
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
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.
>> 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
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
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?
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
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?
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.
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...