*Empty MediaWiki Message*

This commit is contained in:
Carwe 2011-01-21 12:21:55 +00:00
parent 07c80183da
commit e77b7bc064

View File

@ -11,35 +11,31 @@ Es war einmal, in einer dunklen Nacht im HQ, der Mond schien zwischen den Wolken
Ein beliebiges Bord, das einen Microcontroller beherbergt und mindestens die unten beschriebene Hardware-Schnittstelle besitzt, um die Module ansteuern zu können.
===Modul===
Die Module werden zweiseitig mit SMD-Teilen bestückt werden. Auf der Vorderseite die LEDs und auf der Rückseite die Steckverbinder, den TLC5941 und einen Atmel, nebst Kleinkram (ein Kondensator, einige Widerstände).
Die Module sind beidseitig mit SMD-Teilen bestückt. Auf der Vorderseite die LEDs und auf der Rückseite die Steckverbinder, den TLC5941 und einen Atmel, nebst Kleinkram (ein Kondensator, einige Widerstände).
Ein TLC5941 (16 Output-Pins bis zu 80mA, eingestellt auf ca. 20mA; 12 Bit PWM, Oszillator-Takt muss zugeführt werden) auf der Rückseite nebst Anschluss-Steckern, dazu ein Atmel. Auf der Vorderseite 5 RGB-LEDs. Es werden von Modul zu Modul alle Pins verbunden. Es gibt keine Reihenfolge der Module, sondern sie müssen adressiert werden.
Ein TLC5941 (16 Output-Pins bis zu 80mA, eingestellt auf ca. 20mA; 12 Bit PWM, Oszillator-Takt muss vom Microcontroller zugeführt werden) auf der Rückseite nebst Anschluss-Steckern/-Buchsen, dazu ein ATmega168. Auf der Vorderseite 5 RGB-LEDs (Osram LRTB G6TB).
Verbindung Atmel<->TLC5941
Auf jedem Modul ist zusätzlich zum TLC5941 auch ein ATmega168 verbaut. Dies ermöglicht eine Ansteuerung per I2C, jedoch muss die Anordnung der Module und deren Adressen bekannt sein, um eine vorhersagbare Ausgabe erzeugen zu können.
Verbindung ATmega168 <-> TLC5941
::GND
::VCC (evtl. nur Logik) (5V)
::(VCC LEDs (mglw. weniger Volt, mglw. auch nicht auf getrenntem Pin))
::SIN (Daten von Controller zu Modul)
::SOUT (Daten von Modul zu Modul; Daisy Chain - SOUT auf SIN des nächsten Moduls)
::SCLK (Takt der seriellen Verbindung)
::SIN (serielle Daten vom ATmega zum TLC5941)
::SOUT als Rückkanal (darüber werden Status-Informationen des TLC5941 rausgestreamt, z.B. welche LED defekt ist)
::XLAT (Latch-Eingang, sodass die reingestreamten Daten zu den LED-Ausgängen übernommen werden)
::BLANK (resettet u.a. den PWM-Zyklus - wird benötigt, da sonst die LEDs für den Rest des aktuellen Zyklus abgeschaltet werden, nachdem Daten mit XLAT übernommen wurden - muss auch alle 4096 GSCLK-Takte gezupft werden)
::XERR (unbeaufsichtigter Betrieb möglich, da LED-Ausfall gemeldet werden kann)
::XERR (unbeaufsichtigter Betrieb möglich, da LED-Ausfall und Überhitzung gemeldet werden kann)
::GSCLK (Takt für den PWM-Teil)
::SOUT als Rückkanal (darüber werden Status-Informationen rausgestreamt, z.B. welche LED defekt ist usw.)
Auf jedem Modul zusätzlich zum TLC5941 ist auch ein kleiner Atmel verbaut. Dies ermöglicht eine Ansteuerung bspw. per I2C, jedoch muss von jedem Modul die Anordnung und Adresse bekannt sein, um eine vorhersagbare Ausgabe erzeugen zu können.
Verbindung zwischen den Modulen (logisch: parallel zu allen Modulen geführt - physisch: von Modul zu Modul durchgeschleift):
::GND
::VCC (evtl. nur Logik) (5V)
::(VCC LEDs (mglw. weniger Volt, mglw. auch nicht auf getrenntem Pin))
::I2C-CLK
::I2C-DATA
Verbindung zwischen den Modulen per 2x5-Pin-Stecker/-Buchse (logisch: parallel zu allen Modulen geführt - physisch: von Modul zu Modul durchgeschleift mit mehreren Verbindungspunkten -> Netz):
Es gibt keine Reihenfolge der Module, sondern sie müssen adressiert werden.
::GND (Pins 1,2,3)
::VCC (5V) (Pins 7,9,10)
::I2C-CLK (Pin 5)
::I2C-DATA (Pin 4)
Die Pins 6 und 8 sind nicht belegt.
Die LEDs müssen mittels Exponentialfunktion angesteuert werden, denn sonst sind sie bereits bei etwa 50% der Steuergröße bei ihrer Endhelligkeit. Eine Tabelle findet man vorerst bei [http://www.wolframalpha.com/input/?i=round%280.5*e^%280.035199*%5b0...256%5d%29%29]. Ein Video von einem ersten Test mit exponentieller Ansteuerung findet man unter [http://vimeo.com/19005816].