请选择 进入手机版 | 继续访问电脑版

芯虎论坛

 找回密码
 立即注册
查看: 9859|回复: 3

华大单片机特殊端口应用注意事项一芯虎论坛-中国芯中国梦

[复制链接]

42

主题

68

帖子

4万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
49543

论坛元老

发表于 2019-2-13 15:15:57 | 显示全部楼层 |阅读模式


本篇应用笔记主要介绍 HC32L110 / HC32F003 / HC32F005 系列的特殊端口应用及注意事项。
本应用笔记主要包括: 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 引脚的方法和注意事项。


芯虎论坛TigerCHIP---用“芯”说话
回复

使用道具 举报

0

主题

7

帖子

17

积分

虎视眈眈

Rank: 1

积分
17
发表于 2021-3-4 19:59:49 | 显示全部楼层

回帖奖励 +1 金钱

顶楼主
回复

使用道具 举报

0

主题

2

帖子

6

积分

虎视眈眈

Rank: 1

积分
6
发表于 2021-10-8 17:03:51 | 显示全部楼层
感谢分享!
回复

使用道具 举报

2

主题

9

帖子

88

积分

虎头虎脑

Rank: 2

积分
88
发表于 2021-12-22 12:50:20 | 显示全部楼层
HC32L072PTAT 的PA11、PA12脚我程序想当用作普通IO用,但输入和输出都 没反应。程序与一般IO有不同?输出:

    Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);
    stcGpioCfg.enDir = GpioDirOut;
    ///< 端口上下拉配置->下拉
    stcGpioCfg.enPu = GpioPuDisable;
    stcGpioCfg.enPd = GpioPdDisable;
      
    Gpio_ClrIO(EVB_LEDR_PORT, EVB_LEDR_PIN);

    ///< GPIO IO LED端口初始化
    Gpio_Init(EVB_LEDR_PORT, EVB_LEDR_PIN, &stcGpioCfg);



没反应


输入
    stc_gpio_cfg_t stcGpioCfg;

    ///< 打开GPIO外设时钟门控
    Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);

    ///< 端口方向配置->输入
    stcGpioCfg.enDir = GpioDirIn;
    ///< 端口驱动能力配置->高驱动能力
    stcGpioCfg.enDrv = GpioDrvL;
    ///< 端口上下拉配置->无
    stcGpioCfg.enPu = GpioPuEnable;
    stcGpioCfg.enPd = GpioPdDisable;
    ///< 端口开漏输出配置->开漏输出关闭
    stcGpioCfg.enOD = GpioOdDisable;
    ///< 端口输入/输出值寄存器总线控制模式配置->AHB
    stcGpioCfg.enCtrlMode = GpioAHB;
    ///< GPIO IO USER KEY初始化
    Gpio_Init(EVB_KEY1_PORT, EVB_KEY1_PIN, &stcGpioCfg);

没反应


PA11,PA12也是专长用的吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|芯虎论坛 ( 辽ICP备18019618号 )

GMT+8, 2022-5-20 22:06 , Processed in 0.170868 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表