rgbspot
rgbspot Release status: experimental [box doku] | |
---|---|
Description | 10W LED-Spot mit CAN, DMX und IR-Fernbediehnung |
Author(s) | MadEngineer |
Last Version | 0.0.1 |
Platform | STM32 |
Einleitung
Am Abend des 19.10.2011 bin ich zufällig auf die billigen 10W RGB-Spots aus China aufmerksam geworden. Das ganze sieht aus wie ein Baustrahler im einigermaßen wasserdichtem Gehäuse. Preis liegt mit Versand bei erstaunlichen 25$. Nach etwas stellte sich herraus, dass das eine ganz brachbare Grundlage für weitere Entwicklungen ist. Das liegt vor allem an dem stabilen mechanischen Aufbau und der integrierten Kühlung der 10W LED. Diverse Bilder der Innereien aus den unendlichen Weiten des Internetz zeigen, dass es intern aus einem Netzteil und einem PWM-Treiber besteht. Auf diesem PWM-Modul sind drei große Hochlastwiderstände zu sehen. Dies legt den Verdacht nahe, dass hier keine Konststromquellen vorhanden sind.
Aktueller Stand
- 19.10.2011 Projektidee und Bestellung eines Spots
- 20.10.2011 Definition der Features und Wiki-Eintrag
- 12.11.2011 Orginal Hardware reversed und Layout in Arbeit
- 01.12.2011 10 Platinen für die ersten Prototypen bestellt (60x40mm, 2 lagig, Lötstopp, Bestückungsdruck, E-Test, Kosten ca. 5€/Stk)
Es werden noch Mitstreiter gesucht!
Features
- 3x Konstantstromquellen
- Ausgangsspannung mindestens 12V für 10W RGB (36V für 30W RGB mit gewähltem Treiber doch'möglich, da Spannung an den LEDs abfällt)
vll 4. Kanal vorsehen für spätere RGBW-Anwendungen?(kein Platz)
- PWM mindestens 12Bit
- 8 Bit Eingangsdaten
- Linearisierung des Helligkeitseindrucks über weitere Bits
- Interfaces
- CAN-Interface
- Einbindung in die Labor-Infrastruktur möglich
- UART-Interface
- Bootlader über Jumper
- Parameterisierung über RS232
- DMX-Interface
- Adresse
Startadresse über 9polige DIP-Switches(Zu groß für angepeilte Größe)
- Adressenprogrammierung über FB
- Adressenprogrammierung über speziellem DMX-Kanal
- Adressenprogrammierung über UART
- Kanäle
- Farbkanal 1
- Farbkanal 2
- Farbkanal 3
- Gesamthelligkeit
- Strobe-Effekt 1-15Hz
- Animationsvorwahl / Konfig
- Adresse
- IR-Fernbediehnung
- mitgelieferte FB
- eigene FB
- vll Lernsystem, Benutzerführung über UART
- CAN-Interface
- STM32 ARM Cortex M3 Controller
- Baugröße
- passt ins hintere Gehäusefach: 60x40mm
Die Orginalhardware aus China
Das Gerät macht auf den ersten Blick einen sehr guten und soliden Eindruck. Die Nachteile zeigen sich erst später bei der Benutzung, Zerlegung und den Messungen, aber dazu später mehr. Nach dem Öffnen des hinteren Gehäuses kommt das Netzteil zum Vorschein. Das Netzkabel wurde an die Litzen des Netzteils angelötet und die Lötstellen mit Isolierband umwickelt. Ausserdem ist der Schutzleiter nicht mit dem Gehäuse verbunden. Dies bedeutet im Fehlerfall, dass das Gehäuse unter Netzspannung stehen kann!! In diesem Fall ist das nicht so schlimm, das eh kein europäischer Stecker dran ist und das Gerät hier im Orginalzustand nicht in Betrieb gesetzt werden kann. Ausserdem fallen starke Abschürfungen an dem Kabel des IR-Empfängers auf. Die Kabelkanäle zum vorderen Teil des Gehäuses sind auf der Vorderseite nicht entgratet und es sind scharfe Kanten vorhanden, die an der Isolierung des Kabels knabbern. Im vorderen Teil fällt sofort auf, dass die 10W LED zwar Wärmeleitpaste an der Rückseite hat, jedoch ist sie nicht mit dem Gehäuse verschraubt. Und das obwohl Gewinde vorgesehen sind, deren Anordnung aber mehr zu einer 30W LED passt. Die LED wird hier nur durch die Blende angedrückt. Apropos Blende: Hier hat wohl ein Arbeiter in der Fanrik geschlafen und zwei Blenden übereinander eingebaut.
Bilder
Etwas reverse Engineering
Die Elektronik des Spots ist erstaunlich einfach. Das Netzteil ist ein Konstantstrom-LED-Treiber. Dieser soll aus 85-265V 600mA bei 5-12V machen. In der Steuerung hängt parallel an diesem Treiber und ein 78L05 versorgt den 8beinigen Mikrocontroller ohne MArkierungen auf dem Gehäuse und den IR-Empfänger. Der Takt wird mit einem 4MHz-Quartz in einem Uhrenquartzgehäuse erzeugt. Bei der LED handelt es sich um eine typische China 10W LED. Diese zeichnen sich durch die Reihenschaltung von je drei LED-Dies pro Farbe und einer gemeinsam herausgeführten Anode aus. Der positive Ausgang des Netzteils geht direkt an die Anode der LED. Die Kathoden werden jeweils mit einem Mosfet vom Typ IRLR014 (60V 0,2Ohm 4,9A) (Orginal IR!) mit dem negativen Ausgang des Netzteils verbunden. Die LEDs sind also alle in Reihe geschaltet. Bei den Farben Grün und Blau führt dies aufgrund der relativ ähnlichen Flusspannung von 10V (Blau) und 10,4V (Grün) zu einer relativ gleichen Stromaufteilung. Die rote LED hingegen hat nur eine Flusspannung von 8V, um trotzdem eine einigermaßen gleichmäßige Stromaufteilung hinzubekommen wurde hier ein 24Ohm Widerstand in Reihe geschaltet.
Diese Schaltung ist zwar sehr simpel und billig, hat aber einen Riesennachteil. Der typische Strom durch eine LED beträgt 350mA. Ist nun aber nur eine LED eingeschaltet, so bekommt sie fast den gesamten Strom des Netzteils ab. In diesem Fall sind das 500mA, die LED wird also im Grundfarbenmodus stark überlastet. Wenn nun weitere Kanäle gleichzeitig aktiv sind, so teilt sich der Strom auf und die LEDs werden mit weniger Strom betrieben. Die LED erreichen also nicht ihre maximale Helligkeit und von den versprochenen 10W kann man auch nur Träumen..
Bei der PWM-Ansteuerung der einzelnen Kanäle wird auch kein besonderer Aufwand getrieben. Die On-Zeiten der PWM-Zyklen starten auf allen Kanälen gleichzeitig. In dem Fading-Modus sind öfters mal Glitches in Form von Flackern erkennbar.
Fazit: Im Orginalzustand sollte das Ding nicht benutzt werden
Die neue Hardware
LED-Treiber
LT3496 Features
- 3 Kanal
- Dimmbereich 1:3000 ~11,5bit
- 3 externe PMOS nötig für maximales Dimmverhältnis
- TSSOP28
- 2 Stück vorhanden!
Der Treiber wird als Buck-Converter mit gemeinsamer Anode verschaltet und soll einen Strom von 3x 350mA liefern. Die aktuelle Version des Treiberlayouts benötigt eine Grundfläche von 30x33mm.
CPU
Auszug:
ARM 32-bit Cortex™-M3 CPU Core 72 MHz maximum frequency,1.25 DMIPS/MHz (Dhrystone 2.1) performance at 0 wait state memory access Memories 64 or 128 Kbytes of Flash memory 20 Kbytes of SRAM Clock, reset and supply management 2.0 to 3.6 V application supply and I/Os 4-to-16 MHz crystal oscillator Internal 8 MHz factory-trimmed RC Internal 40 kHz RC PLL for CPU clock 32 kHz oscillator for RTC with calibration Low power Sleep, Stop and Standby modes VBAT supply for RTC and backup registers Up to 80 fast I/O ports 26/37/51/80 I/Os, all mappable on 16 external interrupt vectors and almost all 5 V-tolerant Debug mode Serial wire debug (SWD) & JTAG interfaces 7 timers Three 16-bit timers, each with up to 4 IC/OC/PWM or pulse counter and quadrature (incremental) encoder input 16-bit, motor control PWM timer with dead-time generation and emergency stop 2 watchdog timers (Independent and Window) SysTick timer 24-bit downcounter Up to 9 communication interfaces Up to 2 x I2C interfaces (SMBus/PMBus) Up to 3 USARTs (ISO 7816 interface, LIN, IrDA capability, modem control) Up to 2 SPIs (18 Mbit/s) CAN interface (2.0B Active) USB 2.0 full-speed interface
Belegung
Gruppe | Funktion | Ressource | Pin | Bemerkung |
---|---|---|---|---|
PWM | Ausgang R | Timer 4 OC1 | PB6 | |
Ausgang G | Timer 4 OC2 | PB7 | ||
Ausgang B | Timer 4 OC3 | PB8 | ||
Shutdown | GPIO | PB9 | ||
UART | RX | UART1 | PA10 | Auch für Bootloader! Zusammen mit GND auf Stiftleiste |
TX | UART1 | PA09 | ||
CAN | RX | CAN | PA11 | Zusammen mit 3,3V und GND auf Stiftleiste |
TX | CAN | PA12 | ||
DMX | RX | UART2 RX | PA3 | |
RX | Timer 2 CH1 | PA0 | für Frame Erkennung | |
RX | Timer 2 CH2 | PA1 | ||
TX | UART2 TX | PA2 | "Wired-AND" mit TX-GPIO, wobei GPIO dominant | |
TX | GPIO | PA4 | Break before Mark Erzeugung (Framestart), L=Break, Z=UART aktiv | |
SPI | MISO | SPI2 MISO | PB14 | Zusammen mit 3,3V und GND auf Stiftleiste |
MOSI | SPI2 MOSI | PB15 | ||
SCK | SPI2 SCK | PB13 | ||
SS | SPI2 NSS | PB12 | Pin im Software slave management (SSM=1 @ SPI_CR1) | |
GPIO | GPIO | PA8 | z.B. INT für RFM12, IRQ auf steigende und fallende Flanke möglich | |
I²C | SDA | I2C2 SDA | PB11 | Zusammen mit 3,3V und GND auf Stiftleiste |
SCL | I2C2 SCL | PB10 | ||
SWD | CLK | SWD | PA14 | Zusammen mit 3,3V und GND für Debugging mit ST-Link auf Stiftleiste |
DIO | SWD | PA13 | ||
GPIO | IO1 | GPIO | PA15 | Zusammen mit 3,3V und GND auf Stiftleiste |
IO2 | GPIO | PB3 | ||
IO3 | GPIO | PB4 | ||
IO4 | GPIO | PB5 | ||
Fernbedienung | Eingang | GPIO | IOx | über einen der IOs |