Richard Bair

RS485:  9th Bit Protocol Implementation

Discussion created by Richard Bair on Mar 26, 2011
Latest reply on Mar 27, 2011 by Richard Bair

I'm using a MCF52259 and trying to implement a 9th bit protocol where there are broadcast messages (mark parity) where all units on the network process the message and then are unit specific messages (space parity).  I've done this on an 8051 but never on a ColdFire and am struggling a bit :smileyhappy:


The master is this case is a PC based application that can send in mark/space parity.  What I envision follows:


1) On a point to point network (PC and Product w/ ColdFire), a mark/broadcast command is sent which sets a serial number for the product.


2) Product w/ ColdFire is added to a network of units.


3) PC test applicaton sends a mark/broadcast command processed by all units w/ ColdFires on the network which already went through steps 1 and 2.  This command includes the serial number and a working network address.  The unit that matches the serial number accepts the working network address.


4) The PC test application then can can talk to ALL units on the network and send various commands by bursting the working, network address in mark parity (broadcast) two times.  The unit that matches the working, network address simply sets it parity to space parity.  The PC test application will of course send the unit specific command in space parity.  Ideally, this is only "heard" by the unit with the correct working, network address.


So, I've got this coded up but it doesn't seem to work reliabily.  What I've noticed is that the ISR seems to process regardless of parity?  Does this sound correct?  I've read a bit about multidrop mode but can't find any examples and it sounds like the ADRESS mode (PM=11 and PT=0) may not be allowed to send multiple bytes as in my broadcast messages above.


Any guidance, help or pointed to an app note would be much appreciated!