Mosche zusammen,
hab für ne kleine LED-Anwendung das Rad mal wieder neu erfunden und ne DMX-empfangsroutine fürnen kleinen avr geschrieben etc.. als test-quelle hab ich hier ein "german light products" pult der, sagen wir mal, unteren preisklasse :-). alles geht soweit wunderbar. hab dann heut spasseshalber mal nen 12er Lightco drangehängt, und siehe da, er verschluckt sich gelegentlich. will sagen, beim warten auf den eingestellten dmx-kanal verzählt sich sie kiste gelegentlich, vermutlich weil er grad im pwm - irq steckt. mich wundert es nur das an dem billigpult geht und am lc nicht... hat da jemand (speziell die bastler unter uns :-)) ähnliche erfahrung gemacht? das timing muss sich ja offensichtlich irgendwie unterscheiden. vermutlich is meine empfangsroutine auch noch "suboptimal", immerhin ist die situation, dass lichtequipment von dem lc12/2 gesteuert wird, nicht ganz selten :wink:
Unterschiede im DMX-Signal verschiedener Hersteller
-
-
Ich weiß nur das Martin vor Jahren mal nen eigenen DMX-Standard hatte ( Data + und Data - vertauscht), aber heute ist mir sowas nicht mehr bekannt.
-
dafür gibts ja noch den guten alten phasenwender...
-
Zitat von "tikay"
Ich weiß nur das Martin vor Jahren mal nen eigenen DMX-Standard hatte
Das Signal von Martin hatte nichts mit DMX zu tun - man könnte es als Tracking-Signal bezeichnen (auch wenn es eigentlich als Vektorsignal bezeichnet wird), da es nur Änderungen und nicht feste "Kanalsnapshots" sendet. Bessere Auskunft kann da aber sicher Mathias Gentsch geben.
Zum eigentlichen Thema: ein wirklich einheitliches DMX-Signal gibt es nicht im eigentlichen Sinne, da für die meisten Signalbestandteile nur Zeitrahmen und nicht Fix-Werte definiert sind. Der Aufbau des Signals ist fix (reset - mark - starbit - datenbits - stoppbits - interdigit - mark), aber die zeitliche Länge der einzelnen Bestandteil kann innerhalb der Norm von Gerät von Gerät variieren und bei Controllern auch von der Belastung der Elektronik abhängen. -
martin hatten ihr eigenes rs485 protokoll
die lampen haben aber auch dmx verstanden, nur brauchte man dafür nen phasenwender...das problem wird eher sein, dass der lightcommander mehr als die 12 kanäle raus schickt...
-
DMX basiert auf RS485 (darum findet man auch immer einen solchen Treiberbaustein (sn75176 oder so)
Warum dein Gerät nicht funktioniert liegt vielleicht daran das DMX nicht direkt Zeiten definiert, sondern (große) Toleranzen hat.
Kennst du das (frech ins Frameset verlinkt) http://soundlight.de/techtips/dmx512/dmx512.htm
Du musst vielleicht deine Empfangrroutine etwas optimieren (Interrupt verkürzen?)
-
DMX ist selbstverständlich genormt, und zwar in der DIN 56930, Teil 2 "Bühnenlichtsysteme - Steuersignale". die deutsche norm basiert auf dem dmx512/1990-standard der http://www.usitt.org
-
Ich habe doch alles, was man dafür braucht, auf meiner Site

Warum erfindet denn jeder das Rad neu und fliegt die ersten Monate auf die Fresse

Das kanns doch nicht sein :cry:
-
Zitat von "Carm"
DMX ist selbstverständlich genormt
Das wollte ich damit ja nicht sagen, sondern dass ein Pult mit 20Hz Refreshrate genauso wie mit 44Hz senden kann - mit der Konsequenz das ich an verschiedenen Pulten verschiedene Messwerte erhalte. -
...deswegen habe ich die Empfangsroutine auf max.<6µs getuned...
-
Henne: ganz einfach: weil man beispielsweise was lernen will, sich nicht auf den geistigen ergüssen anderer ausruhen will, etcetc... abgesehen davon, ich kenne deine seite. und die is in der tat sehr empfehlenswert, und ich kenne auch deine empfangsroutine. wollte halt trotzdem noch ne eigene schreiben, da ich sowas ähnliches schonmal implementiert hatte mit nem kollegen zusammen, allerdings kam da der sender auch von uns. somit sehr vorhersehbares timing. wie auch immer, ich wollte ja nur wissen ob ähnliche erfahrungen gemacht wurden. und "die ersten monate auf die fresse" würd ich das jetzt mal nicht nennen. ich denke wenn ich den empfang zeit-toleranter mach is alles gut. war halt ein sehr minimalistischer ansatz (nur pwm über timer, empfang "händisch") der offenbar noch verbesserungswürdig ist. deine lösung schien mir für meine zwecke schlicht "overdozed".
-
@NS:
Ich wollte Dich keinesfalls anmachen...
Ich bekomme blos alle paar Tage Mails, wie man Eigenbau-Empfangsroutinen zum Laufen bekommt oder an alle möglichen targets anpasst. Ich versuche auf sowas noch zu antworten - aber das kann es eigentlich nicht sein.
Beispiel:
1. Mail: Mein Transceiver wurde nachgebaut und ich musste erst mal Starthilfe für die LED-Firmware geben.
2.Mail: Mein tutorial wurde entdeckt und nun gibt's Probleme mit dem Empfang meherer kanäle. (Was ist ein Pointer...)
3.Mail: Der typ wollte nun meine Subsysteme nachbasteln, woran ICH aber kein Interesse habe. (->keine Antwort)
4.Mail: jetzt will er PWM-Modulation übernehmen und es hakelt dort.
(-> den Typen in den Spam-Ordner gestopft und Feierabend. Der Vogel wollte tatsächlich 1:1 meine (schon geladene) LED-Firmware nachbasteln und ich sollte meine Zeit dafür verschwenden
)Es ist wahrscheinlich in zukunft sinnvoller, wysiwyg zu fahren und Mails dieser Richtung zu kicken, als hier ungerechtfertigter Weise Leute anzumachen - sorry also!
Hendrik
-
schon gut, ich bin schon gross und hab nicht gleich angefangen zu weinen

ich kann mir schon denken was da für mails kommen, hab auch schon hiwi gemacht im uC-labor... lustige vorstellungen haben manche leute. umso wichtiger das es seiten wie deine gibt.also, ich hab das wohl unterschätzt wie weit die auslegungen des standards differieren. damit stehe ich wohl nicht allein da, du bittest ja auch um rückmeldung betr. anderen gerätschaften. oft ist es ja auch so das irgendwo rahmen vorgegeben sind, es aber alle "irgendwie gleich" machen. offenbar hab ich mit dem ersten versuch ne routine geschrieben die bevorzugt mit billigpulten geht

zeit is geld, also muss man schneller senden oder so :lol:
-
Eigentlich wurde zum Protokoll (reset - mark - starbit - datenbits - stoppbits - interdigit - mark) eh schon alles gesagt bzw ist genormt.
Aber soviel ich weis schickt der MA 12/2 nur die ersten 100 DMX-Kanäle raus (und lässt sich auch nur von 1-100 patchen). Andere pulte schicken womöglich immer alle 512 kanäle raus und brauchen dafür länger..
Vielleicht liegt da das Kommunikationsproblem.lotronic
-
nee, das sollte es nicht sein. der empfang bricht nach dem letzten erwarteten datenbyte ab und wartet auf das nächste break. trotzdem danke. ich denke mal ich hab bei der mark-erkennung nach dem break geschlampt, und deshalb wird gelegentlich das startbyte verschluckt. da im testaufbau alle nicht benutzten kanäle auch 0 waren, fällt das nicht wirklich auf. erst wenn halt alles einen kanal nach vorne verschoben ist :oops:
aber, fallen lernt man nur durch fallen :wink:
-
Aber tröste Dich: ich hatte auch schon das Problem, dass Moving Heads eines bestimmten Herstellers nicht das DMX-Signal von einer Avolite Pearl fressen, obwohl das mit etwa 33Hz nicht sonderlich schön, aber dennoch normgerecht war. Als auch so mancher Hersteller scheint seine Probleme mit der Norm zu haben.
-
Ich hatte neulich das Problem, dass ein Soundlight Muxer 513 Kanäle rausgab (laut Soundlight DMX-Tester...).
Das per USB-DMX-IN eingelesen ergab einen oszillierenden Wechsel zwischen 0 und Kanalwert. Beim Versuch, dem USB-DMX-IN etwas anderes als 512 Kanäle einzulesen, stürzt dann Windows ganz gründlich ab. :roll:
-
Nun im Prinzip ist das DMX Signal ja keine komplizierte Sache. So ne Empfangsroutine ist im Grunde ja ne Statemachine und man muss eben (neben ihrer korrekten Funktion) nur garantieren, dass sie genug Rechnzeit bekommt, d.h. konkret die Verzögerung zwischen Eintreffen eines Bytes am seriellen Port und dem Aufruf (und der Ausführungszeit) der entsprechenden Interruptroutine muss kleiner als 250000/11s^-1 sein, also 44 µs. Das musst du garantieren können, entweder indem du deine anderen interruptroutinen kurz hälst oder den DMX Interrupt auch in den anderen Interrupts erlaubst. Noch so Suchtipps: Hast du den 9 Bit Mode aktiviert, bzw. 2 Stoppbits eingestellt (9 Bit Mode find ich da cooler, da kann man auch gleich die Breakerkennung machen *g*). Der Unterschied in den generierten DMX Signalen verschiedener Quellen kann schon gross sein (verschiedene Delaylängen von Break, Interframedelays, Delays zwischen Datenbytes usw...), aber wenn deine Statemachine schnell genug aufgerufen werden kann sollte das alles kein Problem sein, weil die Minimalwerte sind ja festgelegt, bzw. ergeben sich aus aus der Tatsache, dass eben ein serielles Format mit 250KBit verwendet wird.
So, und um mich dem allgemeinen DMX Bastler Werbemode anzupassen:
Auf meiner Webseite findeste auch noch in der USB DMX Firmware nen DMX Empfangscode für AVRs
-
Michael:
Dafür habe ich keine Werbesignatur
Abgesehen davon erwähne ich als Fan Deiner Hardcoreprojekte Deine Site wann immer es sich anbietet
Hendrik
-
mmh,...
ja, es gibt Unterschiede bezüglich der DMX Steuerungsgeräte und man will es kaum glauben gibt es Unterschiede zwischen den Empfangsgeräten!
Bitte selbst nachlesen:
Also nehmen wir ein Behringer Pult LC12/24 ( eh egal wie es heißt!) und den ganz kleinen Lightcommander 12/2
Steuert man mit beiden Pulten Dimmerpacks an ist ein Unterschied nicht wirklich festzustellen, ABER wenn man zum Beispiel Farbwechsler mit Schrittmotoren anspricht, dann merkt man einfach, dass bei dem Behringer zeitweise nicht alles im Lot läuft.
Darum empfiehlt selbst Behringer dazu, nur Dimmerpacks anzusteuern!
Es ist auch bei GLP so, dass bei Ease One i.V.m. Pocket Scan eine sehr komische DMX Einstellung verlangt wird, warum habe ich noch nicht raus gefunden, aber die Startadresse ist nicht 001 sondern 005 damit die Steuerung mit den Scans funktioniert, obwohl der Scanner sich bei 001 jederzeit als Startadresse definieren lässt und auch einbedienen lässt. Ähnliche Konfiguration wie Mighty Scan und Max 250! (Rest siehe Bedienungsanleitung!)
@ Admin: hehe, Windows ist auch ne FEHLERQUELLE!
-