概述
Ameba 系列的 I/O 提供灵活的连接能力,支持与片上的模拟和数字电路接口进行连接。详见 I/O 框图 所示。
有关 PAD 连接片上信号的配置方法,请参阅 引脚复用 章节。本节主要介绍 PAD 支持的功能与编程方法。
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 类型 |
参数 |
|
返回值 |
无 |
PAD_SleepPullCtrl
项目 |
描述 |
---|---|
功能 |
配置 PAD 在 低功耗模式的片上电阻 Pull 类型 |
参数 |
|
返回值 |
无 |
PAD_ResistorCtrl
项目 |
描述 |
---|---|
功能 |
配置 PAD 的片上电阻阻值 |
参数 |
|
返回值 |
无 |
备注
有关 PAD 支持的上拉/下拉阻值信息,请参阅芯片数据手册。
PAD_DrvStrength
项目 |
描述 |
---|---|
功能 |
配置 PAD 的输出电流能力 |
参数 |
|
返回值 |
无 |
备注
有关 PAD 驱动能力挡位信息,请参阅芯片数据手册。
PAD_SchmitCtrl
项目 |
描述 |
---|---|
功能 |
使能指定PAD的施密特触发器控制 |
参数 |
|
返回值 |
无 |
PAD_InputCtrl
项目 |
描述 |
---|---|
功能 |
配置 PAD 的片上电阻阻值 |
参数 |
|
返回值 |
无 |
备注
有关启用或禁用施密特触发器时,PAD 所看到的电压信息,请参阅芯片数据手册。
PAD_SlewRateCtrl
项目 |
描述 |
---|---|
功能 |
配置 PAD 的压摆率 |
参数 |
|
返回值 |
无 |
备注
支持该功能的 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 状态配置规则
当引脚用作普通的输入或输出功能时,为避免漏电,需根据 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
当引脚用作 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 模拟电路接口以及数字电路接口进行连接。默认情况作为数字功能。
当配置其作为 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:使能数字通路连接
PAD_InputCtrl(PinName, ENABLE );
步骤 2:其它关于 I/O 状态的控制, 请参阅 I/O 状态配置规则 。
1. ADC 与 Cap-touch Pin
对于 PA28~PB5
,支持其与 ADC, Cap-touch 模拟电路接口以及数字电路接口进行连接。默认情况作为数字功能。
当配置其作为 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:使能数字通路连接
PAD_InputCtrl(PinName, ENABLE );
步骤 2:其它关于 I/O 状态的控制, 请参阅 I/O 状态配置规则 。
2. Audio Pin
对于 PB11~PB19
,支持与 Audio 电路接口或数字电路接口连接。默认用作 Audio 功能。
当配置其用作 Audio 功能 时,技术细节请参阅 Audio 章节。
备注
如果配置为音频功能,则内部上拉或下拉功能无效。
在深度睡眠模式下,这些 I/O 供电来源被关闭,PB11~PB19 处于浮动状态,这些引脚的内部电阻不可用。
如仍需保持指定状态,需由外部电路进行控制。
当配置其为 数字功能 时,需按序执行以下操作:
步骤 1:开启数字通路连接
APAD_InputCtrl(PinName, ENABLE );
步骤 2:Mute Audio 操作
关于该处理过程,我们已在
Pinmux_Config()
处理好,直接调用该 API 进行引脚复用即可。如您对该处理过程感兴趣,请参阅 {{IC_PARAM_HW_DESIGN_GUIDE_URL}} 。
1. ADC 与 Cap-touch Pin
对于 PA28~PB5
,支持其与 ADC, Cap-touch 模拟电路接口以及数字电路接口进行连接。默认情况作为数字功能。
当配置其作为 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:使能数字通路连接
PAD_InputCtrl(PinName, ENABLE );
步骤 2:其它关于 I/O 状态的控制, 请参阅 I/O 状态配置规则 。
2. Audio Pin
对于 PB11~PB19
,支持与 Audio 电路接口或数字电路接口连接。默认用作 Audio 功能。
当配置其用作 Audio 功能 时,技术细节请参阅 Audio 章节。
备注
如果配置为音频功能,则内部上拉或下拉功能无效。
在深度睡眠模式下,这些 I/O 供电来源被关闭,PB11~PB19 处于浮动状态,这些引脚的内部电阻不可用。
如仍需保持指定状态,需由外部电路进行控制。
当配置其为 数字功能 时,需按序执行以下操作:
步骤 1:开启数字通路连接
APAD_InputCtrl(PinName, ENABLE );
步骤 2:Mute Audio 操作
关于该处理过程,我们已在
Pinmux_Config()
处理好,直接调用该 API 进行引脚复用即可。如您对该处理过程感兴趣,请参阅 {{IC_PARAM_HW_DESIGN_GUIDE_URL}} 。
1. ADC 与 Cap-touch Pin
对于 PA28~PB5
,支持其与 ADC, Cap-touch 模拟电路接口以及数字电路接口进行连接。默认情况作为数字功能。
当配置其作为 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:使能数字通路连接
PAD_InputCtrl(PinName, ENABLE );
步骤 2:其它关于 I/O 状态的控制, 请参阅 I/O 状态配置规则 。
2. Audio Pin
对于 PB11~PB19
,支持与 Audio 电路接口或数字电路接口连接。默认用作 Audio 功能。
当配置其用作 Audio 功能 时,技术细节请参阅 Audio 章节。
备注
如果配置为音频功能,则内部上拉或下拉功能无效。
在深度睡眠模式下,这些 I/O 供电来源被关闭,PB11~PB19 处于浮动状态,这些引脚的内部电阻不可用。
如仍需保持指定状态,需由外部电路进行控制。
当配置其为 数字功能 时,需按序执行以下操作:
步骤 1:开启数字通路连接
APAD_InputCtrl(PinName, ENABLE );
步骤 2:Mute Audio 操作
关于该处理过程,我们已在
Pinmux_Config()
处理好,直接调用该 API 进行引脚复用即可。如您对该处理过程感兴趣,请参阅 {{IC_PARAM_HW_DESIGN_GUIDE_URL}} 。
1. ADC 与 Cap-touch Pin
对于 PA0~PA8
,支持其与 ADC, Cap-touch 模拟电路接口以及数字电路接口进行连接。默认情况作为数字功能。
当配置其作为 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:使能数字通路连接
PAD_InputCtrl(PinName, ENABLE );
步骤 2:其它关于 I/O 状态的控制, 请参阅 I/O 状态配置规则 。
2. Audio Pin
对于 PA18~PB6
,支持与 Audio 电路接口或数字电路接口连接。默认用作 Audio 功能。
当配置其用作 Audio 功能 时,技术细节请参阅 Audio 章节。
备注
如果配置为音频功能,则内部上拉或下拉功能无效。
在深度睡眠模式下,这些 I/O 供电来源被关闭,PB11~PB19 处于浮动状态,这些引脚的内部电阻不可用。
如仍需保持指定状态,需由外部电路进行控制。
当配置其为 数字功能 时,需按序执行以下操作:
步骤 1:开启数字通路连接
APAD_InputCtrl(PinName, ENABLE );
步骤 2:Mute Audio 操作
关于该处理过程,我们已在
Pinmux_Config()
处理好,直接调用该 API 进行引脚复用即可。如您对该处理过程感兴趣,请参阅 {{IC_PARAM_HW_DESIGN_GUIDE_URL}} 。
1. (TBD 暂无 hw design guide) ADC 与 Cap-touch Pin
对于 PB13~PB19
,支持其与 ADC, Cap-touch 模拟电路接口以及数字电路接口进行连接。默认情况作为数字功能。
当配置其作为 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:使能数字通路连接
PAD_InputCtrl(PinName, ENABLE );
步骤 2:其它关于 I/O 状态的控制, 请参阅 I/O 状态配置规则 。