Colleagues,
I’ve made a custom board with STM32L082KZ. I was able to upload firmware and debug for several days. But today I can’t upload firmware, and the NRST pin is acting strangely.
The setup
I’m using ST-link V2 and STM32cubeIDE 1.13.0 .
My entire board consumes around 20mA normally. The board is powered with a benchtop power supply. I’ve set the current limit at 40mA.
The NRST net has only three things connected to it: the microcontroller NRST pin, 0.1uF capacitor to GND, the SWD connector pin.
VDD is +3.3V .
Symptoms and observations
Today I can no longer upload firmware. When I try to upload the firmware with ST-link V2, there’s a spike in current draw, which trips the current limit. I tried every reset behavior in Debug Configurations, and each one caused a power supply current spike.
The firmware from yesterday that’s left in the microcontroller was able to run all this time, and it still runs.
Discovery. I tried to reset the microcontroller manually by shorting the NRST to GND, and I also got a spike in power supply current which tripped the limit. That suggests that the spike during firmware upload happens when the ST-link tries to drive NRST low.
NRST should be an input. On the STM32L082 it’s not even possible to configure it as an output. If NRST is an input, how come it sources so much current?
I powered down my circuit and measured the resistances between NRST and VDD, between NRST and GND. I got approximately 13 MΩ in both cases. That suggests that the input [or I/O ?] isn't fried. I'd expect low impedance between NRST and VDD if the input were outright fried.
Questions
What's happening with my NRST ?
How did NRST get into this state, and got stuck there?
How can I get the NRST out of this state?
Any insight or reference is really appreciated!
Best regards,
- Nick