10
I/O端口配置
有两种方法可以设置端口并将其用作GPIO:一种是使用端口控制寄存器 (PCNTR1),另一种是使用PmnPFS寄存器。
方法1:端口控制寄存器 (PCNTR1)
• 通过向端口控制寄存器1 (PCNTR1) 的端口方向位 (PDRn) 写入“1”,选择一个引脚作为输出。
• 端口方向位 (PDRn) 是可读写的。将该值设置为“1”将选择该引脚作为输出。I/O端口的默认状态为“0”(输入)。可以在RA6 MCU上读取端口方向寄存器。
• 相应端口控制寄存器 (PCNTR1) 中的端口输出数据位 (PODRn) 是可读写的。读取PODR时,也会读取输出数据锁存器的状态(不是引脚电平)。
• 端口控制寄存器2 (PCNTR2) 中的端口输入位 (PIDRn) 是只读的。读取PCNTR2寄存器中的PIDRn位以读取引脚状态。
方法2:端口mn引脚功能选择 (PmnPFS) 寄存器
• 端口模式寄存器 (PMR) 是可读写的,用于指定各个引脚是用作GPIO还是用作外设引脚。复位后,所有PMR寄存器均置0,这会将所有引脚都设置为GPIO。如果PMR寄存器置1,则该对应的引脚将用于实现外设功能。外设功能由该引脚的MPC设置定义。
• 将引脚设置为输出时,建议先将所需的端口输出值写入数据锁存器,然后将方向寄存器设置为输出。尽管在所有系统中此操作都不太重要,但这可以防止在设置端口时出现意外的输出毛刺。
通常,使用PCNTR1配置端口有助于提高访问速度,但可用的配置功能较少。使用PmnPFS寄存器将获得更多可用的配置功能,但访问速度较慢。
Renesas FSP提供了引脚配置工具,以在复位后配置GPIO引脚,如下所示。配置GPIO后,可以在FSP中使用HAL层API对该GPIO进行控制。
图24. 使用FSP配置器将P706配置为输出和低电平
10.2.1 内部上拉
• 端口0到9、A和B上的大多数引脚都可以选择使能上拉电阻。上拉由每个端口mn引脚功能选择 (PmnPFS) 寄存器中的上拉 (PCR) 位控制。每个PmnPFS寄存器中的PCR位用于控制端口上的相应引脚。
• 首先,必须通过PmnPFS寄存器中的相关位将该引脚设置为输入。将PCR位置“1”以使能上拉,将其置“0”以禁用上拉。
• 复位后,会将所有PCR寄存器清零,因此将禁用所有上拉电阻。
• 每当将某个引脚指定为外部总线引脚、GPIO输出或外设功能输出引脚时,上拉就会自动关闭。
10.2.2 漏极开路输出
• 配置为输出的引脚通常用作CMOS输出。
• 端口0到9、A和B上的大多数引脚都可以选择配置为NMOS漏极开路输出。
• 每个端口mn引脚功能选择 (PmnPFS) 寄存器中的N沟道漏极开路控制 (NCODR) 位控制哪些引脚以漏极开路模式工作。将每个寄存器中的适用位置“1”会使输出形式变为漏极开路。将每个寄存器中的适用位置“0”会将端口设置为CMOS输出。
10.2.3 驱动能力
• 端口1到9、A和B(P200和P201除外)上的每个引脚都可以选择使能低、中或高驱动能力输出。驱动能力的切换由每个端口mn引脚功能选择 (PmnPFS) 寄存器中的驱动能力控制寄存器 (DSCR) 位控制。
• 复位后,会将所有DSCR寄存器清零,因此会将所有引脚设置为低驱动能力输出。设置“00”以外的值会更改所选引脚的输出的驱动能力。
• 所有引脚的最大总输出为80mA。
• 驱动能力的差异如下所示:
点击可查看大图
输出驱动能力可能会对电路板设计的整体性能造成重大影响。为每个输出选择驱动能力时,应考虑以下几点。
• 建议首先将所有引脚设置为低驱动能力(默认)并评估性能。
• 根据电路板布局的不同,驱动能力设置为中或高的引脚可能会产生较高的EMI辐射。
• 较长的走线可能需要更高的驱动能力,才能使信号正确传播到接收器。
未完待续
推荐阅读
RA6快速设计指南 [10] 存储器 (2)
RA6快速设计指南 [11] 存储器 (3)
RA6快速设计指南 [12] 寄存器写保护,I/O端口配置 (1)
原文标题:RA6快速设计指南 [13] I/O端口配置 (2)
文章出处:【微信公众号:瑞萨MCU小百科】欢迎添加关注!文章转载请注明出处。
全部0条评论
快来发表一下你的评论吧 !