2

Pi Pico W datasheet states:

3V3_EN connects to the on-board SMPS enable pin, and is pulled high (to VSYS) via a 100kΩ resistor. To disable the 3.3V (which also de-powers the RP2040), short this pin low.

and

RUN is the RP2040 enable pin, and has an internal (on-chip) pull-up resistor to 3.3V of about ~50kΩ. To reset RP2040, short this pin low.

Which means that RUN resets the microcontroller and 3V3_EN powers it off. Practically (in application) both sound to me as they will only reset the microcontroller. I tried also using both pins and haven't noticed any difference in the behavior: microcontroller starts over, once the pin is released (i.e. pulled up again).

So, the question is, what is the practical difference between using RUN pin or 3V3_EN in applications?

8
  • 1
    (3) So, if you like, 3V3_EN is hardware power off/on reset, RUN is software reset.
    – tlfong01
    Sep 22, 2022 at 8:16
  • 1
    What will be the practical difference between software and hardware reset for Pi Pico then?
    – Vadim
    Sep 22, 2022 at 8:24
  • 1
    MicroPython Reset Functions docs.micropython.org/en/latest/library/machine.html (1) machine.reset() Resets the device in a manner similar to pushing the external RESET button. (2) machine.soft_reset() Performs a soft reset of the interpreter, deleting all Python objects and resetting the Python heap. (3) machine.reset_cause() Get the reset cause. See constants for the possible return values. (4) machine.bootloader([value]) Reset the device and enter its bootloader, typically used to put the device into a state where it can be programmed with new firmware.
    – tlfong01
    Sep 23, 2022 at 3:42
  • 1
    Rpi PicoW 3V3 En Schematic: imgur.com/a/gBluUTJ
    – tlfong01
    Sep 23, 2022 at 7:40
  • 1
    @tlfong01, great collection of the insights. It start crystalizing slowly so I can think of at least one practical consequence. With 3v3_en one powers off whole 3.3 V line, meaning that one would also reset any sensors or other components outside Pico board powered from it.
    – Vadim
    Sep 23, 2022 at 14:13

1 Answer 1

3

One difference is that you can detect whether the last reset occurred due to the power supply (eg. 3V3_EN), the RUN pin, or via the Rescue Debug Port, by checking the CHIP_RESET register.

See section 2.12.7. Source of Last Reset in the RP2040 Datasheet.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.