添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  • 开发板使用
  • ESP32 中 I2S 信号管脚过于分散,是否可以配置集中⼀些,例如配置到 GPIO5、GPIO18、GPIO23、GPIO19、GPIO22 或者 GPIO25、GPIO26、GPIO32、GPIO33 管脚上?
  • ESP32 在 Light-sleep 模式下如何避免 VDD3P3_RTC 管脚的电压掉电?
  • 配置 ESP32 管脚有什么注意事项?
  • 乐鑫芯片 GPIO 最大承载电压是多少?
  • ESP8266 电压电流需求?
  • 乐鑫 Wi-Fi 模组是否有单面板 PCB 的方案?
  • 使用电池为 ESP8266 供电有哪些注意事项?
  • 如何获取 ESP32 系列芯片 footprint?
  • 使用 ESP32-S2 芯片,用了 DVP camera 接口后还能接入语音吗?
  • 使用 ESP32 模块,使用 GPIO0 和 GPIO4 作为 I2C 信号接口,需要注意什么?
  • ESP32 的外接 flash 占用了 GPIO6 ~ GPIO11,这 6 个 GPIO 是否还能作为 SPI 来使用?
  • 使用 ESP8285 芯片时,是否需要连接外部晶振?
  • ESP32-D2WD 外接 PSRAM 的参考设计?
  • ESP32 是否可以用 PWM 或 DAC 来播放音乐?
  • 为什么 ESP32 模组和 ESP32 芯片的建议工作电压范围不一样?
  • 自主设计模组 flash 擦除速度相比乐鑫模组较慢有哪些原因?
  • ESP8266 为何上电瞬间会电流较大?
  • ESP32 以太网 RMII 时钟选择有哪些?
  • ESP32-LyraT 开发板扬声器接口规格?
  • 基于 ESP32 设计的模组,哪些管脚无法被用户使用?
  • ESP32 如何使用管脚复位芯片?
  • ESP8266 供电设计需要注意哪些问题?
  • ESP8266 使用 TOUT 管脚做 ADC 采样时,超过 0 V ~ 1.0 V 是否会损坏管脚?
  • 使用板载天线的模组,对 PCB 和外壳设计有哪些要求?
  • 使用 ESP32 GPIO34 ~ GPIO39 是否可作为 UART 的 RX ?
  • ESP32 模组外接 32 kHz 晶振参考设计?
  • ESP32 模组 flash 是否支持 80 MHz 的 QIO 模式?
  • 如何配置 ESP32 以太网的 RMII 同步时钟?
  • 使用 ESP8266 芯片如何进行硬件复位?硬件复位信号是低电平有效还是高电平有效?复位的条件是什么?
  • 乐鑫原理图中的 NC 缩写是什么意思?
  • 如何在 ESP32-S2 中使用多天线?
  • ESP32-C3F SPI CS0 是否需要外接 10 kΩ 上拉电阻?
  • ESP-Skainet 有语音识别硬件设计参考吗?
  • 硬件上是否有必要接 32 kHz 的 RTC 晶振?
  • 使用 ESP32-MINI-1 模组,是否可提供 Altium Designer 的元件库?
  • ESP8266 的 UART0 的输入电压能由 3.3 V 改为 1.8 V 吗?
  • ESP8266 UART0 的电平是由 VDD 决定的,还是由 VDDPST 决定的?
  • ESP32-D2WD 芯片外接 PSRAM 软件配置注意事项是什么?
  • ESP32 芯片当 VDD 供电从 0 V 慢慢升到 3.3 V 时,芯片为何无法正常启动?
  • 使用 ESP32-WROOM-32D 模组,是否可以使用 GPIO12 用作其他功能?
  • ESP32-WROOM-32D 模组的外接 flash,是否可以不使用 GPIO6 ~ GPIO11 的接口?
  • ESP32 芯片设计模组,PCB 板是否需要加屏蔽盖?
  • ESP32 的 I2S 的 CLK 管脚必须使用 GPIO0、GPIO1 或 GPIO3 吗?
  • ESP32-U4WDH 芯片是否支持外接 PSRAM 芯片?
  • ESP32 芯片是否支持使用 SPI0/SPI1 接口外接 SD NAND flash 来存储程序固件(而不是使用默认的 NOR flash)?
  • 是否支持基于 ESP32-S3R8 芯片外挂第二个 PSRAM 芯片?
  • 能否提供 ESP32-S3-WROOM-1 模组的 3D 模型和 Footprint 文件?
  • ESP32/ESP32-S2/ESP32-C3/ESP32-S3 是否支持单独给 RTC 电源域供电来保持芯片低功耗工作?
  • 有哪些提高 EMC 性能的方法?
  • ESP32-S3 U0TXD 为什么要预留 499 Ω 的电阻?
  • 如何在硬件上校准 ESP32-S3 ADC?
  • 如何基于 ESP32 系列芯片设计自动下载电路?
  • 在 ESP8266 芯片上应该使用哪种晶振?
  • ESP32-C2、ESP32-C3 和 ESP32-C6 芯片是否支持外接 PSRAM 芯片?
  • ESP32-C3 采用电池供电时,当供电电压逐渐下降,比如将电池放完电后再充电,ESP32-C3 可能会无法启动。此时,只能首先断开电池与 ESP32-C3 的连接,再重新连接充好电的电池,或者尝试在 3.3 V 引脚和 EN 引脚间连接一个稳压二极管才能让芯片正常启动,出现这种情况的根本原因是什么?有没有最佳的解决办法?
  • ESP32 系列模组上的九宫格 GND 网格是否需要铺铜?
  • 为什么 ESP32 第一次上电无法启动,需要复位一次才能正常启动?
  • 以太网 PHY 初始化失败,硬件层面可能是什么原因?
  • 以太网 PHY 初始化成功,但是无法获取到 IP,硬件层面可能是什么原因?
  • 使用 ESP32 芯片设计的 PCB 无法正常连接到路由器,什么原因?
  • ESP32-C6 的 GPIO6(JTAG 管脚 MTCK)默认上电复位初始状态是输入使能和内部弱上拉电阻使能 (IE & WPU),是否可以通过烧写 eFuse 将其改为仅输入使能 (IE)?
  • H2 的 VBAT 引脚可否单独供电?
  • 工艺与防护
  • ESP32 中 I2S 信号管脚过于分散,是否可以配置集中⼀些,例如配置到 GPIO5、GPIO18、GPIO23、GPIO19、GPIO22 或者 GPIO25、GPIO26、GPIO32、GPIO33 管脚上?

    所有 I2S 的 I/O 均可任意分配。需要注意的是,有的 I/O 只能作为输⼊,请参考 《ESP32 技术规格书》 的外设管脚分配章节和附录中的 IO_MUX 管脚清单。

    ESP32 在 Light-sleep 模式下如何避免 VDD3P3_RTC 管脚的电压掉电?

    ESP32 进⼊ Light-sleep 模式后,RTC 掉电会使 VDD3P3_RTC 管脚对应的 GPIO 的电平被拉低,从而导致外部 RTC 或者其他外设无法正常工作。可以采取以下两种方式解决该问题:

  • 设置 RTC 硬件电压控制寄存器 RTC_CNTL_REG 来控制电压。具体来说,需要将 RTC_CNTL_REG 寄存器中的 FORCE_PU 和 FORCE_PD 位设置为 1,即 RTC_CNTL_REG |= RTC_CNTL_FORCE_PU_M | RTC_CNTL_FORCE_PD_M;

  • 使用 GPIO 保持管脚。ESP32 的 Light-sleep 模式支持 GPIO 保持功能,可以将某些 GPIO 管脚设置为保持管脚,保持在系统进入低功耗模式时的电平状态。具体来说,可以将 VDD3P3_RTC 管脚设置为保持管脚,以保持其电压。相关代码片段如下:

    esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON);
    esp_sleep_enable_gpio_wakeup();
    gpio_hold_en(GPIO_NUM_X);
    

    其中,ESP_PD_DOMAIN_RTC_PERIPH 表示 RTC 子系统的电源域,ESP_PD_OPTION_ON 表示使能电源域,gpio_hold_en() 函数可以将指定的 GPIO 管脚设置为保持管脚。将 VDD3P3_RTC 管脚设置为保持管脚之后,即使系统进入 Light-sleep 模式,该管脚的电压也会保持。

    需要注意的是,使用 GPIO 保持功能会增加系统的功耗,因此需要根据具体的应用场景来选择合适的方案。如果只需要保持 RTC 硬件的电源供应,可以使用第一种方法;如果需要保持其他外设的电源供应,可以使用第二种方法。

  • 大部分数字外设可以通过 GPIO 交换矩阵配置到任意管脚。SDIO、SPI 高速以及模拟类相关功能只能通过 IO MUX 切换使用。

  • 管脚使用注意事项可参考 GPIO & RTC GPIO 说明。

  • Strapping 管脚的默认电平,详情参考 《ESP32 技术规格书》

  • GPIO34 ~ GPIO39(⽤作输⼊ IO,并且无上下拉功能)。

  • GPIO6 ~ GPIO11 由 flash 管脚占⽤。

  • GPIO1 和 GPIO3 是 UART0 的 TX 和 RX 管脚,⽆法进行配置。

  • 对于带有 PSRAM 的模组,GPIO16 和 GPIO17 由 PSRAM 占⽤。

  • ESP32 属于无线模块,射频性能对于 PCB 材质有较高的要求。我们测试过 4 层与 2 层的方案,但未测试过单层的设计。

  • 在此不建议使用单层板子的方案,建议产品 PCB 可以使用单层板,贴装我们的模组。单层板子的模组,射频性能无法预估。

  • 为保证良好的 RF 性能,我们建议使用 4 层板设计。

  • ESP8266 电压范围为 3.0 V ~ 3.6 V,两节 AA 电池可以给 ESP8266 供电。需要注意电池压降是否满足芯片电压范围。

  • 锂电池电压范围超过模组要求,并且放电时压降较⼤,不适合直接给 ESP8266 供电。

  • 推荐电池使⽤ DC/DC 或 LDO 升降压后给 ESP8266 供电,并且注意电源芯片压差要求。

  • 因为它们的工作环境和使用方式不同。 - ESP32 芯片是一颗裸片,需要在电路板上加上外围电路才能正常工作。ESP32 芯片的建议工作电压范围为 2.3 V 至 3.6 V,是根据 ESP32 芯片本身的电气参数来决定的。在这个电压范围内,ESP32 芯片能够正常工作,并且可以提供最佳的性能和功耗表现。 - ESP32 模组则是已经封装好的整个电路模块,通常会加上稳压电路、外部晶振、外部天线等外围电路,以及其他外设芯片(如 flash、RAM)等,可以直接使用。由于模组上的电路已经经过优化和调试,因此建议工作电压范围会更窄一些。例如,ESP32-WROOM-32 模组的建议工作电压范围就为 3.0 V 至 3.6 V。此外,由于模组要考虑 flash 的电压,所以 ESP32 模组的建议工作电压会更高一些。

  • 在使用这些芯片和模组时,需要根据具体情况选择合适的电源和外围电路,以确保它们能够正常工作。

  • 更多信息,请对比模组和芯片的 技术规格书

  • ESP8266 的 RF 和数字电路具有极⾼的集成度,上电后 RF ⾃校准,在校准时会需要⼤电流。

  • 模拟部分电路最⼤的极限电流可能达到 500 mA,数字电路部分最⼤电流达到 200 mA。

  • 常规应用时,平均电流约 100 mA。

  • 综上,ESP8266 电源设计需要满足 500 mA 电流。

  • ESP32-WROOM 系列模组,GPIO6 ~ GPIO11 为 flash 管脚,作为 flash 通信使⽤,不可被用户使用。

  • ESP32-WROVER 系列模组,GPIO16 和 GPIO17 被模组 PSRAM 占⽤,不可被用户使用。

  • 此外,ESP32 有 5 个 Strapping 管脚,在使⽤时需要额外注意,具体细节请参考 《ESP32 技术规格书》

  • 如果是使⽤ LDO 变压,请确保输⼊电压在 (2.7 V ~ 3.6 V) 和输出电流(大于 500 mA)要⾜够⼤。

  • 电源轨去耦电容器必须接近 ESP8266 摆放,等效电阻要⾜够低。

  • ESP8266 不能直连 5 V,仅支持 3.3 V,电压范围 2.7 V ~ 3.6 V。

  • 如果是通过 DC-DC 给 ESP8266 供电,必要时要加上 LC 滤波电路。

  • 可参考 《ESP8266 硬件设计指南》 中的 电源 章节。

  • 如产品采⽤模组进⾏ on-board 设计,则需注意考虑模组在底板的布局,应尽可能地减⼩底板对模组 PCB 天线性能的影响。

  • 条件允许的情况下,建议将模组 PCB 天线区域延伸出底板板框外,并将模组尽可能地靠近底板板边放置,使天线的馈点距离板边最近。

  • 请确保模块不被任何⾦属的外壳包裹,模块 PCB 天线区域及外扩 15 mm 区域需净空(严禁铺铜、⾛线、摆放元件)。

  • 具体说明请阅读对应模组的 硬件设计指南

  • 请下载 esp-idf/examples/ethernet/basic 例程进行测试。

  • IP101 PHY 芯片在 GPIO0 输出 CLK 时会出现网络不稳定的现象,所以推荐 PHY 外接 50 MHz 晶振,GPIO0 作为输入。

  • 由于 GPIO0 的特殊性,所以需要配置 IO 控制 PHY 的使能管脚。

  • 请阅读 以太网文档

  • 可参考 SCH_ESP32-ETHERNET-KIT 原理图设计

  • ESP8266 的 Pin32 EXT_RSTB 为复位管脚。此管脚内部有上拉电阻,低电平有效。为防⽌外界⼲扰引起的重启,建议 EXT_RSTB 的⾛线尽量短,并在 EXT_RSTB 管脚处增加⼀个 RC 电路。

  • ESP8266 的 CHIP_EN 管脚也可作为硬件复位管脚,当使用 CHIP_EN 管脚作为复位管脚时,复位信号是低电平有效。复位条件为当输入电平低于 0.6 V 并持续 200 μs 以上时,ESP8266 会复位重启。我们推荐使用 CHIP_EN 管脚进行芯片复位。可参考 《ESP8266 硬件设计指南》 中的 复位 章节。

  • ESP32-S2 的多天线使用和 ESP32 类似,可以参考 《ESP32-WROOM-DA 技术规格书》 中的多天线使用。

  • 《ESP-IDF 编程指南》 中提供了详细的操作说明。

  • 使用时添加一个 RF 开关,通过开关选择具体工作的天线。

  • ESP32-C3F 的 SPI 控制器支持软件可编程的 CS (Chip Select) 管脚,不需要外接 10 kΩ 上拉电阻。

  • 在 ESP32-C3F 中,可以通过在 SPI 控制器配置中设置 CS 管脚为任意 GPIO 引脚,并在代码中通过设置 GPIO 状态来控制 CS 管脚的电平。当 SPI 总线空闲时,CS 管脚会自动被拉高至 GPIO 引脚的默认状态,不需要外接上拉电阻。

  • 需要注意的是,在使用软件可编程的 CS 管脚时,需要在 SPI 总线传输前手动将 CS 管脚拉低,以选择目标设备,并在传输完成后将 CS 管脚拉高,以释放设备。同时,还需要根据实际情况调整 CS 管脚的电平和状态,以确保 SPI 总线的稳定性和可靠性。

  • 需要在 menuconfig 中使能 CPU frequece 240 MhzRTC clock 80 Mhz,具体配置如下:

  • menuconfig > Serial flasher config > Flash SPI Speed (80 Mhz)

  • Component config > CPU frequency (240 Mhz)

  • Component config > ESP32 specific > [*]Support for external, SPI-connected RAM

  • Component config > ESP32 specific > SPI RAM config > Set RAM clock speed (80 Mhz clock speed)

  • 出现此问题是由于芯片上电时序不满足要求,时序要求当 VDD 达到 2.3 V 时,EN 电压不应超过 0.6 V。

  • 但 VDD 上电时间过慢时,芯片 EN 端的 RC 电路将 EN 延时的功能就丧失了。

  • 可以调整 RC 电路,增加电容,调整电阻,或是使用 Reset 芯片管控 EN 状态。

  • 建议检测到供给 ESP32 的电压低于 2.3 V 时将 ESP32 的 EN 脚拉低。

  • ESP32 上电时序说明参见 《ESP32 技术规格书》

  • GPIO12 为 Strapping 管脚,控制 SPI flash 的启动电压。ESP32-WROOM-32D 模组的 SPI flash 启动电压为 3.3 V,因此在上电启动时 GPIO12 需要拉低。

  • 若需要使用 GPIO12 用作其他功能,请使用 esptool 工具通过 espefuse.py set_flash_voltage 3.3V 命令将 VDD_SDIO 固定为 3.3 V。

  • 硬件上可以将 VDD_SDIO 直接连到 3.3 V 上,这样就不用再烧录 eFuse。

  • 在量产阶段,也可以直接将 flash 下载工具里 “config/esp32/utility.confgi” 文件下 ESP32_EFUSE_CONFIG 的默认配置选项修改为 config_voltage = 3.3 V 来下载固件。

  • 是否需要加屏蔽盖取决于具体的应用场景和要求。

  • 在一些高要求的应用场景,例如无线通讯干扰环境较严峻、电磁兼容性(EMC)测试要求较高等情况下,加装屏蔽盖可以有效地减少外界干扰和 PCB 板上的互相干扰,提高系统的稳定性和可靠性。此时,屏蔽盖应该采用导电材料,并接地处理,以确保其有效性。

  • 另一方面,如果应用场景较为简单,如无线通讯干扰较小,EMC 要求不高等情况下,加装屏蔽盖的效果可能不是很明显,且可能增加系统成本和复杂度。

  • 如果板子还有其他信号干扰,比如 2G、3G、4G 或者 Wi-Fi、Bluetooth、Zigbee 等等建议加上屏蔽盖。

  • ESP32-U4WDH 芯片支持外接 PSRAM 芯片,但仅支持乐鑫发布的 ESP-PSRAMXXH 芯片,不支持使用第三方 PSRAM 芯片。

  • 硬件设计上,除了 CS 管脚外,其他所有管脚都可以与 Flash 复用,更多指南请参考 《ESP32 硬件设计指南》

  • 另外,PCB 设计时请注意 PSRAM 的 GND 到 ESP32-U4WDH 的 GND 要尽量短,否则可能会影响信号质量。

  • ESP32 芯片不支持使用 SPI0/SPI1(连接程序 flash)接口来外接 SD NAND flash 芯片。

  • 如果要存储外部数据,建议使用 ESP32 的 SPI2、SPI3 或 SDIO 接口来外接 NAND SD 芯片。

  • SPI2 和 SPI3 可以使用任意 GPIO,但 SDIO 接口则只能使用指定接口,详细说明请见 《ESP32 技术规格书》 中的 外设管脚分配 章节。

  • ESP32-C3 采用电池供电时,当供电电压逐渐下降,比如将电池放完电后再充电,ESP32-C3 可能会无法启动。此时,只能首先断开电池与 ESP32-C3 的连接,再重新连接充好电的电池,或者尝试在 3.3 V 引脚和 EN 引脚间连接一个稳压二极管才能让芯片正常启动,出现这种情况的根本原因是什么?有没有最佳的解决办法?

  • 根本原因:ESP32-C3 芯片重新上电和复位时,CHIP_EN 管脚需要满足 ESP32-C3 芯片规格书ESP32-C3 硬件设计指南 里的上电时序图要求和说明。如果电池放电和上电比较缓慢,ESP32-C3 可能无法充分复位,从而导致芯片部分单元处于不确定状态。

  • 解决办法:目前,若使用电池供电或储能类应用系统,可以通过调整不同 RC 器件值、使用两个电阻分压控制,或使用一颗较为常见的复位芯片来解决此问题。有关 RC 器件值、相关电阻的详细信息,请参见 ESP32-C3 系列芯片硬件设计指南

  • ESP32-C6 的 GPIO6(JTAG 管脚 MTCK)默认上电复位初始状态是输入使能和内部弱上拉电阻使能 (IE & WPU),是否可以通过烧写 eFuse 将其改为仅输入使能 (IE)?

  • 可以。将 EFUSE DIS_PAD_JTAG 写为 1 后,GPIO6(JTAG 管脚 MTCK)的上电复位初始状态即改为输入使能 (IE),可参见 《ESP32-C6 技术规格书》 中的 2.2 管脚概述

  • 可通过 espefuse.py burn_efuse DIS_PAD_JTAG 指令来将 EFUSE DIS_PAD_JTAG 写为 1。

  • 也可以在应用代码中添加如下代码来将 EFUSE DIS_PAD_JTAG 写为 1:

    #include "esp_efuse.h"
    #include "esp_efuse_table.h"
    esp_efuse_write_field_bit(ESP_EFUSE_DIS_PAD_JTAG);
    
  •