Buck Regulator Inductor Selection

Discussion in 'General Electronics Chat' started by guitardenver, Dec 16, 2014.

  1. guitardenver

    Thread Starter Active Member

    Jan 24, 2009
    30
    0
    Control Chip: http://aosmd.com/res/data_sheets/AOZ1280CI.pdf
    Vin = 24V (26 max)
    Vout = 9V
    Iout Max = 1 A

    I'm stuck on deciding what are acceptable inductor values. The Inductor Ripple Current should be about 30% of Iout Max. Using the equation in the datasheet for inductor ripple current on page 8 the inductor value should be about 13 uH. Also I calculated the ripple current when using an 8.2 uH, which is about 478 mA.

    Most of the reference design for DC to DC buck regulators I seen all use a 4.7 uH inductor for regulators with similar switching frequencies. Such as this one here. It uses a ripple current of about 500mA for reference designs.
    http://ww1.microchip.com/downloads/en/DeviceDoc/22285A.pdf

    And many others also use a 4.7uH inductor. Even for my chip the test conditions had a 4.7 uH. What is so special about that specific value and can I choose any value? Does the 4.7uH inductor need to be there for control system stability of the chip? If I go with the calculations at 13uH the cost of the inductor is a little to high.

    Main questions:
    1)
    Can I go with the 8.7 uH with an L_ripple of 478 mA and have a stable 9 V output? Using a 22uF output cap. +/- 1% output is more than enough accuracy for what i'm using it for.

    2)
    Also the thermal resistance is 220 C/W. And says nothing about how low I can get that with proper PCB layout. I found suggestions on PCB layouts but a well educated guess on the thermal resistance value would be nice.



    To help with calculations I wrote a simple python script that will calculate all this and what the junction temperature will be. Here it is. If you find any mistakes let me know.

    Code (Text):
    1. import math
    2.  
    3.  
    4.  
    5.  
    6. Vout = 9.0
    7. Vin = 24.0
    8. Vinmax = 26.0
    9. Ioutmax = 1
    10. Fsw = 1500000       # Switching Freq. Hz
    11. DutyCycleMax = .87  #87% switching duty cycle max.
    12. Efficiency = .85    #Minimum Efficiency of the controller chip = 85% at Vin 24V and Vout is 9V
    13. Max_Inductor_RippleCurrent = .30    #30% of Ioutmax
    14.  
    15. Cout_uf = 22        #uF
    16. ESRco = .015        #ohms
    17.  
    18. Inductor_Chosen_uH = 8.2    #uH
    19. Inductor_ohms = .055        #ohms
    20.  
    21. Diode_Vfw = 1.0             #Shottky foward voltage max
    22.  
    23. ThermalResistance_ja = 60   #C/W    This is highly dependent on PCB layout.
    24. Ambient_TempMax = 50        #Deg C
    25. Junction_temp_Max = 150     #Deg C
    26.  
    27. Cout = Cout_uf * .000001
    28. Inductor_Chosen = Inductor_Chosen_uH * .000001
    29. Inductor = 0.0
    30.  
    31.  
    32. #Inductor ripple current. Should be about 30% of Ioutmax
    33. def delta_IL(Ioutmax_l):
    34.     return float(Ioutmax_l) * Max_Inductor_RippleCurrent
    35.  
    36. #Calculates Inductor ripple current from a pre-selected inductor value
    37. def ripp_cur(L):
    38.     return (Vout/(Fsw * float(L))) * (1.0 - (Vout/Vinmax))
    39.  
    40.  
    41. #Calculates the minimum inductor value that should be used with ideal ripple current
    42. def Calc_L(Vout_l,Vin_l):
    43.     return (float(Vout_l)*(1-(float(Vout_l)/float(Vin_l))))/(delta_IL(Ioutmax)*Fsw)
    44.  
    45. #Calculates the Peak Current through the inductor
    46. def IL_Peak(Iout_l ,delta_IL):
    47.     return float(Iout_l) + (delta_IL/2)
    48.  
    49. #Calculates what R1 should be when you pick a value for R2
    50. def R1(Vout_l,R2_l ):
    51.     return ((float(Vout_l)/.8) - 1) * float(R2_l)
    52.  
    53. #Calculates how much the output voltage fluctuates
    54. def ChangeVout(delta_IL, Cout_l, ESRco = 0.005):
    55.     return (delta_IL * (float(ESRco) + (1/(8.0*1500000.0*float(Cout_l)))))
    56.  
    57. #Calculates the power dissipated by the inductor
    58. def Inductor_Power(Iout_l,Rind_l):
    59.     return float(Iout_l * Iout_l) * float(Rind_l) * 1.1
    60.  
    61. #Calculates the power dissipated by the diode
    62. def Diode_Power():
    63.     return Ioutmax * (1 - DutyCycleMax) * Diode_Vfw
    64.  
    65.  
    66. #Calculates the RMS current of the output capacitor
    67. def Ico_RMS(delta_IL):
    68.     return (delta_IL/math.sqrt(12))
    69.  
    70. #Calculates the total power loss of the entire system. Not just the controller chip.
    71. #Ptot = Pin - Pout
    72. def Ptotal_loss():
    73.     return ((Vout * Ioutmax)/Efficiency - (Vout * Ioutmax))
    74.  
    75. #Calculates the jucntion temperature of the controller chip.
    76. def Tj_calc(Power):
    77.     return (float(Power) * float(ThermalResistance_ja)) + Ambient_TempMax
    78.  
    79.  
    80.  
    81.  
    82. Inductor_Ripple_I = ripp_cur(Inductor_Chosen)
    83.  
    84. Max_Inductor_I = IL_Peak(Ioutmax,Inductor_Ripple_I)
    85.  
    86. Inductor = Calc_L(Vout,Vinmax)
    87.  
    88. Change_inoutput_V = ChangeVout(Inductor_Ripple_I,Cout, ESRco)
    89.  
    90. Power_Inductor = Inductor_Power(Ioutmax,Inductor_ohms)
    91.  
    92. Power_Diode = Diode_Power()
    93.  
    94. Power_Total_Loss = Ptotal_loss()
    95.  
    96. Power_Chip_Loss = Power_Total_Loss - Power_Inductor
    97.  
    98. Juction_temp = Tj_calc(Power_Chip_Loss)
    99.  
    100. print 'Ideal Inductor Value: {} uH\n'.format(Inductor / 0.000001)
    101.  
    102. print 'All values below are calculated with inductor value chosen, not ideal\n'
    103.  
    104. print 'Inductor value Chosen: {} uH\n'.format(Inductor_Chosen_uH)
    105.  
    106. print 'Max Inductor Current: {} Amps\n'.format(Max_Inductor_I)
    107.  
    108. print 'Inductor Ripple Current {} Amps\n'.format(Inductor_Ripple_I)
    109.  
    110. print 'Inductor Power Loss: {} Watts\n'.format(Power_Inductor)
    111.  
    112. print 'Diode Power Loss: {} Watts\n'.format(Power_Diode)
    113.  
    114. print 'Power dissipation of control chip: {} Watts\n'.format(Power_Chip_Loss)
    115.  
    116. print 'Control Chip Junction Temperature at Iout_Max: {} Deg. C  (Max = {})\n'.format(Juction_temp,Junction_temp_Max)
    117.  
    118. print 'Change in output Voltage: +/- {} Volts\n'.format(Change_inoutput_V)
    119.  
    120.  
    121.  
    122.  
    123.  
    124.  
    The output of this code is:
    ##################################################################
    Ideal Inductor Value: 13.0769230769 uH

    All values below are calculated with inductor value chosen, not ideal

    Inductor value Chosen: 8.2 uH

    Max Inductor Current: 1.2392120075 Amps

    Inductor Ripple Current 0.478424015009 Amps

    Inductor Power Loss: 0.0605 Watts

    Diode Power Loss: 0.13 Watts

    Power dissipation of control chip: 1.52773529412 Watts

    Control Chip Junction Temperature at Iout_Max: 141.664117647 Deg. C (Max = 150)

    Change in output Voltage: +/- 0.00898857240321 Volts
    ####################################################################

    For more information here are the components I plan to use so far. All in reference to the schematic in the datasheet for the control chip.

    R1 = 73.2k
    R2 = 7.15K
    C1 = 10uF
    C2 = 22uF http://www.digikey.com/product-detail/en/CL31A226MOCLNNC/1276-2728-1-ND/3890814

    C3 = 10nF

    L = 8.2 uF http://www.digikey.com/product-detail/en/SRN6045-8R2Y/SRN6045-8R2YCT-ND/2756163

    D1 = http://www.digikey.com/product-detail/en/SD101CWS-TP/SD101CWSTPMSCT-ND/717419
     
    Last edited: Dec 16, 2014
  2. ronv

    AAC Fanatic!

    Nov 12, 2008
    3,287
    1,255
    I'm not sure it matters much. It's a trade off of inductor cost I think. As you said a smaller inductor will see higher currents so must be rated for a little higher saturation current and wastes some power in the IC. I'm not sure there is much you can do with the pcb to cool the sot-23. Maybe a little extra copper on Vin, out and ground pins.
     
  3. JDT

    Well-Known Member

    Feb 12, 2009
    658
    85
    Your python code looks good. Mostly, the inductor value is not that important. Most controllers are monitoring the inductor (or switching transistor) current, therefore the smaller the inductance the faster the switcher will operate. Higher frequencies mean the board layout and speed of diodes and transistors and ESR of capacitors becomes more important. Most manufacturers data-sheets are keen to show how physically small a circuit can be built above all else - something which is often a disadvantage for home experimenters.

    It always surprises me that often the inductor is often the component where most of the losses occur. Especially with high frequency operation. Hard to calculate because the losses are in the core itself, not copper. I have bought some off-the-shelf DC-DC converters where the inductor runs so hot (at full rated load) that I had to stop using them.
     
  4. guitardenver

    Thread Starter Active Member

    Jan 24, 2009
    30
    0
    Looks like I will go with the 8.2 uH.

    I do have a big concern about the heat of the chip. The thermal resistance is 220 C/W. The output of the code above was with a 60 C/W resistance. With 220 the code output is this:

    ############################################################################
    Ideal Inductor Value: 13.0769230769 uH

    All values below are calculated with inductor value chosen, not ideal

    Inductor value Chosen: 8.2 uH

    Max Inductor Current: 1.2392120075 Amps

    Inductor Ripple Current 0.478424015009 Amps

    Inductor Power Loss: 0.0605 Watts

    Diode Power Loss: 0.13 Watts

    Power dissipation of control chip: 1.52773529412 Watts

    Control Chip Junction Temperature at Iout_Max: 386.101764706 Deg. C (Max = 150)

    Change in output Voltage: +/- 0.00898857240321 Volts
    ############################################################################


    With a 220 C/W resistance I will only be able to put max 280 mA of output current. Even then that is operating too close the the max junction temperature of 150 C.

    Can you guys take a look at my calculation for the power and junction temperature?

    Ptot = Pin - Pout

    Pout = Pin * Efficiency
    so..

    Pin = Pout/Efficiency

    Ptot = (Vout * Iout)/Efficiency - (Vout * Iout)
    Ptot = (9 * 1)/.85 - (9 * 1) Assuming 85% efficiency minimum
    Ptot = 1.588 W

    Pchip = Ptot - Pinductor

    Pinductor = I_inductor^2 * R_inductor * 1.1 1.1 is there according to the datasheet
    = 1.239^2 * .055 * 1.1
    = .0928W

    Pchip = 1.588 - .0928 = 1.495 W



    Now for the junction temperature
    Tj = (Pchip * thermal_resistance) + Tamb

    Tj = (1.495* 220) + 50 lets say 50 C max ambient temperature
    Tj = 378.9 deg C !!!

    That is obviously unacceptable. Are the calculations correct? If so I need to get the thermal resistance to about 60 C/W. Or find another controller chip.
     
  5. guitardenver

    Thread Starter Active Member

    Jan 24, 2009
    30
    0
    I might have to go with this chip instead. It's the same chip but the package is different. It has an exposed pad for heat dissipation. Says you can get 55 C/W with proper PCB. So 60 C/W seams reachable with this package. Also 10 cents more for the chip it will be worth it.
    http://aosmd.com/res/data_sheets/AOZ1281DI.pdf


    Side note. Is it just me or in the datasheet is the Ptotal_loss equation wrong?
     
  6. ronv

    AAC Fanatic!

    Nov 12, 2008
    3,287
    1,255
    I think it is poorly done to. But, I don't think the power in the ic is so high. Most of it's losses are in the FET itself which they put at 240 mohms. So I make it to be around .37 watt or 131C. There will be some more due to switching so it's pretty toasty.
    You did forget the diode loss I think.
     
  7. guitardenver

    Thread Starter Active Member

    Jan 24, 2009
    30
    0
    I did forget the diode loss. Which is .13 watts. Could you elaborate on the FET losses? The FET is inside the IC. So the IC package has to dissipate all the power right? What is the correct way to calculate the power the chip has to dissipate?
     
  8. ronv

    AAC Fanatic!

    Nov 12, 2008
    3,287
    1,255
    Last edited: Dec 17, 2014
  9. ronv

    AAC Fanatic!

    Nov 12, 2008
    3,287
    1,255
    Let's try this:
    Pout=9watts.
    From the graph (guestimate) 93% (24 to 9 volts)
    Power lost .63 watts.
    - diode .13, - ind. .09. .41 total - pretty close to just the I^2R drop in the FET.
    Temperature 140 or so.
     
  10. guitardenver

    Thread Starter Active Member

    Jan 24, 2009
    30
    0
    I agree with those calculations. I did it the same way but I just guestimated a different efficiency of 85% minimum. A small change in efficiency has a big impact. I guess the big question here is how efficient is my design. I would think I can't really accurately answer that without taking measurements on the final board. Either way, with 93% I will still need to make sure the PCB dissipates as much heat as possible. Since the Rdson is calculated at 25 C ambient temperature, since we are assuming max 50 C, the Rdson will go down as the temperature goes up. Which will improve the efficiency.

    Thanks for the help and brainstorming with me. I think I am comfortable enough to go ahead and start the building and PCB process. If you think of anything else let me know.
     
Loading...