ESP32 GPIO 入门参考

  • ESP32 GPIO 说明: GPIO 编程指南,了解 GPIO 函数使用
  • 《ESP32 技术规格书》:“4.2 外设管脚分配” 章节
  • 《ESP32 技术参考手册》:关于 “4 IO_MUX 和 GPIO 交换矩阵 (GPIO, IO_MUX)” 章节说明
  • 《ESP32 硬件设计指南》:硬件设计建议

Strapping 管脚

  • 共有 5 个 Strapping 管脚,GPIO0、GPIO2、GPIO5、GPIO12 (MTDI)、GPIO15 (MTDO)。每一个 Strapping 管脚都会连接内部上拉/下拉。如果一个 Strapping 管脚没有外部连接或者连接的外部线路处于高阻抗状态,内部弱上拉/下拉将决定 Strapping 管脚输入电平的默认值。为改变 Strapping 的值,用户可以应用外部下拉/上拉电阻,或者应用主机 MCU 的 GPIO 控制芯片上电复位放开时的 Strapping 管脚电平。复位放开后,Strapping 管脚和普通管脚功能相同。配置 Strapping 管脚的详细启动模式如下,参见《ESP32 技术规格书》。

    ESP32 GPIO 入门参考
  • 不同型号的模组内置 Flash 的管脚配置不同,可使用 esptool 工具,通过 espefuse.py summary 命令读取。例如:


JTAG 调试管脚

  • GPIO12-15 通常用于 Debug(JTAG) 调试,可参见“ESP32 引脚和 JTAG 接口信号” 和 “ESP-Prog 下载与调试板介绍”

    ESP32 GPIO 入门参考

RTC_GPIO

  • 在 Deep-sleep 模式下,只有 RTC_GPIO 可保持工作。且仅有 RTC GPIO 可以作为唤醒源,而非数字 GPIO。
  • 18 个 RTC GPIO 管脚,由 ESP32 的 RTC 子系统控制。作为输出管脚时仍然能够在芯片处于 Deep-sleep 睡眠模式下保持输出电平值或者作为输入管脚使用时可以将芯片从 Deep-sleep 中唤醒。可参见《ESP32 技术参考手册》中的 “RTC_MUX 管脚清单”。
  • ULP 模式下 RTC_GPIO 的应用例程:esp-iot-solution/examples/ulp_examples
    ESP32 GPIO 入门参考
  • 则在 Deepsleep 模式下,I2C 可使用如下红框里的 RTC_GPIO。注意:使用 GPIO(0,2,4,15)以外的 RTC_GPIO 为模拟的 I2C 。可参考例程:esp-iot-solution/examples/ulp_examples/ulp_i2c_bitbang

    ESP32 GPIO 入门参考

AT 串口管脚

  • 默认 release/v2.0.0.0 版本以下的 AT 固件都是通过 UART0(与下载同串口)来传输 AT 指令的;release/v2.0.0.0 及以上版本的 AT 固件默认的 AT 串口对应管脚,不同型号的模组是不一样,具体的 AT 串口管脚默认配置参见 esp-at 出厂配置文件:esp-at/components/customized_partitions/raw_data/factory_param/factory_param_data.csv
  • AT 串口可通过自行编译 esp-at SDK 来进行修改,可参见“Ubuntu18.04 上通过 Gitee 完成 esp-at release_v2.2.0.0 编译环境搭建”说明。

外设管脚分配

  • 请参见《ESP32 技术规格书》“4.2 外设管脚分配” 章节。

SPI 接口

  • ESP32 的 SPI 在专用 IO_MUX SPI 引脚上的速度可达 80 MHz ,在 GPIO matrix 引脚上的速度可达 40 MHz ,但在 GPIO matrix 上的全双工传输只支持高达 26 MHz 的速度。请阅读 “SPI Master Driver” 编程指南。

GPIO 中断

  • 当使用 ADC 或在 Wi-Fi 开启睡眠模式时,请不要使用 GPIO36 和 GPIO39 中断。对应说明参见 “gpio_intr_enable()” 函数说明,解决方案参考《ESP32 Bug 描述及解决方案》。

GPIO 应用

  • 如何配置 GPIO 以及如何使用 GPIO 中断:esp-idf/examples/peripherals/gpio/generic_gpio
  • 基于专用 GPIO 的矩阵键盘:esp-idf/examples/peripherals/gpio/matrix_keyboard
  • 使用 GPIO 唤醒 Light Sleep 例程:esp-idf/examples/system/light_sleep

注意:ESP32 ECO V0 和 V1 版本的芯片,GPIO 唤醒源不能与 Touch 或 ULP 唤醒源一起使用。可参见 “esp_sleep_enable_gpio_wakeup()” 函数说明。

  • ESP32 使用 RTC GPIO 唤醒 Deep Sleep 模式

来源:25-Mar

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年11月24日
下一篇 2021年11月24日

相关推荐