FYI, I am new to this list. I know how most lists feel about newbies,
so if you'd like to send me a warm welcoming message, feel free. :)
I've been working with PICs for around 6 months now, and just recently
got a programmer. I wrote a program for a 16C57 to transmit DMX-512,
but it doesn't seem to be transmitting the protocol correctly, or it's
not at the correct speed (250K bps). I'm not sure exactly what the
problem is, and I'm mailing the list in hope that maybe someone has some
experience doing this. If anyone is willing to help, or for more
information on exactly what I'm doing/using, please e-mail me privately!
Welcome to the list!
In transmitting DMX512 with a PIC (I do it with a 16c74a), it's
kinda tricky to get the break timing right due to the double buffering of
the transmit side of the uart. What I finally did is to use a timer
interrupt instead of the uart interrupt. This way the uart transmits
immediately on loading. When the timer interrupt comes back again, the
uart has finished sending the byte. It is then safe to send the break.
By the way, how are you sending the break? The 16c74a doesn't have a
break function, so I did it in hardware. I put a resistor between the
serial transmit data pin and the driver chip. The end of the resistor
away from the chip is tied to another I/O pin that is normally tristated.
When I want to send a break, I turn that pin on with a programmed zero.
Then tristate the pin when you want to end the break.
Finally, I used a state machine to figure out where we are
(transmitting break, sending mark after break, sending start code,
sending data bytes).
Also, to see what's going on, I suggest toggling an I/O pin at
various points in the code to trigger a scope. The above discussed
"break pin" can be used for this, letting you see the break, mark after
break, start code, and first few code bytes. If you have delay
triggering, you can lootk at the whole string! Also, the Lil DMXter is a
very handy piece of equipment. It will verify the protocol and give you
various parameter values.
Good luck! It CAN be done! See the StarPort at http://www.dovesystems.com .
> -----Original Message-----
> From: pic microcontroller discussion list
> [.....PICLISTKILLspam@spam@MITVMA.MIT.EDU]On Behalf Of Harold M Hallikainen
> Sent: Saturday, January 03, 1998 14:02
> To: PICLISTKILLspamMITVMA.MIT.EDU
> Subject: Re: Transmitting DMX-512
> Welcome to the list!
> In transmitting DMX512 with a PIC (I do it with a 16c74a), it's
> kinda tricky to get the break timing right due to the double buffering of
> the transmit side of the uart. What I finally did is to use a timer
> interrupt instead of the uart interrupt. This way the uart transmits
I was wondering if you could send me the info yoy have on DMX512, protoc
specs, timing diagrams, schematics, hardware details, anything really.
Thanks for any info. TTYL