I am trying to make a very small change to a circuit to allow for boot mode selection using two boot pins. The component I am trying to control is the STM32F411. One of the pins can be floating in regular boot mode, and driven to ground in the other, therefore I am planning to just simply have it be connected to ground permanently since this will allow for both boot modes to be entered. The other pin varies between high and low for the two boot modes, and is currently being driven low with a pull down resistor (I'm trying to change this). Now here is my question: my limited knowledge of electronics would suggest that it is possible to drive this second pin using a GPIO output from another device, say for example a Raspberry PI. The low level voltage needed is <= 0.43V and the high level voltage is >= 1.261V, therefore if you have a GPIO with a high level voltage of 3.3V, and a low level voltage of 0, it should be able to control the boot pin. Is my thinking correct? Do I need any other components to make this work? I would like the pin to be driven low by default at boot, suggesting it's not as simple as connecting the two pins together and using software to control the output of the pin. Thank you

  • 1
    \$\begingroup\$ Welcome to EE.SE! You will have a better chance of getting an answer if you 1.) break your wall of text into separate paragraphs and 2.) provided a schematic of a circuit you have in mind. \$\endgroup\$ – SolveEtCoagula07 Jun 21 '18 at 19:03
  • \$\begingroup\$ @SolveEtCoagula07 Thanks :) I'll keep that in mind for future questions. \$\endgroup\$ – James Jun 21 '18 at 23:35
  • \$\begingroup\$ Actually, you don't even need to wait for future questions; there's an edit button! \$\endgroup\$ – Blair Fonville Jun 21 '18 at 23:40

Your thinking is correct. If you want the pin to be driven low by default then add a pulldown resistor from the pin to ground, something from 5k\$\Omega\$ and 10k\$\Omega\$. It's often the case that a processor's I/O pins wake up in input mode. I don't know if that's true for the Raspberry Pi, but if it is then the pulldown resistor will give you the default low value you want. The value of the resistor needs to be high enough that the Pi's I/O pin can easily overdrive it.

  • \$\begingroup\$ Awesome thanks! If the default state of the pin is input, would I still need to add the resistor? \$\endgroup\$ – James Jun 21 '18 at 23:34
  • \$\begingroup\$ If the default state of the pin that is driving the STM32 is input then you most certainly need the pulldown....you don't want the state of the STM32 pin to be undefined when the system wakes up. If you are not sure that the Raspberry Pi will be driving the correct value to the STM32 at the instant when power comes up, add a pulldown resistor. \$\endgroup\$ – Elliot Alderson Jun 21 '18 at 23:48

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.