Forum: Mikrocontroller und Digitale Elektronik DMX Transmitter will nicht


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Stefan W. (stefanini)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Hi Andi,
guter Tipp,werde ich gleich mal probieren..

von Stefan W. (stefanini)


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

von Karl H. (kbuchegg) (Moderator)


Bewertung
0 lesenswert
nicht 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 Moderator
von Stefan W. (stefanini)


Bewertung
0 lesenswert
nicht 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) (Moderator)


Bewertung
0 lesenswert
nicht 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

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.