Forum: Mikrocontroller und Digitale Elektronik DMX Empfang analysieren wie?


von Ingo K. (Gast)


Lesenswert?

Hallo

Ich bin gerade an einem DMX Empfänger.
Da ich mein Gerät auch darauf vorbereiten möchte, dass es auch beim 
Ausfall von DMX weiter stabil funktioniert.
Deswegen suche ich nach einer Möglickeit, zu Überprüfen ob wirklich DMX 
Empfangen wird.

Ich realisiere den DMX Empfang im USART RXC Interupt.
Als Vorlage habe ich mal das von Henne genommen.
http://www.hoelscher-hi.de/hendrik/light/ressources/AN012.pdf

Reicht es im Hauptprogramm abzufragen ob ein BREAK vorhanden ist?
Oder muss ich irgendwelche FE zählen?

Es soll prinzipell abgefragt werden
1
for(;;)
2
{
3
   if (!dmxOK)
4
   {
5
   standalone();
6
   }
7
}

Gruß Ingo

von Jürgen B. (hicom)


Lesenswert?

hi,
ich setz meine DMX-ok Led auf ein, wenn ein korrektes
Startbyte empfangen wurde und auf off wenn dieses für 200ms
ausbleibt.

Jürgen

von Henne (Gast)


Lesenswert?

ich mache es auch wie Jürgen.

Wäre nett, wenn Du Dein Programm am Ende veröffentlichen könntest, Ingo.
(Ich bekomme dauernd Anfragen zu Steppersteuerungen, Pulten, Analyzern 
und CFL - habe aber sehr wenig Zeit...)


Viel Erfolg,
Hendrik

von Julien M. (ljminti)


Lesenswert?

Möchte mich auch zu diesem Thema melden.

Ich habe auch immer wieder solche Aufgabenstellungen.
Gelöst habe ich es mit einem Art DMX Watchdog.

Jedesmal wenn der Uart ein Byte empfängt setzt der Interupt ein 
Zählregister auf 0xff;

dann lasse ich zusätzlich einen Timer mit einem bestimmten Interupt 
laufen.
Bei jedem Overflow Interrupt wird dann dieser Zähler dekrementiert.
Wenn also das DMX Signal gestört ist läuft das Zählregister ab.

Im Hauptprogramm überprüfe ich einfach ob das Zählregister == 0
Fertig!

Werde bei nächster Gelegenheit auch noch ein kleines AppNote 
veröffentlichen.

@Henne
Werde dir diesbezüglich noch ein paar Infos per Mail zukommen lassen.

Julien

von nzg (Gast)


Lesenswert?

Laut DMX-Spezifikation kann zwischen zwei Frames bis zu einer Sekunde 
vergehen.
Ergo einfach bei jedem Break / MAB nen Timer auf 1s resetten. Wenn der 
dann ausläuft, dann ist dein DMX-Signal abwesend.

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.