OpenCores
Issue List
Back-to-back RX problems #1
Open tcdev opened this issue almost 14 years ago
tcdev commented almost 14 years ago

If you are receiving back-to-back characters, and the transmitter baud rate is slightly faster, you miss the start of the next START bit (by up to 1/16th of a bit period). The cumulative effect is that the synchronisation drifts further and further into the next character until you get RX errors.

Suggestion/fix: terminate the sampling when SampleCnt=9 and BitCnt=9 (this is what the Atmel micros do). Then you will be guaranteed not to miss the start of the next START bit.

eg. RXUnit.vhd:

-101: SampleCnt <= SampleCnt + CntOne; +101: SampleCnt <= "0000"; -108: elsif tmpSampleCnt = 15 then +108: elsif (tmpSampleCnt = 9 and tmpBitCnt = 9) or tmpSampleCnt = 15 then

This works for me in silicon.


Assignee
No one
Labels
Idea