ASYNC Data Communication
David Huisman email (remove spam text)
I assume that you are not using an on-board UART (as this would do the
multiple sampling for you).
If you are bit-bashing the Comms on the mains, you can sample the pin 3
times at the centre point of each BIT period and if 2 of the 3 samples are
at the same level then use this as your detected level. The sample rate
could be about 8 times higher than the Bit rate.
Check the data on the TDA5051 and make sure it can tolerate long runs of
"1's" and "0's". Standard NRZ format asynch data can be high or low for 8
bit periods (13.3ms @ 600 Baud).
If the IC cannot tolerate this then change the data format to Manchester
Encoded. You can approximate this in software by sending the Bit in each
byte followed by it's complement. This results in 2 bytes being sent per
data byte but the DC average per word is 50%.
Also, ensure you use some form of packet structure. ie. Preamble, Synch,
Data, CRC. And if comms is bi-directional then wait for ack from remote node
and resend if no ack within timeout period. If comms is unidirectional then
send packet 3 times.
http://www.piclist.com#nomail Going offline? Don't AutoReply us!
email mitvma.mit.edu with SET PICList DIGEST in the body listserv
See also: www.piclist.com/techref/microchip/memory.htm?key=data
You must be a member of the
piclist mailing list
(not only a www.piclist.com member) to post to the