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.

[参考译文] TL16C754C:300、N、8、1时的误差以及 E、7、1时的任何波特率的误差

Guru**** 2534260 points
Other Parts Discussed in Thread: MAX3243, TM4C1294KCPDT, TL16C554A

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/812209/tl16c754c-errors-at-300-n-8-1-and-errors-at-any-baud-rate-with-e-7-1

器件型号:TL16C754C
主题中讨论的其他器件:MAX3243TM4C1294KCPDTTL16C554A

您好!

我使用的是 TL16C754CPM 器件、其中通道 A 和 B 将连接到 DB9连接器(通过 MAX3243)、通道 C 和 D 将连接到 TI TM4C1294KCPDT 串口转以太网器件的两个 UART 通道。 16C754器件由 PIC16F887器件控制。

在反复尝试解决错误问题后、为了尽可能简化设置、我现在准备好了、以便在通道 B 上接收数据并在通道 A 上发送数据

通道 A 和 B 直接连接到2台不同计算机上的串行端口。

我仅使用轮询模式、没有任何中断。

PIC 的指令周期时间为325ns (12.288MHz)、16C754使用6.144MHz 晶体。

超级终端在两台计算机上都运行、两台计算机和两个通道 A 和 B 都设置为相同的波特率、奇偶校验、停止位等

我将数据从 PC-1发送到通道 B、PIC 从通道 B 读取数据并写入通道 A、该通道由 PC-2接收并显示在超级终端屏幕上。

当我们手动键入数据时-按住一个键以连续重复发送同一个键-在任何波特率或奇偶校验/ 7或8位/停止位组合下、我们都不会遇到任何错误。

在 PC-1上键入的任何内容都将显示在 PC-2上,不会出现任何错误。

但是、当我们使用程序发送一行字符(最多30个)时、问题就会开始。

错误开始出现在300、N、8、1、而1200、N、8、1到19200、N、8、1工作时没有任何错误。 (我们只需要300到19200年的数据)

当使用7位和奇偶校验时、任何波特率都会出现错误。

DLL / DLH / LCR 的设置是正确的、通过读取所有寄存器来验证。

无论在4种设置中的任何一种情况下禁用 RX FIFO 还是启用触发电平、结果都是相同的。

选项1是从通道 B 读取、逐字节写入通道 A -结果与上述相同

选项2是从通道 B 读取、存储在存储器中、直到超时(无数据)大约0.5秒、然后从存储器读取并在通道 A 上发送这些字符-结果与上述相同。

已更换 TL16C754CPM 器件-结果相同。 这些 TL16C754CPM 器件直接从 TI 收到样片。

那么,您还需要我提供哪些信息?

如何查找问题或在哪里查找问题?

手动键入的逐字符不会带来任何问题-因此、在设置器件的寄存器或读取/写入时没有错误。

但是、当程序连续发送字符时、似乎存在一些计时问题。

帮助!

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

    您好 Shashidhar、

    您能告诉我使用较低波特率时看到的确切错误是什么吗? (例如、您在 CHB 上接收到0xAA、并期望在 CHA 上发送0xAA、而是发送0xAB)

    您是否能够测量 PC1、PC2和我们的器件的发送和接收数据的位周期? 我们可能希望了解每侧的波特率有多大不同、并修改 UART 器件以使其更精确到 PC、反之亦然。

    您是否尝试添加2个停止位而不是1? 我之所以提出这一问题、是因为该器件确实有停止位勘误表:

    谢谢、

    -Bobby

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

    您好、Bobby、

    是的、300波特的2个停止位工作正常。

    此外、在对所有组合进行更彻底的测试后、我们发现所有奇偶校验和数据/停止位组合在19200波特到1200波特之间也能正常工作。

    但是、我发现即使在300、N、8、1处出现错误、也没有设置任何错误标志。

    我现在知道出现错误的原因,但要求我们的客户使用2个停止位而不是1对我们来说不是一个选择!

    对于波特率/奇偶校验/数据和停止位组合、TL16C554A 是否有任何类似或其他类似的问题?

    谢谢

    Shashi

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

    Shashi、您好!

    "TL16C554A 在波特率/奇偶校验/数据和停止位组合方面是否存在任何类似或其他问题?"

    这对我们来说是一个棘手的问题。 我不知道旧器件的历史记录。

    我的理解是554A 与754C 不具有相同的知识产权、因此我认为它与 C 版本不存在相同的组帧问题。

    因为 C 版本存在组帧/同步问题。 您是否可以使 C 版本的波特率稍快一点以降低同步位上的时序? (将 DLL 值减少1或2)?

    谢谢、

    -Bobby

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

    您好、Bobby、

    我们将器件更改为 TL16CP554A、但没有发现任何问题!

    因此、我们将开始使用554A 而不是754C 器件。