Hallo! Wer kann mir weiterhelfen? Möchte mit einem AT89S51 einen DMX512 Transmitter verwirklichen. Wie muss ich hierfür den UART programmieren? Also Baudrate von 250k ist klar - aber wie erreiche ich das Startbit = high und die beiden Stopp Bits = low ?? Standartmäßig ist dies ja genau anders herum! z.B. bei RS232 Gruß Jochen
Stopp, du brauchst da nicht die Polarität verändern DMX läuft auf RS422 wenn ich mich recht entsinne. Nutze einfach einen SN 75179 den gibts bei Reichelt für ein paar Cent. Der erzeugt und emfängt das nötige symetrische Signal.
hmm was muß man generell machen um dmx zu senden/empfangen? ist auch schon immer mein traum, sowas zu tun, nur unter einem anderem uC.
Naja DMX512 ist eigentlich ein recht Dummes Protokoll. Ein Frame besteht aus einem BRAKE einem NULL Byte und den 512 Dimmerwerten. Alles mit 250kBit und mit je zwei Stopbits gesendet. Elekrisch als RS422 ausgeben. Wäre alles kein Problem wenn die RS232 eines PC's 250kBit könnte.
Danke Markus, RS485 irgend so etwas wares doch. Aber das mit dem SN 75179 geht. Der hat einen Empfänger und einen Sender drinnen. Wie ist das bei dem SN 75176 nochmal ?
Ja RS 485 Schnittstelle ist richtig - also ist es dch die Anbindung mit einem MAX 485 oder Ähnlichem die Schnittstelle realisierbar ? Ohne dass ich an dem UART drehen muss ? Auch ander uC senden nach dem RS 232 Protokoll !
Die MAX sind im Verhältnis recht teuer. An dem URAT musst du garnicht drehen. Ob RS 485 oder RS 232 hängt nicht vom URAT ab sondern nur von deinem Treiber und/oder Empfägerbaustein.
Hallo Christof Danke für die Info -- der Max kostet bei Reichelt etwa 60 Cent mehr als der SN Baustein . Na ich werde die Schaltung mal zusammenbasteln und schauen was sioch dabei ergibt.
Schau mal unter http://www.dzionsko.de/electronic/index.htm Er hat das gleiche mit nem AT90S2313 realisiert und nennt es miniDMX.
Hallo zusammen - so wie ich es sehe , generieren die Leute, die DMX512 erzeugen wollen einen eigenen Frame und geben ihn über einen Portpin und nicht über den UART aus .
Wieso das? Du kannst jeden USART für RS485/DMX512 benutzen, wieso sollte man sich da die Arbeit machen und das ganze händisch rausgeben? Ich sehe da irgendwie keinen Vorteil. Jeder µC hat doch heutzutage 1 bis 2 USARTs ...
Bei AT90S2313 musst du dich schon entscheiden ob du den PC oder den DMX "händisch" bedienst, da du für Sender und Empfänger nur eine gemeinsame Bitrate einstellen kannst. Ich bastel mir z.Z auch ein DMX Dongel mit DMX in und DMX out. Dazu kommt noch ein inteligentes Übertragungprotokoll um die geringere Schrittgeschwindigkeit zum PC mit 115kBit auszugleichen. Dazu verwende ich einen AT90S2313 als PC-Schnittstelle und einen ATmega8 als DMX-Schnittstelle. Nutze dann beide URAT's.
Zurück zum Thema, wenn du (Jochen) die UART auf 250KBaud gesetzt hast und auf 2 Stopbits, dann frage das FE-Bit ab. Das FE-Bit wird nach dem Brake (>=88µS) gesetzt, weil der Controller ein Low-aktives Startbit detektiert hat und kein Stop-Bit. Danach kommt ein Byte mit Nullen, danach das erste Datum. Jetzt kannst du deinen Zähler setzen und dir die Bytes rausfischen, die du brauchst. Aber bei jedem UART-Einsprung das Overrun-Bit abfragen. Sollte das mal gesetzt sein hast du ein Byte verpasst und dein Zähler ist aus dem Tritt gekommen. Als Treiberbaustein benutze ich auch den SN75176, billig und eunfach zu bekommen. Michael
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.