Forum: Mikrocontroller und Digitale Elektronik AVR & DMX ??


von Benjamin Gesemann (Gast)


Lesenswert?

Hallo,

Ich habe im Web schon einige projektze gefunden, bei denen ein DMX512 
sender/empfänger realisiert wurde.

Nun meine Frage. Kann auch die eingebaute serielle schnittstelle benutzt 
werden, um die DMX-signale zu versenden, oder geht es nur "manuell"?

Können die "kleineren" AVRs überhaupt eine baudrate von 250Kbit 
verkraften?

Falls es eh nicht manuell geht: In einem programm das ich im Web 
gefunden hab (rs232->dmx) wurde mit einem AT90S2313 betrieben.
(bei 9.125 Mhz) sodaß bei 37taktzyklen die gebraucht wurden um ein 
DMXBit zu senden damit die ca. 4mikrosekunden, die gefordert sind 
hinkommen (ich bin mir jetzt nicht sicher, ob es auch mit weniger zyklen 
geht)

Dei meisten controller haben jedoch max 8Mhz und der 2313 der bis 10Mhz 
läuft leider nur 2k Flash

Ist ein atmega mit 16khz also die einzige Lösung?
Und mal ganz nebenbei: Wo kann ich ihn kaufen?

Danke im Voraus....

von Günter König (Gast)


Lesenswert?

Tag Benjamin,

wie wäre es mit dem SPI?
Müsste eigentlich gehen.

Günter

von Benjamin Gesemann (Gast)


Lesenswert?

Hallo Günter

Was ist SPI?

und Wie kann man's danmit machen?

Gruss, Benny

von Björn Jonas (Gast)


Lesenswert?

Hallo,

der UART ist für DMX512 bestens geeignet. Das Protokoll von DMX512 
entspricht im wesentlichen dem RS232 Standard. Der eigentliche 
unterschied liegt im Pegel, da brauchst du einfach einen Pegelwandler. 
Probleme könntest du beim Generieren des BREAK-Signals (neuer Zyklus) 
bekommen, da das bei RS232 eigentlich ein Fehler ist und sich 
wahrscheinlich nicht generieren lässt. Das kann man aber im Notfall 
sicher mit externer HW lösen.

Hab mal ein DMX512 Empfänger gebaut mit einem 8051 mit 8MHz. Die 51 
haben eine 12er Teilung, d.h. 12/8MHz = 1.5us Zykluszeit. Das wurde 
zeitlich schon ziemlich eng, vor allem weil ich noch einen Servo u.a. 
angesteuert habe. Du must mal schauen ob es beim AVR einen speziellen 
Modus für den UART gibt, wie beim 8051. Wahrscheinlich mußt du einen 
bestimmten Quarz nehmen, wie bei mir (vielfaches von 8MHz). Der AVR 
müsste das aber packen, hab leider nicht ganz so viel Ahnung von AVR :( 
.

Gruß
Björn

von Günter König (Gast)


Lesenswert?

Hi,

mit SPI wird das "seriell peripherie interface" des AVR`s bezeichnet. 
Über die Pins MOSI, MISO, SCK und /SS kannst du entsprechende periphere 
Bausteine ansprechen. In der Wahl deines Protokolls bist du relativ frei 
so das auch DMX möglich sein sollte.

Nur die Hardware musst du dir selbst stricken.

Günter

von hebel23 (Gast)


Lesenswert?

>Dei meisten controller haben jedoch max 8Mhz und der 2313 der bis 10Mhz läuft 
leider nur 2k Flash

Hallo Benjamin,

also ich hab noch nie einen 8MHz-AVR gehabt, der nicht auch 9,216 MHz 
verkraftet hat. Ich weiß zwar nicht, ob sich das irgendwie negativ auf 
die Dinger auswirkt aber es funktioniert. Ich nehme fast immer 9,216 MHz 
statt 8 MHz wegen der geringeren Fehlerrate bei 115200 Baud des UART.

Gruß Andreas

von Günter König (Gast)


Lesenswert?

Tag Andreas,
könnte aber Probleme geben, wenn das interne EEprom genutzt werden soll.

Gruß,
Günter

von Wilfried (Gast)


Lesenswert?

Hallo Benjamin,

man kann mit einem 2313 den DMX-Bus sicher empfangen und senden. Du 
brauchst nur einen 12MHz Quarz. der 2313 wir zwar etwas übertacktet, 
aber das macht ihm nichts.

Wenn man ein Break senden will, muß die Serielle abgeschaltet werden, 
das Portpin für 88us auf 0 gelegt werden (delay) und dann die Serielle 
wieder einschaltet werden.

Wenn du auf dieser Homepage unter Projekte nachsiehst, findest du meinen 
4-Kanal DMX-Dimmer.

MfG
Wilfried

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.