NS16C2552/NS16C2752雙UART芯片:特性、應(yīng)用與設(shè)計要點
在電子設(shè)計領(lǐng)域,UART(通用異步收發(fā)傳輸器)芯片是實現(xiàn)串行通信的關(guān)鍵組件之一。今天,我們將深入探討TI公司的NS16C2552和NS16C2752雙UART芯片,它們在性能、功能和應(yīng)用方面都有著獨特的優(yōu)勢。
文件下載:ns16c2752.pdf
芯片概述
NS16C2552和NS16C2752是雙通道通用異步接收器/發(fā)射器(DUART),與PC16552D在引腳和功能上兼容,但在此基礎(chǔ)上增加了許多新特性,如低電壓支持、5V容忍輸入、增強的寄存器集和更高的數(shù)據(jù)速率等。這兩款芯片的兩個串行通道相互獨立,僅共享一個CPU接口和晶體輸入。在電源開啟時,兩個通道的功能與PC16552D相同。
特性亮點
- 多功能輸出:允許使用更少的I/O引腳實現(xiàn)更多的封裝功能。
- 高數(shù)據(jù)傳輸速率:最高可達5 Mbit/s,滿足高速通信需求。
- 寬電壓范圍:工作電壓為2.97 V至5.50 V,增強了芯片的適應(yīng)性。
- 大容量FIFO:NS16C2552的收發(fā)FIFO為16字節(jié),NS16C2752則為64字節(jié),有效緩沖數(shù)據(jù),減少CPU處理負擔。
- 多種流控制方式:支持自動硬件流控制(Auto - CTS、Auto - RTS)和自動軟件流控制(Xon、Xoff、Xon - any),確保數(shù)據(jù)傳輸?shù)目煽啃浴?/li>
- 可編程特性:字符長度、奇偶校驗、停止位等均可編程,適應(yīng)不同的通信協(xié)議。
- 中斷控制:獨立控制和優(yōu)先化的發(fā)送和接收中斷,提高CPU處理效率。
- 紅外模式:集成IrDA v1.0兼容的紅外編碼器和解碼器,支持紅外通信。
引腳與接口
芯片的引腳分為并行總線接口、串行I/O接口、時鐘和復(fù)位、電源和地等幾類。下面我們重點介紹幾個關(guān)鍵接口:
并行總線接口
- 數(shù)據(jù)總線(D7 - D0):8位三態(tài)輸入/輸出線,實現(xiàn)UART與CPU之間的雙向通信,傳輸數(shù)據(jù)、控制字和狀態(tài)信息。
- 寄存器地址(A2 - A0):3個輸入引腳,用于選擇DUART寄存器,方便CPU進行讀寫操作。
- 芯片選擇(CS):低電平有效,選中芯片后,DUART與CPU之間的通信才能正常進行。
- 通道選擇(CHSL):用于選擇串行通道,1表示通道1,0表示通道2。
- 讀寫控制(RD、WR):分別控制寄存器數(shù)據(jù)的讀取和寫入操作。
串行I/O接口
- SIN、SOUT:串行輸入和輸出引腳,實現(xiàn)數(shù)據(jù)的串行傳輸。
- RI、CTS、DSR、DCD:MODEM控制輸入引腳,用于與MODEM或外設(shè)進行通信。
- DTR、RTS、OUT1、OUT2:MODEM控制輸出引腳,可根據(jù)需要進行配置。
時鐘和復(fù)位
- XIN、XOUT:外部晶體輸入和輸出引腳,與晶體組成反饋電路,為波特率發(fā)生器提供時鐘。
- MR:主復(fù)位引腳,高電平有效,可清除大部分寄存器。
寄存器設(shè)置
芯片包含兩個相同的寄存器集,分別用于兩個通道。通過對寄存器的配置,可以實現(xiàn)不同的功能。以下是一些重要寄存器的介紹:
接收緩沖寄存器(RBR)
用于存儲接收到的數(shù)據(jù),可通過讀取該寄存器獲取接收數(shù)據(jù)。
發(fā)送保持寄存器(THR)
CPU將發(fā)送數(shù)據(jù)寫入該寄存器,然后由UART進行發(fā)送。
中斷使能寄存器(IER)
用于使能不同類型的中斷,如接收數(shù)據(jù)可用中斷、發(fā)送保持寄存器空中斷等。
中斷識別寄存器(IIR)
記錄中斷的優(yōu)先級和狀態(tài),幫助CPU快速處理中斷。
FIFO控制寄存器(FCR)
用于啟用FIFO、清除FIFO、設(shè)置FIFO觸發(fā)級別和選擇DMA模式。
線路控制寄存器(LCR)
指定異步數(shù)據(jù)通信的格式,如字符長度、奇偶校驗、停止位等,還可設(shè)置除數(shù)鎖存訪問位(DLAB)。
波特率發(fā)生器
每個通道都有一個可編程的波特率發(fā)生器,可將輸入時鐘除以1至$2^{16}-1$的任意除數(shù),產(chǎn)生16X時鐘,驅(qū)動發(fā)送和接收部分。通過設(shè)置除數(shù)鎖存器(DLL和DLM),可以實現(xiàn)不同的波特率。
操作與配置
時鐘輸入
芯片內(nèi)置振蕩器,可接受標準晶體輸入,產(chǎn)生的時鐘頻率范圍為DC至24 MHz。每個通道都有獨立的可編程時鐘分頻器,因此可以設(shè)置不同的波特率。在使用外部晶體時,需要注意晶體的參數(shù)和負載電容的選擇。
復(fù)位
芯片具有上電復(fù)位功能,可適應(yīng)緩慢上升的電源。復(fù)位后,芯片的輸出狀態(tài)會恢復(fù)到默認值。
接收操作
接收部分包括一個8位接收移位寄存器(RSR)和一個16或64字節(jié)的FIFO。在FIFO模式下,可以根據(jù)FIFO指針的觸發(fā)級別產(chǎn)生中斷或請求DMA傳輸。同時,還支持硬件和軟件流控制,防止接收數(shù)據(jù)溢出。
發(fā)送操作
發(fā)送部分包括一個8位發(fā)送移位寄存器(TSR)和一個16或64字節(jié)的FIFO。在FIFO模式下,當Tx FIFO的空空間超過閾值時,會產(chǎn)生中斷或請求DMA傳輸。同樣,也支持硬件和軟件流控制,確保數(shù)據(jù)的可靠發(fā)送。
DMA操作
使用RXRDY和TXRDY信號可以實現(xiàn)更高效的直接內(nèi)存訪問(DMA)傳輸,減少CPU的處理負擔。在模式0下,每次RXRDY和TXRDY的有效信號會觸發(fā)一次單字節(jié)傳輸;在模式1下,可以進行塊傳輸。
紅外模式
通過設(shè)置MCR[6]為1,可以啟用紅外模式。在該模式下,SOUT在空閑狀態(tài)下為邏輯0,發(fā)送時會發(fā)送3/16位寬的脈沖,實現(xiàn)紅外通信。
設(shè)計注意事項
調(diào)試提示
- 檢查電源電壓是否在正常范圍內(nèi)。
- 核對引腳連接是否正確。
- 檢查PCB是否存在短路問題。
- 驗證時鐘輸入的頻率和電壓擺動。
- 確保復(fù)位信號正常。
- 使用內(nèi)部回環(huán)模式測試CPU接口。
- 檢查串行數(shù)據(jù)的輸入和輸出。
時鐘頻率精度
由于UART的發(fā)送和接收時鐘在不同的時鐘域,時鐘頻率的偏差可能會導(dǎo)致數(shù)據(jù)錯誤。因此,需要控制時鐘頻率的誤差在一定范圍內(nèi),以確保數(shù)據(jù)的正確恢復(fù)。一般來說,數(shù)據(jù)包長度越短,對時鐘誤差的容忍度越高。
晶體要求
- 晶體類型為并聯(lián)諧振、基頻。
- 頻率范圍為24 MHz。
- 負載電容為10 - 22 pF。
- 等效串聯(lián)電阻(ESR)為20 - 120 Ω。
- 頻率穩(wěn)定性在0至70°C范圍內(nèi)為100 ppm。
配置示例
以下是一些常見的配置示例,幫助你快速上手:
設(shè)置波特率
- LCR 0x03.7 = 1
- DLL 0x00.7:0 = DIV_L
- DLM 0x01.7:0 = DIV_M
- LCR 0x03.7 = 0
配置預(yù)分頻器輸出
- 保存LCR 0x03.7:0到臨時變量
- LCR 0x03.7:0 = 0xBF
- EFR 0x02.4 = 1
- LCR 0x03.7:0 = 0
- MCR 0x04.7 = 1(或0,根據(jù)需要選擇)
- LCR 0x03.7:0 = 0xBF
- EFR 0x02.4 = 0(可選)
- LCR 0x03.7:0 = 臨時變量
設(shè)置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大小、電源電壓、最高波特率、時鐘輸入頻率、工作溫度等方面都有明顯的優(yōu)勢。同時,還增加了許多增強功能,如睡眠模式、軟件和硬件自動流控制、紅外模式等。
總結(jié)
NS16C2552和NS16C2752是兩款功能強大的雙UART芯片,具有高數(shù)據(jù)速率、大容量FIFO、多種流控制方式等特點,適用于各種串行通信應(yīng)用。在設(shè)計過程中,需要注意時鐘頻率精度、晶體選擇和引腳連接等問題,通過合理配置寄存器,可以實現(xiàn)不同的功能需求。希望本文能為電子工程師們在使用這兩款芯片時提供一些幫助。你在使用UART芯片時遇到過哪些問題呢?歡迎在評論區(qū)分享你的經(jīng)驗和見解。
發(fā)布評論請先 登錄
NS16C2552/NS16C2752雙UART芯片:特性、應(yīng)用與設(shè)計要點
評論