RGBSpot: Unterschied zwischen den Versionen

Aus LaborWiki
Wechseln zu: Navigation, Suche
(Bilder, Reverse Engineering, anderes)
(→‎CPU: Ressourcenbelegung geändert und erweitert)
Zeile 143: Zeile 143:
   
   


Belegung
===Belegung===
{|
{|class="wikitable"
|-
|-
| - || Ressource|| Pin || Bemerkung
! Gruppe !! Funktion !! Ressource!! Pin !! Bemerkung
|-
|-
| PWM-Ausgang R|| Timer 1 OC1|| PB13||
| rowspan="4" |PWM ||Ausgang R|| Timer 4 OC1|| PB6||
|-
|-
| PWM-Ausgang G|| Timer 1 OC2|| PB14||
| Ausgang G|| Timer 4 OC2|| PB7||
|-
|-
| PWM-Ausgang B|| Timer 1 OC3|| PB15||
| Ausgang B|| Timer 4 OC3|| PB8||
|-
|-
| PWM - Shutdown|| GPIO || PB12||
| Shutdown|| GPIO || PB12|| noch nicht implementiert


|-
|-
| UART RX || UART1 || PA10||
|rowspan="2" | UART ||RX || UART1 || PA10|| rowspan="2" | Auch für Bootloader!
|-
|-
| UART TX || UART1 || PA09||
| TX || UART1 || PA09||


|-
|-
| CAN RX ||  CAN|| PA11 ||
| rowspan="2" |CAN ||RX ||  CAN|| PA11 ||
|-
|-
| CAN TX ||  CAN|| PA12 ||
| TX ||  CAN|| PA12 ||
|-
|-


| DMX RX || UART2 RX || PA3 ||
| rowspan="5" |DMX ||RX || UART2 RX || PA3 ||
|-
|-
| DMX RX || Timer 2 CH1 || PA0 ||
| RX || Timer 2 CH1 || PA0 ||rowspan="2" | für Frame Erkennung
|-
|-
| DMX RX || Timer 2 CH2 || PA1 ||
| RX || Timer 2 CH2 || PA1 ||
|-
|-
| DMX TX || UART2 TX || PA2 ||
| 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
|-
 
| rowspan="5" |SPI ||MISO|| SPI2 MISO || PB14 ||
|-
| MOSI || SPI2 MOSI || PB15 ||
|-
| SCK || SPI2 SCK || PB13 ||
|-
| SS || SPI2 NSS || PB12 ||
|-
| GPIO || GPIO || PA8 || z.B. INT für RFM12
 
|-
| rowspan="2" |SWD ||CLK ||  SWD || PA14 ||
|-
| DIO ||  SWD || PA13 ||
|-
 
| rowspan="4" |GPIO ||IO1 || GPIO || PA15 || rowspan="4" | Zusammen mit 3,3V und GND auf Stiftleiste
|-
| IO2 || GPIO || PB3 ||
|-
| IO3 || GPIO || PB4 ||
|-
| IO4 || GPIO || PB5 ||
|-
|-
| DMX TX || GPIO || PA4 ||


|-
|-
| Fernbedienung IN || GPIO || ?? ||
| Fernbedienung || Eingang || GPIO || IOx || über einen der IOs


|-
|-

Version vom 23. November 2011, 14:49 Uhr

Kran
Diese Seite befindet sich noch im Aufbau bzw. wird gerade heftig überarbeitet. Vorsicht: Herumliegende Gedankenfetzen!
Dieser Banner ist hier dokumentiert.
     
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

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
    • IR-Fernbediehnung
      • mitgelieferte FB
      • eigene FB
      • vll Lernsystem, Benutzerführung über UART
  • 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

Elektronik

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

STM32F103C8

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 PB12 noch nicht implementiert
UART RX UART1 PA10 Auch für Bootloader!
TX UART1 PA09
CAN RX CAN PA11
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
MOSI SPI2 MOSI PB15
SCK SPI2 SCK PB13
SS SPI2 NSS PB12
GPIO GPIO PA8 z.B. INT für RFM12
SWD CLK SWD PA14
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