2023-08-31 10:51 AM
Hi,
We are using STM32L452 for our project.
We have problem with pin NRST.
We set a 30K pull-up resistor (with pull-down capacitor of 0.1uF).
Sometime voltage on the NRST pin is 3.3V and sometimes it is 1.4V.
In cases it is 1.4V the MCU is stuck.
We think that in case of 1.4V happens because a pin leakage current.
Do you have any solution for us ?
Thanks
2023-08-31 10:55 AM
Probably when you see "1.4V" it's really a combination of 0V and 3.3V as the MCU continuously resets. Are you measuring on a multimeter or an oscilloscope?
The solution would be to find out why it's resetting and address the issue. Look at the RCC->CSR flags on startup to determine the cause of the reset. Perhaps a watchdog reset? Debug, step through, to determine where the problematic code is. Probably not a power supply issue, but it could be.
2023-08-31 11:22 AM
In addition to the tips from @TDK, please note that the PIN NRST can also be an output (see the Reference Manual RM0394), able to drive the pin from inside.
Please also note that in contrast to MCUs of the last millennium, a pull-up is no longer necessary (is also stated in the RM mentioned before). Examples like on the Blue Pills or Black Pills should be seen as a bad example here.
2023-08-31 12:16 PM
Provide a schematic of what you've actually built, be easier than guessing.
Got all the analogue supplies wired?
2023-08-31 12:28 PM
Thanks dear TDK
I measured with a multimeter.
I don't use a watchdog reset.
Connecting debugger "fix" the problem (NRST become 3.3V), so it will not be so easy solving it.
2023-08-31 01:02 PM
Thanks dear Tesla
2023-08-31 01:32 PM
Could be a power issue. The portion of your schematic that you showed wouldn't be causing this issue. Measure VDD when NRST is at 1.4V.
Can you connect to the chip? Can you upload a program and step into it and debug?
2023-08-31 02:51 PM
I will measure VDD for NRST=1.4V.
Connecting debugger "fix" the issue (NRST=3.3V).
2023-09-21 09:51 AM
Hi,
Regards
Rob
2023-09-22 12:43 AM
Try looking at the NRST pin with an oscilloscope (or measure the AC Voltage part with a multimeter). If there are pulses, they are generated by the MCU internal reset. Maybe engaging the debugger somehow helped overcome the place in the code that caused the reset (adding a delay or something else...). I would also look at the config registry (CubeProg) to see if WDT and other sources of reset are disabled in it.