PIC24F 系列参考手册第 21 章UART讲解.docx
- 文档编号:8890518
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:42
- 大小:116.53KB
PIC24F 系列参考手册第 21 章UART讲解.docx
《PIC24F 系列参考手册第 21 章UART讲解.docx》由会员分享,可在线阅读,更多相关《PIC24F 系列参考手册第 21 章UART讲解.docx(42页珍藏版)》请在冰豆网上搜索。
PIC24F系列参考手册第21章UART讲解
21
UART第21章UART
目录
本章包括下列主题:
21.1
21.2
21.3
21.4
21.5
21.6
21.7
21.8
21.9
21.10
21.11
21.12
21.13
21.14
21.15
21.16
21.17
21.18简介............................................................................................................................21-2控制寄存器.................................................................................................................21-3UART波特率发生器(BRG)....................................................................................21-9UART配置...............................................................................................................21-13UART发送器............................................................................................................21-14UART接收器............................................................................................................21-18使用UART进行9位通信.........................................................................................21-21接收间隔字符............................................................................................................21-23初始化......................................................................................................................21-23UART的其他特性.....................................................................................................21-25在CPU休眠和空闲模式下的UART操作.................................................................21-27UxCTS和UxRTS控制引脚的操作...........................................................................21-29红外线支持...............................................................................................................21-31与UART模块相关的寄存器.....................................................................................21-34电气规范...................................................................................................................21-35设计技巧...................................................................................................................21-36相关应用笔记............................................................................................................21-37版本历史...................................................................................................................21-38
©2007MicrochipTechnologyInc.超前信息DS39708A_CN第21-1页
PIC24F系列参考手册21.1简介
通用异步收发器(UniversalAsynchronousReceiverTransmitter,UART)模块是PIC24F器件系列提供的串行I/O模块之一。
UART是可以与外设器件和个人电脑(使用RS-232、RS-485、LIN1.2和IrDA®等协议)通信的全双工异步通信通道。
模块还通过UxCTS和UxRTS引脚支持硬件流控制选项,并且还包含有IrDA编码器和解码器。
UART模块的主要特性有:
•
•
••
•
•
•
•
•
•
•
•
•通过UxTX和UxRX引脚进行全双工8位或9位数据传输偶、奇或无奇偶校验选项(对于8位数据)一或两个停止位硬件自动波特率特性通过UxCTS和UxRTS引脚支持硬件流控制选项完全集成的具有16位预分频器的波特率发生器(BaudRateGenerator)16MIPS时,波特率范围为1Mbps到15bps4级深度先进先出(First-In-First-Out,FIFO)发送数据缓冲器4级深度FIFO接收数据缓冲器奇偶校验、帧和缓冲器溢出错误检测支持带地址检测的9位模式(第9位=1)发送和接收中断用于诊断支持的环回(Loopback)模式
•IrDA编码器和解码器逻辑
•LIN1.2协议支持•用于支持IrDA编码器/解码器的16倍频波特率时钟输出
注:
每个不同的PIC24F器件可能具有一个或多个UART模块。
在引脚、控制/状态位
和寄存器的名称中使用的“x”表示特定的模块。
更多详细信息,请参见具体器件数据手册。
图21-1所示为UART的简化框图。
UART模块由以下主要硬件元件组成:
•波特率发生器
•异步发送器
•异步接收器图21-1:
UART简化框图
波特率发生器
IrDA®BCLKx
硬件流控制UxRTS
UxCTS
UARTx接收器UxRX
UARTx发送器UxTX
DS39708A_CN第21-2页超前信息©2007MicrochipTechnologyInc.
第21章UART
21.2
控制寄存器
21
UART
寄存器21-1:
R/W-0UARTENbit15
R/W-0WAKEbit7图注:
R=可读位-n=POR值bit15
UxMODE:
UARTx模式寄存器R/W-0UFRZ
R/W-0USIDL
R/W-0IREN
R/W-0RTSMD
R/W-0ALTIOR/W-0UEN1
R/W-0UEN0
bit8
R/W-0LPBACK
R/W-0ABAUD
R/W-0RXINV
R/W-0BRGH
R/W-0PDSEL1
R/W-0PDSEL0
R/W-0STSEL
bit0
W=可写位1=置1
U=未实现位,读为00=清零
x=未知
bit14
UARTEN:
UARTx使能位
1=UARTx使能;UEN<1:
0>和UTXEN控制位定义了UARTx如何控制UARTx引脚。
0=UARTx禁止;UARTx引脚由相应的PORT、LAT和TRIS位控制。
UFRZ:
调试模式停止位
1=仿真器处于调试模式时,模块停止工作0=仿真器处于调试模式时,模块继续工作
bit13
USIDL:
空闲模式停止位
1=器件进入空闲模式后停止工作0=处于空闲模式时继续工作IREN:
IrDA编码器和解码器使能位1=IrDA编码器和解码器使能0=IrDA编码器和解码器禁止
RTSMD:
UxRTS引脚模式选择位1处于单工(Simplex)模式0=UxRTS处于流控制模式
ALTIO:
UARTx备用I/O选择位
(1)
1=UART通过UxATX和UxARXI/O引脚通信0=UARTx通过UxTX和UxRXI/O引脚通信
UEN<1:
0>:
UARTx使能位
11=使能并使用UxTX、UxRX和引脚由端口锁存器控制10=使能并使用UxTX、UxRX、和01=使能并使用UxTX、UxRX和UxRTS00=使能并使用UxTX和UxRX和引脚;UxCTS、UxRTS和BCLKx引脚由端口锁存器控制WAKE:
在休眠模式期间检测到启动位唤醒使能位1=使能唤醒0=禁止唤醒
LPBACK:
UARTx环回模式选择位1=使能环回模式0=禁止环回模式
ABAUD:
自动波特率使能位
1=在下一个字符使能波特率检测。
需要收到“同步”字段(55h);完成时由硬件清零。
0=禁止波特率检测或检测已完成
1:
备用UARTI/O引脚并不是在所有器件上都可用。
请参见器件数据手册了解详细信息。
bit12
bit11
bit10
bit9-8
bit7
bit6
bit5
注
©2007MicrochipTechnologyInc.
超前信息
DS39708A_CN第21-3页
PIC24F系列参考手册寄存器21-1:
bit4UxMODE:
UARTx模式寄存器(续)RXINV:
接收奇偶校验翻转位
1=UxRX空闲状态为00=UxRX空闲状态为1BRGH:
高波特率选择位1=高速
0=低速
PDSEL<1:
0>:
奇偶校验和数据选择位11=9位数据,无奇偶校验10=8位数据,奇校验01=8位数据,偶校验00=8位数据,无奇偶校验STSEL:
停止选择位1=2个停止位
0=1个停止位
1:
备用UARTI/O引脚并不是在所有器件上都可用。
请参见器件数据手册了解详细信息。
bit3bit2-1bit0注
DS39708A_CN第21-4页超前信息©2007MicrochipTechnologyInc.
第21章UART
21
UART
寄存器21-2:
R/W-0UTXISEL1bit15
R/W-0URXISEL1bit7图注:
R=可读位-n=POR值bit15,13
UxSTA:
UARTx状态和控制寄存器R/W-0UTXINV
R/W-0UTXISEL0
U-0—
R/W-0
R/W-0
R-0UTXBF
R-1TRMT
bit8
R/W-0URXISEL0
R/W-0ADDEN
R-1RIDLE
R-0PERR
R-0FERR
R/C-0OERR
R-0URXDA
bit0
C=可清零位W=可写位1=置1
U=未实现位,读为00=清零
x=未知
UTXISEL<1:
0>发送中断模式选择位
11=保留
10=当一个字符被传输到发送移位寄存器并且发送缓冲器变为空时,产生中断
01=当最后一次发送完成(最后一个字符移出发送移位寄存器)且所有的发送操作均完成时,产生中断00=当任意字符被传输到发送移位寄存器时产生中断(这意味着在发送缓冲器中至少有一个单元为空)UTXINV:
发送奇偶校验翻转位1=UxTX空闲状态为10=UxTX空闲状态为0
1=IrDA编码UxTX空闲状态为10=IrDA编码UxTX空闲状态为0未实现:
读为0
UTXBRK:
发送间隔位1=无论发送状态如何,都将UxTX引脚驱动为低电平(同步间隔发送——启动位后跟随12个0,之后
跟随1个停止位)
0=同步间隔发送被禁止或已完成
UTXEN:
发送使能位
1=UARTx发送器使能,UARTx控制UxTX引脚(如果UARTEN=1)
0=UARTx发送器禁止,中止所有等待的发送,缓冲器复位。
PORT控制UxTX引脚。
UTXBF:
发送缓冲器满状态位(只读)1=发送缓冲器已满
0=发送缓冲器未满,可以写入至少一个或多个数据字
TRMT:
发送移位寄存器空位(只读)
1=发送移位寄存器为空,同时发送缓冲器为空(上一个发送已经完成)0=发送移位寄存器非空,发送在进行中或在发送缓冲器中排队URXISEL<1:
0>:
接收中断模式选择位
11=接收缓冲器满时(即,有4个数据字符),中断标志位置110=接收缓冲器3/4满时(即,有3个数据字符),中断标志位置10x=当接收到一个字符时,中断标志位置1
ADDEN:
地址字符检测位(接收数据的第8位=1)
1=地址检测模式使能。
如果没有选择9位模式,该控制位无效。
0=地址检测模式禁止
bit14
bit12bit11
bit10
bit9
bit8
bit7-6
bit5
©2007MicrochipTechnologyInc.
超前信息
DS39708A_CN第21-5页
PIC24F系列参考手册寄存器21-2:
bit4UxSTA:
UARTx状态和控制寄存器(续)RIDLE:
接收器空闲位(只读)
1=接收器空闲
0=正在接收数据
PERR:
奇偶校验错误状态位(只读)
1=检测到当前字符的奇偶校验错误
0=未检测到奇偶校验错误
FERR:
帧错误状态位(只读)
1=检测到当前字符的帧错误
0=未检测到帧错误
OERR:
接收缓冲器溢出错误状态位(清零/只读)
1=接收缓冲器溢出
0=接收缓冲器未溢出(清零先前置1的OERR位会将接收缓冲器和RSR复位为空状态)URXDA:
接收缓冲器是否有数据位(只读)
1=接收缓冲器中有数据,有至少一个或多个字符可读
0=接收缓冲器为空bit3bit2bit1bit0
DS39708A_CN第21-6页超前信息©2007MicrochipTechnologyInc.
第21章UART
21
UART
寄存器21-3:
U-0—bit15
R-0bit7
UxRXREG:
UARTx接收寄存器U-0—
U-0—
U-0—
U-0—
U-0—
U-0—
R-0URX8
bit8
R-0
R-0
R-0
R-0
R-0
R-0
R-0
bit0
URX<7:
0>
图注:
R=可读位-n=POR值bit15-9bit8bit7-0
W=可写位1=置1
未实现:
读为0
URX8:
接收到字符的第8个数据位(在9位模式下)URX<7:
0>:
接收到字符的第7-0个数据位
U=未实现位,读为00=清零
x=未知
寄存器21-4:
U-0—bit15
W-xbit7图注:
R=可读位-n=POR值bit15-9bit8bit7-0
UxTXREG:
UARTx发送寄存器(只写)U-0—
U-0
U-0U-0———
U-0—
U-0—
W-xUTX8
bit8
W-x
W-x
W-x
W-x
W-x
W-x
W-x
bit0
UTX<7:
0>
W=可写位1=置1
未实现:
读为0
U=未实现位,读为00=清零
x=未知
UTX8:
已发送字符的第8个数据位(在9位模式下)URX<7:
0>:
已发送字符的第7-0个数据位
©2007MicrochipTechnologyInc.
超前信息
DS39708A_CN第21-7页
PIC24F系列参考手册
寄存器21-5:
R/W-0
bit15
R/W-0
bit7
图注:
R=可读位
-n=POR值
bit15-0UxBRG:
UARTx波特率寄存器R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0W-xbit8R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0bit0BRG<15:
8>BRG<7:
0>W=可写位1=置1BRG<15:
0>:
波特率除数位U=未实现位,读为00=清零x=未知
DS39708A_CN第21-8页超前信息©2007MicrochipTechnologyInc.
第21章UART
21.3UART波特率发生器(BRG)
UART模块包含一个专用的16位波特率发生器。
UxBRG寄存器控制一个自由运行的16位定时器的周期。
公式21-1给出了BRGH=0时计算波特率的公式。
公式21-1:
BRGH=0时的UART波特率
波特率=FCY
16•(UxBRG+1)
FCY
16•波特率21UARTUxBRG=–1
注:
FCY表示指令周期时钟频率(FOSC/2)。
例21-1给出了如下条件下的波特率误差计算:
•FCY=4MHz
•目标波特率=9600=
例21-1:
波特率误差计算(BRGH=0)
目标波特率FCY/(16(UxBRG+1))
求解UxBRG的值:
UxBRGUxBRG
UxBRG
计算波特率
误差======
=
=((FCY/目标波特率)/16)–1((4000000/9600)/16)–1254000000/(16(25+1))9615(计算波特率–目标波特率)目标波特率(9615–9600)/96000.16%
能得到的最大波特率(BRGH=0)是FCY/16(UxBRG=0时),最小波特率是FCY/(16*65536)。
公式21-2给出了BRGH=1时计算波特率的公式。
公式21-2:
BRGH=1时的UART波特率
波特率=FCY
4•(UxBRG+1)
FCY
4•波特率UxBRG=–1
注:
FCY表示指令周期时钟频率。
最大波特率(BRGH=1)是FCY/4(UxBRG=0时),最小波特率是FCY/(4*65536)。
向UxBRG寄存器写入新值会使BRG定时器复位(清零)。
这可以确保BRG无需等待定时器溢出就可以产生新的波特率。
©2007MicrochipTechnologyInc.超前信息DS39708A_CN第21-9页
PIC24F系列参考手册21.3.1BCLKx输出
如果使能UART和BCLKx输出(UEN<1:
0>=11),则BCLKx引脚将输出16倍频波特率时钟。
该功能用于支持外部IrDA编/解码器(见图21-2)。
在休眠模式下,BCLKx输出保持低电平。
只要UART保持在该模式(UEN<1:
0>=11),则无论PORTx和TRISx锁存位如何,BCLKx都强制作为输出。
图21-2:
BCLKx输出与UxBRG编程
Q1
CQ12(TCY)
BCLKx@BRG=0
BCLKx@BRG=1
BCLKx@BRG=2
BCLKx@BRG=3
BCLKx@BRG=4
BCLKx@BRG=n
(N+1)TCY
UxTX
DS39708A_CN第21-10页超前信息©2007MicrochipTechnologyInc.
第21章UART
21.3.2
波特率表
21
UART
表21-1和表21-2给出了普通器件指令周期频率(FCY)的UART波特率。
同时也给出了每个频率下最小和最大波特率。
表21-1:
波特率
UART波特率(BRGH=0)
FCY=32MHz
实际波特率110.0
%误差0.000.000.000.030.160.150.16-0.792.300.00
BRG值(十进制)181********668322071035135167
实际波特率110.0300.01200.52398.19615.419230.838461.555555.6111111.1250000.0500000.0
31.02000000.0
0.000.00FCY=8MHz
655350
15.01000000.0
FCY=16MHz
%误差0.000.010.04-0.080.160.160.16-0.79-3.380.000.000.000.00FCY=4MHz
BRG值(十进制)454416664162075125128
实际波特率110.0300.11201.92403.89615.419230.8
%误差0.000.000.160.150.200.20
BRG值(十进制)227283*********12
实际波特率110.0300.41201.92403.8
BRG值(十进制)90903332832416103512517831655350
11.0480000.0
0.000.00FCY=1MHz
%误差0.000.100.160.15
BRG值(十进制)
5672075125655350
实际波特率110.0300.01200.02403.89615.319230.737500.057692.3
FCY=12MHz
%误差0.000.000.000.160.160.15-2.34-3.02
BRG值(十进制)6817249962431177381912
110
960019.2K38.4K56K115K250K300K500K最小值最大值
9615.319230.738461.555555.5117647.0250000.0
波特率
实际波特率917.4
%误差0.000.000.000.160.160.160.16-0.79
110
960019.2K38.4K56K115K250K300K500K最小值最大值
8.0500000.09615.419230.838461.555555.6
0.000.00
655350
4.0250000.0
0.000.00
655350
0.9562500.0
0.000.00
655350
©2007MicrochipTechnologyInc.
超前信息
DS39708A_CN第21-11页
PIC24F系列参考手册
表21-2:
波特率
UART波特率(BRGH=1)
FCY=32MHz
实际波特率110.0
%误差0.000.000.010.010.04-0.070.16-0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PIC24F 系列参考手册 21 章UART讲解 系列 参考手册 UART 讲解
![提示](https://static.bdocx.com/images/bang_tan.gif)