mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik DMX in ohne UART - wie machbar?


Autor: moöchte es versuchen... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hat jemand von euch schon einmal DMX-in ohne Verwendung des UARTs
realisisert ??? Oder kann mir Lösungsansätze nennen? Danke !!!

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das kann man dann wohl höchstens per Soft-UART machen. Was bei 250kbit
nicht gerade unanstrengend ist.
Oder willst du es ohne Controller machen?
Das würde mit einem Monoflop (Start-Byte-Erkennung), Taktgeber(n),
Zählern, Schiebregistern und noch ein paar Logik-Bausteinen gehen...

Autor: Hendrik Hölscher (henne)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ohne mcu ist es wahrscheinlich eine echte Herausforderung...

Mit Softusart ist es theoretisch per Polling oder mit einer Timer-ISR
möglich. Dazu existiert eine AN von Atmel.

Wie schon gesagt, benötigst Du bei 250kBaud eine geniale Effizienz des
Codes, diese Routine benötigt höchste Priorität und der Auslastung ist
wahrscheinlich auch jenseits von gut und böse. Dann hast Du auch kein
Oversampling (beim Hardwere-USART vorhanden), was evtl. die Geschichte
auch noch anfällig macht.

Kurz: Ich kenne keine ernstzunehmende DMX-Schaltung ohne U(S)ART.

Mach also die PC-Anbindung per Software (9.6kBaud sind genügsamer) oder
nimm eine MCU mit 2USARTs.

Eine Hardwarelösung findest Du bei mir auf:
www.hoelscher-hi.de/hendrik/light/ressources.htm

Mehr kann ich dazu nicht schreiben.
Grüße, Hendrik

Autor: möchte es versuchen... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

danke euch für die Antworten. Also ich habe es vor in Assembler zu
coden, mit 16MHz Takt. Die 250Kbit sollten also effizient machbar
sein... Es gibt auch keine anderen ISR die stören könnten, ich hab da
volle Freiheit.

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was spricht gegen das USART? Hat Deine MCU nicht genügend davon oder
willst Du nur testen, ob Du´s auch ohne hinbekommst?!

Autor: möchte es versuchen... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

nein habe wirklich nicht genug USART - und mehr als einen DMX-in...Das
ist der Punkt. Aber ich habe mal ein paar Timingberechnungen
angestellt, bei 16MHz Clock habe ich bei 250kbit/s 64 Takte Zeit mich
mit den einzelnen Bits zu beschäftigen. Also wenn das nich zu schaffen
ist :-)

Autor: mmerten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So langsam wird`s merkwürdig ;)
> Es gibt auch keine anderen ISR die stören könnten, ich hab da
volle Freiheit.
> nein habe wirklich nicht genug USART - und mehr als einen DMX-in

Ein DMX RX mit Software UART für ne simple 1 Kanal Anwendung mag ja
noch brauchbar funktionieren, aber alles andere ohne Hardware UART
dürfte doch sehr gewagt sein, zumal ja die empfangenen Daten auch noch
verarbeitet werden wollen. Gibt ja mittlerweile auch AVR mit 2 bzw. 4
seriellen Schnittstellen, damit ist dann auch Bearbeitung von mehr als
einem DMX Universe möglich.

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ganz andere Idee: ´nen kleinen Tiny 2313 pro DMX-in spendieren,
dadrinnen schon das Pre-Processing machen und die wirklich relevanten
Daten dann über Portpins an einen Masterprozessor (Mega16 oder größer)
weitertransferieren, der dann die Hauptarbeit macht. Wird in jedem
Falle einfacher sein, als alle Kommunikation und Verarbeitung in
Software zu gießen, einen einzigen Prozessor am Limit zu fahren und
später dann doch nicht mit der Zeit auszukommen...

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Dani Reiser (reiser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ist zwar schon ein altes Thema aber trotzdem schreib ich meinen Beitrag 
mal dazu. :)
Es müsste möglich sein.

Es gibt von roboternetz.de einen netten Artikel in der Wiki zum 
Software-UART mit AVR-GCC:
http://www.roboternetz.de/wissen/index.php/Softwar...

Werde es auch selbst mal versuchen. Wäre sicher interressant DMX mal auf 
nen kleinen ATtiny25 oder ATtiny24 zu packen :)


MfG,
Dani

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Dani Reiser (reiser)

>Werde es auch selbst mal versuchen. Wäre sicher interressant DMX mal auf
>nen kleinen ATtiny25 oder ATtiny24 zu packen :)

Wirklich? Nimm einen Tiny2313 und alles ist gut. Aber warum einfach wenn 
es auch umständlich geht.

MFG
Falk

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dani Reiser wrote:
> Werde es auch selbst mal versuchen. Wäre sicher interressant DMX mal auf
> nen kleinen ATtiny25 oder ATtiny24 zu packen :)

Sollte kein großes Problem sein.
Dann kannst Du gleich den internen Komparator als RS485-Pegelwandler 
benutzen.

Eventuell den Interrupthandler in Assembler schreiben, da zumindest der 
AVR-GCC viele unnötige PUSH/POP macht.


Peter

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Peter Dannegger (peda)

>Sollte kein großes Problem sein.

Ist es auch nicht.

Beitrag "DMX512 Empfänger mit Relaisansteuerung für 20 Kanäle"

>Dann kannst Du gleich den internen Komparator als RS485-Pegelwandler
>benutzen.

Uhhhh, SOLCHEN Murks würde ich nun mal sicher nicht machen wollen. Denn 
ein MAX485 & Co kann schon EINIGES mehr als ein 0815 CMOS Eingang. 
Stichworte ESD und Gleichtaktspannung.

>Eventuell den Interrupthandler in Assembler schreiben, da zumindest der
>AVR-GCC viele unnötige PUSH/POP macht.

Naja, kann man machen, wenn man sich mal die Mühe gemacht hat, den 
Zugriff auf C-Variablen in ASM zu verstehen. Ist aber nciht sooo 
kritisch, der Tiny hat bei 8 MHz noch reichlich Reserven. Erst Recht bei 
20 MHz.

MFG
Falk

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.