NS16C2552/NS16C2752雙串口UART芯片深度剖析
在電子設計領域,UART(通用異步收發傳輸器)芯片是實現串行通信的關鍵組件。TI公司的NS16C2552和NS16C2752雙串口UART芯片,以其高性能和豐富的功能,在眾多應用場景中得到廣泛應用。本文將對這兩款芯片進行詳細解析,幫助電子工程師更好地理解和使用它們。
文件下載:ns16c2552.pdf
芯片概述
NS16C2552和NS16C2752是具有16字節/64字節FIFO的雙串口UART芯片,數據傳輸速率最高可達5 Mbit/s。它們與PC16552D在引腳和功能上兼容,同時增加了許多新特性,如低電壓支持、5V容忍輸入、增強型寄存器集和更高的數據速率等。芯片采用44 - PLCC或48 - TQFP封裝,工作電壓范圍為2.97 V至5.50 V,工業溫度范圍為 - 40°C至85°C。
特性亮點
- 多功能輸出:通過較少的I/O引腳實現更多的封裝功能,提高了芯片的集成度和靈活性。
- 雙獨立UART:兩個串行通道完全獨立,除了共享CPU接口和晶體輸入外,可獨立進行數據傳輸,適用于多通道通信需求。
- 高數據傳輸速率:最高可達5 Mbit/s的數據傳輸速率,滿足高速數據通信的要求。
- 低電壓支持:工作電壓范圍為2.97 V至5.50 V,降低了功耗,適用于電池供電的設備。
- 5V容忍I/O:在整個電源電壓范圍內,I/O引腳能夠容忍5V電壓,增強了芯片的兼容性。
引腳說明
芯片的引腳分為總線接口、串行I/O接口、時鐘和復位、電源和接地引腳等幾類。每個引腳的功能和作用都有明確的定義,以下是一些關鍵引腳的說明:
并行總線接口
- D7 - D0:數據總線,提供UART與CPU之間的雙向通信,用于傳輸數據、控制字和狀態信息。
- A2 - A0:寄存器地址,用于選擇DUART寄存器,供CPU進行讀寫操作。
- CS:芯片選擇,低電平有效,使能DUART與CPU之間的通信。
- CHSL:通道選擇,用于選擇要訪問的串行通道。
- RD:IO讀,在下降沿將寄存器數據放置在D7 - D0上,CPU可在上升沿讀取狀態信息或數據。
- WR:IO寫,在下降沿將數據放置在D7 - D0上,上升沿將數據鎖存到所選的DUART寄存器中。
串行I/O接口
- SIN:串行輸入,接收外部設備發送的串行數據。
- SOUT:串行輸出,向外部設備發送串行數據。
- RI:振鈴指示,用于檢測電話振鈴信號。
- MF:多功能引腳,可通過編程選擇OUT2、BAUDOUT或RXRDY等信號功能。
時鐘和復位
- XIN:外部晶體輸入,與XOUT配合形成反饋電路,為波特率發生器的振蕩器提供時鐘信號。
- XOUT:外部晶體輸出,與XIN配合形成反饋電路。
- MR:主復位,高電平有效,清除所有寄存器(除接收器緩沖區、發送器保持寄存器和除數鎖存器外)。
電源和接地
- VCC:電源輸入,工作電壓范圍為2.97 V至5.50 V。
- GND:接地引腳,提供參考地。
寄存器設置
芯片包含兩個相同的寄存器集,每個通道一個。寄存器的地址和控制引腳與寄存器選擇的關系在表1中進行了總結。以下是一些重要寄存器的功能說明:
接收緩沖區寄存器(RBR)
用于存儲接收到的數據,可通過該寄存器訪問接收器FIFO中的數據。
發送保持寄存器(THR)
用于存儲要發送的數據,是發送FIFO的輸入寄存器。
中斷使能寄存器(IER)
用于使能各種中斷源,每個中斷源可獨立控制,通過設置相應的位來啟用或禁用中斷。
中斷識別寄存器(IIR)
用于記錄中斷的優先級和來源,CPU讀取該寄存器時,可獲取最高優先級的待處理中斷信息。
FIFO控制寄存器(FCR)
用于啟用FIFOs、清除FIFOs、設置FIFO觸發級別和選擇DMA模式。
線路控制寄存器(LCR)
用于指定異步數據通信的格式,如數據位長度、停止位長度、奇偶校驗等,并設置除數鎖存器訪問位。
調制解調器控制寄存器(MCR)
用于控制與調制解調器或外設的接口,包括時鐘分頻選擇、紅外編碼器/解碼器選擇、Xon - Any功能啟用等。
線路狀態寄存器(LSR)
提供數據傳輸的狀態信息,如接收緩沖區是否有數據、發送器是否空閑、是否發生錯誤等。
調制解調器狀態寄存器(MSR)
提供調制解調器控制線路的當前狀態信息,以及狀態變化信息。
可編程波特率發生器
每個通道都有一個獨立的可編程波特率發生器,可將輸入時鐘除以1至(2^16 - 1)的任意除數,生成16X時鐘,驅動發送器和接收器部分。
操作與配置
時鐘輸入
芯片具有片上振蕩器,可接受標準晶體的并聯諧振和基頻信號。生成的時鐘提供給兩個UART通道,頻率范圍為DC至24 MHz。每個通道都有獨立的可編程時鐘分頻器,因此每個通道可以有不同的波特率。
復位
芯片具有片上上電復位功能,可適應緩慢上升的電源電壓。上電復位電路會將設備保持在復位狀態2^23個XIN時鐘周期。此外,還可以施加外部高電平復位信號。
接收器操作
每個串行通道包含一個8位接收移位寄存器(RSR)和一個16(或64)字節的接收FIFO。RSR使用16X時鐘作為定時源,在接收到起始位后,開始對數據進行采樣和驗證,將數據幀加載到RBR和接收FIFO中,并更新錯誤標簽。
發送器操作
發送器由一個8位發送移位寄存器(TSR)和一個16(或64)字節的發送FIFO組成。TSR以16X內部時鐘將數據移出,發送過程包括起始位、數據位、奇偶校驗位(如果啟用)和停止位。
硬件流控制
芯片支持RTS和CTS硬件流控制,可通過設置相應的寄存器位來啟用。RTS用于請求遠程設備暫停或恢復數據傳輸,CTS用于監控遠程接收器FIFO是否溢出,以暫停或恢復本地發送器的工作。
軟件XON/XOFF流控制
軟件流控制使用編程的Xon或Xoff字符來實現發送/接收流控制。當接收到的字符與編程的值匹配時,發送器會暫停操作,直到接收到Xon字符后恢復傳輸。
特殊字符檢測
當EFR[5] = 1時,UART可以檢測8位特殊字符。檢測到特殊字符后,會將其加載到FIFO中,并設置相應的標志位。
睡眠模式
為了降低功耗,芯片具有每個通道獨立的睡眠模式。當滿足一定條件時,通道可以進入睡眠模式,在檢測到特定事件時喚醒。
內部回環模式
芯片支持內部回環模式,可用于設計驗證和診斷故障。在回環模式下,發送的數據會從發送移位寄存器輸出循環到接收移位寄存器輸入,系統可以接收自己發送的數據。
DMA操作
使用RXRDY和TXRDY信號可以實現更高效的直接內存訪問(DMA)傳輸。DMA傳輸在CPU周期之間進行,節省了CPU處理帶寬。在模式0下,每次RXRDY和TXRDY的斷言會導致單次傳輸;在模式1下,可以進行塊傳輸,進一步提高傳輸效率。
設計注意事項
調試提示
在使用芯片時,如果設備出現異常,可按照以下步驟進行調試:
- 檢查電源電壓是否在工作范圍內。
- 檢查設備引腳連接是否與數據手冊一致。
- 檢查未焊接元件的印刷電路板(PCB)是否存在短路。
- 檢查設備時鐘輸入,使用示波器檢查晶體振蕩頻率。
- 確保復位信號為高電平有效,且正常情況下為低電平。
- 使用內部回環模式測試CPU主機接口,檢查接口時序。
- 如果回環模式正常,檢查串行數據輸出和輸入,可通過外部循環測試數據路徑的完整性。
時鐘頻率精度
在UART傳輸中,發送器時鐘和接收器時鐘運行在不同的時鐘域,本地振蕩器頻率和時鐘分頻器可能會引入波特率誤差。UART接收器的內部采樣時鐘是數據速率的16倍,通過合理設置時鐘和分頻器,可以確保數據的正確采樣和傳輸。
晶體要求
使用的晶體應滿足以下要求:
- 采用AT切割,并聯諧振。
- 基頻振蕩模式,頻率范圍為1至24 MHz。
- 頻率容差和漂移應滿足UART應用要求。
- 負載電容應與振蕩器電路的負載電容匹配,外部電容C1和C2用于調整負載電容。
配置示例
設置波特率
LCR 0x03.7 = 1
DLL 0x00.7:0 = DIV_L
DLM 0x01.7:0 = DIV_M
LCR 0x03.7 = 0
配置預分頻器輸出
Save LCR 0x03.7:0 in temp
LCR 0x03.7:0 = 0xBF
EFR 0x02.4 = 1
LCR 0x03.7:0 = 0
MCR 0x04.7 = 1
LCR 0x03.7:0 = 0xBF
EFR 0x02.4 = 0 (optional)
LCR 0x03.7:0 = temp
設置Xon和Xoff流控制
Save LCR 0x03.7:0 in temp
LCR 0x03.7:0 = 0xBF
Xon1 0x04.7:0 = VAL1
Xoff1 0x06.7:0 = VAL2
LCR 0x03.7:0 = temp
配置Tx/Rx FIFO閾值
Save LCR 0x03.7:0 in temp
LCR 0x03.7:0 = 0xBF
EFR 0x02.4 = 1
LCR 0x03.7:0 = 0
FCR 0x02.7:0 = VAL
LCR 0x03.7:0 = 0xBF
EFR 0x02.4 = 0 (optional)
LCR 0x03.7:0 = temp
Tx和Rx硬件流控制
Save LCR 0x03.7:0 in temp
LCR 0x03.7:0 = 0xBF
EFR 0x02.7:6 = 2'b11
EFR 0x02.4 = 1
LCR 0x03.7:0 = 0
IER 0x01.7:6 = 2'b11
MCR 0x04.1 = 1
LCR 0x03.7:0 = temp
Tx和Rx DMA控制
Save LCR 0x03.7:0 in temp
LCR 0x03.7:0 = 0
FCR 0x02.0 = 1
FCR 0x02.3 = 1
LCR 0x03.7:0 = temp
與PC16552D的差異
| 與PC16552D相比,NS16C2552和NS16C2752在多個方面具有優勢,如Tx和Rx FIFO大小、供電電壓范圍、最高波特率、最高時鐘輸入頻率、工作溫度范圍、增強型寄存器集、睡眠模式、軟件和硬件流控制、中斷源ID、Tx FIFO觸發級別選擇、IrDA v1.0模式和時鐘分頻器選擇等。具體差異如下表所示: | 特性 | PC16552D | NS16C2552 | NS16C2752 |
|---|---|---|---|---|
| Tx和Rx FIFO大小 | 16字節 | 16字節 | 64字節 | |
| 供電電壓 | 4.5V至5.5V | 2.97V至5.5V | 2.97V至5.5V | |
| 最高波特率 | 1.5Mbps | 5.0Mbps | 5.0Mbps | |
| 最高時鐘輸入頻率 | 24MHz | 80MHz | 80MHz | |
| 工作溫度 | 0 - 70℃ | - 40至85℃ | - 40至85℃ | |
| 增強型寄存器集 | 否 | 是 | 是 | |
| 睡眠模式IER[4] | 否 | 是 | 是 | |
| Xon, Xoff, 和Xon - Any軟件自動流控制 | 否 | 是 | 是 | |
| CTS和RTS硬件自動流控制 | 否 | 是 | 是 | |
| 中斷源ID在IIR中 | 3位 | 5位 | 5位 | |
| Tx FIFO觸發級別選擇FCR[5:4] | 1級 | 1級 | 4級 | |
| IrDA v1.0模式MCR[6] | 否 | 是 | 是 | |
| 時鐘分頻器1或4選擇MCR[7] | 否 | 是 | 是 |
總結
NS16C2552和NS16C2752雙串口UART芯片以其高性能、豐富的功能和良好的兼容性,為電子工程師提供了一個優秀的串行通信解決方案。通過深入了解芯片的特性、引腳功能、寄存器設置和操作配置,工程師可以充分發揮芯片的優勢,設計出更加穩定、高效的通信系統。在實際應用中,還需要注意調試技巧、時鐘頻率精度和晶體要求等方面的問題,以確保系統的可靠性和穩定性。希望本文能夠對電子工程師在使用NS16C2552和NS16C2752芯片時有所幫助。
各位工程師朋友,在使用這兩款芯片的過程中,你們遇到過哪些有趣的問題或者有什么獨特的應用經驗呢?歡迎在評論區分享交流!
發布評論請先 登錄
TL16C2552, pdf,datasheet
TL16C2752,pdf,datasheet
TL16C452--具有并行端口但沒有FIFO的雙路UART
TL16C2552 具有 16 字節 FIFO 的 1.8V 至 5V 雙路 UART
TL16C2752 具有 64 字節 FIFO 的雙路 UART
NS16C2552 具有 16 字節 FIFO 和高達 5 Mbit/s 數據速率的雙路 UART
NS16C2752 具有 64 字節 FIFO 和高達 5 Mbit/s 數據速率的雙路 UART
NS16C2552/NS16C2752雙通道UART數據表
NS16C2552/NS16C2752雙串口UART芯片深度剖析
評論