IC:

概述

Ameba 系列的 I/O 提供灵活的连接能力,支持与片上的模拟和数字电路接口进行连接。详见 I/O 框图 所示。

有关 PAD 连接片上信号的配置方法,请参阅 引脚复用 章节。本节主要介绍 PAD 支持的功能与编程方法。

../../rst_rtos/1_gpio/figures/pad_path.svg

I/O 框图

功能特性

引脚控制模块支持灵活的 I/O 电气特性控制:

  • 内部上拉/下拉电阻

    • 可配置的片上电阻网络,支持上拉/下拉/高阻控制

    • 部分引脚上拉/下拉电阻阻值可调

  • 可编程的 Driving Strength 挡位

    可编程驱动能力,多档位可选

  • Schmitt trigger 使能控制

    提供输入噪声抑制和波形整形功能,有效滤除毛刺,支持使能/禁用控制

  • 可编程 Slew Rate 控制

    可调节信号边沿陡峭度,支持快速/慢速模式切换

PAD 控制与编程接口

PAD API 参考

{SDK}/component/soc/amebaxxx/fwlib/include/ameba_pinmux.h 文件提供以下 PAD 控制 API:

API

描述

PAD_PullCtrl

配置 Active 模式下 PAD Pull 类型

PAD_SleepPullCtrl

配置 Sleep 模式下 PAD Pull 类型

PAD_ResistorCtrl

配置 PAD 上拉/下拉阻值类型

PAD_DrvStrength

配置 PAD 驱动能力挡位

PAD_SchmitCtrl

使能/禁用 PAD 施密特触发器控制

PAD_InputCtrl

开启/关闭 PAD 数字路径控制

PAD_SlewRateCtrl

配置 PAD 上升沿/下降沿速率

PAD_PullCtrl

项目

描述

功能

配置 PAD在 Active 模式的片上 Pull 类型

参数

  • PinName:待配置的 PAD 名称

  • PullType:Pull 的类型 (上拉/下拉/高阻态)

    • GPIO_PuPd_UP

    • GPIO_PuPd_DOWN

    • GPIO_PuPd_NOPULL

返回值

PAD_SleepPullCtrl

项目

描述

功能

配置 PAD 在 低功耗模式的片上电阻 Pull 类型

参数

  • PinName:待配置的 PAD 名称

  • PullType:Pull 的类型 (上拉/下拉/高阻态)

    • GPIO_PuPd_UP

    • GPIO_PuPd_DOWN

    • GPIO_PuPd_NOPULL

返回值

PAD_ResistorCtrl

项目

描述

功能

配置 PAD 的片上电阻阻值

参数

  • PinName:待配置的 PAD 名称

  • RType:上拉/下拉电阻的阻值选择

    • PAD_Resistor_LARGE

    • PAD_Resistor_SMALL

返回值

备注

有关 PAD 支持的上拉/下拉阻值信息,请参阅芯片数据手册。

PAD_DrvStrength

项目

描述

功能

配置 PAD 的输出电流能力

参数

  • PinName:待配置的 PAD 名称

  • DrvStrength:PAD的驱动强度

    • PAD_DRV_ABILITITY_LOW

    • PAD_DRV_ABILITITY_HIGH

返回值

备注

有关 PAD 驱动能力挡位信息,请参阅芯片数据手册。

PAD_SchmitCtrl

项目

描述

功能

使能指定PAD的施密特触发器控制

参数

  • PinName:待配置的 PAD 名称

  • NewState:施密特触发器的工作状态

    • ENABLE

    • DISABLE

返回值

PAD_InputCtrl

项目

描述

功能

配置 PAD 的片上电阻阻值

参数

  • PinName:待配置的 PAD 名称

  • RType:数字路径输入状态

    • ENABLE: 启用数字路径输入

    • DISABLE: 禁用数字路径输入

返回值

备注

有关启用或禁用施密特触发器时,PAD 所看到的电压信息,请参阅芯片数据手册。

PAD_SlewRateCtrl

项目

描述

功能

配置 PAD 的压摆率

参数

  • PinName:待配置的 PAD 名称

  • NewState:压摆率选择

    • PAD_SlewRate_Slow

    • PAD_SlewRate_Fast

返回值

备注

  • 支持该功能的 PAD 以及上升/下降速率的详细信息请参考芯片数据手册。

低功耗模式引脚状态管理

I/O 在 Active 与低功耗模式下的 Pull Control 分别由不同寄存器进行控制。这种设计允许在低功耗模式下为每个引脚独立配置片内的上拉或下拉电阻。

I/O 在不同低功耗模式下的状态

I/O 输入状态

  • 普通睡眠模式(PG 或 CG)

    所有 GPIO 的内部电阻器均保持可用状态,以维持输入引脚的稳定性

  • 深度睡眠

    • 多数 I/O 引脚的内部电阻器保持可用状态,这允许引脚继续提供基本的上拉或下拉功能

    • 某些 I/O 引脚的电源将被关闭,导致这些引脚的内部电阻器失效,因此可能呈现浮空状态。(?如果这些做 digital 用途,也会断电吗?)

      • 如果与这些 GPI0 相连的电路需要被拉到高或低状态,则需要在 PCB 上使用外部电阻器。

    有关深度睡眠模式下哪些 I/O 引脚的内部电阻器仍然可用,请参阅 {{IC_PARAM_DATASHEET_DOWNLOAD_URL_EN}} 。

I/O 输出状态

  • 普通睡眠模式(PG 或 CG)

    I/O 输出的状态将 保持睡眠前的状态

    例如,在睡眠之前,如果 I/O 设置为输出 1,系统进入 PG 或 CG 后,此 I/O 仍将保持输出 1 不变。

  • 深度睡眠

    Active 下设置的 1/0 输出状态将失效

    例如,如果 I/O 处于活动状态时设置为输出 1,并且系统进入深度睡眠,则 I/O 将无法保持输出 1 状态。

I/O 状态配置规则

  1. 当引脚用作普通的输入或输出功能时,为避免漏电,需根据 I/O 信号状态,正确设定 Active 和低功耗模式下的上拉或下拉控制,详见下表:

I/O Type

Pin Status

Active PU/PD

Sleep PU/PD

Input

External Pull UP

GPIO_PuPd_UP / GPIO_PuPd_NOPULL

GPIO_PuPd_UP / GPIO_PuPd_NOPULL

Input

External Pull Down

GPIO_PuPd_DOWN / GPIO_PuPd_NOPULL

GPIO_PuPd_DOWN

Input

Floating

GPIO_PuPd_DOWN

GPIO_PuPd_DOWN

Output

Output High

GPIO_PuPd_UP / GPIO_PuPd_NOPULL

GPIO_PuPd_UP

Output

Output Low

GPIO_PuPd_DOWN / GPIO_PuPd_NOPULL

GPIO_PuPd_DOWN

  1. 当引脚用作 Flash pin, LogUart pin, SWD pin 等功能时,请根据 {{IC_PARAM_HW_DESIGN_GUIDE_URL}} 正确设定 Active 和低功耗模式下的上拉或下拉控制。

    (TBD ??? Aon GPIO 是否说明)

专用功能引脚使用规范

部分 PAD 设计为既可连接到模拟电路,也可与数字电路通信。为确保模拟信号的完整性,这些 PAD 用作模拟功能时,需断开与数字路径连接 (例如,作为 ADC 的输入)。

1. ADC 与 Cap-touch Pin

对于 PB13~PB19 ,支持其与 ADC, Cap-touch 模拟电路接口以及数字电路接口进行连接。默认情况作为数字功能。

  1. 当配置其作为 ADC 或 Cap-touch pin 时,需执行以下操作:

  • 步骤 1:关闭数字通路连接

    PAD_InputCtrl(PinName, DISABLE );

  • 步骤 2:Pull Control 配置为浮空状态

    PAD_PullCtrl(PinName, GPIO_PuPd_NOPULL);

  • 步骤 3:其它关于 I/O 状态的控制, 请参阅 I/O 状态配置规则

  • 步骤 4:与 ADC 或 Cap-touch pin 功能相关的其它配置,详见 ADC 或 Cap-touch 章节介绍。

  1. 当配置其为 数字功能 时,需执行以下操作:

  • 步骤 1:使能数字通路连接

    PAD_InputCtrl(PinName, ENABLE );

  • 步骤 2:其它关于 I/O 状态的控制, 请参阅 I/O 状态配置规则