Electronic – DMX512 packet issue (no break?)

dmx512protocolrs485serialuart

I'm not sure if I'm reading this wrong or something, but this is a trace of the DMX packet that's coming from my USB-RS485 module then being converter to UART logic levels for my microcontroller.

DMX packet

Differential packet

There are a few things I don't think are right…

  • What I assume is the 'break' is only the width of one frame, but by definition in the standard is is more likely to be twice this size or greater.

  • The 'Mark after break' is huuuuge. From the scope you can see it's about 116 us wide, when it should really only be 8

  • Lastly, there doesn't seem to be a 'start frame'. When set channel 1 to any value, it goes into the first frame after what I've assumed is the extra long 'Mark after break'

Am I missing something here or misinterpreting the DMX protocol? Right now I'm using Freestyler to drive the RS485 device as an ENTTEC OpenDMX transmitter. Anyone have any ideas? is it a software or set up thing? I also tested a tool called KMTronic DMX device tester, and it's given me the same sort of output.

I've just noticed after looking at the differential RS485 lines (see above picture): It looks like that low at the beginning actually is a frame (maybe the start frame?). I can see the line go from an unknown state to driving high for 4us(Mark-time-between-packets?), drive low for the frame of 44us, then drive high for 8us (typically a stop bit time). After that the line goes to an unknown state again. Really strange and confusing. If that's the case though, then I have nothing that even resembles a 'break'.

Also for those unfamiliar with DMX packet structure: http://www.dmx512-online.com/gifs/dmxpack.gif

Best Answer

Do you have the right bus termination? A lot of cheaper RS485 adapters will 'release' the bus when nothing is transmitted for a while; thus, you 'mark after break' may actually be RS485 transmitter shutting off because of lack of transmissions. Make sure you pull the bus to the right values.