Set Flash Voltage
The espefuse set-flash-voltage command permanently sets the internal flash voltage regulator to either 1.8V, 3.3V or OFF. This means a GPIO can be high or low at reset without changing the flash voltage.
Positional arguments:
voltage- Voltage selection [‘1.8V’, ‘3.3V’, ‘OFF’].
Optional arguments:
--show-token. Display the eFuse token dump for the write operation before the confirmation prompt. This produces anEFSWtoken. If the goal is only to obtain the token, press ENTER to abort (no burning will occur). See Token Dump section for more details on token formats and usage.
Setting Flash Voltage (VDD_SDIO)
After reset, the default ESP32 behavior is to enable and configure the flash voltage regulator (VDD_SDIO) based on the level of the MTDI pin (GPIO12).
The default behavior on reset is:
MTDI |
Internal Regulator |
|---|---|
Low or unconnected |
Enabled at 3.3V |
High |
Enabled at 1.8V |
Consult ESP32 Technical Reference Manual chapter 4.8.1 “VDD_SDIO Power Domain” for details.
A combination of 3 eFuses (XPD_SDIO_FORCE, XPD_SDIO_REG, XPD_SDIO_TIEH) can be burned in order to override this behavior and disable VDD_SDIO regulator, or set it to a fixed voltage. These eFuses can be burned with individual burn-efuse commands, but the set-flash-voltage command makes it easier:
Disable VDD_SDIO Regulator
espefuse set-flash-voltage OFF
Once set:
VDD_SDIO regulator always disabled.
MTDI pin (GPIO12) is ignored.
Flash must be powered externally and voltage supplied to VDD_SDIO pin of ESP32.
eFuse
XPD_SDIO_FORCEis burned.
Fixed 1.8V VDD_SDIO
espefuse set-flash-voltage 1.8V
Once set:
VDD_SDIO regulator always enables at 1.8V.
MTDI pin (GPIO12) is ignored.
External voltage should not be supplied to VDD_SDIO.
Efuses
XPD_SDIO_FORCEandXPD_SDIO_REGare burned.
Fixed 3.3V VDD_SDIO
espefuse set-flash-voltage 3.3V
Once set:
VDD_SDIO regulator always enables at 3.3V.
MTDI pin (GPIO12) is ignored.
External voltage should not be supplied to VDD_SDIO.
Efuses
XPD_SDIO_FORCE,XPD_SDIO_REG,XPD_SDIO_TIEHare burned.
Subsequent Changes
Once an eFuse is burned it cannot be un-burned. However, changes can be made by burning additional eFuses:
set-flash-voltage OFFcan be changed to1.8Vor3.3Vset-flash-voltage 1.8Vcan be changed to3.3V