Hallo
Ich denke gerade darüber nach, ein kleines Licht-Projekt mit einer
DMX-Steuerung zu versehen. Es geht lediglich darum, dass die bereits
steuerbaren Lampen ihre Signale von einem DMX-Lichtmischpult erhalten.
Wie mir scheint, ist die Sache nicht besonders kompliziert:
Man muss bloss die RS-485 Signale auf Standard-TTL-Pegel wandeln, um sie
dann per UART an einem Mikrocontroller (AVR) lesen zu können. Das
Protokoll ist ebenfalls trivial. Schätze ich das richtig ein, oder
lauern da doch noch Stolpersteine? (Dann würde ich nämlich eher auf DMX
verzichten.)
Zwei Fragen:
1. RS-485 mit dem Mikrocontroller lesen: Nimmt man da einfach einen
Wandler-Chip oder geht das noch einfacher?
2. Anschluss: Was muss man beachten, um das Gerät sauber anzuschliessen?
Ich denke mal, dass es einen DMX-Ein- sowie einen Ausgang hat, das
Signal läuft dann einfach durch das Gerät durch.
Gruss
Michael
Hallo mr.chip
1.
also DMX-512 ist eigentlich sehr einfach zu realisieren, was du
benötigst ist einfach nur einen Pegelwandler zb.: ein MAX485 - TX & RX
mit dem µC verbinden -> fertig!
Der rest ist softwarearbeit:
du musst einfach den RESET als Trigger für das Frame verwenden das
startbyte richtig interpretieren und dir in diesem Frame Channel_1 -
Channel_512 herausdetektieren!
2.
kommt auf deinen DMX-Master an
Die slaves hängen eifnach parallel am DMX-Bus du kannst also problemlos
das Signal durch das Gerät laufen lassen
MfG
> 2.> kommt auf deinen DMX-Master an> Die slaves hängen eifnach parallel am DMX-Bus du kannst also problemlos> das Signal durch das Gerät laufen lassen
Machen ja eigentlich alle DMX-Slaves so: Signal geht an einem Stecker
rein und kommt an einem anderen wieder raus, wo es zum nächsten Slave
geht. Ich habe nur ein bisschen Angst, das Signal dadurch zu
verwursteln, wenn die Wellenimpedanz o.ä. nicht stimmt. (Oder nehme ich
da die Leitungstheorie-Vorlesung zu ernst?)
>du musst einfach den RESET als Trigger
DMX hat keinen RESET. Das was die Synchronisation macht, nennt man
üblicherweise BREAK. Das ist ein Low auf der Datenleitung für mindestens
88µs. Da kommt es in der UART zum setzen des FE-Bits, da keine Stoppbits
empfangen wurden.
MW
> DMX hat keinen RESET. Das was die Synchronisation macht, nennt man> üblicherweise BREAK. Das ist ein Low auf der Datenleitung für mindestens> 88µs. Da kommt es in der UART zum setzen des FE-Bits, da keine Stoppbits> empfangen wurden.
Hmm...gibt es eine Möglichkeit, diesen BREAK auch mit einer normalen
RS232-Schnittstelle am PC zu erzeugen? (Zu Testzwecken - leider ist ja
die PC-Schnittstelle mit 115k Bits/s sowieso zu langsam.)
@ mr.chip (Gast)
>Hmm...gibt es eine Möglichkeit, diesen BREAK auch mit einer normalen>RS232-Schnittstelle am PC zu erzeugen?
Klar. 115k2 Baud einstellen und 0x00 senden.
> (Zu Testzwecken - leider ist ja>die PC-Schnittstelle mit 115k Bits/s sowieso zu langsam.)FTDI232 ist dein Freund. Der kann 250k/s von Hause aus perfekt.
MFG
Falk
Da sehe ich doch noch ein weiteres Problem: Ein Startbit, was soll denn
das?!? Weder mein PC, noch das AVR-Datenblatt kennt sowas. Macht man da
einfach einen 9-Bit-Transfer und setzt das erste gesendete Bit auf 1?
@ mr.chip (Gast)
>Da sehe ich doch noch ein weiteres Problem: Ein Startbit, was soll denn>das?!? Weder mein PC, noch das AVR-Datenblatt kennt sowas.
Bitte? Mal die Augen aufmachen. Sowohl PC als auch AVR generieren
wunderbar ein Startbit.
> Macht man da>einfach einen 9-Bit-Transfer und setzt das erste gesendete Bit auf 1?
Startbit ist immer NULL! DMX ist popeliges RS232 auf 250kBaud.
MFG
Falk
>Startbit ist immer NULL! DMX ist popeliges RS232 auf 250kBaud.
Na ja, nicht ganz. Tauschen wir jetzt RS232 gegen RS485 kommen wir der
Sache näher. Und den 9-bit Transfer brauchst du, da 2 Stoppbits gesendet
werden.
MW
Problem beim PC ist die Anfangssequenz dieses soll nämlich einen
FramingERROR auslösen, durch das übertragen von 0x00 kann dieses nicht
realisiert werden
Dazu könntest du eine Handshakeleitung benutzen, ein wenig Hardware
brachst du sowiso(RS232 zu RS485) um mit der Handshakeleitung den
BREAK(RESET) zu realisieren
!!!!!!
das wirkliche Problem ist die Datenrate am PC max 115,2kBaud
und DMX läuft mit 250kBaud
!!!!!!
Ansonsten mit dem PC 8Datenbit
1Sartbit
2Stoppbits
das geht wunderbar(das kannst du sogar im Hyperterminal von Windows
austesten)(>> sogar WINDOWS :) )
Hoffe geholfen zu haben
Manuel
Eine eigene Frage?
Dieser Thread ist über 18 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.