SD 上拉需求

[English]

乐鑫硬件产品适用于多种场景,这些场景可能需要不同的管脚上拉状态。因此,要调整某些产品的特定管脚上拉状态,为 SD 总线提供所需的上拉电阻。

ESP32 使用 SPI 或 SDMMC 控制器与 SD 卡通信时,需要满足 SD 卡的上拉需求。当 SD 卡在 SPI 模式或 1 位 SD 模式下运行时,SD 总线的 CMD 和 DATA (DAT0 - DAT3) 线必须通过 10 kΩ 电阻上拉。SD 卡和 SDIO 设备也应在上述所有管脚(无论是否连接到主机)上有上拉电阻,以防设备进入错误状态。

默认情况下,如果 flash 电压为 3.3 V,则 MTDI strapping 管脚与 DAT2 线的上拉电阻不兼容。详情请参阅 MTDI strapping 管脚

本文档涵盖以下章节内容:

兼容性概述

本节概述了在使用安全数字输入输出 (SDIO) 时可能出现的兼容性问题。SD 总线需要连接上拉电阻,因此要妥善解决与主机设备及从机设备有关的兼容性问题。下面每个问题都有相应解决方案的链接,主机设备和从机设备的解决方案可能有所不同。

片上系统 (SoCs)

系统级封装 (SIP)

模组

开发板

非乐鑫主机

请确保 SDIO 主机为所有 SD 总线信号提供必要的上拉电阻。

解决方案

无上拉电阻

如果所使用的开发板没有上拉电阻,可以执行以下操作:

  • 如果主机设备和从机设备在不同的开发板上,将其中一块开发板换为带有上拉电阻的开发板。如需了解哪些乐鑫开发板带有上拉电阻,请参阅 开发板

  • 用一个 10 kΩ 的电阻将每个需要上拉的管脚连接到 VDD,从而附加外部上拉电阻。

GPIO13 上拉冲突

如果所用设备的 DAT3 没有正确上拉,可以参考下列操作:

  • 使用 1 位 SD 模式并将设备的 DAT3 连接到 VDD

  • 使用 SPI 模式

  • 对 GPIO13 管脚执行以下操作之一:
    • 移除下拉电阻

    • 附加小于 5 kΩ 的上拉电阻(建议使用 2 kΩ 的电阻)

    • 在 1 位 SD 模式下,通过主机、或是通过 VDD 上的 3.3 V 电压,将管脚拉高或驱动到高电平。

Bootstrap 与 SDIO 在 DAT2 上的冲突

ESP32 的启动 strapping 需求与 SDIO 协议之间存在冲突。详情请参阅 MTDI strapping 管脚

要解决此冲突,可参考以下选项:

1.(推荐)烧录选择 flash 电压的 eFuse。该操作会将内部调节器的输出电压永久配置为 3.3 V,并且 GPIO12 将不再用作 strapping 管脚。烧录完成后,将上拉电阻连接到 GPIO12。

警告

烧录 eFuse 是不可逆的!上述问题清单可能已经过时,因此请确保要烧录的模组内嵌 3.3 V flash 芯片,可前往 https://www.espressif.com/ 进行确认。如果在带有 1.8 V flash 芯片的模组上烧录 3.3 V eFuse,模组将停止工作。

如果确定要烧录 eFuse,请转到 ESP-IDF 目录下,通过 espefuse.py 工具运行以下命令:

components/esptool_py/esptool/espefuse.py set_flash_voltage 3.3V

此命令将烧录 XPD_SDIO_TIEHXPD_SDIO_FORCEXPD_SDIO_REG eFuse。当以上三个 eFuse 被烧录为 1 时,内部 VDD_SDIO flash 电压调节器将被永久设置为 3.3 V。如果烧录成功,将看到以下日志:

espefuse.py v2.6
Connecting....

Enable internal flash voltage regulator (VDD_SDIO) to 3.3 V.
The following eFuses are burned: XPD_SDIO_FORCE, XPD_SDIO_REG, XPD_SDIO_TIEH.
This is an irreversible operation.
Type 'BURN' (all capitals) to continue.
BURN
VDD_SDIO setting complete.

要检查 eFuse 的状态,请运行:

idf.py efuse-summary

如果运行自动烧录脚本,最好使用独立的 eFuse 工具 espefuse.py。此工具还具有 --do-not-confirm 选项,可在无需确认的情况下烧录 eFuse。

有关烧录 eFuse 的更多信息,请参阅 ESP32 技术参考手册 [PDF]。

  1. 如果使用 1 位 SD 模式或 SPI 模式,请断开 DAT2 管脚并确保其被拉高。可以采取下列两个选项之一:

  • 使主机的 DAT2 管脚悬空,并将从机设备的 DAT2 直接连接到 VDD。

  • 对于从机设备,构建具有 SDIO_SLAVE_FLAG_DAT2_DISABLED 选项的固件并重新烧录设备,此选项可避免从机设备检测 DAT2 线。请注意,CCCR 寄存器将不再支持 4 位 SD 模式,但主机并不知晓这一点,因此必须在主机端禁用 4 位 SD 模式。

GPIO12 无上拉电阻

所用模组与 SDIO 协议兼容,只需通过 10 kΩ 电阻将 GPIO12 连接到 VDD 即可。

下载模式不起效(次要问题)

当 GPIO2 管脚根据 SD 上拉需求被拉高时,将无法进入下载模式,因为 GPIO2 是一个 strapping 管脚,下载模式下必须被拉低。

可参考以下解决方案:

  • 对于需要用跳线短接 GPIO0 和 GPIO2 管脚的开发板,跳线连接完成后,自动复位电路会在进入下载模式前将 GPIO2 与 GPIO0 一起拉低。

  • 对于 GPIO2 管脚上连有组件(例如下拉电阻和/或 LED)的开发板,请查看开发板的原理图,确认连接到 GPIO2 上组件的具体情况。

    • LED 大多数情况下不会影响操作。

    • 下拉电阻 可能会干扰 DAT0 信号,必须移除。

如果上述解决方案无效,请检查主机或从机设备是否带有会影响 GPIO2 的上拉电阻,如有,将其移除。


此文档对您有帮助吗?