Forum: Mikrocontroller und Digitale Elektronik Problem bei PWM-Steuerung via DMX512


von Harry (Gast)


Angehängte Dateien:

Lesenswert?

Guten Tag allerseits,

ich wende mich mit folgendem Problem an Euch:

Und zwar habe ich eine Applikation entworfen, in der ein 
ATmega8515/16MHz via DMX512 vier Kanäle empfängt und die Werte der 
empfangenen Bytes 1:1 als PWM-Wert (Soft-PWM) verwenden soll.

Der Empfang des DMX-Signals funktioniert super (Anregungen von der Seite 
von H. Hoelscher, angepasst an meine Anforderungen ==> übrigens 
super!!).

Die Abarbeitung der PWM-Routine habe ich aus dem Beitrag dieses Forums 
(http://www.mikrocontroller.net/articles/Soft-PWM) welcher eigentlich 
auch ganz gut arbeitet.

Nun mein Problem: Anscheinend gibt es im Zusammenspiel beider 
Komponenten DMX/PWM Timingprobleme irgendeiner Art. Wenn ich nämlich 
LED-Treiber mit dem System ansteuere, sind deutliche Helligkeits-Flicker 
zu sehen. Egal, ob man langsam "hochdimmt" oder, ob der Wert unverändert 
bleibt. Die kurzen "Ausreißer" kann man auch am Oszi gut beobachten.

Ich hoffe, ich habe die Ausgangssituation und mein Problem konkret genug 
dargestellt und Ihr könnt mir bei der Lösung behilflich sein.

Besten Dank im Voraus.

Gruß

Harry

von Falk B. (falk)


Lesenswert?

@Harry (Gast)

>Nun mein Problem: Anscheinend gibt es im Zusammenspiel beider
>Komponenten DMX/PWM Timingprobleme irgendeiner Art.

Schon möglich, die Soft-PWm basiert darauf, dass sie oberste Priorität 
hat und praktisch kein anderer Interrupt dazwischenfunken kann.
In diesem Fall sollte man den DMX-Empfang besser per Polling machen, ist 
auch kein Problem, da dein Controller wahrscheinlich eh nix anders zu 
tun hat.

Der PWM-Interrupt dauert ca. 100 Takte, macht bei 8 MHz 12,5us. Ein Byte 
dauert bei DMX 44us, das passt locker. Vielleicht gehts auch mit 
Interrupts und du hast einen Fehler in deinem Programm.

Dein Quelltext ist unvollständig, es fehlt der UART-RX Interrupt.

MFG
Falk

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.