Anne Ogborn wrote: > > Since it's likely that my incoming data will be 180 deg phase inverted, > I'm using a different scheme to transmit data. > > I transmit 500 uSec of '+1' followed by 500uSec of '-1' for > a 1. I transmit 250uSec of '+1' followed by 250uSec of '-1' for > a 0. > > Then I just send bits - I check some 380 uSec after seeing a positive > transition and if the pin is 1, it's a 1. > > I transmit about 1K of data, which ends with a CRC. After recording the unit r esets. > > Sooo... my question is, anybody have any opinions on the advisability > of making some sort of sync pulse every 8 or 16 bits? > > It's a 1 way channel, so I really > can't do a retransmit request, hence complex error detection is > irrelevant. If the CRC (16 bit) doesn't match, I flash an LED and > the user tries again. Well, it looks like you already have the clock included into the data itself, why not use it? You have a 0 to 1 transition for every bit sent... if instead of 250us of -1 for a 0 you hold it for 750us, you will ahve a bit for each 1ms, and the 0 to 1 transition will happens always for each bit, 0 or 1, it could resync your receiver for every bit received. There is another easy way, the old NRZ/NRZI, just make a transition from 0 to 1 for bits 1 and a transition com 1 to 0 for bits 0, so your receiver would work in edge sensitive mode, expecting it in a narrowed window time (to avoid noise). Using this technique you transmit embedded clock, and can increase speed and see what happens. Wagner