Forum: Mikrocontroller und Digitale Elektronik DMX-Daten empfangen


von Heiko Thole (Gast)


Lesenswert?

Hallo ihr.
Ich möchte mit einem Mega8 DMX-Daten mit dem eingebauten UART
empfangen. Die Daten an sich zu empfangen ist nicht das Problem da der
µC das ja fast von alleine macht.
Mein Problem ist nun den Reset abzufragen. Ich muss ja im Prinzip mit
dem UART auf Daten warten und eigentlich auch gleichzeitig gucken ob
ein Reset (min. 88µs Lowpegel) kommt.
Kann mir da jemand ein paar Tips geben?

Danke
Heiko

PS: Infos zum DMX-Protokoll gibts unter:
http://www.soundlight.de/techtips/dmx512/dmx512.htm

von mmerten (Gast)


Lesenswert?

Break Erkennung kannst du ganz einfach über das FE-Flag (Framing Error)
im UART-Statusregister realisieren.

von Stefan (Gast)


Lesenswert?

FE-Flag funktioniert prima. Um sich von Übertragungsfehlern zu schützen
(die auch FE setzen könnten) solltest Du noch auswerten, dass das
nächste Byte nach FE das Startbyte ist.

Stefan

von Heiko Thole (Gast)


Lesenswert?

Hallo Ihr.
danke schon mal für die Tips.
Doch irgendwie klappt das noch nicht so.
Wenn ich auf das FE-Flag warte (while(!(UCSRA & (1<<FE)));) um dannach
dann mit der Auswertung anzufangen, bleibt der µC in der while-Schleife
hängen.
Muss ich noch irgendwelche anderen Flags setzen?

MfG
Heiko

von mmerten (Gast)


Lesenswert?

Mit dem warten auf FE ist's so eine sache da unterscheiden sich AT90S
und ATMega erheblich, da die neuen Megas über FIFO verfügen. Schau die
mal die Codebespiele im Datenblatt an.

von Heiko Thole (Gast)


Lesenswert?

Hallo.
Da steht leider kein Bsp. zum FE.

Gruß Heiko

von mmerten (Gast)


Lesenswert?

zwar nicht explizit zum FE-Flag, sondern dem korrekten Zugriff auf UCSRA
und UDR beim USART.

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.