微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > TL16C554诡异的接收失败

TL16C554诡异的接收失败

时间:10-02 整理:3721RD 点击:

使用8M晶振作为时钟 设置9600波特率,发送没有任何问题,接收有如下的问题:

1.数据不正常 比如发送0x70-0x79 接收到的数据是可能是0x70 0x71 0x72 0x72 0x74 0x74 0x76 0x78 0x78 0x79这样的 每次不一样 但是高4个字节正常 低4个字节不对,数据个数也是对的,使用回环进行测试过,所以不是波特率不准确的问题。

2.缓冲区FIFO少数据,如果我一次性发送16字节的数据,接收到的最后一个数据变成0x00,相当于只有15个字节的缓冲区。

有官方人员可以解答一下这样的问题怎么解决吗 谢谢

你好,

关于你的问题1,不是很理解。你每次发送的数据是0x70~0x79中的固定一个数据,还是每次发送数据也不一样?方便提供一下相关电路的原理图以便于更好的理解?

谢谢

您好 

题目的意思是 我使用外部回环 将16C554的TX 和RX 相连接 发送时依次放入FIFO10个数据 依次是 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 然而 通过读取接收FIFO 得到的部分数据有错误 

后来又经过反复测试现象总结为以下几点

1.读写SCR寄存器无任何错误,说明读写寄存器的操作是没有问题的

2.使用外部的TTL转USB工具通过电脑观察 TX引脚发送的数据 无任何问题 说明串口发送的功能是没有问题的

3.这个问题在TL16C554的4个通道均会出现

4.我们的PCB上共使用两块TL16C554 他们出现数据错误的频率有差异 其中一块出现问题的概率比较低 他们的数据线D0-D7都连接至相同的数据总线上,通过CS片选

5.如果一次性发送16个数据进TL16C554的 其FIFO最后一位经常读取为0x00

6.若禁用FIFO功能,发送接收均一切正常!

另外是否可以留下联系方式 以便我们更加详细的描述问题 谢谢!

你好,麻烦提供下下面的配置文件

Please share the configuration you used in both channels and the error codes you get on the line status register.
谢谢

Write(LCR,0x80);

Write(LDL,(u8)BAUD_9600);

Write(MDL,(u8)(BAUD_9600 >> 8));

Write(LCR,0x03);

Write(FCR,0x07);

Write(LCR,0x01);

 

有数据接收时LSR 0x61

无数据接收时LSR 0x60

从LSR看不出任何问题,另外使用NXP的替代芯片SC16C554之后无任何问题。

是否可能此批TL16C554有瑕疵致使FIFO功能异常?

你好,

为了更好地理解你的问题,请提供当问题复现时的初始化中下面寄存器的数值,也麻烦确认你的初始化顺序是否与下面的相同。

Register

Address

Value

RHR

0x0;

 

 THR

0x0;

 

 DLL

0x0;

 

 IER

0x1;

 

 DLH

0x1;

 

 FCR

0x2;

 IIR

0x2;

 

 LCR

0x3;

 MCR

0x4;

 

 LSR

0x5;

 

 MSR

0x6;

 

SCR

0x7;

 

同时,麻烦提供一下原理图,导出PDF格式。

附件是一个启用loopback mode的代码案例。
5047.UARTLOOP - Copy.Cpp

我的邮箱是 ted.xu@ti.com。

谢谢

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top