Strange issue with ESP32-WROVER-E(16MB) Rev3
Posted: Thu Jun 24, 2021 6:08 pm
Hello, I am finishing a project which ivolved ESP32 wrover E as a main CPU. Hardware is fully custom, I am using encrypted partitions and OTA. I've run into a strange issue with one beta unit. It eventually stopped functioning as expected, and just outputs garbage in the monitor.
I am able to erase chip, reflash it, read ID, flash bootloader/partition table/initial ota/factory app/ota0/ota1 without any problems. Obviously it doesn't boot either. Any suggestions how to proceed?
Recent changes are as follows (first thing in main). Devices confirmed working after addition of this code:
I am able to erase chip, reflash it, read ID, flash bootloader/partition table/initial ota/factory app/ota0/ota1 without any problems. Obviously it doesn't boot either. Any suggestions how to proceed?
Recent changes are as follows (first thing in main). Devices confirmed working after addition of this code:
Code: Select all
void fCheckBit(const esp_efuse_desc_t *d[], bool val) {
esp_err_t erv = ESP_OK;
bool bDt = esp_efuse_read_field_bit(d);
logToRam(true,"*S* BP67%09X=>.%03X\r\n", (uint32_t)d-1928, bDt + 0xF9);
if (val) {
if (!bDt) {
erv = esp_efuse_write_field_bit(d);
if (erv==ESP_OK) {
bDt = esp_efuse_read_field_bit(d);
logToRam(true,"*SS* BP67%09X=>>.%03X\r\n", (uint32_t)d-1928, bDt + 0xF9);
} else {
logToRam(true,"*SS* BP67%09X Unable to Set. %s", (uint32_t)d-1928, esp_err_to_name(erv));
}
}
}
}
void runS() {
fCheckBit(ESP_EFUSE_SDIO_TIEH,true);
fCheckBit(ESP_EFUSE_XPD_SDIO_REG,true);
fCheckBit(ESP_EFUSE_SDIO_FORCE,true);
fCheckBit(ESP_EFUSE_DISABLE_DL_ENCRYPT,true);
fCheckBit(ESP_EFUSE_DISABLE_DL_DECRYPT,true);
fCheckBit(ESP_EFUSE_DISABLE_DL_CACHE,true);
fCheckBit(ESP_EFUSE_DISABLE_JTAG,true);
fCheckBit(ESP_EFUSE_CONSOLE_DEBUG_DISABLE,true);
}
void app_main(void) {
runS();
initSystem();
}