Page 1 of 1

ESP32-S3: Unable to communicate over UART when adding bypass capacitors

Posted: Wed May 03, 2023 5:18 am
by bovk123
The Hardware Design Guidelines recommend placing bypass capacitors of 0.1uF on some of the VDD lines for the ESP32-S3 (EG 0.1 uF on VDD_SPI). Whenever I place these capacitors on my circuit, I get an invalid head of packet error when trying to flash the device over UART:

Code: Select all

Configuring flash size...
Flash will be erased from 0x00000000 to 0x00005fff...
Flash will be erased from 0x00010000 to 0x00046fff.
Flash will be erased from 0x00008000 to 0x00008fff...
Compressed 20864 bytes to 13343..
Writing at 0x00000000... (100 %)
A fatal error occurred: Invalid head of packet (0x78): Possible serial noise or corruption.
And also when I try to read over UART using the serial monitor:

Code: Select all

invalid header: 0x20010000
invalid header: 0x20010000
invalid header: 0x20010000
invalid header: 0x20010000
invalid header: 0×20010000
invalid header: 0x20010000
I am not sure why this happens and have tried the solutions as suggested by the Troubleshooting section of the documentation:
  • Trying another USB cable.
  • Lowering the baud rate. I've tried 115200, 57600, 38400, 19200, 14400, 9600. At 115200 and 57600 I received the same invalid head of packet error. For the other baud rates I get a chip stopped responding error.
  • Skipping chip autodetection. I have set my chip to ESP32-S3 using esptool.py
If it is any help, I am using a PCB that breaks out the ESP32-S3 pins to headers, then connecting these pins to a breadboard using jumper wires. It is on this breadboard where I am placing the bypass capacitors. I am also flashing my ESP32-S3 by using the ESP-Prog. I have the proper UART and JTAG pins connected and have verified proper functionality when I have not placed a bypass capacitor.

Any help would be appreciated. Thank you.

Re: ESP32-S3: Unable to communicate over UART when adding bypass capacitors

Posted: Thu May 04, 2023 3:39 am
by ESP_Sprite
Sounds like the bypass capacitors somehow result in a dead short somehow. Can you measure the voltage over them?

Re: ESP32-S3: Unable to communicate over UART when adding bypass capacitors

Posted: Thu May 04, 2023 11:36 pm
by bovk123
The voltage I get over the capacitor is around 3.2V. This voltage stays consistent when I'm flashing and no matter what baud rate I try. I've also tried different capacitors and I get around the same voltage level.

Re: ESP32-S3: Unable to communicate over UART when adding bypass capacitors

Posted: Fri May 05, 2023 2:01 am
by ESP_Sprite
Can you put the bypass caps closer to the ESP32, i.e. solder them to the PCB rather than use wires? Those wires can pick up noise from the environment and inject it into Vdd_sio. Additionally, they'll have a non-negligable inductance, likely negating the purpose of that decoupling cap.