OpenCores

Back-to-back RX problems

Back to bugtracker overview.

Information:
Type :: IDEA
Status :: OPENED
Assigned to :: nobody

Description:
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.

Comments:
No comments yet...

Post a comment:
Login to post comments!

Back to bugtracker overview.

© copyright 1999-2012 OpenCores.org, equivalent to ORSoC AB, all rights reserved. OpenCores®, registered trademark.