Skip to content

Commit 9959d6b

Browse files
committed
secondary inductor sort by DCR
1 parent 1571828 commit 9959d6b

File tree

7 files changed

+17
-10
lines changed

7 files changed

+17
-10
lines changed

edg/abstract_parts/AbstractInductor.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import Dict, Optional, cast
1+
from typing import Dict, Optional, cast, Any
22

33
from ..electronics_model import *
44
from .PartsTable import PartsTableColumn, PartsTableRow, ExperimentalUserFnPartsTable
@@ -164,6 +164,10 @@ def _row_generate(self, row: PartsTableRow) -> None:
164164
self.assign(self.actual_frequency_rating, row[self.FREQUENCY_RATING])
165165
self.assign(self.actual_resistance_dc, row[self.DC_RESISTANCE])
166166

167+
@classmethod
168+
def _row_sort_by(cls, row: PartsTableRow) -> Any:
169+
return row[cls.DC_RESISTANCE].center()
170+
167171

168172
class SeriesPowerInductor(DiscreteApplication):
169173
"""VoltageSource/Sink-typed series inductor for power filtering"""

edg/jlcparts/JlcPartsBase.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ def _parse_table(cls) -> PartsTable:
165165

166166
@classmethod
167167
def _row_sort_by(cls, row: PartsTableRow) -> Any:
168-
return [not row[cls.BASIC_PART_COL], cls._row_area(row), row[cls.COST_COL]]
168+
return [not row[cls.BASIC_PART_COL], cls._row_area(row), super()._row_sort_by(row), row[cls.COST_COL]]
169169

170170
def _row_generate(self, row: PartsTableRow) -> None:
171171
super()._row_generate(row)

edg/jlcparts/JlcPartsInductor.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from .JlcPartsBase import JlcPartsBase, JlcPartsAttributes
55

66

7-
class JlcPartsInductor(TableInductor, PartsTableSelectorFootprint, JlcPartsBase):
7+
class JlcPartsInductor(PartsTableSelectorFootprint, JlcPartsBase, TableInductor):
88
_JLC_PARTS_FILE_NAMES = [
99
"InductorsakaCoilsakaTransformersPower_Inductors",
1010
"InductorsakaCoilsakaTransformersInductors__SMD_",

edg/parts/JlcInductor.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from .JlcPart import DescriptionParser, JlcTableSelector
66

77

8-
class JlcInductor(TableInductor, PartsTableSelectorFootprint, JlcTableSelector):
8+
class JlcInductor(PartsTableSelectorFootprint, JlcTableSelector, TableInductor):
99
PACKAGE_FOOTPRINT_MAP = {
1010
'0402': 'Inductor_SMD:L_0402_1005Metric',
1111
'0603': 'Inductor_SMD:L_0603_1608Metric',

edg/parts/JlcPart.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ def parse_full_description(description: str, parser_options: List[DescriptionPar
9191
class JlcTableSelector(PartsTableAreaSelector, PartsTableFootprintFilter, JlcPart, JlcTableBase):
9292
@classmethod
9393
def _row_sort_by(cls, row: PartsTableRow) -> Any:
94-
return [row[cls.BASIC_PART_HEADER], cls._row_area(row), row[cls.COST]]
94+
return [row[cls.BASIC_PART_HEADER], cls._row_area(row), super()._row_sort_by(row), row[cls.COST]]
9595

9696
def _row_generate(self, row: PartsTableRow) -> None:
9797
super()._row_generate(row)

examples/test_can_adapter.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ class Obd2Connector(FootprintBlock):
88
def __init__(self) -> None:
99
super().__init__()
1010
self.gnd = self.Port(Ground())
11-
self.pwr = self.Port(VoltageSource(voltage_out=(10, 24)*Volt))
11+
self.pwr = self.Port(VoltageSource(voltage_out=(10, 25)*Volt))
1212

1313
self.can = self.Port(CanDiffPort())
1414

@@ -86,6 +86,7 @@ def refinements(self) -> Refinements:
8686
(['mcu', 'programming'], 'uart-auto'),
8787
(['reg_3v3', 'power_path', 'inductor', 'manual_frequency_rating'], Range(0, 9e6)),
8888
(['reg_3v3', 'power_path', 'in_cap', 'cap', 'voltage_rating_derating'], 1.0),
89+
(['reg_3v3', 'power_path', 'inductor', 'footprint_spec'], "Inductor_SMD:L_1210_3225Metric")
8990
],
9091
class_refinements=[
9192
(EspProgrammingHeader, EspProgrammingTc2030),

examples/test_iot_blinds.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ def __init__(self):
99
self.conn = self.Block(JstXh(length=6))
1010
self.gnd = self.Export(self.conn.pins.request('4').adapt_to(Ground()))
1111
self.pwr = self.Export(self.conn.pins.request('1').adapt_to(
12-
VoltageSink.from_gnd(self.gnd, voltage_limits=(4.5, 24)*Volt)))
12+
VoltageSink.from_gnd(self.gnd, voltage_limits=(4.5, 25)*Volt)))
1313

1414
self.enca = self.Export(self.conn.pins.request('2').adapt_to(DigitalSource.low_from_supply(self.gnd)))
1515
self.encb = self.Export(self.conn.pins.request('3').adapt_to(DigitalSource.low_from_supply(self.gnd)))
@@ -24,7 +24,7 @@ def __init__(self):
2424
self.conn = self.Block(JstPh())
2525
self.gnd = self.Export(self.conn.pins.request('1').adapt_to(Ground()))
2626
self.pwr = self.Export(self.conn.pins.request('2').adapt_to(VoltageSource(
27-
voltage_out=(10, 24)*Volt,
27+
voltage_out=(10, 25)*Volt,
2828
current_limits=(0, 1)*Amp,
2929
)))
3030

@@ -147,8 +147,9 @@ def refinements(self) -> Refinements:
147147
(['reg_3v3', 'power_path', 'inductor', 'manual_frequency_rating'], Range(0, 9e6)),
148148
(['drv', 'isen_res', 'res', 'footprint_spec'], 'Resistor_SMD:R_1206_3216Metric'),
149149
(['drv', 'isen_res', 'res', 'require_basic_part'], False),
150-
(['qwiic', 'pwr', 'current_draw'], Range(0.0, 0.08)), # to get a 1210-size inductor
151150
(['reg_3v3', 'power_path', 'in_cap', 'cap', 'voltage_rating_derating'], 1.0),
151+
# 15uH inductors are more common
152+
(['reg_3v3', 'power_path', 'inductor', 'inductance'], Range.from_tolerance(15e-6, 0.2))
152153
],
153154
class_refinements=[
154155
(EspProgrammingHeader, EspProgrammingTc2030),
@@ -280,8 +281,9 @@ def refinements(self) -> Refinements:
280281
(['reg_3v3', 'power_path', 'inductor', 'manual_frequency_rating'], Range(0, 9e6)),
281282
(['drv', 'isen_res', 'res', 'footprint_spec'], 'Resistor_SMD:R_1206_3216Metric'),
282283
(['drv', 'isen_res', 'res', 'require_basic_part'], False),
283-
(['qwiic', 'pwr', 'current_draw'], Range(0.0, 0.08)), # to get a 1210-size inductor
284284
(['reg_3v3', 'power_path', 'in_cap', 'cap', 'voltage_rating_derating'], 1.0),
285+
# 15uH inductors are more common
286+
(['reg_3v3', 'power_path', 'inductor', 'inductance'], Range.from_tolerance(15e-6, 0.2))
285287
],
286288
class_refinements=[
287289
(EspProgrammingHeader, EspProgrammingTc2030),

0 commit comments

Comments
 (0)