Forum: Mikrocontroller und Digitale Elektronik I2C - DMX


von Athelas (Gast)


Lesenswert?

Hallo MCU-Freunde,

ich habe eine Aufgabe mit Atmel 89C51RB2.
Aufgabe:
Farbtemperatur von vier Leuchtstofflampe würde durch DMX Bus mit MCU
89c51RB2 geregelt. Ich möchte die Lampen zu MCU koppeln. An MCU wird
LCD -Anzeiger mit I2C gesteuert. Meine Fragen sind folgende:
Wie kann ich diese Kupplung (I2C - DMX) realisieren? (im Internet dazu
Schaltungen gefunden, aber vielleicht einfacher?)
Wie kann ich im Softwearbereich programieren? (im C)
Kann ich vielleicht das auch durch RS485 anfertigen? (im MCU gibt es
Möglichkeit DMX durch diesen Port zu steuern)

Mit freundlichen Grüßen

Student aus Hannover an der FHH

von Athelas (Gast)


Lesenswert?

Weiß ich, das ist eine komplexe Fragereihe. Dann kann jemand
Infomationen in diesem Thema geben?
Oder kennt jemand Michael Dworkin? Das wäre dringend!

Danke

von tf1973 (Gast)


Lesenswert?

Hallo,

hängt von 2 Sachen ab, a) wie zeitkritisch das Ganze sein soll und b)
ob du alle 512 kanäle brauchst. Ansonsten ist das ja recht einfach von
der Vorgehensweise:

- alle auszugebenden Bytes über I2C lesen
- dann komplett als DMX-Block ausgeben

Wenn du nur 4 DMX Kanäle brauchst kommst du bei der Vorgehensweise
sogar auf ein akzeptable Refreshrate.


Thomas

von tf1973 (Gast)


Lesenswert?

Also wenn ich das richtig sehe (korrigier mich wenn ich falsch liege)
hat der 89C51RB2 kein TWI bzw. I2C Interface "on board" du müßtest da
also selber noch die I2C Signale dekodieren.

Meine Empfehlung: nehm einen AVR mit TWI (z.B. Mega16) und schließe
noch einen MAX485 an den USART an. Dann beschränkt sich der Code auf
ein Minimum, die meiste Arbeit wird dir der AVR dann abnehmen :-)

Thomas

von Athelas (Gast)


Lesenswert?

Hallo,

Die Anwendung ist nicht Zeitkritisch, und ich brauche nur 4 DMX Kanäle
zu steuern.

Mein Problem besteht dadrin, wie ich überhaupt die DMX Daten
rauskriege. Da ich eine I2C Bus schon vorhanden habe, dachte ich das
der I2C-DMX konverter die einfachste Lösung wäre.

Ich bin für jeden möglichen Lösungen interesiert, was wegen Zeitmangel
schnell fertig ist.

Danke im Voraus: Attila

von tf1973 (Gast)


Lesenswert?

Dann würde ich es so machen wie von mir vorgeschlagen - also einen AVR
mit TWI Interface (Mega 8, Mega 16 etc...) , den TWI als Eingang
geschaltet. Dazu einen 75176 an einen Portpin hängen und dort das DMX
Signal ausgeben.
Wie schon gesagt, der Code gestaltet sich dann recht einfach: Die 4
Bytes über das TWI einlesen, zwischenspeichern und als 4 DMX Werte über
den 75176 ausgeben. Das geht bei 4 DMX Werten wirklich schnell.

Für die entsprechenden Register des TWI zieh das Datenblatt des AVR zu
Rate, den Aufbau des DMX-Signals findest du unter www.soundlight.de


Thomas

von tf1973 (Gast)


Lesenswert?

Noch ne Ergänzung: Wenn es wirklich schnell gehen soll und du auch die
Lötarbeiten auf ein Minimum reduzieren willst - bei www.embedit.de
gibts ein "Mega8 Modul mit RS485 Schnittstelle". Das sollte genau das
richtige für dich sein :-)

Thomas

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.