custom board, flash problem, GPIO2 or GPIO12 preventing flashing
Posted: Tue Apr 19, 2022 3:35 pm
Dear all,
we have designed our own ESP32 pcb, what worked without problems. In a redesign, we swapped the WROOM module with WROVER to have more PSRAM and Flash, and we needed to change the pinout a bit, because the WROVER have some pins not broken out compared to the WROOM.
The schematic is in fact orientated on the Open Source Olimex Gateway board, uses the CH340T, and the Olimex way of Diode-connecting the ESP32 GPIO-0 und GPIO-2 (see pictures below).
To use GPIO-2, GPIO-12, we added an analog switch on each, with a power-on delay of around 200ms. The idea was, to let the ESP32 read the strapping pin status (pull-up, pull-down), and hoped after 200ms it would be finish.
Long story short: As shown in the schematic, the board start, but can not be flashed. The error message is "MD5 of file does not match data in flash!". When I use a solder bridge of the "delayBoot" trace to GND, the board can be flashed, and after a reset, it run fine from flash.
So only ether GPIO-2 or GPIO-12 can cause this problem. Because GPIO-2 only goes to an extension connector, what is unconnected, only GPIO-12 can cause these problem. It seems that the 200ms are not enough.
Does somebody know, after what time after EN goes high, the strap pins are sampled? Or even better, after how long after EN goes high it is safe to change the level of GPIO-12 of the ESP32?
Thank you for any support.
we have designed our own ESP32 pcb, what worked without problems. In a redesign, we swapped the WROOM module with WROVER to have more PSRAM and Flash, and we needed to change the pinout a bit, because the WROVER have some pins not broken out compared to the WROOM.
The schematic is in fact orientated on the Open Source Olimex Gateway board, uses the CH340T, and the Olimex way of Diode-connecting the ESP32 GPIO-0 und GPIO-2 (see pictures below).
To use GPIO-2, GPIO-12, we added an analog switch on each, with a power-on delay of around 200ms. The idea was, to let the ESP32 read the strapping pin status (pull-up, pull-down), and hoped after 200ms it would be finish.
Long story short: As shown in the schematic, the board start, but can not be flashed. The error message is "MD5 of file does not match data in flash!". When I use a solder bridge of the "delayBoot" trace to GND, the board can be flashed, and after a reset, it run fine from flash.
So only ether GPIO-2 or GPIO-12 can cause this problem. Because GPIO-2 only goes to an extension connector, what is unconnected, only GPIO-12 can cause these problem. It seems that the 200ms are not enough.
Does somebody know, after what time after EN goes high, the strap pins are sampled? Or even better, after how long after EN goes high it is safe to change the level of GPIO-12 of the ESP32?
Thank you for any support.