主题中讨论的其他器件:MAX3243、 TM4C1294KCPDT、 TL16C554A
您好!
我使用的是 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 收到样片。
那么,您还需要我提供哪些信息?
如何查找问题或在哪里查找问题?
手动键入的逐字符不会带来任何问题-因此、在设置器件的寄存器或读取/写入时没有错误。
但是、当程序连续发送字符时、似乎存在一些计时问题。
帮助!
