Searching \ for 'DMX512 Break' in subject line. ()
Make payments with PayPal - it's fast, free and secure! Help us get a faster server
FAQ page: www.piclist.com/techref/displays.htm?key=dmx
Search entire site for: 'DMX512 Break'.

Truncated match.
PICList Thread
'DMX512 Break'
1999\10\26@123314 by Jerry

flavicon
face
<x-flowed>I'm attempting a design on a DMX512 receiver.  DMX is a protocol used in
stage lighting control systems.  It is asynchronous serial, 1 start, 8
data, and 2 stop, no parity, 250kbaud.  A packet of up to 512 8bit dimmer
values is preceded by a break character, specified as between 88uS and 1
second.

This design will be using the 17C43 or 44.  I have a couple thoughts on
detecting the break.  I have seen a few posts here on the subject, and I
have some questions.  If I use the framing error bit to detect the break,
how will I know if I have a real framing error?  I thought about
programming a 12C5xx to just look for a 88uS low, and then issue an
'interrupt' to the 17C43....but this sounds like overkill to me.

I did one of these on an 8051, and I looked for a null character with the
9th bit (1st stop bit) a zero.  I can't seem to get that concept to work on
a PIC.

BTW, clock is 32MHZ

Thanks for any info out there...

Jerry Musselman                         spam_OUTjamTakeThisOuTspamameslab.gov
Electronics Technician                  office:(515)294-7906
258 MD Bldg                                     fax   : (515)294-0568
Ames Laboratory, ISU                    ESG / Electronics

</x-flowed>

1999\10\26@124443 by Harold M Hallikainen

picon face
On Tue, 26 Oct 1999 11:21:31 -0600 Jerry <.....jamKILLspamspam@spam@AMESLAB.GOV> writes:
>I'm attempting a design on a DMX512 receiver.  DMX is a protocol used in
>stage lighting control systems.  It is asynchronous serial, 1 start, 8
>data, and 2 stop, no parity, 250kbaud.  A packet of up to 512 8bit
dimmer
>values is preceded by a break character, specified as between 88uS and 1
>second.
>
>This design will be using the 17C43 or 44.  I have a couple thoughts on
>detecting the break.  I have seen a few posts here on the subject, and I
>have some questions.  If I use the framing error bit to detect the
break,
>how will I know if I have a real framing error?  I thought about
>programming a 12C5xx to just look for a 88uS low, and then issue an
>'interrupt' to the 17C43....but this sounds like overkill to me.
>

       I've done several products using the 16c74 to receive (and
transmit) DMX.  I just watch for the framing error flag to be set.  As to
how can you tell if you get a "real framing error", you can't...  Though
I GUESS something like this could be done...

       On detecting FE, check to see if all data bits of the received
character are low.  If so, say it's a break and start checking for the
start code (typically 0x00).
       If you detect an FE and all the bits of the received character
are not low, assume it's an error and abort the reception of the packet
(good ol' state machines!).  Continue to wait for a VALID break (FE with
0x00 received character), then move on to waiting for the start code.

       As I said, just wait for FE and assume its a break.  If you're
received DMX is so bad that you get framing errors that are not breaks,
you're probably gonna have lotsa flickering lights no matter what you do.


Harold


Harold Hallikainen
haroldspamKILLspamhallikainen.com
Hallikainen & Friends, Inc.
See the FCC Rules at http://hallikainen.com/FccRules and comments filed
in LPFM proceeding at http://hallikainen.com/lpfm

___________________________________________________________________
Get the Internet just the way you want it.
Free software, free e-mail, and free Internet access for a month!
Try Juno Web: dl.http://www.juno.com/dynoget/tagj.

1999\10\26@125107 by Don Hyde

flavicon
face
I've just been working with break detection using a 16C63A, and ran into
some surprises.  I am not certain whether the USART on the 17Cxx's are the
same as the 16Cxx's (Microchip usually reuses designs as much as possible,
though sometimes a later-designed chip will incorporate some improvements).

On the framing error bit, the docs say that it is reset after reception of a
valid character, and reading RCREG.  It seems to mean exactly that.  It
stays set until there is a valid data byte in RCREG.  You don't get any more
interrupts until there is a valid character in RCREG.  Reading RCREG when
the framing error bit is set does not yield the all-zeroes byte you would
expect.

So, you can probably assume you got a break character for at least one
character time whenever you see FERR, but there doesn't seem to be any easy
way to double-check it other than reading the serial input line yourself and
looping to make sure it stays low for a while.

Does anybody know any better break detection method?  Are all the USART's
alike in this respect?  How about the new USARTS with the 9th-bit stuff for
RS485?

> {Original Message removed}

1999\10\26@231628 by Kelly J Kohls

picon face
Jerry,

> I can't seem to get that concept to work on a PIC.

It can be done, have a look at my homepage: http://www.qsl.net/n5tle/

Kelly Kohls, N5TLE
Dallas, TX
Email:  .....kkohlsKILLspamspam.....juno.com  OR  EraseMEn5tlespam_OUTspamTakeThisOuTqsl.net
Website:  http://www.qsl.net/n5tle/

___________________________________________________________________
Get the Internet just the way you want it.
Free software, free e-mail, and free Internet access for a month!
Try Juno Web: dl.http://www.juno.com/dynoget/tagj.

More... (looser matching)
- Last day of these posts
- In 1999 , 2000 only
- Today
- New search...