@@ -917,11 +917,9 @@ def refinements(self) -> Refinements:
917917 (['conv' , 'power_path' , 'in_cap' , 'cap' , 'voltage_rating_derating' ], 0.85 ),
918918 (['conv' , 'power_path' , 'out_cap' , 'cap' , 'exact_capacitance' ], False ),
919919 (['conv' , 'power_path' , 'out_cap' , 'cap' , 'voltage_rating_derating' ], 0.9 ), # allow using a 35V cap
920- (['conv' , 'power_path' , 'out_cap' , 'cap' , 'require_basic_part' ], False ), # high volt caps are rare
920+ (['conv' , 'power_path' , 'out_cap' , 'cap' , 'require_basic_part' ], False ),
921921 (['control' , 'driver' , 'cap_in2' , 'cap' , 'voltage_rating_derating' ], 0.9 ),
922- (['control' , 'driver' , 'cap_in2' , 'cap' , 'require_basic_part' ], False ),
923922 (['control' , 'driver' , 'cap_in3' , 'cap' , 'voltage_rating_derating' ], 0.9 ),
924- (['control' , 'driver' , 'cap_in3' , 'cap' , 'require_basic_part' ], False ),
925923 (['reg_vcontrol' , 'cf' , 'voltage_rating_derating' ], 0.85 ),
926924 (['reg_vcontrol' , 'power_path' , 'out_cap' , 'cap' , 'exact_capacitance' ], False ),
927925 (['reg_vcontrol' , 'power_path' , 'out_cap' , 'cap' , 'voltage_rating_derating' ], 0.85 ),
@@ -961,6 +959,13 @@ def refinements(self) -> Refinements:
961959 (['control' , 'isense' , 'ranges[2]' , 'pwr_sw' , 'ic' , 'led_current_recommendation' ], Range (0.002 , 0.010 )),
962960 (['spk_drv' , 'pwr' , 'current_draw' ], Range (6.0e-7 , 0.25 )), # assume speakers will be pretty mild
963961
962+ # the basic parts in the 100kOhm range is pretty limited
963+ (['ramp' , 'div' , 'bottom_res' , 'require_basic_part' ], False ),
964+ (['reg_v5' , 'fb' , 'div' , 'top_res' , 'require_basic_part' ], False ),
965+ (['reg_v12' , 'fb' , 'div' , 'top_res' , 'require_basic_part' ], False ),
966+ (['reg_vcontrol' , 'fb' , 'div' , 'top_res' , 'require_basic_part' ], False ),
967+ (['reg_vcontrol' , 'fb' , 'div' , 'bottom_res' , 'require_basic_part' ], False ),
968+
964969 # use more basic parts
965970 (['control' , 'snub_c' , 'cap' , 'voltage_rating_derating' ], 0.60 ), # allow use of a 50V basic part caps
966971 (['control' , 'ifilt' , 'c' , 'voltage_rating_derating' ], 0.60 ),
@@ -971,15 +976,22 @@ def refinements(self) -> Refinements:
971976 (['ramp' , 'drv' , 'gate_voltage' ], Range (0.0 , 10.0 )), # gate max isn't parsed, but typically up to 20v
972977
973978 # reduce line items
979+ (['reg_vcontrol' , 'rect' , 'actual_part' ], ParamValue (['reg_v12' , 'rect' , 'actual_part' ])),
980+ (['conv' , 'buck_sw' , 'driver' , 'boot' , 'actual_part' ], ParamValue (['reg_v12' , 'rect' , 'actual_part' ])),
981+ (['conv' , 'boost_sw' , 'driver' , 'boot' , 'actual_part' ], ParamValue (['reg_v12' , 'rect' , 'actual_part' ])),
982+ (['control' , 'err_source' , 'diode' , 'actual_part' ], ParamValue (['reg_v12' , 'rect' , 'actual_part' ])),
983+ (['control' , 'err_sink' , 'diode' , 'actual_part' ], ParamValue (['reg_v12' , 'rect' , 'actual_part' ])),
984+
974985 (['convin_sense' , 'Rs' , 'res' , 'res' , 'part' ], ParamValue (['vusb_sense' , 'Rs' , 'res' , 'res' , 'part' ])),
975986 (['vusb_sense' , 'Rs' , 'res' , 'res' , 'require_basic_part' ], False ),
976987 (['convin_sense' , 'Rs' , 'res' , 'res' , 'require_basic_part' ], False ),
977988 (['reg_3v3' , 'power_path' , 'inductor' , 'part' ], ParamValue (['reg_v5' , 'power_path' , 'inductor' , 'actual_part' ])),
978989 (['reg_vcontrol' , 'power_path' , 'inductor' , 'part' ], ParamValue (['reg_v12' , 'power_path' , 'inductor' , 'actual_part' ])),
979990 (['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' ])),
991+ # the low-leakage TVS diodes aren't in the parts table, so directly insert the LCSC part
992+ (['prot_vusb' , 'diode' , 'lcsc_part' ], ParamValue (['control' , 'tvs_p' , 'lcsc_part' ])),
993+ (['prot_conv' , 'diode' , 'lcsc_part' ], ParamValue (['control' , 'tvs_p' , 'lcsc_part' ])),
994+ (['prot_3v3' , 'diode' , 'lcsc_part' ], ParamValue (['control' , 'tvs_n' , 'lcsc_part' ])), # note, 5v zener diode
983995
984996 # out of stock / unassembleable parts
985997 (['conv' , 'power_path' , 'out_cap' , 'cap' , 'part' ], "C3216X5R1V226MTJ00E" ),
0 commit comments