Forum: Mikrocontroller und Digitale Elektronik Frage zu DMX


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Crazy Harry (crazy_h)


Lesenswert?

Ich habe gesehen, daß es einkanalige DMX-Empfänger (Dimmer oder auch 
AD-Wandler) gibt, aber gibt es auch (kaufbare) einkanalige DMX-Sender? 
Also Sender die wirklich nur einen DMX-Kanal bedienen und somit auch nur 
den Protokoll-Kopf und dieses eine Byte (wenn die Adresse auf 1 steht) 
senden? Ist das überhaupt laut DMX-Spezifikation vorgesehen? Ja ich habe 
Google befragt, aber leider nichts gefunden.

Gruss
Harry

von Gerald B. (gerald_b)


Lesenswert?

Nimm einen µC und einen RS485 Transciver IC und dann nimmst du dir eine 
Arduino DMX Lib und schreibst einen 3 Zeiler, der dir die von dir 
gewünschte Adresse raushaut.

von Crazy Harry (crazy_h)


Lesenswert?

Das war nicht die Frage und sowas hab ich schon hier liegen. Ich will 
wissen, ob es sowas zu kaufen gibt und ob das die DMX-Spezifikation 
überhaupt zuläßt. Oder muß ein Sender immer mindestens x-DMX-Bytes 
senden?

von Luca E. (derlucae98)


Lesenswert?

Crazy Harry schrieb:
> Ich will wissen, ob es sowas zu kaufen gibt

Ist halt ein Nischenprodukt, was offenbar niemand braucht. Die kleinsten 
Controller haben mindestens 6 Kanäle: 
https://www.thomann.de/de/stairville_ddc6_dmx_controller.htm

von Christian H. (ch-hunn)


Lesenswert?

Ob in einem Universum nach dem Header nur ein Byte gesendet werden darf, 
hängt vom Empfänger ab.

Ich habe z.B unter anderen (billige) Chinageräte, welche sich aufhängen, 
wenn ein RDM Header gesendet wird. Wiederum andere, welche nur auf den 
ersten 128 Kanälen sauber funktionieren, weil sie vermutlich ein starres 
Timing haben und sich nicht auf die Bitflanken nachsynchronisieren.

Somit ist es am Besten, du hälst dich an den Standard und sendest ein 
komplettes Universum

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Crazy Harry schrieb:
> Oder muß ein Sender immer mindestens x-DMX-Bytes
> senden?

Lt. Spec müssen mindestens 26 Kanäle gesendet werden, wimre. Hängt mit 
der Frameerkennung zusammen und vermutlich mit alten 
Hardware-Empfängern. Frag mich nicht nach der Quelle :-) Ich habe vor 
langer Zeit ein Wireless DMX System entwickelt und bin dabei über diese 
Frage gestolpert. Alle DMX Geräte haben DMX akzeptiert, wenn ich 
mindestens 26 Kanäle gesendet habe.

: Bearbeitet durch User
von Crazy Harry (crazy_h)


Lesenswert?

Herzlichen Dank, das hilft mir weiter 🙂

von Falk B. (falk)


Lesenswert?

Man kann die Kanäle ja auch a) mit Lücken und b) mit langsamer 
Rahmenfrequenz senden. Keiner sagt, daß die Daten mit minimalem Abstand 
gesendet werden müssen. Nur die Baudrate von 250k ist fest.

von Flunder (flunder)


Lesenswert?

Ich meine mich zu erinnern, das irgendwo ein Dimmer rum lag, der hatte 
nur einen Kanal, also eine SchuKo-Steckdose, aber auch einen 
Schieberegler und 2 XLR, die mit IN bzw. OUT (also nicht THRU) 
beschriftet waren. Wir haben den aber immer nur als Dimmer mit DMX als 
Eingang genutzt.

von Weingut P. (weinbauer)


Lesenswert?

also ... DMX 512 ist kein Protokoll mit Adressierung.
Es wird einfach nur gesendet mit 250kbaud 8n2. Wenn ein Busteilnehmer 
sagen wir mal die Adresse 40 hat, dann wartet er nach dem Break 39 
empfangene Bytes und wertet das 40. dann aus.
Dann wartet der Slave wieder auf den Break, Resetet den Zähler und 
wartet wieder 39 Bytes.

Wenn also n Master für einen Slave auf Adresse 40 was senden will muss 
er die 39 Byte davor auch senden.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Weingut P. schrieb:
> dann wartet er nach dem Break 39
> empfangene Bytes und wertet das 40. dann aus.

Nicht ganz. Er muss das 41. Byte auswerten, denn Byte 0 ist der 
Startcode. Dieser ist bei 'normalem' DMX ein 0x00. Andere Startcodes 
können andere Typen der Nutzung bestimmen. Allerdings ignorieren die 
meisten Empfänger den Typ des Startcodes, denn auf z.B. eine 
Textnachricht sollten sie ja eigentlich nicht reagieren.
https://en.wikipedia.org/wiki/DMX512

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Matthias S. schrieb:

> Lt. Spec müssen mindestens 26 Kanäle gesendet werden, wimre. Hängt mit
> der Frameerkennung zusammen

Nein, das ist nicht so und steht so auch nicht in den Specs. Was da 
allerdings steht, ist das Frametiming und das definiert einen minimalen 
Framezyklus. Und dessen Payloadteil ist so groß, dass 26 Nutzbytes 
reinpassen würden.

Der Punkt ist aber: man muss die nicht senden, dass wird nirgends 
gefordert. Man kann z.B. auch nur ein Byte senden und dann für 25 
Byte-Times einfach den Idle-Pegel.

Macht halt nur wenig Sinn, das zu tun, weswegen es auch (fast) niemand 
tut.

von Frederic S. (frederics)


Lesenswert?

Crazy Harry schrieb:
> gibt es auch (kaufbare) einkanalige DMX-Sender?


Ja, kannst Du bei mir bestellen.
Mit Fader als ganz normales Lichtmischpult oder mit Sensoren, z.B 
Abstand, Licht oder Lautstärke sodass DMX Leuchten/Geräte durch 
Interaktion der Besucher oder Umgebungsbedingungen gesteuert werden.

von Crazy Harry (crazy_h)


Lesenswert?

Ic hätte da noch eine Frage zu DMX, da ich leider keine Antwort dazu 
finden kann:
Manchmal sieht man bei DMX-Sendern (ich hoffe das ist die richtige 
bezeichnung dafür), daß am RS485-Ausgang B über einen 390 Ohm Widerstand 
mit +5V und A mit einem 390 Ohm Widerstand mit Masse verbunden ist. 
Zwischen A und B der obligatorische 120 Ohm Widerstand. Die beiden 
PullUp/Down sieht man aber nicht immer und manchmal wird das mit den Rs 
RDM-Terminierung genannt. Könnte mich ein Wissender hier aufklären, was 
richtig ist und was RDM bedeutet?

DANKE

von Hmmm (hmmm)


Lesenswert?

Crazy Harry schrieb:
> daß am RS485-Ausgang B über einen 390 Ohm Widerstand mit +5V und A mit
> einem 390 Ohm Widerstand mit Masse verbunden ist.

A und B ist leider nicht ganz eindeutig. Wenn mit A der non-inverting 
und mit B der inverting Output gemeint ist, ist es genau andersrum.

Das sind die Bias-Widerstände, um einen definierten Ruhepegel (high) zu 
haben, wenn kein Busteilnehmer sendet.

von Crazy Harry (crazy_h)


Lesenswert?

d.h. obwohl A (non-inverting) bei den üblichen RS485-ICs auf Pin 6  und 
B auf Pin 7 liegt, kommen die Rs zwischen Pin 6 und 8 und 7 und 5?
Shit dann hab ich das falsch herum angeschlossen, aber es funktioniert 
....

von Hmmm (hmmm)


Lesenswert?

Crazy Harry schrieb:
> aber es funktioniert ....

Bei DMX kommst Du damit wohl durch, weil Pakete mit einem Break 
beginnen. Einen solchen erzeugst Du, wenn Du den Bus in Ruhelage auf Low 
ziehst.

von Hmmm (hmmm)


Lesenswert?

Crazy Harry schrieb:
> manchmal wird das mit den Rs RDM-Terminierung genannt. Könnte mich ein
> Wissender hier aufklären, was richtig ist und was RDM bedeutet?

Beim ursprünglichen DMX512 sendet nur der Controller, der seinen Treiber 
einfach eingeschaltet lassen kann. In dem Fall braucht man natürlich 
keine Bias-Widerstände.

Erst mit der Erweiterung RDM (Remote Device Management) können die 
Slaves auch antworten.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.