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.
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.