Controllable Enable/Disable Buck converter circuit
I am working on the motor controller interface board with a 48 V battery connected (58 V max), the board should remain OFF (no 12V should be generated) when battery is plugged-in, until the user taps a momentary pushbutton (SW1 to GND). A short press should enable the buck (LM5164) by pulling EN_BUCK line. This EN_BUCK line should remain high even after the pushbutton is released.
When idle, the MCU pulls BUCK_SHUTDOWN low to turn the buck off and minimize standby drain i.e 12V OFF -> 5V OFF -> 3.3V OFF (MCU and other peripherals off). To Turn on the supply again, User will have to press the pushbutton again. After boot, the EN_BUCK line should remain High(buck enabled) even after the button is released.
SW1 is a momentary to GND that nudges EN_BUCK > EN/UVLO threshold. A diode/zener network clamps EN below 6 V. There is no alternate power source.
The Circuit isn't working as expected. Am I doing anything wrong? When I plug-in the battery, the Buck converter is immediately turned ON no matter if I press the switch or not. My intent was a simple “OR” of two sources into the buck’s EN pin:
- a momentary button pulse to start.
- an MCU HOLD to keep EN high.
Also, I have some questions-
- What type and rating of fuse would you recommend here (fast vs slow-blow, current value)?
- Do I need to add bulk capacitor (electrolytic) at input and output of buck converter?
- Standby / control-network current - Is my EN clamp/divider likely drawing unnecessary current at 58 V (e.g., zener sink through a low-value divider)? What’s a sensible target for standby draw (µA–mA) for this kind of design, and how should I bias EN to achieve it?
I want the board OFF at battery plug-in to avoid standby drain and MCU can shutdown the whole board to avoid battery drain when idle.
I’m open to moving the eFuse or Hot swap controller if that's the right approach. BOM cost is not an issue reliability is important.
2 answers
I want the board OFF at battery plug-in to avoid standby drain and MCU can shutdown the whole board to avoid battery drain when idle.
This is really the crux of your question.
The buck converter enable line is active high, so you need it to be held low initially, but have the micro be able to raise it, and then make it go low again to go to sleep.
The first step is to make sure the line is held low when the microcontroller output is high impedance. Fortunately, that's easy. Put a passive pullup on the line, but have a transistor hold it low. The transistor is turned on by a passive pullup on its base.
Now you need the pushbutton to cause the line to go high. That's also easy. Have it short the transistor base to ground.
The only thing left is for the micro to be able to enable the power supply. Note that all it has to do is act like the pushbutton. If you can switch the micro's output line from high impedance to active low, then you can connect it directly to the transistor base and you're done:
Most microcontrollers can switch a digital pin between high impedance and actively driven low. Some even have "open collector" outputs that can only do that. However, if you need to control this circuit from a digital signal that is always active high or low, you can add another transistor:
R2 raises the enable input to the buck regulator when Q1 is off. R1 keeps Q1 on, which keeps the power supply off, unless the base of Q1 is shorted to ground. That's exactly what the pushbutton does to enable the power supply for the duration of it being pressed. In the first circuit, the micro pulls low on PWROFF as soon as it wakes up, thereby keeping the power on when the pushbutton is released. In the second circuit the micro raises PWRON instead. That turns on Q2, which then acts just like the pushbutton is pressed. R4 makes sure that Q2 stays off when the micro is powering up and PWRON is in high impedance.
Note that Q1 must withstand the full power voltage. 80 V is a common value for NPN transistors that would work here, but a 40 V jellybean part would not. You should also check that R2 is sufficient to drive the buck enable input high under all conditions. I didn't look at the datasheet.
In the first circuit when the PWROFF is high impedance, the R1 is trying to pull PWROFF to +48V. Are you proposing the BE junction of the Q1 as a 0.7V clamp which would prevent the +48V from appearing on the GPIO pin which is controlling the PWROFF ?
Yes. PWROFF is clamped to one diode drop above ground. The 570 µA or so thru R1 is well within what the base can safely handle.
The more subtle issue, which this circuit still takes care of, is latchup when the micro is powered on. When there is current flowing into an I/O pin during power-on, it could trigger a parasitic SCR. That's also not going to happen when the pin is held one junction drop above ground.
Q2 needs to withstand full voltage too, because its collector is pulled up to the +48V rail.
No it doesn't, since the collector voltage is clamped to one diode drop above ground by B-E of Q1.
3 comment threads
The Circuit isn't working as expected. Am I doing anything wrong?
There’s no description of the actual [as-built] behavior of circuit, but let me guess. The buck is enabled whenever the VIN is supplied. The switch and the microcontroller can’t enable/disable the buck. [edit: It was a decent guess, as it turned out.]
When I plug-in the battery, the Buck converter is immediately turned ON no matter if I press the switch or not. [from comments ]
In the standby mode battery input VIN is applied, the MCU is supposed to be powered down, SW1 isn’t pressed. R47 is pulling the EN/UVLO up until the Zener CR3 clamps it to 5.1V . The threshold for the UVLO/EN input is 1.1V (section 6.3.9 in the LM5164 datasheet). So the buck is enabled when VIN is applied.
SW1 shorts to GND when pressed. UVLO/EN is an active-high input. SW1 is supposed to enable the buck converter while the finger is on it. Actually, it pulls in the direction of disabling the buck. But it doesn’t actually disable the buck, because of the voltage divider formed by R47 and R49+R51+R52.

2 comment threads