TI中文支持网
TI专业的中文技术问题搜集分享网站

TL16C752C使用1bit停止位连续接收数据时出现数据错位

       在使用TL16C752C连续接收数据时,在接收超过一定量数据后,会出现数据错位,状态字提示说是Frame Error。这一问题在发送方设置1bit停止位时总是出现,当设置为2bit停止位时就没问题。后来查看官网的资料时发现有一个勘误文档“Short STOP Bit Errata (Rev. A)”,里面说是停止位的实际持续时间比标准值小造成的。我们电路上使用的晶振是14.7456M,设置的波特率是921.6kbps,发送方的波特率是923.1kbps,波特率误差是0.16%,这么小的波特率误差应该没什么影响吧?

      另外,同样的电路,使用TL16C752D就没有这个问题。

     请问,如何使用TL16C752C实现1bit停止位的连续可靠通信?各位专家有没有好的解决方法?

Kailyn Chen:

您好,勘误文档正好说明了您的问题,这个是TL16C752C在使用短的停止位时遇到的问题。 

没有别的方法,要么改变晶振,要么改变分频系数divisor,使得停止位的实际持续时接近标准值,或者更大程度的减少二者之间的误差。 

或者使用TL16C752D, 出现frame error的几款分别位TL16C752C/TL16C754C/TL16C2752 。

user5859392:

回复 Kailyn Chen:

您好,谢谢您的回答。

按照勘误文档的说法,应该是分频误差才导致的这个问题。那么这个误差有没有一个可用范围?按照以前的经验,0.16%的分频误差已经非常小了,基本可以忽略了,要是这样的误差都不行的话,是不是可以推断即使分频误差为0时,TL16C752C也会有这个问题?或者说TL16C752C根本无法在1bit停止位时可靠通信?

另外,是不是使用TL16C752D就一定没有问题?不知道TI官方有没有明确的结论?

Kailyn Chen:

回复 user5859392:

通过勘误表,我们可以看到提高频率,相同分频系数下的分频误差就会越小,那既然分频误差已经做到这么小了,还会出现frame error的报错,我想为了保证稳定通讯,使用两个停止位或者其他解决方法。

TL16C752C的勘误表给出了两个解决方案:

1. Use 1.5 or 2 stop bits.

2. Decrease the reference clock divisor by 1 to make the received STOP bit appear longer

对于TL16C752D来说,确实没有遇到这个问题,也没有这颗芯片的勘误表介绍。 我认为是TL16C752C的升级版本,解决了这个问题。

您是一定要使用1bit 停止位吗?

赞(0)
未经允许不得转载:TI中文支持网 » TL16C752C使用1bit停止位连续接收数据时出现数据错位
分享到: 更多 (0)