Merge branch 'feature/esp32p4_gpio_support' into 'master'

feat(gpio): add support for ESP32P4

Closes IDF-6509

See merge request espressif/esp-idf!24868
This commit is contained in:
morris
2023-08-11 11:49:51 +08:00
52 changed files with 2499 additions and 6787 deletions
+10 -3
View File
@@ -58,11 +58,18 @@ GPIO 汇总
{IDF_TARGET_NAME} 支持输入引脚的硬件迟滞,这可以减少由于输入电压在逻辑 0、1 临界值附近时采样不稳定造成的 GPIO 中断误触,尤其是当输入逻辑电平转换较慢,电平建立时间较长时。
每个引脚可以独立启用迟滞功能。默认情况下,它由 eFuse 控制,且处于关闭状态,但也可以由软件控制启用或禁用。您可以通过配置 :cpp:member:`gpio_config_t::hys_ctrl_mode` 来选择迟滞控制模式。
.. only:: SOC_GPIO_SUPPORT_PIN_HYS_CTRL_BY_EFUSE
.. note::
每个引脚可以独立启用迟滞功能。默认情况下,它由 eFuse 控制,且处于关闭状态,但也可以由软件控制启用或禁用。您可以通过配置 :cpp:member:`gpio_config_t::hys_ctrl_mode` 来选择迟滞控制模式。迟滞控制模式会和其余 GPIO 配置一起在 :cpp:func:`gpio_config` 中生效。
当迟滞功能由 eFuse 控制时,仍然可以独立的控制每个引脚的该功能,您需要 `烧断 eFuse <https://docs.espressif.com/projects/esptool/en/latest/esp32/espefuse/index.html>`_ ,以在特定 GPIO上 启用迟滞功能。
.. note::
当迟滞功能由 eFuse 控制时,仍然可以独立的控制每个引脚的该功能,您需要 `烧断 eFuse <https://docs.espressif.com/projects/esptool/en/latest/esp32/espefuse/index.html>`_ ,以在特定 GPIO上 启用迟滞功能。
.. only:: not SOC_GPIO_SUPPORT_PIN_HYS_CTRL_BY_EFUSE
每个引脚可以独立启用迟滞功能。默认情况下,它处于关闭状态。您可以通过配置 :cpp:member:`gpio_config_t::hys_ctrl_mode` 来选择启用与否。迟滞控制模式会和其余 GPIO 配置一起在 :cpp:func:`gpio_config` 中生效。
应用示例
@@ -64,11 +64,11 @@
- Strapping 管脚,RTC
* - GPIO10
- 模拟比较器外部参考电压
- ANA_CMPR_CH0 外部参考电压
- RTC
* - GPIO11
- 模拟比较器同相输入
- ANA_CMPR_CH0 同相输入
- RTC
* - GPIO12
@@ -141,7 +141,6 @@
- SPI0/1: GPIO15-21 通常用于 SPI flash, 不推荐用于其他用途。
- USB-Serial-JTAG: GPIO26 GPIO27 默认用于 USB-Serial-JTAG。用做 GPIO 时驱动程序将禁用 USB-Serial-JTAG。
- 对于合封了 flash 的芯片型号, GPIO15 ~ GPIO21 专门用于连接该 flash, 并未引出至芯片管脚。且 GPIO6 ~ GPIO7 也未引出至芯片管脚,用户不可用。用户可配置使用其他剩余的 19 GPIO 管脚, 编号为: GPIO0 ~ GPIO5、GPIO8 ~ GPIO14、GPIO22 ~ GPIO27。
- 对于未合封 flash 的芯片型号, 除了以上提到的给 Flash 专用的 GPIO 以外, GPIO22 也并未引出至芯片管脚,用户不可用。
- RTCGPIO7-14 可用于将芯片从 Deep-sleep 模式中唤醒,其他 GPIO 仅能将芯片从 Light-sleep 模式中唤醒。更多信息请参考 :ref:`唤醒源<api-reference-wakeup-source>` 章节。
---
@@ -0,0 +1,317 @@
.. This file gets included from other .rst files in this folder.
.. It contains target-specific snippets.
.. Comments and '---' lines act as delimiters.
..
.. This is necessary mainly because RST doesn't support substitutions
.. (defined in RST, not in Python) inside code blocks. If that is ever implemented,
.. These code blocks can be moved back to the main .rst files, with target-specific
.. file names being replaced by substitutions.
.. gpio-summary
{IDF_TARGET_NAME} 芯片具有 57 个物理 GPIO 管脚(GPIO0 ~ GPIO56)。
每个管脚都可用作一个通用 IO,或连接一个内部的外设信号。通过 GPIO 交换矩阵和 IO MUX,可配置外设模块的输入信号来源于任何的 IO 管脚,并且外设模块的输出信号也可连接到任意 IO 管脚。这些模块共同组成了芯片的 IO 控制。更多详细信息,请参阅 *{IDF_TARGET_NAME} 技术参考手册* > *IO MUX GPIO 矩阵(GPIO、IO_MUX* [`PDF <{IDF_TARGET_TRM_CN_URL}#iomuxgpio>`__]
下表提供了各管脚的详细信息,部分 GPIO 具有特殊的使用限制,具体可参考表中的注释列。
.. list-table::
:header-rows: 1
:widths: 8 12 12 20
* - GPIO
- 模拟功能
- LP GPIO
- 注释
* - GPIO0
-
- LP_GPIO0
-
* - GPIO1
-
- LP_GPIO1
-
* - GPIO2
- TOUCH0
- LP_GPIO2
-
* - GPIO3
- TOUCH1
- LP_GPIO3
-
* - GPIO4
- TOUCH2
- LP_GPIO4
-
* - GPIO5
- TOUCH3
- LP_GPIO5
-
* - GPIO6
- TOUCH4
- LP_GPIO6
-
* - GPIO7
- TOUCH5
- LP_GPIO7
-
* - GPIO8
- TOUCH6
- LP_GPIO8
-
* - GPIO9
- TOUCH7
- LP_GPIO9
-
* - GPIO10
- TOUCH8
- LP_GPIO10
-
* - GPIO11
- TOUCH9
- LP_GPIO11
-
* - GPIO12
- TOUCH10
- LP_GPIO12
-
* - GPIO13
- TOUCH11
- LP_GPIO13
-
* - GPIO14
- TOUCH12
- LP_GPIO14
-
* - GPIO15
- TOUCH13
- LP_GPIO15
-
* - GPIO16
- ADC1_CH0
-
-
* - GPIO17
- ADC1_CH1
-
-
* - GPIO18
- ADC1_CH2
-
-
* - GPIO19
- ADC1_CH3
-
-
* - GPIO20
- ADC1_CH4
-
-
* - GPIO21
- ADC1_CH5
-
-
* - GPIO22
- ADC1_CH6
-
-
* - GPIO23
- ADC1_CH7
-
-
* - GPIO24
-
-
-
* - GPIO25
-
-
-
* - GPIO26
-
-
-
* - GPIO27
-
-
-
* - GPIO28
-
-
-
* - GPIO29
-
-
-
* - GPIO30
-
-
-
* - GPIO31
-
-
-
* - GPIO32
-
-
-
* - GPIO33
-
-
-
* - GPIO34
-
-
- Strapping 管脚
* - GPIO35
-
-
- Strapping 管脚
* - GPIO36
-
-
- Strapping 管脚
* - GPIO37
-
-
- Strapping 管脚
* - GPIO38
-
-
- Strapping 管脚
* - GPIO39
-
-
-
* - GPIO40
-
-
-
* - GPIO41
-
-
-
* - GPIO42
-
-
-
* - GPIO43
-
-
-
* - GPIO44
-
-
-
* - GPIO45
-
-
-
* - GPIO46
-
-
-
* - GPIO47
-
-
-
* - GPIO48
-
-
-
* - GPIO49
- ADC1_CH8
-
-
* - GPIO50
- ADC1_CH9
-
-
* - GPIO51
- ADC1_CH10ANA_CMPR_CH0 外部参考电压
-
-
* - GPIO52
- ADC1_CH11ANA_CMPR_CH0 同相输入
-
-
* - GPIO53
- ADC1_CH12ANA_CMPR_CH1 外部参考电压
-
-
* - GPIO54
- ADC1_CH13ANA_CMPR_CH1 同相输入
-
-
* - GPIO55
-
-
-
* - GPIO56
-
-
-
.. note::
- Strapping 管脚:GPIO34, GPIO35、GPIO36、GPIO37 GPIO38 Strapping 管脚。更多信息请参考 `ESP32-P4 技术规格书 <{IDF_TARGET_DATASHEET_CN_URL}>`_。
- USB-JTAGGPIO24 GPIO25 默认用于 USB-JTAG。用做 GPIO 时驱动程序将禁用 USB-JTAG。
---