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