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
Vielen Dank für die schnelle Antwort. Wieso ist aber dann der Anschluss in der anderen Schaltung genau andersherum?
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.
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?
Die Software muss auch die passenden Pegel liefern, m.a.W. Pinbelegung, Hardware und Software müssen zusammen passen.
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?
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.
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.
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...
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.
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
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.