I'm trying to generate a valid DMX signal with a PIC18f4520 @ 20 Mhz. First I tried using the internal UART to do the communication for DMX, but it seems that it's not as easy as I thought. I think the interrupt routine is called too often or something, strange results on the oscilloscope.
So I thought, for good practice, why not generate a dumb dmx signal using just port1 on, delay, port 1 off, etc. to check that the dmx light actually understands me if I'm doing it right.
So I have written a program, which sends 38us of MTBP (high), 120us of BREAK (low), and then the SC by 36us of LOW, and 8us HIGH. The rest is a bunch of 4us LOW, 40us HIGH (should be the same as startbit + 0xff + stopbits). And then the program loops.
But nothing happends on the DMX light (which is id 1).
I have checked that the timing is correct by using a oscilloscope, and counting time/div for each high and low pulse.
Any idea why this doesn't work? The PIC processor is wired to a LTC485 which is so connected directly to the DMX light's input port.
« Back to index