cancel
Showing results for 
Search instead for 
Did you mean: 

STM32L431CCY not reliably booting

sethkaz
Associate III

I made a little proof-of-concept board for the L431, as I wanted to see what it would take to do a BGA design.

 

I've been able to program is using the STM32CubeIDE, but the board won't boot reliably.

  • STM32CubeIDE v1.13.1
  • Jlink Plus Compact
  • 0.1uF Bypass caps on all power pins
  • No external circuit on NRST
  • Code is a simple GPIO toggle, which works about 75% of the time when I power cycle.  

What I've tried:

  1. Adding a 10uF cap to the VDD rail.  This reduces the percentage above, making me think there's a POR or Brownout circuit that's not working.
  2. Added the 0.1uF to the NRST pin, as recommended by the getting started doc.  No change, if anything looks worse.
  3. I've verified that the 3.3V rail is stable, and that the NRST line goes low and then goes high (as expected. 

When it doesn't boot, it gets stuck drawing 16mA of current from the 3.3V rail.  

What else can I try to get this booting reliably?

Seth K
1 ACCEPTED SOLUTION

Accepted Solutions
sethkaz
Associate III

Looks like the BOOT0 ball is floating (I'll verify this in a bit). 

If anyone finds this thread in the future, using STM32CubeProgrammer allowed me to clear the nSWBOOT0 bit, and it's booting reliably now.  

Seth K

View solution in original post

2 REPLIES 2
sethkaz
Associate III

Though the Debugger, I found that I'm jumping into the Boot Loader, as I was halting at address 0x1FFF2CF6 (for example).

However, I'm not sure why this is inconsistent. Boot0 is pulled low through a 1k like the Getting Started Guide recommends, and Boot1 isn't exposed as a pin (as far as I can tell).

Seth K
sethkaz
Associate III

Looks like the BOOT0 ball is floating (I'll verify this in a bit). 

If anyone finds this thread in the future, using STM32CubeProgrammer allowed me to clear the nSWBOOT0 bit, and it's booting reliably now.  

Seth K