本应用笔记主要包括: RESET 端口复用为 I/O 功能外部晶振端口复用为 I/O 功能 SWD 编程端口复用为 I/O 功能UART 编程端口复用为 I/O 功能 注意:- 本应用笔记为 华大单片机HC32L110 / HC32F003 / HC32F005 系列的应用补充材料,不能代替用户手册,具体功能及寄存器的操作等相关事项请以用户手册为准。
功能介绍
华大单片机GPIO 是通用输入输出模块,MCU 可将一个 IO 设为模拟模式,作为 ADC 输入;设为数字输入输出,或是外设端口,供特定外设使用。使用端口功能前,需要先把 GPIO 模块时钟控制功能打开。
本系列 GPIO 的可复用的特殊端口有 RESET、外部晶振引脚、SWD、UART 编程接口等,用户在不同的应用当中需要根据这些端口的特性及应用特点选择不同的复用方式。
华大单片机特殊端口复用功能介绍
RESET 引脚复用为输入端口当外部复位引脚检测到低电平时会产生一个系统复位。该复位引脚已内置上拉电阻,并集成了一个毛刺过滤电路。毛刺过滤电路会过滤小于 20uS(典型值)的毛刺信号,因此,加到复位引脚上的低电平信号必须大于 20uS,才能确保芯片可靠复位。RESET 引脚可以复用为输入端口 P0.0。如果要使用 RESET 作为输入端口 P0.0,
参考流程如下:
1. GPIO 模块时钟控制功能打开:PERI_CLKEN.GPIO 置为 1
2. 系统控制寄存器的 RESET_USE_IO 时钟控制位:SYSCTRL1. RES_UIO 使能
注意:- 在复用 RESET 引脚作为输入端口的时候,仍必须确保外围电路的设计,在上电时要保证该引脚不能为低电平(Low-Level),否则程序无法运行。
- 该端口已经内置上拉电阻,所以该引脚即使作为输入端口,也只能是作为“输入且具有上拉功能的输入端口”。
外部晶振端口复用为 I/O 端口
当不使用外部高速晶振或低速晶振时,以下端口可以复用为 I/O 功能。
X32MOUT P0.1
X32MIN P0.2
X32KOUT P1.5
X32KIN P1.4
复用 I/O 功能流程如下:
1. GPIO 模块时钟控制功能打开:PERI_CLKEN.GPIO 置为 1。
2. P0.1 和 P0.2、P1.5 和 P1.4 需要配置为数字端口:P0ADS 和 P1ADS 相关位配置为 0。
3. 功能配置寄存器选为 GPIO 功能:P01_SEL,P02_SEL,P15_SEL,P14_SEL 设为 0。
4. 选择输入输出方向:设置 P00DIR 和 P1DIR 的相关位(0:输出,1:输入)
SWD 调试编程端口复用为 I/O 功能
SWD 端口作为该系列 MCU 的调试和端口,用户可根据实际需求选择是否预留该端口作为调试或量产编程使用。如果不需要使用 SWD 端口作为调试编程,SWCLK 与 SWDIO 引脚可以复用为 I/O 引脚。复用 I/O 功能参考流程如下:
1. GPIO 模块时钟控制功能打开:PERI_CLKEN.GPIO 置为 1
2. 系统控制寄存器的 SWD_USE_IO 时钟控制位(SYSCTRL1. SWD_UIO)使能
3. P27_SEL.SEL 与 P31_SEL.SEL 设置为 0
4. P2DIR.P27 与 P3DIR.P31 设置为输入或输出
注意:- 从上电到 SWD 被复用配置为 I/O 端口生效为止,P27 和 P31 引脚的电平默认为高电平,因此在外围电路的设计中,应加以注意和规避。
- 当把 SWD 端口复用为 I/O 功能时,通过 SWD 的在线调试与功能就会失效。
- 在用户调试时,可以通过串口擦除或其他没有复用 SWD 的程序恢复 SWD 在线调试和功能,或者在应用程序中复用 SWD 端口之前添加几秒的延时。
UART 离线编程端口复用为 I/O 端口
该系列 MCU 使用 UART 端口 P3.5(TX)、P3.6(RX)作为离线编程功能,用户在实际应用中可根据需求选择是否预留该端口作为后续量产的烧录端口。
为配合我司离线编程器进入模式,MCU 上电时 P3.5(TX)端口会输出约 10ms 的高电平脉冲作为握手信号。应用中需要使用该端口(P3.5)作为输出功能时,硬件电路应考虑规避该脉冲对整个应用的影响,或尽量避免使用该端口作为输出功能。
通过上述介绍,配合 华大单片机HC32L110 / HC32F003 / HC32F005 系列的用户手册,我们可以了解到该系列 MCU 的特殊端口 Reset 引脚、外部晶振引脚、SWD 引脚、UART 端口在应用中被复用为 I/O 引脚的方法和注意事项。