Page 1 of 1

Custom PCB boot looping

Posted: Tue Mar 03, 2020 11:06 am
by MaxSydney
I am just in the processing of assembling some ESP32 based PCBs that I had manufactured and I am noticing some weird behaviour. When the chip has nothing in flash memory, I am able to talk to the bootloader (CP2102 USB bridge) and the power is stable. When a program is flashed to the chip, the ESP32 goes into a boot loop and the only way I can recover is to enter the bootloader using EN/IO0 and erase the flash.

There is an LED on the power supply and this begins flickering as soon as the chip boots into a program. Unfortunately I don't have access to a scope at the moment so I can't provide much more information than that.

If I hold the EN pin low and release, the serial output suggests the chip tries to boot and then the serial port drops communications. Serial output below

Code: Select all

// rst:0x1 (POWERON_RESET),boot:0x33 (SPI_FAST_FLASH_BOOT)
// configsip: 0, SPIWP:0xee
// clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
// mode:DIO, clock div:2
// load:0x3fff0030,len:4
// load:0x3fff0034,len:7168
// ho 0 tail 12 room 4
// load:0x40078000,len:14864
// load:0x40080400,len:4568
// entry 0x400806f0
I have attached a schematic below. Note that I have removed the LED on IO12, with the pin having no external pull down (however pulling this pin low doesn't seem to resolve the boot issue).

I'm think the problem may be with the power supply struggling to power the chip through boot (could confirm with scope), or something I have missed with the strapping pins. Can anyone help to clear this up? Thanks in advance.

Image

Re: Custom PCB boot looping

Posted: Tue Mar 03, 2020 1:37 pm
by boarchuz
1. Your regulator schematic differs significantly from the reference design: capacitor values (?) and floating thermal pad (!).

2. What happens if you upload a minimal program (ie. not operating the pumps; simply print a message)?

3. Are physical connections low impedance, power traces wide, etc?

Re: Custom PCB boot looping

Posted: Tue Mar 03, 2020 8:24 pm
by MaxSydney
boarchuz wrote:
Tue Mar 03, 2020 1:37 pm
1. Your regulator schematic differs significantly from the reference design: capacitor values (?) and floating thermal pad (!).

2. What happens if you upload a minimal program (ie. not operating the pumps; simply print a message)?

3. Are physical connections low impedance, power traces wide, etc?
1, Some of the caps have been adjusted based on what I had available, are there any changes on here that you think are particularly likely to cause issues? The resistor divider is also modified slightly to output 3.3V rather than 5V. Good catch on the thermal pad (whoops), I just checked the datasheet and it doesn't look like having the pad floating should affect operation too much provided the temperature doesn't climb too high. For what it's worth, the regulator is not even warm to the touch when operating

2, The test program that I uploaded was the hello-word example in the idf. Good point about the pumps, I should mention that the pump drivers etc are not populated. The only components on the board for this experiment are the power supply, USB bridge and ESP32 (+ some caps etc).

3, I think so, but happy to post the layout if you would like to inspect?