NS16C2552/NS16C2752双UART芯片:特性、应用与设计要点

电子说

1.4w人已加入

描述

NS16C2552/NS16C2752双UART芯片:特性、应用与设计要点

在电子设计领域,UART(通用异步收发传输器)芯片是实现串行通信的关键组件之一。今天,我们将深入探讨TI公司的NS16C2552和NS16C2752双UART芯片,它们在性能、功能和应用方面都有着独特的优势。

文件下载:ns16c2752.pdf

芯片概述

NS16C2552和NS16C2752是双通道通用异步接收器/发射器(DUART),与PC16552D在引脚和功能上兼容,但在此基础上增加了许多新特性,如低电压支持、5V容忍输入、增强的寄存器集和更高的数据速率等。这两款芯片的两个串行通道相互独立,仅共享一个CPU接口和晶体输入。在电源开启时,两个通道的功能与PC16552D相同。

特性亮点

  • 多功能输出:允许使用更少的I/O引脚实现更多的封装功能。
  • 高数据传输速率:最高可达5 Mbit/s,满足高速通信需求。
  • 宽电压范围:工作电压为2.97 V至5.50 V,增强了芯片的适应性。
  • 大容量FIFO:NS16C2552的收发FIFO为16字节,NS16C2752则为64字节,有效缓冲数据,减少CPU处理负担。
  • 多种流控制方式:支持自动硬件流控制(Auto - CTS、Auto - RTS)和自动软件流控制(Xon、Xoff、Xon - any),确保数据传输的可靠性。
  • 可编程特性:字符长度、奇偶校验、停止位等均可编程,适应不同的通信协议。
  • 中断控制:独立控制和优先化的发送和接收中断,提高CPU处理效率。
  • 红外模式:集成IrDA v1.0兼容的红外编码器和解码器,支持红外通信。

引脚与接口

芯片的引脚分为并行总线接口、串行I/O接口、时钟和复位、电源和地等几类。下面我们重点介绍几个关键接口:

并行总线接口

  • 数据总线(D7 - D0):8位三态输入/输出线,实现UART与CPU之间的双向通信,传输数据、控制字和状态信息。
  • 寄存器地址(A2 - A0):3个输入引脚,用于选择DUART寄存器,方便CPU进行读写操作。
  • 芯片选择(CS):低电平有效,选中芯片后,DUART与CPU之间的通信才能正常进行。
  • 通道选择(CHSL):用于选择串行通道,1表示通道1,0表示通道2。
  • 读写控制(RD、WR):分别控制寄存器数据的读取和写入操作。

串行I/O接口

  • SIN、SOUT:串行输入和输出引脚,实现数据的串行传输。
  • RI、CTS、DSR、DCD:MODEM控制输入引脚,用于与MODEM或外设进行通信。
  • DTR、RTS、OUT1、OUT2:MODEM控制输出引脚,可根据需要进行配置。

时钟和复位

  • XIN、XOUT:外部晶体输入和输出引脚,与晶体组成反馈电路,为波特率发生器提供时钟。
  • MR:主复位引脚,高电平有效,可清除大部分寄存器。

寄存器设置

芯片包含两个相同的寄存器集,分别用于两个通道。通过对寄存器的配置,可以实现不同的功能。以下是一些重要寄存器的介绍:

接收缓冲寄存器(RBR)

用于存储接收到的数据,可通过读取该寄存器获取接收数据。

发送保持寄存器(THR)

CPU将发送数据写入该寄存器,然后由UART进行发送。

中断使能寄存器(IER)

用于使能不同类型的中断,如接收数据可用中断、发送保持寄存器空中断等。

中断识别寄存器(IIR)

记录中断的优先级和状态,帮助CPU快速处理中断。

FIFO控制寄存器(FCR)

用于启用FIFO、清除FIFO、设置FIFO触发级别和选择DMA模式。

线路控制寄存器(LCR)

指定异步数据通信的格式,如字符长度、奇偶校验、停止位等,还可设置除数锁存访问位(DLAB)。

波特率发生器

每个通道都有一个可编程的波特率发生器,可将输入时钟除以1至$2^{16}-1$的任意除数,产生16X时钟,驱动发送和接收部分。通过设置除数锁存器(DLL和DLM),可以实现不同的波特率。

操作与配置

时钟输入

芯片内置振荡器,可接受标准晶体输入,产生的时钟频率范围为DC至24 MHz。每个通道都有独立的可编程时钟分频器,因此可以设置不同的波特率。在使用外部晶体时,需要注意晶体的参数和负载电容的选择。

复位

芯片具有上电复位功能,可适应缓慢上升的电源。复位后,芯片的输出状态会恢复到默认值。

接收操作

接收部分包括一个8位接收移位寄存器(RSR)和一个16或64字节的FIFO。在FIFO模式下,可以根据FIFO指针的触发级别产生中断或请求DMA传输。同时,还支持硬件和软件流控制,防止接收数据溢出。

发送操作

发送部分包括一个8位发送移位寄存器(TSR)和一个16或64字节的FIFO。在FIFO模式下,当Tx FIFO的空空间超过阈值时,会产生中断或请求DMA传输。同样,也支持硬件和软件流控制,确保数据的可靠发送。

DMA操作

使用RXRDY和TXRDY信号可以实现更高效的直接内存访问(DMA)传输,减少CPU的处理负担。在模式0下,每次RXRDY和TXRDY的有效信号会触发一次单字节传输;在模式1下,可以进行块传输。

红外模式

通过设置MCR[6]为1,可以启用红外模式。在该模式下,SOUT在空闲状态下为逻辑0,发送时会发送3/16位宽的脉冲,实现红外通信。

设计注意事项

调试提示

  • 检查电源电压是否在正常范围内。
  • 核对引脚连接是否正确。
  • 检查PCB是否存在短路问题。
  • 验证时钟输入的频率和电压摆动。
  • 确保复位信号正常。
  • 使用内部回环模式测试CPU接口。
  • 检查串行数据的输入和输出。

时钟频率精度

由于UART的发送和接收时钟在不同的时钟域,时钟频率的偏差可能会导致数据错误。因此,需要控制时钟频率的误差在一定范围内,以确保数据的正确恢复。一般来说,数据包长度越短,对时钟误差的容忍度越高。

晶体要求

  • 晶体类型为并联谐振、基频。
  • 频率范围为24 MHz。
  • 负载电容为10 - 22 pF。
  • 等效串联电阻(ESR)为20 - 120 Ω。
  • 频率稳定性在0至70°C范围内为100 ppm。

配置示例

以下是一些常见的配置示例,帮助你快速上手:

设置波特率

- LCR 0x03.7 = 1
- DLL 0x00.7:0 = DIV_L
- DLM 0x01.7:0 = DIV_M
- LCR 0x03.7 = 0

配置预分频器输出

- 保存LCR 0x03.7:0到临时变量
- LCR 0x03.7:0 = 0xBF
- EFR 0x02.4 = 1
- LCR 0x03.7:0 = 0
- MCR 0x04.7 = 1(或0,根据需要选择)
- LCR 0x03.7:0 = 0xBF
- EFR 0x02.4 = 0(可选)
- LCR 0x03.7:0 = 临时变量

设置Xon和Xoff流控制

- 保存LCR 0x03.7:0到临时变量
- LCR 0x03.7:0 = 0xBF
- Xon1 0x04.7:0 = VAL1
- Xoff1 0x06.7:0 = VAL2
- LCR 0x03.7:0 = 临时变量

与其他UART的比较

与PC16552D相比,NS16C2552和NS16C2752在FIFO大小、电源电压、最高波特率、时钟输入频率、工作温度等方面都有明显的优势。同时,还增加了许多增强功能,如睡眠模式、软件和硬件自动流控制、红外模式等。

总结

NS16C2552和NS16C2752是两款功能强大的双UART芯片,具有高数据速率、大容量FIFO、多种流控制方式等特点,适用于各种串行通信应用。在设计过程中,需要注意时钟频率精度、晶体选择和引脚连接等问题,通过合理配置寄存器,可以实现不同的功能需求。希望本文能为电子工程师们在使用这两款芯片时提供一些帮助。你在使用UART芯片时遇到过哪些问题呢?欢迎在评论区分享你的经验和见解。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • 热点推荐

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分