Aktuelle Änderungen - Suchen:

MiniDMX

Empfohlene Links

MiniDMX

MiniDMX ist ein preiswerter und einfach aufzubauender DMX-Ausgang für den PC. Es wird die serielle Schnittstelle (RS232) oder optional die USB-Schnittstelle zur Datenübertragung verwendet. Es werden bis zu 512 DMX-Kanäle bedient.

Hinweis

Leider wird der verwendete Mikrocontroller AT90S2313 nicht mehr von Atmel produziert. Es fehlt mir die Zeit den MiniDMX auf den Nachfolger ATtiny2313 umzustellen. Deshalb dient das Projekt MiniDMX in der aktuellen Fassung nur noch Lehrzwecken.

Allerdings lebt das von mir entworfene serielle Protokoll, das zwischen dem MiniDMX und dem PC verwendet wird, in vielen fremden Hardware- und Software-Projekten weiter. Das Protokoll wird auch weiterhin von mir gepflegt.

Ulrich Radig hat aber auf Basis des MiniDMX ein Folgeprojekt RS232 -> DMX gestartet. Hier wird der ATtiny2313 mit einer angepassten Firmware verwendet. Er hat auch eine neue Platine erstellt. Das serielle Protokoll wurde nicht verändert, so dass die gleichen Ansteuerungsprogramme auf dem PC verwendet werden können.

Viele weitere Projekte wurden von der MiniDMX-Hardware und dem MiniDMX-Protokoll beeinflusst (Diese Liste erhebt keinen Anspruch auf Vollständigkeit): DMXControl, FreeStyler, Simple USB / DMX512 Interface for Arduino Micro, OpenDCC als DMX-Steuerpult, MiniDMX-Nachbau von Wilkinson, DMX sonst nix

DMX-Protokoll

Das DMX-Protokoll definiert, wie über eine RS485-Leitung Daten für 512 Kanäle digital übertragen werden. Es wird im Theater- und Discobereich eingesetzt, um z.B. Kanaldaten vom Lichtmischpult zum Dimmer-Pack zu übertragen.

Auf Hennes Sites über Lichttechnik sind weitere interessante Projekte zu den Themen DMX und AVR zu finden.

PC Software

Leider habe ich selber nicht die Zeit ein aufwendiges Ansteuerungsprogramm zu entwickeln.

Um eine Ansteuerung des MiniDMX so einfach wie möglich zu machen, habe ich eine DLL (Dynamic Link Library) für Windows erstellt. Sie übernimmt die Initialisierung der verwendeten seriellen Schnittstelle und startet danach einen Thread, der im Hintergrund unabhängig vom Hauptprogramm die Ausgabe auf den MiniDMX übernimmt. Dazu wird auf dem MiniDMX mindestens die Firmware Version 2.0 vorausgesetzt. (MDMXSVR.DLL v1.0.0.0, 29kB) (Quelltexte mit C++ Builder Projekt, 33kB)

Als Beispiel für die Einbindung der DLL unter Visual Basic (Version 6) habe ich das "MDMX Testprogramm" erstellt. Im Download sind die Quelltexte enthalten. (MDMX Testprogramm v1.0.1, 11kB)

Für die Kommunikation mit dem MiniDMX muss die serielle Schnittstelle (RS232) wie folgt eingestellt werden: 115.200 Bits pro Sekunde, 8 Datenbits, kein Paritätsbit, ein Stoppbit und keine Software- oder Hardware-Flusskontrolle. Das MiniDMX-Protokoll Version 2.0 muss verwendet werden.

Programme von anderen Autoren

Ich habe Raphaël Wellekens unterstützt sein Programm FreeStyler an den MiniDMX-Dongle anzupassen. Ein Blick lohnt sich auf jeden Fall. Das Programm darf kostenlos benutzt werden.

DMXControl ist ein Freeware Projekt, das u.a. den MiniDMX unterstützt. Es handelt sich um ein sehr umfangreiches Programm mit vielen Funktionen.

MiniDMX Hardware

Damit die Anforderungen erfüllt werden, habe ich mich für die Verwendung des Microcontrollers AT90S2313 von Atmel entschieden. Durch das wiederbeschreibbare Flash-ROM können auch später noch Funktionen hinzugefügt und Fehler leicht beseitigt werden. Alle weiteren Bauteile werden in der Standardbeschaltung verwendet. So wird der SN75176 als Pegelwandler für den DMX-Bus, der MAX232 als Pegelwandler für die serielle Schnittstelle und der 78L05 als Spannungsregler verwendet.

Anschlußbelegungen der Steckverbinder

ISP (SV4)

PinFunktion
1/RESET
2-
3SCK
4MISO
5MOSI
6GND

DMX Ausgang (SV2)

PinFunktion
1DMX+
2DMX-
3GND

RS232 (SV3)

PinFunktion
1TXD
2RXD
3GND
4bisher nicht verwendet
5bisher nicht verwendet

SV10 ist für Erweiterungen gedacht, die auf einer zweiten Platine aufgebaut werden (z.B. Anschluß für ein LCD-Modul oder analoge Eingänge). Für den normalen Betrieb müssen Jumper auf die Pins 11, 12 und 13, 14 gesteckt werden.

Funktionen der LEDs und des Tasters

LED1, SV7Die DMX-Daten wurden erfolgreich empfangen und gesendet.
LED2, SV6Es ist ein Fehler beim Datenempfang vom PC aufgetreten.
LED3, SV5Das Ende des Startvorgangs ist erreicht. DMX-Daten können nun gesendet werden.
Switch, SV9bisher keine Funktion

Dateien

Schaltplan Rev. 1.1
Schaltplan Rev. 1.1
Bestückungsplan Rev. 1.1
Bestückungsplan Rev. 1.1
Layout Rev. 1.1
Layout Rev. 1.1

Stückliste Rev. 1.1

Anschlußschema der seriellen Schnittstelle

Eventuell erwartet das Ansteuerungsprogramm auf dem PC eine Hardware-Datenflusssteuerung auf der RS232-Schnittstelle (RTS/CTS oder DTR/DSR). Durch Benutzung des folgenden Anschlussschemas wird diese vorgetäuscht.


(Pins 1-5 oben, Pins 6-9 unten)


Ein paar Bilder von der bestückten Platine (Rev. 1.0)


MiniDMX Firmware

Programmierung

Der AT90S2313 muß natürlich noch das entsprechende Programm bekommen, damit alles funktioniert. Die entsprechende HEX-Datei muß dafür in das Flash-ROM vom AT90S2313 geladen werden. Dazu wird die Schaltung komplett aufgebaut und die Betriebsspannung angelegt. Dann kann der AT90S2313 über den Steckverbinder ISP (SV4) programmiert werden. Es existieren zahlreiche Programmieradapter für Atmel AVR Microcontroller. Bei den verschiedenen Programmieradaptern muß auf die Belegung des ISP-Steckers geachtet und eventuell geändert werden, damit sie mit der Belegung beim MiniDMX (SV4) übereinstimmt.

Firmware

Für die Version 2.0 der MiniDMX-Firmware wurde der Quelltext in C komplett neu geschrieben. Zur Übersetzung wurde der AVR-GCC benutzt. Diesen Compiler gibt es für Windows mit umfangreichen Hilfsprogrammen als WinAVR-Paket.

Es werden nun bis zu 512 Kanäle unterstützt. Das serielle Protokoll wurde dazu erweitert, ist aber abwärtskompatibel mit der Version 1.1. Alle PC-Programme müßten also ohne Änderung mit der Version 2.0 zusammenarbeiten. Natürlich können dann nur 96 Kanäle benutzt werden. Die Ergänzungen im seriellen Protokoll sind auf der Seite Protokoll zu finden.

Quelltext der MiniDMX-Firmware v2.0 inkl. Datei für das Flash-ROM (Intel-Hex-Format, 6kB)

MiniDMX / Startseite - Zuletzt geändert am 13.01.2016 21:18 Uhr