3

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?

Vadim
  • 565
  • 3
  • 12
  • *Rpi Pico W Datasheet - rpi* https://datasheets.raspberrypi.com/picow/pico-w-datasheet.pdf

    *2.1. Pico W pinout*

    *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.

    *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.

    – tlfong01 Sep 22 '22 at 07:40
  • (1) *3V3_EN* is to enable the on-board SMPS. I always leave it High. (2) *RUN* is to reset the RP2040. I also always leave it High, except from time to time, when I want to reset Pico., – tlfong01 Sep 22 '22 at 07:44
  • 1
    (3) So, if you like, *3V3_EN is hardware power off/on reset, RUN is software reset*. – tlfong01 Sep 22 '22 at 08:16
  • 1
    What will be the practical difference between software and hardware reset for Pi Pico then? – Vadim Sep 22 '22 at 08:24
  • References to *POR (Power-on Reset)*: (1) Power-on reset - Wikipedia https://en.wikipedia.org/wiki/Power-on_reset

    (2) Power-on Rreset and related supervisory functions - MaximIntegrated https://www.maximintegrated.com/en/design/technical-documents/app-notes/3/3227.html

    – tlfong01 Sep 23 '22 at 03:18
  • 1
    *MicroPython Reset Functions* https://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 '22 at 03:42
  • 1
    *Rpi PicoW 3V3 En Schematic*: https://imgur.com/a/gBluUTJ – tlfong01 Sep 23 '22 at 07:40
  • 2
    @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 '22 at 14:13

3 Answers3

5

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.

Deltabeard
  • 106
  • 4
1

Presumably the 3V3_EN pin would result in a lower power suspend state as you're also shutting down the SMPS, which would make batteries last longer than doing the same thing with the RUN pin. It would be interesting to compare this with the internal SLEEP and DORMANT states you can enter via software.

As you mentioned in a comment, 3V3_EN will also shut down any external devices connected to the 3.3V line as well.

Presumably there will be a very slightly longer delay powering up from 3V3_EN as the SMPS has to start up before the RP2040 does, whereas the RUN pin should result in immediate reset of the RP2040 as the SMPS is already operating normally. However this delay would be tiny.

Malvineous
  • 1,864
  • 14
  • 20
0

Another practical consideration is that if you are using this feature a lot it is probably better to use reset rather than continuously cycle the power. Cycling the power a lot will stress it, shortening the life of the chip.