Forum: Mikrocontroller und Digitale Elektronik DMX-Transmitter - Wie werden A und B an die XLR-Buchse angeschlossen?


von bazjo (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen!
Ich möchte einen DMX-Transmitter mittels Arduino und einem MAX485 / 
SN75176 (Beide je 2x vorhanden) bauen. Dazu habe ich zuerst zum Testen 
-quick and dirty- die erste Schaltung aus dem Arduino-Playground 
aufgebaut. Diese funktioniert auch, jedoch kommt es zeitweise dazu, das 
Signale nicht ankommen, der Receiver flackert etc. Deshalb möchte ich 
nun nach Vorlage der zweiten Schaltung einen ordentlich terminierten, 
galvanisch getrennten Transmitter (nur Transmitter, nicht Receiver) 
bauen. Der aktuelle Stand des Entwurfs (noch ohne BIAS und 
Stützkondensatoren) ist der Fritzing-Screenshot.

Doch nun zu meiner Frage:
Wierum müssen die Ausgänge des Transmitters an die XLR-Buchse 
angeschlossen sein:
So wie bei Arduino (was mir sinnvoller erscheint) PIN 6 --> Pin 3(XLR) 
und PIN 7 --> Pin 2(XLR)

oder wie im zweiten Schaltungsentwurf PIN 6 --> Pin 2(XLR) und PIN 7 --> 
Pin 3(XLR)?

Und an welchem Pin muss dann ein Pull-Up bzw. Pull-Down gemacht werden?

Hier noch einmal die URLs zu den Schaltungen:
http://playground.arduino.cc/DMX/DMXShield
http://www.mathertel.de/Arduino/DMXShield.aspx

von Max D. (max_d)


Lesenswert?


von bazjo (Gast)


Lesenswert?

Vielen Dank für die schnelle Antwort.

Wieso ist aber dann der Anschluss in der anderen Schaltung genau 
andersherum?

von Wolfgang (Gast)


Lesenswert?

bazjo schrieb:
> Wierum müssen die Ausgänge des Transmitters an die XLR-Buchse
> angeschlossen sein:
> So wie bei Arduino (was mir sinnvoller erscheint) PIN 6 --> Pin 3(XLR)
> und PIN 7 --> Pin 2(XLR)
>
> oder wie im zweiten Schaltungsentwurf PIN 6 --> Pin 2(XLR) und PIN 7 -->
> Pin 3(XLR)?

Das kommt drauf an, wie du deinen Treiber ansteuerst.

von bazjo (Gast)


Lesenswert?

Das bedeutet, wenn ich die Ansteuerung des ICs aus dem 
Arduino-Schaltplan beibehalte (PIN1 > 100R > GND; PIN2 > GND; PIN3 > 
+5V) kann ich den Anschluss auch wie beim Arduino-Schaltplan nehmen?

von Wolfgang (Gast)


Lesenswert?

Die Software muss auch die passenden Pegel liefern, m.a.W. Pinbelegung, 
Hardware und Software müssen zusammen passen.

von bazjo (Gast)


Lesenswert?

zur Software: verwendet wird die library "DmxSimple", zumindest vorerst.

Als Pin nutze ich einen einfachen I/O, keinen seriellen, beim Test Pin 3 
des Uno

Aber kann denn die Software auschlaggebend sein, wierum der Anschluss an 
den Bus letztenendes sein muss?

von Max D. (max_d)


Lesenswert?

bazjo schrieb:
> Als Pin nutze ich einen einfachen I/O

Würd ich nicht machen. DMX hat 250kBaud. Da frisst dir das bangen deine 
CPU auf.

Die flackernden RXs kommen vmtl. vom jitter im Timing.

Gegen Sötrungen reicht eine Terminierung mit 120 Ohm.

von Wolfgang (Gast)


Lesenswert?

bazjo schrieb:
> Aber kann denn die Software auschlaggebend sein, wierum der Anschluss an
> den Bus letztenendes sein muss?

Ja, weil die Software die Signale mit einer bestimmten Polarität raus 
gibt.

von bazjo (Gast)


Lesenswert?

Da der DMX-Transmitter Teil eines größeren Projektes ist, werde ich auf 
jedenfall eine fertige library nehmen. Hier kann ich mich ja nochmal 
nach einer anderen umsehen.

Das Ganze wird im finalen Aufbau auch auf jeden Fall ordentlich 
terminiert. (auch wenn nur ein RX eingesetzt wird und die Kabelstrecke 
nur 40 cm sind)

Trotzdem stellt sich mir noch die Frage, wierum das ganze denn nun an 
die XLR-Buchse angeschlossen wird, da ich ungern den RX mit verpoltem 
Signal malträtieren möchte...

von Max D. (max_d)


Lesenswert?

bazjo schrieb:
> da ich ungern den RX mit verpoltem
> Signal malträtieren möchte

Das ist dem völlig egal. Der sieht nur kauderwelsch und ignoriert das.

bazjo schrieb:
> werde ich auf
> jedenfall eine fertige library nehmen

Dagegen sagt ja niemand was, aber du wirst mit Bitbanging SICHER NICHT 
glücklich werden. Sobald irgendein Teil deiner Software länger als 
(1s/250000) 4µs am Stück eine atomare Aktion ausführt ist ein bit in dem 
DMX-Strom verrutscht. Damit flackern deine RXs. Gerade bei einem 
"größeren Projekt" dürfte es eh recht gesellig auf der CPU zugehen, da 
gibt das 100% Ärger.

von bazjo (Gast)


Lesenswert?

Dann werde ich es jetzt ersteinmal mit der Anbindung wie bei Arduino 
versuchen. Zumal ich ja dann auch bei Verpolung am RX nichts kaputt 
machen kann.

Und mich softwareseitig nach einer library umsehen, die kein bit-banging 
verwendet.

Soweit schon einmal vielen Dank!
Ihr hört dann von mir, wenn es trotzdem nicht funktionieren sollte... ;D

von Max D. (max_d)


Lesenswert?

bazjo schrieb:
> Und mich softwareseitig nach einer library umsehen, die kein bit-banging
> verwendet

Solange du den Sender an einen "einfachen I/O" anschließt geht nur 
Bitbanging.
Also entweder jittert dein Signal oder der ganze µC ist für die Dauer 
jedes DMX-Bytes (36 µs / Byte) lahmgelegt.

Als C-Jünger weiß ich nicht in welchem Arduino genau welcher AVR 
schafft, aber du wirst damit das richtig geht einen Weg finden müssen 
den Sender an einen UART anzuschließen.

Schlimmstenfalls™ brauchst du einen zweiten Prozi der seinen HW-UART für 
den DMX-Sender hergibt und von deinem Gerät via I²C/SPI gefüttert wird.

von bazjo (Gast)


Lesenswert?

im Arduino Mega ist ein AtMega 2560

und da der eh 4 UARTs anbietet, ist das 
"Vermeiden-wollen-einer-seriellen-Schnittstelle" ja eh obsolet.

Ich hatte ursprünglich nur die erstbeste library gesucht, da mir das 
bit-banging-Problem bei DMX irgendwie nicht so vor Augen war.

von Max D. (max_d)


Lesenswert?

bazjo schrieb:
> im Arduino Mega ist ein AtMega 2560
>
> und da der eh 4 UARTs anbietet, ist das
> "Vermeiden-wollen-einer-seriellen-Schnittstelle" ja eh obsolet.
>
> Ich hatte ursprünglich nur die erstbeste library gesucht, da mir das
> bit-banging-Problem bei DMX irgendwie nicht so vor Augen war.

Du hast quasi in einem Satz zusammengefasst warum Arduino in diesem 
Forum so "beliebt" ist.

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.