I have a circuit using an ATmega32U4 and am using the Arduino Leonardo/Micro Caterina bootloader (the one that comes with arduinoIDE v1.8.13). The problem I am having is on power-up (via USB connection) the AVR enters bootloader mode instead of application mode. I checked the MCUSR register (by replacing the bootloader) and the EXTRF bit is being set on power-up. I tried replacing the capacitor in the reset circuit shown with a 100nF cap, but no change. I then tried simply removing the capacitor, and it then powers up to start the application as it should.
On closer examination of various Arduino schematics show that the UNO (using the Atmega328) has a similar 100nF cap from reset to ground, but the Leonardo and Micro do not have a capacitor from reset to ground. Furthermore, this Atmel app note specifies an optional 100nF cap from reset to ground.
I do not understand why this cap is causing this problem. I suspect its presence is causing enough delay on power-up so that the reset pin fails to reach sufficient voltage before the EXTRF bit gets set due to it being low. However, the spec sheet does not mention such a timing interval. I am not sure, but I suspect it is particular to the AVR chips providing an USB interface.
Any insights or suggestions? I do not believe removing the capacitor is a problem, and seems to be the correct thing to do, but I want to make sure I understand what is happening in order to be sure of the correct solution.