DMX in ohne UART - wie machbar?

Gast #341396
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...
#341397
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
Gast #341398
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.
Gast #341400
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 :-)
Gast #341401
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.
Gast #341402
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...
#1214931
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/Software-UART_mit_avr-gcc

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


MfG,
Dani
#1214954
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
#1215030
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren