steckbrief rs232dimmerpack

 

                        Firmware Version 2.4 (Quelltext und vorkompiliert) | Setup- und Diagnoseprogramm

Auch im Zeitalter von DMX512 mit RDM kann ein RS232-Dimmerpack nützlich sein, wenn man mit einfachsten Mitteln saubere Überblendungen und maximal 128 Dimmerkanäle benötigt. Für eine Festinstallation eines Hobbyraums oder des eigenen Wohnzimmers sollte dies allemal ausreichend sein. Das hier beschriebene Dimmerpack mit RS232-Ansteuerung bietet zudem einen eigenen Dimmerkernel, sodass nach Senden des Steuerbefehls das Dimmerpack die Überblendungen durchführt, womit die Steuerung sehr simpel ausfallen kann.

 

Die Schaltung zum PC_DIMMER besteht aus maximal 16 Modulen, die per RS232 (bzw. über einen SN75176-Chip auch per RS485) angeschlossen werden. Jedes Modul besitzt dafür eine eigene Geräte-ID, die entweder über DIP-Schalter, per Software (SoftID) oder beim Kompilieren (Hardcoded) eingestellt werden kann. Dabei werden alle Mikroprozessoren an den selben COM-Port angeschlossen und erhalten somit identische Informationen (wie bei DMX512). Durch die vergebene ID erkennt jeder Mikrocontroller, ob die eingegangene Nachricht für ihn bestimmt ist und bearbeitet sie gegebenenfalls. Der größte Unterschied zu DMX liegt nun aber darin, dass nicht ununterbrochen die Daten gesendet werden, sondern ausschließlich bei Änderungen ein kurzes 6-Byte-Kommando gesendet wird. Hat man die RxD-Leitung zudem angeschlossen kann man die aktuellen Kanalwerte vom Dimmerpack zurücklesen und auch Diagnosedaten aus dem Dimmerpack abrufen. Neben den 8 Dimmerkanäle kann man schlussendlich auch noch bis zu zwei Digital-Ausgänge per RS232 schalten.

 

Man kann sämtliche Module über eine Zweidrahtleitung verbinden und kann eine Leitung durch alle Geräte durchschleifen. Das spart Leitung und Aufwand. Der Mikroprozessor wird mit einem Takt von 7,3728 MHz (bzw. 8MHz) betrieben und erlaubt somit eine maximale Verbindungsgeschwindigkeit von 115,2 kBaud (bzw. 38,4kBaud).

 

TIPP: Als Hardware kann man 1:1 die Platinen des DMX512-Dimmerpacks verwenden, welches ebenfalls einen ATtiny2313 verwendet, wodurch man sehr flexibel die gleiche Hardware zwischen RS232 und DMX512 per Firmwareupdate umschalten kann. Möchte man den 8MHz Quarz verwenden, liegt die maximale Baudrate allerdings bei 38,4kBaud. Da das DMX512-Dimmerpack mit einem SN75176-RS485-Transmitter ausgestattet ist, muss man an den RS232-Anschluss ebenfalls einen SN75176-Chip anschließen (siehe Grafik)

RS232 RS485 Converter

 

Es sind verschiedene Firmwares im Downloadbereich verfügbar:

  • Dimmerpack für 230V (50 oder 60Hz, DIP-Schaltersetup, SoftID oder Hardcoded auf Geräte-ID 1)
  • Analogdimmerpack zur Erzeugung von 0-10V Spannungen über Glättung der PWM-Signale (Optionen wie oben)

 

Sofern man die Soft-ID-Funktion verwendet, kann man mittels des Setup- und Diagnoseprogramms (siehe Download oben) die Startadresse einstellen oder auf einfache Weise die Funktionen testen und den aktuellen Firmwarestand auslesen.

 

Möchte man ein RS232-Switchpack aufbauen, genügt es die Dimmerpackfirmware mit einer anderen Dimmkurventabelle zu rekompilieren. Dafür benötigt man das kostenlose Programm AtmelStudio 7 von Atmel. Es müssen lediglich die Kommentare der beiden entsprechenden Dimmkurven vertauscht werden. Die Firmware kann dabei mittels Compiler-Schaltern sehr einfach weitgehend modifiziert werden. Hier könnenen die Einstellmöglichkeiten eingesehen werden:

;********* SETUP THIS FIRMWARE VIA COMPILER-DEFINES ************************
;Select crystal-frequency
#define CONFIG_CRYSTAL_7372800HZ
;#define CONFIG_CRYSTAL_8000000HZ

;Select uart-baudrate
#define CONFIG_BAUD_115200
;#define CONFIG_BAUD_57600
;#define CONFIG_BAUD_38400
;#define CONFIG_BAUD_9600

;Select desired main-option
#define CONFIG_MODE_TRIAC
;#define CONFIG_MODE_DEMUX

;Select mains-frequency / Soft-PWM-frequency
#define CONFIG_FREQ_50HZ
;#define CONFIG_FREQ_60HZ

;Select if outputs should be inverted (nescessary for TRIAC-output, but has to be disabled for DEMUX)
#define CONFIG_INVERT_OUTPUT

;Select desired dimmer-curve
#define CONFIG_CURVE_Uavg
;#define CONFIG_CURVE_Linear
;#define CONFIG_CURVE_Switch
;#define CONFIG_CURVE_Power
;#define CONFIG_CURVE_logbeta5
;#define CONFIG_CURVE_logbeta25

;Select the desired address-type
#define CONFIG_ADDRESS_Hardcoded
;#define CONFIG_ADDRESS_DIP
;#define CONFIG_ADDRESS_SoftID

;Address of this chip (if set by software without DIP-switches)
.EQU CHIPADDRESS = 0b00000000 ;Feste Adresse 0b0xxxx000
; 0b0xxxx000 0b0xxxx000 0b0xxxx000 0b0xxxx000
; Devie 1 = 0b00000000 Device 2 = 0b00001000 Device 3 = 0b00010000 Device 4 = 0b00011000
; Devie 5 = 0b00100000 Device 6 = 0b00101000 Device 7 = 0b00110000 Device 8 = 0b00111000
; Devie 9 = 0b01000000 Device 10 = 0b01001000 Device 11 = 0b01010000 Device 12 = 0b01011000
; Devie 13 = 0b01100000 Device 14 = 0b01101000 Device 15 = 0b01110000 Device 16 = 0b01111000

;Choose if you want to use PD5 for activity LED or to use it as an additional output that can be controlled via RS232
#define CONFIG_PD5_LED ; blinking LED if a valid RS232-frame is recognized
;#define CONFIG_PD5_AUX ; additional output that can be controlled via RS232

;******* END OF SETUP ********************************************************

 

Die beiden Status-LEDs zeigen in der Originalfirmware den aktuellen Zustand der Firmware an. Es gibt derzeit (Firmware Version 2.4) folgende Kombinationen:

  1. Grün leuchtet: Netz erkannt
  2. Grün leuchtet nicht: Kein Netz oder Fehler in Synchronisationsschaltung (Nulldurchgangserkennung / ZCD)
  1. Gelbe LED blinkt bei Empfang eines Pakets mit passender Geräte-ID

 

Jedes Modul besteht aus 6 Bereichen:

1: Links: Transformation von 230V~ auf 5V= für die interne Versorgung
2: Oben: Zero-Crossing-Detection zur Bestimmung des Nulldurchgangs der 50Hz-Netz-Sinusspannung
3: Unten: Com-Port-Pegelwandler und ID-Einstellung
4: Mitte: Mikroprozessor
5: Rechtsoben: 230V Leistungsteil mit 8 TRIACs oder 8 Solid-State-Relays (SSRs)
6: Rechts: 0-10V Schaltung für Analogdimmerpacks. Wandelt das PWM-Signal in ein 0-10V Signal um.

 

Beim Nachbau ist darauf zu achten, dass Sie hier mit der lebensgefährlichen Netzspannung von 230V~ zu tun haben, was bei unsachgemäßem Umgang für Sie aber auch für Andere lebensgefährlich sein kann. Bitte achten Sie auf ordnungsgemäße Absicherungen, Isolierungen und die sachgemäße Erdung von Gehäuse- und Steckerteilen.

RS232Dimmerpack

Schaltplan für 230V Dimmerpack
Getestet bis 1000W

Revision 3.1

 

Der Leistungsteil stammt in der Originalversion von Hendrik Hölscher (dessen Website leider nicht mehr online ist) bzw. den Application-Notes der TRIAC-Hersteller und wurde etwas abgewandelt hier genutzt.

 

Für detailliertere Informationen über die Funktionsweise der Schaltung bitte den Artikel zum DMX512-Dimmerpack durchlesen. Das DMX512-Dimmerpack unterscheidet sich lediglich durch die verwendete Empfangseinheit und die Firmware von der hier gezeigten RS232-Schaltung. Link: DMX512-Dimmerpack

 


 

Die Fusebits sind sozusagen die Einstellungen des Mikrocontrollers. Hier kann man unabhängig vom Programm im Flash einstellen, welche Taktquelle der Prozessor verwenden soll, ob eine Brown-Out-Detection gewünscht ist, oder ob man bestimmte Startverhalten wünscht.

 

Für das RS232-Dimmerpack werden eigentlich nur folgende Änderungen benötigt:

  1. Einstellen der Taktquelle auf externen Quarz (8MHz - 20MHz)
  2. Deaktivieren der Taktteilung (CKDIV/8 aus)
  3. Optional: Aktivieren, dass das EEPROM beim Flashen bestehen bleibt (damit bleibt die Startadresse gespeichert)

Somit ergeben sich folgende Fuse-Bits:

Low-Bits: 0xEF

High-Bits: 0x9F

Extended-Bits: 0xFF (einfach nichts ändern)

 

Für AVR-Dude ergibt sich folgendes Kommando: "-U lfuse:w:0xdf:m -U hfuse:w:0x9f:m"