Back-to-back RX problems
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!
