@@ -467,7 +467,7 @@ def contents(self) -> None:
467467 self .usb .pwr ,
468468 self .Block (SeriesPowerFuse (trip_current = (7 , 8 )* Amp )),
469469 self .Block (SeriesPowerFerriteBead ()),
470- imp .Block (ProtectionZenerDiode (voltage = (32 , 38 )* Volt )), # for parts commonality w/ the Vconv zener
470+ imp .Block (ProtectionZenerDiode (voltage = (32 , 40 )* Volt )), # for parts commonality w/ the Vconv zener
471471 self .vusb_sense .sense_pos
472472 )
473473 self .vusb = self .connect (self .vusb_sense .sense_neg )
@@ -520,7 +520,7 @@ def contents(self) -> None:
520520 output_ripple_limit = (25 * (7 / 8 ))* mVolt # fill empty space with caps
521521 )),
522522 imp .Block (ForcedVoltage ((2 , 30 )* Volt )), # at least 2v to allow current sensor to work
523- imp .Block (ProtectionZenerDiode (voltage = (32 , 38 )* Volt )), # zener shunt in case the boost converter goes crazy
523+ imp .Block (ProtectionZenerDiode (voltage = (32 , 40 )* Volt )), # zener shunt in case the boost converter goes crazy
524524 self .Block (VoltageTestPoint ())
525525 )
526526 self .connect (self .conv .pwr_logic , self .v5 )
@@ -913,7 +913,6 @@ def refinements(self) -> Refinements:
913913 (['reg_v5' , 'power_path' , 'in_cap' , 'cap' , 'exact_capacitance' ], False ),
914914 (['reg_v5' , 'power_path' , 'in_cap' , 'cap' , 'voltage_rating_derating' ], 0.85 ),
915915 (['reg_v12' , 'cf' , 'voltage_rating_derating' ], 0.85 ),
916- (['reg_v12' , 'cf' , 'require_basic_part' ], False ),
917916 (['conv' , 'power_path' , 'in_cap' , 'cap' , 'exact_capacitance' ], False ),
918917 (['conv' , 'power_path' , 'in_cap' , 'cap' , 'voltage_rating_derating' ], 0.85 ),
919918 (['conv' , 'power_path' , 'out_cap' , 'cap' , 'exact_capacitance' ], False ),
@@ -924,7 +923,6 @@ def refinements(self) -> Refinements:
924923 (['control' , 'driver' , 'cap_in3' , 'cap' , 'voltage_rating_derating' ], 0.9 ),
925924 (['control' , 'driver' , 'cap_in3' , 'cap' , 'require_basic_part' ], False ),
926925 (['reg_vcontrol' , 'cf' , 'voltage_rating_derating' ], 0.85 ),
927- (['reg_vcontrol' , 'cf' , 'require_basic_part' ], False ),
928926 (['reg_vcontrol' , 'power_path' , 'out_cap' , 'cap' , 'exact_capacitance' ], False ),
929927 (['reg_vcontrol' , 'power_path' , 'out_cap' , 'cap' , 'voltage_rating_derating' ], 0.85 ),
930928 (['conv' , 'boost_sw' , 'high_fet' , 'gate_voltage' ], ParamValue (
@@ -938,10 +936,6 @@ def refinements(self) -> Refinements:
938936 (['conv' , 'buck_sw' , 'low_fet' , 'part' ], ParamValue (['conv' , 'boost_sw' , 'low_fet' , 'actual_part' ])),
939937 (['conv' , 'buck_sw' , 'high_fet' , 'part' ], ParamValue (['conv' , 'boost_sw' , 'low_fet' , 'actual_part' ])),
940938 (['conv' , 'boost_sw' , 'high_fet' , 'part' ], ParamValue (['conv' , 'boost_sw' , 'low_fet' , 'actual_part' ])),
941- (['conv' , 'boost_sw' , 'low_fet' , 'manual_gate_charge' ], Range .exact (100e-9 )), # reasonable worst case estimate
942- (['conv' , 'boost_sw' , 'high_fet' , 'manual_gate_charge' ], ParamValue (['conv' , 'boost_sw' , 'low_fet' , 'manual_gate_charge' ])),
943- (['conv' , 'buck_sw' , 'low_fet' , 'manual_gate_charge' ], ParamValue (['conv' , 'boost_sw' , 'low_fet' , 'manual_gate_charge' ])),
944- (['conv' , 'buck_sw' , 'high_fet' , 'manual_gate_charge' ], ParamValue (['conv' , 'boost_sw' , 'low_fet' , 'manual_gate_charge' ])),
945939 (['conv' , 'boost_sw' , 'gate_res' ], Range .from_tolerance (4.7 , 0.05 )),
946940 (['conv' , 'buck_sw' , 'gate_res' ], ParamValue (['conv' , 'boost_sw' , 'gate_res' ])),
947941
@@ -957,12 +951,6 @@ def refinements(self) -> Refinements:
957951 (['control' , 'driver' , 'low_fet' , 'footprint_spec' ], 'Package_TO_SOT_THT:TO-220-3_Horizontal_TabUp' ),
958952 (['control' , 'driver' , 'low_fet' , 'part_spec' ], 'IRF9540' ), # has a 30V/4A SOA
959953
960- (['control' , 'ifilt' , 'c' , 'require_basic_part' ], False ), # no 10nF caps in basic library for some reason
961-
962- (['control' , 'snub_r' , 'res' , 'footprint_spec' ], ParamValue (['control' , 'isense' , 'ranges[0]' , 'isense' , 'res' , 'res' , 'footprint_spec' ])),
963- (['control' , 'snub_r' , 'res' , 'require_basic_part' ], False ),
964- (['control' , 'snub_c' , 'cap' , 'require_basic_part' ], False ),
965-
966954 (['prot_vusb' , 'diode' , 'footprint_spec' ], 'Diode_SMD:D_SMA' ),
967955 (['prot_conv' , 'diode' , 'footprint_spec' ], 'Diode_SMD:D_SMA' ),
968956 (['prot_3v3' , 'diode' , 'footprint_spec' ], 'Diode_SMD:D_SMA' ),
@@ -971,22 +959,27 @@ def refinements(self) -> Refinements:
971959 (['control' , 'isense' , 'ranges[0]' , 'pwr_sw' , 'ic' , 'led_current_recommendation' ], Range (0.002 , 0.010 )),
972960 (['control' , 'isense' , 'ranges[1]' , 'pwr_sw' , 'ic' , 'led_current_recommendation' ], Range (0.002 , 0.010 )),
973961 (['control' , 'isense' , 'ranges[2]' , 'pwr_sw' , 'ic' , 'led_current_recommendation' ], Range (0.002 , 0.010 )),
974- (['vusb_sense' , 'Rs' , 'res' , 'res' , 'require_basic_part' ], False ),
975- (['convin_sense' , 'Rs' , 'res' , 'res' , 'require_basic_part' ], False ),
976-
977962 (['spk_drv' , 'pwr' , 'current_draw' ], Range (6.0e-7 , 0.25 )), # assume speakers will be pretty mild
978963
979- # user more basic parts
964+ # use more basic parts
965+ (['control' , 'snub_c' , 'cap' , 'voltage_rating_derating' ], 0.60 ), # allow use of a 50V basic part caps
966+ (['control' , 'ifilt' , 'c' , 'voltage_rating_derating' ], 0.60 ),
967+
980968 # note, can't limit 5v reg and 12v reg feedback series, no overlap w/ downstream part supply voltages
981969 (['ramp' , 'div' , 'series' ], 6 ),
982970 (['oled' , 'iref_res' , 'resistance' ], Range .from_tolerance (1e6 , 0.05 )), # use 1M resistor, up from 910k
983971 (['ramp' , 'drv' , 'gate_voltage' ], Range (0.0 , 10.0 )), # gate max isn't parsed, but typically up to 20v
984972
985973 # reduce line items
986974 (['convin_sense' , 'Rs' , 'res' , 'res' , 'part' ], ParamValue (['vusb_sense' , 'Rs' , 'res' , 'res' , 'part' ])),
975+ (['vusb_sense' , 'Rs' , 'res' , 'res' , 'require_basic_part' ], False ),
976+ (['convin_sense' , 'Rs' , 'res' , 'res' , 'require_basic_part' ], False ),
987977 (['reg_3v3' , 'power_path' , 'inductor' , 'part' ], ParamValue (['reg_v5' , 'power_path' , 'inductor' , 'actual_part' ])),
988978 (['reg_vcontrol' , 'power_path' , 'inductor' , 'part' ], ParamValue (['reg_v12' , 'power_path' , 'inductor' , 'actual_part' ])),
989979 (['filt_vcontroln' , 'fb' , 'part' ], ParamValue (['dac_ferrite' , 'fb' , 'actual_part' ])),
980+ (['prot_vusb' , 'diode' , 'part' ], ParamValue (['control' , 'tvs_p' , 'kicad_value' ])),
981+ (['prot_conv' , 'diode' , 'part' ], ParamValue (['control' , 'tvs_p' , 'kicad_value' ])),
982+ (['prot_3v3' , 'diode' , 'part' ], ParamValue (['control' , 'tvs_n' , 'kicad_value' ])),
990983
991984 # out of stock / unassembleable parts
992985 (['conv' , 'power_path' , 'out_cap' , 'cap' , 'part' ], "C3216X5R1V226MTJ00E" ),
0 commit comments