6
\$\begingroup\$

I want to enable/disable a TI TPS54302 buck regulator with a microcontroller. The enable (EN) pin should float to enable the device, or be tied low to disable it.

I currently have the EN pin connected to a GPIO pin on the MCU. At startup, before the pin state can be set low, it will sometimes already be floating, so the regulator operates for a brief time before the pin is intentionally set low.

I'd like to add an external pull-down resistor to ensure the regulator stays off until it is supposed to be on, but that would prevent floating the pin.

I presume I could simply pull the pin high (instead of floating it) and achieve the desired result. The TPS54302 datasheet says:

The EN pin has an internal pullup-current source which allows the user to float the EN pin to enable the device. If an application requires control of the EN pin, use open-drain or open-collector output logic to interface with the pin.

If I tie the EN pin to ground with a 10kΩ resistor, and pull the MCU pin high when I want the regulator to operate, is that a viable solution?

I'm not concerned about small (≥1mA) constant current usage as this is a line-powered device.

\$\endgroup\$
  • \$\begingroup\$ Does the MCU pin offer a pulldown resistor you can enable or disable? Some do. \$\endgroup\$ – Brian Drummond Oct 2 '19 at 16:51
  • \$\begingroup\$ @Brian Yes, I'm using a Microchip SAML21 and can do internal pull-up or pull-down as well as float. Right now it pulls down to disable and floats to enable, but there's a moment at power-up where the regulator operates because the pin isn't yet pulled down. \$\endgroup\$ – JYelton Oct 2 '19 at 16:52
8
\$\begingroup\$

Yes, you're fine with your approach. The EN pull up current is less than 2uA, so a 10K will allow you to remain below the threshold, and the microcontroller output will be able to pull it up to 5V (or at least greater than the threshold. Just stay below 7V on the enable pin and you'll be fine.)

As you pointed out an open drain output on your micro doesn't really solve the problem of keeping the device disabled while the uC boots up.

Note datasheet specs below:

enter image description here

[EDIT for more clarity:]

The reason for the recommendation for the open drain approach is that this part allows Vin up to 28V, but the EN pin is only rated to 7V abs max. So you can't pull the enable to Vin or drive it with an open collector with a pull-up tied to Vin. Nothing prohibits driving the pin from an open collector only, an open collector pulled up to (e.g.) 3.3V or 5V, or a push-pull output in the right voltage range. You don't HAVE to just float the pin or pull it low. Note the UVLO level modification circuit in the datasheet:

enter image description here

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ The TPS54302 needs at least 4.1V so this will not work with a 3.3V micro. \$\endgroup\$ – Voltage Spike Oct 2 '19 at 17:09
  • \$\begingroup\$ @VoltageSpike Are you sure? I added the datasheet specs to my answer, looks to me like the rising EN threshold is 1.28V max. \$\endgroup\$ – John D Oct 2 '19 at 17:16
  • 1
    \$\begingroup\$ I was going of of the VUVLO specs, so yes I am wrong (by the way I never downvoted, the downvote is not mine, but I did upvote) \$\endgroup\$ – Voltage Spike Oct 2 '19 at 17:40
  • \$\begingroup\$ I don't know why this was downvoted, I think it's very on-point. \$\endgroup\$ – JYelton Oct 2 '19 at 18:11
6
\$\begingroup\$

Here is a schematic that will achieve the stated goal:

schematic

simulate this circuit – Schematic created using CircuitLab

  1. When the GPIO is floating (i.e. micro-controller is off / booting) the transistor is turned on by R1 and EN is driven low.
  2. When the GPIO is asserted low by the microcontroller, it turns off the transistor, and EN is floated.
  3. Not necessary, but if GPIO is asserted high, it also turns on the transistor and drives EN low.

I cannot conceive of a simpler way to satisfy the requirement. The only two states experienced by the EN pin are low and floating. A more conservative design would include a 100 Ohm series resistor between GPIO and the transistor gate.

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ It would be simpler to use a pull-down and drive the pin directly from the microcontroller. The EN threshold is 1.28V max. \$\endgroup\$ – John D Oct 2 '19 at 17:24
  • \$\begingroup\$ My answer addresses the OP's desire to follow the device datasheet's advice and float the EN pin to enable the device. \$\endgroup\$ – vicatcu Oct 2 '19 at 17:26
  • \$\begingroup\$ OK, if that's the concern I agree. But the only question posed was: "If I tie the EN pin to ground with a 10kΩ resistor, and pull the MCU pin high when I want the regulator to operate, is that a viable solution?" \$\endgroup\$ – John D Oct 2 '19 at 17:29
  • \$\begingroup\$ Yes and, "The enable (EN) pin should float to enable the device, or be tied low to disable it." \$\endgroup\$ – rdtsc Oct 2 '19 at 17:30
  • \$\begingroup\$ This is what I was thinking I would need to do initially; pull up the gate on a FET and use the MCU to pull it down (inverting the original logic). Thanks for showing it! \$\endgroup\$ – JYelton Oct 2 '19 at 18:13
4
\$\begingroup\$

An open drain buffer (like the NC7WZ07) would work. When you pull the buffer high, the buffer goes to high impedance and enables the TPS54302. To keep the buffer from operating during startup the pullup can be used before the buffer.

schematic

simulate this circuit – Schematic created using CircuitLab

enter image description here
Source: https://www.onsemi.com/pub/Collateral/NC7WZ07-D.PDF

| improve this answer | |
\$\endgroup\$
  • 1
    \$\begingroup\$ I wish whoever downvoted would explain the rationale. I don't think I will use this approach, but it's applicable and useful! \$\endgroup\$ – JYelton Oct 2 '19 at 18:15
  • \$\begingroup\$ Two resistors is better, buffers can come in handy sometimes \$\endgroup\$ – Voltage Spike Oct 3 '19 at 15:16

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.