Forum: Mikrocontroller und Digitale Elektronik DMX Transmitter will nicht


von Stefan W. (stefanini)


Angehängte Dateien:

Lesenswert?

Hey,
vllt. sieht einer von euch meinen Fehler:)
Möchte am UART1 eines ATMEGA2560 einen DMX Transmitter betreiben.
Siehe angehängten Code.Ganz einfach gestrickt,kein Interrupt.
Mit dem Scope konnte ich feststellen,das das Signal sauber aus dem UART 
kommt,auch am RS485 Treiber alles bestens,bis auf die Tatsache,das das 
Reset frame was ja 88us im DMX Protokoll sein sollte,nur die Hälfte lang 
ist,d.h 44us,so,als ob er meine Baudrateumschaltung nicht mitbekommt.Hat 
einer von euch eine Idee woran das liegt?

von TestX .. (xaos)


Lesenswert?

Schau dir mal den erzeugten Assembler code vom avr-gcc an... das ding 
hat da nen blöden bug und ignoriert das 1te setzen des 
registers....zumindest hatte das selbe problem mit dem senden eines DMX 
Frames...
Als einfache Lösung kannst du die USART deaktivieren und den Pin kurz 
"per Hand" auf setzen...

von Stefan W. (stefanini)


Lesenswert?

Hi Andi,
guter Tipp,werde ich gleich mal probieren..

von Stefan W. (stefanini)


Lesenswert?

Ich fress meinen Hut!!
Das wars!
Täglich eine gute Tat,danke Andy!!

von Karl H. (kbuchegg)


Lesenswert?

Du darfst an dieser Stelle nicht das UDRE1 Bit benutzen um 
festzustellen, ob du die Baudrate schon umstellen kannst, sondern musst 
auf das TXC Bit zurueckgreifen.

Hintergrund: das UDR Register ist doppelt gepuffert. UDRE wird dir schon 
gemeldet, wenn du in den Buffer schreiben kannst (der also bereits das 
naechste Zeichen aufnehmen kann). Das bedeutet aber nicht, das das 
momentan gerade rausgetaktete Zeichen schon komplett aus der UART 
draussen ist.

: Bearbeitet durch User
von Stefan W. (stefanini)


Lesenswert?

Hallo Karl Heinz,
danke für den Hinweis,habe mir grad nochmal das Blockschaltbild 
angesehen.
Hast vollkommen Recht.

Vielen Dank!!

von Karl H. (kbuchegg)


Lesenswert?

Stefan W. schrieb:
> Hallo Karl Heinz,
> danke für den Hinweis,habe mir grad nochmal das Blockschaltbild
> angesehen.
> Hast vollkommen Recht.
>
> Vielen Dank!!

Im Datenblatt, Abschnitt 22.4 ist es beschrieben

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.