Choosing NMOS High Side Drive IC  - Page 1
Forum section: electronics / beginners

author: EkagNosmit
author_rank: Contributor
timestamp: January 26, 2025, 11:24:05 pm
content: I am currently trying to design an inverting buck/boost converter using an Arduino as the PWM output and the voltage feedback/control system to get a better understanding of SMPS while at the same time applying some control theory I have been learning in school. I have selected an operating frequency of 500khz (because duty cycle resolution is limited as frequency increases) and inductor and capacitor values of 400uH and 15uF respectively based on general design guidelines for non-inverting buck boost found in a TI application note. I am targeting a 150ma max output current with an input voltage of 5v and an output range of 3-16v.This design was validated for basic functionality using Simulink, but I am stuck on choosing a high-side drive IC. So far, the LM5101 seems like it would do the trick(though probably a little overkill), but I am a little confused about how the chip would be powered and other specifications to look for when working with a drive circuit like this.Any help/advice would be greatly appreciated. I have included a general schematic of the topology I am trying to work with, as well as the Simulink model I created using the values stated above. Thanks!

author: Benta
author_rank: Super Contributor
timestamp: January 27, 2025, 12:00:28 am
content: As a first design, I'd start with 50 kHz, not 500.You'll see why along the way.And welcome here.

author: EkagNosmit
author_rank: Contributor
timestamp: January 27, 2025, 12:54:51 am
content: Thanks for the help. Are you suggesting this because of the parasitic losses that come into play at higher frequencies? I chose this frequency because it allows for smaller component sizes, at 50kHz the inductor size should be 4mH; Is this a component value that is readily available/not ridiculously large? As I am still a student I don't have much experience with standard component values, but after a view Digi Key searches, I'm not seeing many options.Thank you! I'm excited to learn more about this type of stuff.

author: temperance
author_rank: Super Contributor
timestamp: January 27, 2025, 01:16:39 am
content: An Arduino can't go that fast. The max. frequency is the clock divided by the PWM resolution.Edit: those inductor values you state seem very large. What is the input voltage and what would be the required output voltage and current?

author: EkagNosmit
author_rank: Contributor
timestamp: January 27, 2025, 01:17:35 am
content: Yes it can, I have an arduino going that fast connected to my oscilloscope right nowYou can adjust the prescale value in the timing registers to increase PWM freq to around 1mHz, but lose tons of duty cycle resolution at that point. You can also use the TimerOne library to abstract this without direct register manipulation.Please see original post for specifications you asked for. Thanks for the response.

author: Psi
author_rank: Super Contributor
timestamp: January 27, 2025, 01:20:54 am
content: Which Arduino MCU is it? One of the STM32 ones I'm guessing?Although, i think there are some ATTiny that have a 64mhz PLL for PWM.But that's only like 250kHz 8bit PWM, so must be STM32.

author: EkagNosmit
author_rank: Contributor
timestamp: January 27, 2025, 01:21:26 am
content: It's a Nano, Atmel328p based.

author: Psi
author_rank: Super Contributor
timestamp: January 27, 2025, 01:27:43 am
content: Quote from: EkagNosmit on January 27, 2025, 01:21:26 amFastest you can generate pwm on Atmel328p is driving the timers from 16mhz clock into a 8bit pwm timer, so 16mhz/256 = 62.5 kHz PWM with 256 levels of duty cycle adjustment.Unless you either overclock it, or drop the number of bits and reset the timer early. but you're not going to get 500 kHz with much duty cycle adjustment. You'd end up with only 25 different duty cycles.

author: EkagNosmit
author_rank: Contributor
timestamp: January 27, 2025, 01:28:44 am
content: That is what I was reading a few days ago, but was able to do much better than that. I can output 500Khz PWM at the digital pin 9 with 16 points of adjustment for duty cycle. As I push the frequency higher, we obviously lose duty cycle resolution.

author: Psi
author_rank: Super Contributor
timestamp: January 27, 2025, 01:32:07 am
content: 16 levels of duty isn't enough to do much.I guess you could dither it over time to get more control back as an average across many clocks. That would be fancy.But you are making it more complicated just to avoid a few $ for a faster mcu.If you just want to learn then that's totally fine, you do learn a lot doing odd-ball things like that. It's arguably better for learning.I've learned a lot in my life doing things with MCUs that are a bit crazy just for kicks.

author: EkagNosmit
author_rank: Contributor
timestamp: January 27, 2025, 01:37:41 am
content: Yea 500kHz was the upper range of what I thought would be possible for my switching application. I was worried about resolution. I am thinking of choosing something around 100kHz so I don't have to use too large of an inductor, but also don't have to think much about parasitics.

author: Psi
author_rank: Super Contributor
timestamp: January 27, 2025, 01:38:54 am
content: You may run into issues trying to control PWM that fast given how many cpu instructions you have to play with between pwm cycles.Might have to use an array that just copies to timer register on interrupt and then edit the array at a much slower speed.Or two arrays using pointers, one active array and an array for setting up the next one. Then when ready, swap the pointers.

author: temperance
author_rank: Super Contributor
timestamp: January 27, 2025, 01:39:11 am
content: 8 bit PWM resolution is probably on the edge as the slope of the gain increases with increasing duty cycle.

author: EkagNosmit
author_rank: Contributor
timestamp: January 27, 2025, 01:41:35 am
content: This is an interesting consideration that I did not think about. Thank you for the possible solutions.

author: Psi
author_rank: Super Contributor
timestamp: January 27, 2025, 01:42:01 am
content: yeah, he wont be doing cycle by cycle control.The AVR ADC is only 15k samples/s

author: Psi
author_rank: Super Contributor
timestamp: January 27, 2025, 01:45:10 am
content: You might as well use p-mos for high side switch, unless you want to make it complicated just because.You don't need low Rdson for 150mA

author: temperance
author_rank: Super Contributor
timestamp: January 27, 2025, 01:46:23 am
content: There are much more interesting micro controllers for that kind of job. STM32F3 series for example with build in fast comparators which allow you to implement current mode control. Something you will need for buck boost or boost converters unless you are fine with the control loop hanging up itself upon overload or even startup with the PWM flying to it's maximum because the feedback voltage is low.

author: EkagNosmit
author_rank: Contributor
timestamp: January 27, 2025, 01:49:43 am
content: This was also a consideration, but I remember a professor saying something about not using PMOS for switching above 50kHz. I also figured this would be a good chance to learn/use a high side drive circuit.

author: EkagNosmit
author_rank: Contributor
timestamp: January 27, 2025, 01:52:24 am
content: I'm just trying to implement something with the components that I have on hand. These are all good points though, and I didn't consider them so I appreciate you bringing them up. I will come back to your suggestion after I get a better grasp of this type of design

author: temperance
author_rank: Super Contributor
timestamp: January 27, 2025, 02:11:21 am
content: The almost classicPMOSFET driver. (Only fit for applications running at max. 18 V or less. For higher voltage the circuit requires some modifications.)In your case you can also use CMOS inverters in parallel because the input voltage is only 5 V. Something like an 74HC14 for example. All six buffers in parallel can supply enough current to drive a small MOSFET.The LM5101 will not work in your application because it requires minimum 6 V. (See data sheet block diagram: UVLO. Under voltage lockout)Edit: added in bold that the MOSFET is a P type.

author: xvr
author_rank: Frequent Contributor
timestamp: January 27, 2025, 11:46:58 am
content: QuoteLM5101 do not require any special power for high side driver - it use standart bootstrap circuit to generate power for high side driver.

author: mtwieg
author_rank: Frequent Contributor
timestamp: January 27, 2025, 01:49:57 pm
content: A simple high side driver like the LM5101 would only work if you referenced it to the negative Vout of your supply, rather than circuit GND. So you would need level shifters to translate the pwm signal from your MCU (which is GND-referenced I assume). Oh and you need to provide a somewhat-regulated DC supply to the Vout-referenced gate driver...There are fully-isolated gate drive chips like the TLP250 whose outputs can swing below GND. But they still require a supply for the output stage.Basically I suggest starting off using PMOS with a driver circuit like what temperance showed (also agree with suggestions to lower the pwm frequency <100kHz). The effort required to implement a NMOS driver likely isn't worth whatever slight efficiency gain you might expect.

author: EkagNosmit
author_rank: Contributor
timestamp: January 27, 2025, 04:48:41 pm
content: I see what you are saying about the voltage referencing, I did not consider that. Thanks guys, you have given me a lot to think about. I will continue my design/exploration with a lower switching frequency and a PMOS for the high side switching. Feel free to keep leaving advice/ideas if you would like!

author: temperance
author_rank: Super Contributor
timestamp: January 27, 2025, 06:57:11 pm
content: Quote from: xvr on January 27, 2025, 11:46:58 amExcept that the chip has an UVLO which requires minimum 6 V and the input voltage is only 5 V.For this low power you don't need beefy FET's and a 74HC14 inverter with all gates in parallel will work fine to drive a P channel MOSFET like an FDN304P. Both are available almost anywhere and costs nothing.

author: EkagNosmit
author_rank: Contributor
timestamp: January 27, 2025, 09:20:23 pm
content: Quote from: temperance on January 27, 2025, 06:57:11 pmThanks for the specific component suggestions. Im gonna focus on getting a better understanding of this approach.

author: EkagNosmit
author_rank: Contributor
timestamp: June 08, 2025, 06:57:21 pm
content: Forgot to update this thread, but I ended up using PMOS as a high-side driver and the SCN74HC14 6-channel Schmitt trigger inverter with channels in parallel to drive the rather large gate capacitances of my switching MOSFETs. I used an I2C LCD display so that the user can set and view feedback voltage in real-time, and also allow the user to save the previously set output voltage after the device powers off using the EPROM memory. I attached a picture below of the final PCB design I used for my undergrad senior project.Thanks for all of the help, I learned a lot from this thread.