Recalculate values for LP8867 and modify schematic and layout accordingly.
This commit is contained in:
parent
7227febbfa
commit
ca9ea3c9e8
@ -132,29 +132,29 @@ Wire Wire Line
|
|||||||
Wire Wire Line
|
Wire Wire Line
|
||||||
2900 3500 1850 3500
|
2900 3500 1850 3500
|
||||||
Wire Wire Line
|
Wire Wire Line
|
||||||
1850 3500 1850 3700
|
1850 3500 1850 4500
|
||||||
$Comp
|
$Comp
|
||||||
L Device:R R12
|
L Device:R R12
|
||||||
U 1 1 6060F6AC
|
U 1 1 6060F6AC
|
||||||
P 1850 3850
|
P 1850 4650
|
||||||
F 0 "R12" H 1920 3896 50 0000 L CNN
|
F 0 "R12" H 1920 4696 50 0000 L CNN
|
||||||
F 1 "33k" H 1920 3805 50 0000 L CNN
|
F 1 "39k" H 1920 4605 50 0000 L CNN
|
||||||
F 2 "Resistor_SMD:R_0603_1608Metric" V 1780 3850 50 0001 C CNN
|
F 2 "Resistor_SMD:R_0603_1608Metric" V 1780 4650 50 0001 C CNN
|
||||||
F 3 "~" H 1850 3850 50 0001 C CNN
|
F 3 "~" H 1850 4650 50 0001 C CNN
|
||||||
1 1850 3850
|
1 1850 4650
|
||||||
1 0 0 -1
|
1 0 0 -1
|
||||||
$EndComp
|
$EndComp
|
||||||
Wire Wire Line
|
Wire Wire Line
|
||||||
1850 4000 1850 4150
|
1850 4800 1850 4950
|
||||||
$Comp
|
$Comp
|
||||||
L power:GND #PWR0143
|
L power:GND #PWR0143
|
||||||
U 1 1 60610BC6
|
U 1 1 60610BC6
|
||||||
P 1850 4150
|
P 1850 4950
|
||||||
F 0 "#PWR0143" H 1850 3900 50 0001 C CNN
|
F 0 "#PWR0143" H 1850 4700 50 0001 C CNN
|
||||||
F 1 "GND" H 1855 3977 50 0000 C CNN
|
F 1 "GND" H 1855 4777 50 0000 C CNN
|
||||||
F 2 "" H 1850 4150 50 0001 C CNN
|
F 2 "" H 1850 4950 50 0001 C CNN
|
||||||
F 3 "" H 1850 4150 50 0001 C CNN
|
F 3 "" H 1850 4950 50 0001 C CNN
|
||||||
1 1850 4150
|
1 1850 4950
|
||||||
1 0 0 -1
|
1 0 0 -1
|
||||||
$EndComp
|
$EndComp
|
||||||
Wire Wire Line
|
Wire Wire Line
|
||||||
@ -194,7 +194,7 @@ L Device:R R11
|
|||||||
U 1 1 6061C45B
|
U 1 1 6061C45B
|
||||||
P 1500 3850
|
P 1500 3850
|
||||||
F 0 "R11" H 1430 3804 50 0000 R CNN
|
F 0 "R11" H 1430 3804 50 0000 R CNN
|
||||||
F 1 "147k" H 1430 3895 50 0000 R CNN
|
F 1 "56k" H 1430 3895 50 0000 R CNN
|
||||||
F 2 "Resistor_SMD:R_0603_1608Metric" V 1430 3850 50 0001 C CNN
|
F 2 "Resistor_SMD:R_0603_1608Metric" V 1430 3850 50 0001 C CNN
|
||||||
F 3 "~" H 1500 3850 50 0001 C CNN
|
F 3 "~" H 1500 3850 50 0001 C CNN
|
||||||
1 1500 3850
|
1 1500 3850
|
||||||
@ -223,8 +223,8 @@ L Device:L_Core_Ferrite L2
|
|||||||
U 1 1 60625C92
|
U 1 1 60625C92
|
||||||
P 3350 2400
|
P 3350 2400
|
||||||
F 0 "L2" V 3575 2400 50 0000 C CNN
|
F 0 "L2" V 3575 2400 50 0000 C CNN
|
||||||
F 1 "DE1205-33" V 3484 2400 50 0000 C CNN
|
F 1 "DE0704-22" V 3484 2400 50 0000 C CNN
|
||||||
F 2 "shimatta_inductor:FerroCore_DE1205" H 3350 2400 50 0001 C CNN
|
F 2 "shimatta_inductor:FerroCore_DE0704" H 3350 2400 50 0001 C CNN
|
||||||
F 3 "https://www.tme.eu/Document/d1f8b47d020ebf11f3b92c6891638dfa/de.pdf" H 3350 2400 50 0001 C CNN
|
F 3 "https://www.tme.eu/Document/d1f8b47d020ebf11f3b92c6891638dfa/de.pdf" H 3350 2400 50 0001 C CNN
|
||||||
1 3350 2400
|
1 3350 2400
|
||||||
0 -1 -1 0
|
0 -1 -1 0
|
||||||
@ -345,7 +345,7 @@ L Device:R R10
|
|||||||
U 1 1 6064ADF7
|
U 1 1 6064ADF7
|
||||||
P 5800 3000
|
P 5800 3000
|
||||||
F 0 "R10" V 5593 3000 50 0000 C CNN
|
F 0 "R10" V 5593 3000 50 0000 C CNN
|
||||||
F 1 "130k" V 5684 3000 50 0000 C CNN
|
F 1 "100k" V 5684 3000 50 0000 C CNN
|
||||||
F 2 "Resistor_SMD:R_0603_1608Metric" V 5730 3000 50 0001 C CNN
|
F 2 "Resistor_SMD:R_0603_1608Metric" V 5730 3000 50 0001 C CNN
|
||||||
F 3 "~" H 5800 3000 50 0001 C CNN
|
F 3 "~" H 5800 3000 50 0001 C CNN
|
||||||
1 5800 3000
|
1 5800 3000
|
||||||
@ -356,7 +356,7 @@ L Device:R R9
|
|||||||
U 1 1 6064B526
|
U 1 1 6064B526
|
||||||
P 5800 2600
|
P 5800 2600
|
||||||
F 0 "R9" V 5593 2600 50 0000 C CNN
|
F 0 "R9" V 5593 2600 50 0000 C CNN
|
||||||
F 1 "680k" V 5684 2600 50 0000 C CNN
|
F 1 "560k" V 5684 2600 50 0000 C CNN
|
||||||
F 2 "Resistor_SMD:R_0603_1608Metric" V 5730 2600 50 0001 C CNN
|
F 2 "Resistor_SMD:R_0603_1608Metric" V 5730 2600 50 0001 C CNN
|
||||||
F 3 "~" H 5800 2600 50 0001 C CNN
|
F 3 "~" H 5800 2600 50 0001 C CNN
|
||||||
1 5800 2600
|
1 5800 2600
|
||||||
@ -389,7 +389,7 @@ L Device:C C57
|
|||||||
U 1 1 60654433
|
U 1 1 60654433
|
||||||
P 6000 2600
|
P 6000 2600
|
||||||
F 0 "C57" H 6115 2646 50 0000 L CNN
|
F 0 "C57" H 6115 2646 50 0000 L CNN
|
||||||
F 1 "10p" H 6115 2555 50 0000 L CNN
|
F 1 "14p" H 6115 2555 50 0000 L CNN
|
||||||
F 2 "Capacitor_SMD:C_0603_1608Metric" H 6038 2450 50 0001 C CNN
|
F 2 "Capacitor_SMD:C_0603_1608Metric" H 6038 2450 50 0001 C CNN
|
||||||
F 3 "~" H 6000 2600 50 0001 C CNN
|
F 3 "~" H 6000 2600 50 0001 C CNN
|
||||||
1 6000 2600
|
1 6000 2600
|
||||||
@ -875,7 +875,7 @@ Wire Wire Line
|
|||||||
Wire Wire Line
|
Wire Wire Line
|
||||||
4300 5650 7350 5650
|
4300 5650 7350 5650
|
||||||
Text Notes 7700 2650 0 50 ~ 0
|
Text Notes 7700 2650 0 50 ~ 0
|
||||||
LEDs: L128-4095HA3500001\nVf: 3V\nIf: ~~70 mA
|
LEDs: L128-4095HA3500001\nVf: 3V\nIf: ~~60 mA
|
||||||
Text Notes 5550 2250 0 50 ~ 0
|
Text Notes 5550 2250 0 50 ~ 0
|
||||||
V = ~~ 24V
|
V = ~~ 24V
|
||||||
Text Notes 5550 2350 0 50 ~ 0
|
Text Notes 5550 2350 0 50 ~ 0
|
||||||
@ -926,4 +926,12 @@ F 3 "~" H 6650 2000 50 0001 C CNN
|
|||||||
$EndComp
|
$EndComp
|
||||||
Wire Wire Line
|
Wire Wire Line
|
||||||
6450 2000 6450 2400
|
6450 2000 6450 2400
|
||||||
|
Text Notes 3250 2100 0 50 ~ 0
|
||||||
|
22 uH
|
||||||
|
Text Notes 2150 4650 0 50 ~ 0
|
||||||
|
Max Current = 60 mA
|
||||||
|
Text Notes 850 3900 0 50 ~ 0
|
||||||
|
f = 1.08 MHz
|
||||||
|
Text Notes 1650 1850 0 50 ~ 0
|
||||||
|
For the calculation of the component values see 'lp8867-calc.py'
|
||||||
$EndSCHEMATC
|
$EndSCHEMATC
|
||||||
|
98
pcb/lp8867-calc.py
Normal file
98
pcb/lp8867-calc.py
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
#!/bin/python
|
||||||
|
|
||||||
|
import numpy as np
|
||||||
|
import eseries as es
|
||||||
|
|
||||||
|
def calc_fsw_from_r_fset(r_fset):
|
||||||
|
fsw = 67600 / (r_fset / 1e3 + 6.4)
|
||||||
|
fsw = fsw * 1e3
|
||||||
|
return fsw
|
||||||
|
|
||||||
|
def calc_r_fset_from_fsw(fsw):
|
||||||
|
fsw = fsw / 1e3
|
||||||
|
r = 67600 / (fsw) - 6.4
|
||||||
|
r = r * 1e3
|
||||||
|
return r
|
||||||
|
|
||||||
|
def calc_r_iset_from_i(i):
|
||||||
|
i = i * 1e3
|
||||||
|
r = 2000 * 1.2 / i
|
||||||
|
r = r * 1e3
|
||||||
|
return r
|
||||||
|
def calc_i_from_r_iset(r):
|
||||||
|
r = r * 1e-3
|
||||||
|
i = 2000 * 1.2 / r
|
||||||
|
i = i * 1e-3
|
||||||
|
return i
|
||||||
|
|
||||||
|
def calc_vout(r1, r2, k):
|
||||||
|
r1 = r1 / 1000
|
||||||
|
r2 = r2 / 1000
|
||||||
|
v = (1.2 / r2 + k * 0.0387) * r1 + 1.2
|
||||||
|
return v
|
||||||
|
|
||||||
|
switching_freq = 1.1e6
|
||||||
|
output_voltage_nom = 24 + 0.9
|
||||||
|
inductor_value = 22e-6
|
||||||
|
input_voltage = 12
|
||||||
|
output_current_per_lane = 60e-3
|
||||||
|
desired_e_series = es.E12
|
||||||
|
r1 = 560e3
|
||||||
|
r2 = 100e3
|
||||||
|
|
||||||
|
# Calculate the parameters
|
||||||
|
print('Calculating for the given parameters:')
|
||||||
|
print(f'{switching_freq = }')
|
||||||
|
print(f'{output_voltage_nom = } and {input_voltage = }')
|
||||||
|
print(f'{inductor_value =}')
|
||||||
|
print(f'{desired_e_series = }')
|
||||||
|
print('')
|
||||||
|
|
||||||
|
rfset = calc_r_fset_from_fsw(switching_freq)
|
||||||
|
print(f'{rfset = }')
|
||||||
|
|
||||||
|
# Find the nearest value in the e series
|
||||||
|
rfset = es.find_nearest(desired_e_series, rfset)
|
||||||
|
f_sw = calc_fsw_from_r_fset(rfset)
|
||||||
|
|
||||||
|
print(f'The nearest value from the E series is: {rfset = }')
|
||||||
|
freq_error = (f_sw - switching_freq) / switching_freq * 100
|
||||||
|
print(f'Resulting switching frequency is {f_sw} (Error: {freq_error:.1f} %)')
|
||||||
|
|
||||||
|
print(f"Desired output current per lane is {output_current_per_lane} A")
|
||||||
|
r_iset = calc_r_iset_from_i(output_current_per_lane)
|
||||||
|
print(f'Resulting in {r_iset = }')
|
||||||
|
r_iset = es.find_nearest(desired_e_series, r_iset)
|
||||||
|
output_current_per_lane = calc_i_from_r_iset(r_iset)
|
||||||
|
print(f'Nearest e series value {r_iset = } resulting in an LED current of {output_current_per_lane} A')
|
||||||
|
|
||||||
|
d = (output_voltage_nom - input_voltage) / output_voltage_nom
|
||||||
|
d_inv = 1-d
|
||||||
|
print(f"Expected duty cycle: {d}")
|
||||||
|
i_ripple = (output_voltage_nom- input_voltage) / (2 * inductor_value * f_sw) * (input_voltage / output_voltage_nom)
|
||||||
|
print(f'Ripple current: {i_ripple} A')
|
||||||
|
i_sat_min = output_current_per_lane * 4 / d_inv + i_ripple
|
||||||
|
print(f'Minimum saturation current of inductor: {i_sat_min:.3f} A')
|
||||||
|
|
||||||
|
print(f'Voltage divider {r1 = } | {r2 = }')
|
||||||
|
print(f'Output voltage initial: {calc_vout(r1, r2, 0.88)} V')
|
||||||
|
print(f'Output voltage maximum: {calc_vout(r1, r2, 1)} V')
|
||||||
|
print(f'Output voltage minimum: {calc_vout(r1, r2, 0)} V')
|
||||||
|
|
||||||
|
ovp = output_voltage_nom + (r1/r2 + 1)*(2.3 - 1.2)
|
||||||
|
|
||||||
|
print(f'Over voltage protection: {ovp} V')
|
||||||
|
|
||||||
|
ratio = r1/r2
|
||||||
|
print(f'Resistance ratio is {ratio}')
|
||||||
|
if f_sw <= 1150e3:
|
||||||
|
ratio_range = (5, 10)
|
||||||
|
else:
|
||||||
|
ratio_range = (10, 20)
|
||||||
|
|
||||||
|
if ratio < ratio_range[0] or ratio > ratio_range[1]:
|
||||||
|
print('Ratio is outside recommended limits!')
|
||||||
|
|
||||||
|
# Loop stability
|
||||||
|
cfb = 1 / (2 * np.pi * 20e3 * r1 )
|
||||||
|
print(f'Loop stability capacitor value: {cfb} F')
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user