mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik DMX512 - UART einstellen


Autor: Jochen H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Wer kann mir weiterhelfen?
Möchte mit einem AT89S51 einen DMX512 Transmitter verwirklichen.
Wie muss ich hierfür den UART programmieren?
Also Baudrate von 250k ist klar - aber wie erreiche ich das Startbit =
high und die beiden Stopp Bits = low ??
Standartmäßig ist dies ja genau anders herum! z.B. bei RS232

Gruß
Jochen

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
TTL-Inverter?

Autor: Christof Rieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stopp, du brauchst da nicht die Polarität verändern DMX läuft auf RS422
wenn ich mich recht entsinne. Nutze einfach einen SN 75179 den gibts
bei Reichelt für ein paar Cent. Der erzeugt und emfängt das nötige
symetrische Signal.

Autor: tüddel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm was muß man generell machen um dmx zu senden/empfangen?
ist auch schon immer mein traum, sowas zu tun, nur unter einem anderem
uC.

Autor: Christof Rieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja DMX512 ist eigentlich ein recht Dummes Protokoll. Ein Frame besteht
aus einem BRAKE einem NULL Byte und den 512 Dimmerwerten. Alles mit
250kBit und mit je zwei Stopbits gesendet. Elekrisch als RS422
ausgeben. Wäre alles kein Problem wenn die RS232 eines PC's 250kBit
könnte.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Christof

es muss ein SN 75176 sein

und es ist RS485


lg, markus

Autor: Christof Rieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Markus,

RS485 irgend so etwas wares doch. Aber das mit dem SN 75179 geht. Der
hat einen Empfänger und einen Sender drinnen. Wie ist das bei dem SN
75176 nochmal ?

Autor: Jochen H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja RS 485 Schnittstelle ist richtig - also ist es dch die Anbindung mit
einem MAX 485 oder Ähnlichem die Schnittstelle realisierbar ?
Ohne dass ich an dem UART drehen muss ?
Auch ander uC senden nach dem RS 232 Protokoll !

Autor: Christof Rieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die MAX sind im Verhältnis recht teuer. An dem URAT musst du garnicht
drehen. Ob RS 485 oder RS 232 hängt nicht vom URAT ab sondern nur von
deinem Treiber und/oder Empfägerbaustein.

Autor: Jochen H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Christof

Danke für die Info -- der Max kostet bei Reichelt etwa 60 Cent mehr als
der SN Baustein .
Na ich werde die Schaltung mal zusammenbasteln und schauen was sioch
dabei ergibt.

Autor: marco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal unter http://www.dzionsko.de/electronic/index.htm
Er hat das gleiche mit nem AT90S2313 realisiert und nennt es miniDMX.

Autor: Jochen H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen - so wie ich es sehe , generieren die Leute, die DMX512
erzeugen wollen einen eigenen Frame und geben ihn über einen
Portpin und nicht über den UART aus .

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wieso das? Du kannst jeden USART für RS485/DMX512 benutzen, wieso sollte
man sich da die Arbeit machen und das ganze händisch rausgeben? Ich sehe
da irgendwie keinen Vorteil. Jeder µC hat doch heutzutage 1 bis 2 USARTs
...

Autor: Christof Rieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei AT90S2313 musst du dich schon entscheiden ob du den PC oder den DMX
"händisch" bedienst, da du für Sender und Empfänger nur eine
gemeinsame Bitrate einstellen kannst.
Ich bastel mir z.Z auch ein DMX Dongel mit DMX in und DMX out. Dazu
kommt noch ein inteligentes Übertragungprotokoll um die geringere
Schrittgeschwindigkeit zum PC mit 115kBit auszugleichen. Dazu verwende
ich einen AT90S2313 als PC-Schnittstelle und einen ATmega8 als
DMX-Schnittstelle. Nutze dann beide URAT's.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zurück zum Thema,
wenn du (Jochen) die UART auf 250KBaud gesetzt hast und auf 2 Stopbits,
dann frage das FE-Bit ab. Das FE-Bit wird nach dem Brake (>=88µS)
gesetzt, weil der Controller ein Low-aktives Startbit detektiert hat
und kein Stop-Bit. Danach kommt ein Byte mit Nullen, danach das erste
Datum. Jetzt kannst du deinen Zähler setzen und dir die Bytes
rausfischen, die du brauchst. Aber bei jedem UART-Einsprung das
Overrun-Bit abfragen. Sollte das mal gesetzt sein hast du ein Byte
verpasst und dein Zähler ist aus dem Tritt gekommen. Als
Treiberbaustein benutze ich auch den SN75176, billig und eunfach zu
bekommen.
Michael

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.