This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TL16C752C:将 TL16C752B 替换为 TL16C752C 时发生奇偶校验错误。

Guru**** 2528170 points
Other Parts Discussed in Thread: TL16C752C

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1237548/tl16c752c-a-parity-error-is-happened-when-tl16c752b-is-replace-with-tl16c752c

器件型号:TL16C752C

大家好。

我的一个客户使用 TL16C752B 作为其当前产品的供应商、并使用了器件库存。
但库存将在几个月内耗尽。 因此、他们正在评估 TL16C752C 以替代 TL16C752B。

评估中。 在下列情况下发生了一个奇偶校验错误。
请你给我答复或任何柜台措施吗?
问:
我们正在评估当前生产电路板上的 TL16C752C 以替代 TL16C752B。
此时、当连续接收数据时会发生奇偶校验错误。
工作条件如下。
输入时钟19.6608MHz、4800bps、数据7位、偶校验、停止位1。

当波特率设置的内部分频值比当前值低-1时、
奇偶校验错误已经解决、并且从外部发送的数据已正确接收。

我们的问题如下。
1.对策(从当前除数值减1)是否正确?
2.为什么会发生奇偶校验错误?
3.过去有类似的情况吗?

当波特率更改为9600bps 时、未采取上述对策的情况下解决奇偶校验错误。

非常感谢您的答复。

此致、
和也。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kazuya:

    我将首先对 TL16C752B 提出问题。 客户是否评估了"B"版本的设备并使其正常工作? 当客户切换到"C"版本时、是否出现错误?

    Unknown 说:
    此时、当连续接收数据时发生奇偶校验错误。

    如果数据是间歇性的、此语句是否会改变? 数据是连续接收而不是以字节大小表示的这一事实是否会影响是否正确接收到数据而没有奇偶校验错误?  

    Unknown 说:
    1. 反措施(从当前除数值减1)是否正确?

    输入时钟= 19.6608MHz

    所需波特率= 4800bps

    假设 MCR[7]= 0、预分频器=1

    使用数据表中的公式:  

    分频值=(19.6608MHz / 1)/(4800 x 16)= 256

    需要对 DLL 和 DLH 寄存器进行编程以生成正确的波特率。  

    DLL = 0xFF = b11111111

    DLh = 0x00 = b00000000

    我们可以联系客户以读取 DLL 和 DLH 寄存器、看看这些除数寄存器是否设置正确吗?  

    从当前除数值递减1可能有效、因为除法稍微偏小、或者输入时钟晶体可能有一些变化。 它可能不会恰好达到19.6608MHz、因此减少除数可能解决该问题。  

    TL16C752C 具有短停止位勘误表。 例如、如果波特率为9600、那么单个停止位的长度为104us。 如果发送器发送一个持续时间为98uS 的停止位、这可能会使 TL16C752C 错过后续的起始位。  

    要解决此问题、请尝试让客户将停止位的数量从1更改为1.5或2个停止位。 查看更改停止位的数量是否解决了除数递减-1时出现的问题。  

    Unknown 说:
    2. 为什么发生奇偶校验错误?

    当发送器发送了一个接收器未正确接收的数据字节时、会发生奇偶校验错误。 因此、奇偶校验错误会在数据传输中至少检查1个损坏的位。  

    Unknown 说:
    3. 过去是否有类似的案例?

    我在过去没有见过类似的案件。  

    Unknown 说:
    将波特率更改为9600bps 时,在没有上述对策的情况下解决了奇偶校验错误。

    不知道为什么提高速度可以解决问题。 在这里、对4800bps 和9800bps 的数据线路的示波器捕获可能对于分析问题有所帮助。  

    此致、

    泰勒

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Tyler:

    非常感谢您的答复。
    我的答复如下。

    您的问题1:客户是否评估了设备的"B"版本并使其正常工作?
                  当客户切换到"C"版本时、是否出现错误?

    ->在"B"版本的情况下通信没有问题。
      当客户切换到"C"版本时、出现错误。 但客户同时切换了 RS232C 驱动器。
      在这两种情况下、它们都没有更改任何控制器程序。  

    您的问题2:它可能不会正好是19.6608MHz、因此降低除数可能可以解决该问题。

    ->  准确的时钟是19.6608MHz。 时钟由晶体 振荡器生成。

    问题3:尝试让客户将停止位的数量从1更改为1.5或2。
                 查看更改停止位的数量是否解决了除数递减-1时出现的问题。  

    ->他们会在几天内确认。

    它们的 DLH/DLL 寄存器值与您写入的值不同。
      您的设置:  DLh = 0x00 = b00000000、DLL = 0xFF = b11111111
      其设置:  DLh = 0x01 = b00000001、 DLL = 0x00 = b00000000
      此时、他们有一个问题。

      问:我们可以理解、除数必须是256。 但我们无法理解应设置 DLh = 0x00、 DLL = 0xFF 时的除数寄存器。
        它是255d 而非256D。 为什么我们需要为256个分频系数设置255d? 器件数据表中是否提供了任何说明?

    您可以给我答复吗?

    再次感谢大家、此致、
    和也。
      

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kazuya:

    在"B"版本的情况下通信没有问题。
      当客户切换到"C"版本时、出现错误。 但客户同时切换了 RS232C 驱动器。
      在这两种情况下、它们都没有更改任何控制器程序。  [/报价]

    我仔细检查了一下更改为"C"版本是否是问题、但由于 RS232C 驱动程序同时更改、我们不能确定"C"版本是问题的罪魁祸首。  

    -->时钟  的频率恰好是19.6608MHz。 时钟由晶体 振荡器生成。

    如何测量?  

      Q.我们可以理解,除数必须是256。 但我们无法理解应设置 DLh = 0x00、 DLL = 0xFF 时的除数寄存器。
        它是255d 而非256D。 为什么我们需要为256个分频系数设置255d? 设备数据表中是否有任何解释?

    计算错误。 设置 DLh = 0x01且 DLL = 0x00。 100hex = 256十进制、因此它们的除数是正确的。  

    等待客户发现增加停止位的长度。 也可以通过一些示波器捕获来确认这一点。

    此致、

    泰勒

    [/quote]