1
\$\begingroup\$

I am using an STM32F302C8T6 and ST-LINK v2. The MCU should normally be pulling NRST high through its weak pull-up resistor, however it's being held low somehow. This prevents me from being able to flash.

BOOT0 is tied low. If I hold NRST high with a PSU at 3.3V with current limiting to 5mA, the debugger can pull NRST low temporarily to reset the MCU and flash reliably.

This is the MCU schematic:

enter image description here

The only thing that was connected between NRST and the debugger was a TVS diode that I removed (D41).

I am seeing this behavior across multiple boards with similar schematics.

I suspected that D42 was backdriving the MCU as I was reading 3V on the open drain STATUS_R/G/B inputs, so I removed D42.

After re-reading the datasheet, I realize that I should have a 0.1uF decoupling cap from NRST to GND. I don't think that is the problem though.

\$\endgroup\$
0
\$\begingroup\$

I measured the resistance from NRST to GND and it was ~2k. I de-soldered the MCU and re-measured the resistance from NRST to GND, which was now larger than 20M.

enter image description here

The internal circuitry is just a pull-up and schmitt trigger, so I concluded that there was some internal short in the MCU, which is backed up by bizarre behavior by the MCU beyond this NRST problem. I cannot double check this with another MCU as the pads are messed up from all the rework now.

| improve this answer | |
\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.