0
\$\begingroup\$

The STM32F1xx "Getting Started" app note shows the BOOT0 and BOOT1 pins connected to ground/VCC via a \$10k\Omega\$ resistor, and so that's what I've always done and everything works fine.

However, now I'd need to switch the internal serial bootloader on/off depending on whether another board (a kind of debugger) is connected, i.e. if the board is connected, BOOT0 is high (boot into internal bootloader), otherwise low (boot from internal flash). In this case, as I will anyway have a debugger detect pin, I could simply pull BOOT0 pin low with a 10k resistor, and connect the (active high) debugger detect directly to the BOOT0 -pin (apologies for the insanely large schematic, I don't know how to adjust it's size):

schematic

simulate this circuit – Schematic created using CircuitLab

Now the question: when the debugger is connected, BOOT0 is connected directly to VDD instead of through a resistor, unlike in all the app notes etc. Is there some danger here?

\$\endgroup\$
  • \$\begingroup\$ I believe one of the boot pins can also be configured as a GPIO output, so there could be some concern for that one. But if this can only happen with your debug interface connected the time frame of the concern could be limited (additionally, while it is a data sheet violation, MCUs typically survive programming mistakes which result in driving a shorted output) \$\endgroup\$ – Chris Stratton Jul 5 '18 at 14:56
  • \$\begingroup\$ @chrisstratton indeed, that would be BOOT1 which can also be used as a GPIO. \$\endgroup\$ – Timo Jul 5 '18 at 15:09
  • \$\begingroup\$ You can reduce the image size (which I already did) by appending 's','m','l' to the image's link, just before the .png extension. That will adjust the size. \$\endgroup\$ – Big6 Jul 5 '18 at 20:30
  • \$\begingroup\$ @sixcab thanks! Works on desktop, though not on the android app. OTOH in the app, it may be better that it's big relative to a small screen. \$\endgroup\$ – Timo Jul 6 '18 at 10:11
1
\$\begingroup\$

It is completely safe to connect the way you have planned.

Boot 0 is input pin of the micro controller. It can be connected to 3.3V directly. When 3.3 V is not available then BOOT0 pin will see low via 10kOhms..when connected BOOT0 pin will sure see a digital high input.


Optional: Place a 300 ohms series resistor to the input of Boot0 pin.

Edit 1: Removed wrong reference


Edit 2: from Nucleo-F429ZI Similar one..just for reference.

enter image description here enter image description here

\$\endgroup\$
  • \$\begingroup\$ "directly connected"? Did you miss R7? Not that I'm saying directly connecting the BOOT pin is a problem - just pointing out that your schematic doesn't demonstrate this. \$\endgroup\$ – brhans Jul 5 '18 at 15:02
  • \$\begingroup\$ @brhans Yes Clearly. I missed it.updated Thank you \$\endgroup\$ – Umar Jul 5 '18 at 15:04
  • \$\begingroup\$ @Umar thanks, and the Nucleo board indeed seems to do exactly what I want to do :) \$\endgroup\$ – Timo Jul 6 '18 at 10:12

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.