www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega128: DMX gleichzeitig senden und empfangen


Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte einen Atmega128 so programmieren, dass er ein (evtl. sogar
zwei) DMX-Signal empfängt, weiterverarbeitet und dann weiter sendet.
Das Senden funktioniert auch schon, das empfangen auch schon fast.

Meine Frage/Problem:
Da das Emfangen durch Interrupts funktioniert unterbricht es doch
ständig das Senden.
Kann dann durch das ständige Empfangen und Weiterverarbeiten, das
Senden gestört werden, so dass beim gesendeten DMX-Singal lange Pausen
zwischen den einzelnen DMX-Werten liegen? Dabei würde doch dann die
Wiederholfrequenz darunter leiden?
Kann das zum Problem werden oder gibt es da Abhilfe?
Gibt es beim Atmega128 soetwas wie Interrupt-Priorität, und wenn ja,
wie stelle ich sie in diesem Fall ein?

Wer hat schonmal mit DMX-Signalen gearbeitet und kann mir helfen?

Autor: gregor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Bernd,

willst du das empfangene Signal auch verändern? Oder nur an ein
weiteres Gerät weiterleiten?
Soweit ich mich erinnere ist die  max. Länge des RESET Signals 1s,
ebenso MARK zwischen Frames, zwischen Packeten und zwischen RESET und
Startbyte.
Es kann jedoch vorkommen, das schlecht Programmierte Geräte mit
untypischen Pausen Probleme haben.
Falls du das Signal nur weiterleiten willst, einfach XLR In und XLR Out
miteinander verbinden und dazwischen das Signal abgreifen.
Oder auch (z.B. mit MAX485) empfangen, das TTL Signal einmal auf deinen
Mega128 (besser noch über schnellen Optokoppler) und paralell auf einen
MAX485 als Sender weiterleiten. Hat jedoch den Nachteil, das wenn deine
Schaltung keine Spannung bekommt auch nicht weitergesendet wird (z.B.
über Relaiskontokt Notbetrieb).

mfg
gregor

Autor: Bernd Roppelt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein ich will schon das empfangene Signal verändern und anschließend
wieder senden...

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kannst du mal deinen code und oder schaltbilder posten? Ich würd gern
nen DMX in für den PC haben. Dort dann auswerten und z.b. speichern.
Hab aber probleme das signal zu empfangen und auf den rs232 zu packen.



Mfg der thomas

Autor: Hendrik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
www.digital-enlightenment.de

Michael hat IMHO das ultimative DMX-Dongle verbrochen - damit sollte
Thomas glücklich werden.

Ansonsten hat glaube ich DMX4All ein DMX-Gateway im Programm.
Als open project ist mir so etwas unbekannt. (Den meisten incl. mir
reicht ein galv. trennender booster vollauf. Das bischen mergen
rechtfertigt den Aufwand nicht...)

Viele Grüße, Hendrik

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Bernd,

das ist definitiv möglich und auch nicht besonders kompliziert. Ich
habe das so gelöst:

DMX empfangen über USART und Interrupt.

DMX umwandeln und senden im Hauptprogramm.

Vorteile: ein Byte, das über die USART reinkommt, wird sofort
verarbeitet und gibt die USART wieder frei. Umwandeln und Senden ist
zeitlich unkritisch, wenn Pausen zwischen den einzelnen Bytes entstehen
stört das keinen. Die Pausen dürfen laut DMX-Spezifikation nur nicht
länger als eine Sekunde werden, dann wird das Signal für ungültig
erklärt. Wenn Du nicht allzuviel rumrechnen willst, würde ich sogar
behaupten, 8MHz reichen völlig aus.

Mein Mega32 sendet DMX, empfängt DMX und unterhält sich spielend noch
mit einem Computer und einem weiteren uC, nebenbei. Bei 8MHz Takt. Und
ich habe im Sendekanal immer noch die vollen 44,...Hz
Wiederholfrequenz.

Gruß,
Sebastian

Autor: gregor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
www.digital-enlightenment.de

Damit könnte ich mich auch anfreunden. Hammer teil. Hat das schonmal
jemand nachgebaut? Ich bin nur besitzer eines MiniDMX. Kann ja leider
nur empfangen und rs232 schnittstellen hat man auch maximal 2 am PC.
Also wenn man keine erweiterungskarten hat natürlich.
Hat das ding schonmal jemand nachgebaut?
Mein Problem ist die fertigung der Platine. Kann nicht ätzen oder
fräsen.


Mfg der gregor

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.