mirror of
https://github.com/diodeinc/pcb.git
synced 2026-09-14 20:17:19 +08:00
6247ee421d
* Warn on legacy Component() inputs
Emit a deprecated.component_property warning whenever Component() is
called with a legacy properties[...] key that has a typed kwarg
replacement (do_not_populate, Exclude_from_bom, type, mpn, manufacturer,
datasheet, description, and casing variants), or when mpn=/manufacturer=
are used instead of part=Part(...). Legacy values continue to be
honored; the warning just nudges users toward the endorsed forms.
Migrate examples, stdlib, and test fixtures off these legacy inputs
where the surrounding code is not specifically exercising the legacy
fallback path.
* Expose add_property as builtin.add_property and deprecate the global
Adds builtin.add_property as the endorsed entry point. The bare global
add_property still works for backwards compatibility but now emits a
deprecated.add_property warning. Stdlib callers are migrated to
builtin.add_property.
* Cleanup: warn on Description key, simpler add_property message, drop a stray mpn
* Warn on legacy module DNP property keys
Module(..., properties={...}) and add_property(...) / builtin.add_property(...)
now emit deprecated.module_property warnings when they use the legacy DNP key
spellings (do_not_populate, Do_not_populate, DNP, dnp). Pass dnp=True to
Module(...) instead. Legacy values still flow through to conversion.
* Consolidate module DNP deprecation helpers
Extract a shared warn_deprecated_module_property() to remove duplicated
diagnostic-emission boilerplate between the add_property and
properties-dict warning helpers.
* Address PR review: route sourcing keys to part=Part(...), trim changelog
- Remove mpn/Mpn/manufacturer/Manufacturer from LEGACY_COMPONENT_PROPERTY_KEYS
so they share the same part=Part(...) suggestion as the kwarg path instead
of producing a misleading two-hop deprecation (legacy -> deprecated kwarg).
- Collapse three verbose changelog entries into two short ones.
* Tighten changelog entries for legacy-properties deprecations
270 lines
5.2 KiB
Python
270 lines
5.2 KiB
Python
load("@stdlib/interfaces.zen", "Gpio", "Analog", "Pwm")
|
|
|
|
Capacitor = Module("@stdlib/generics/Capacitor.zen")
|
|
Resistor = Module("@stdlib/generics/Resistor.zen")
|
|
HighSideCurrentSense = Module("../HighSideCurrentSense/HighSideCurrentSense.zen")
|
|
L6387E = Module("../L6387E/L6387E.zen")
|
|
|
|
|
|
POWER_GATE_DRIVE = io(Power)
|
|
POWER_PHASE = io(Power)
|
|
POWER_3V3 = io(Power(voltage="3.3V"))
|
|
PWM_LOW = io(Pwm)
|
|
PWM_HIGH = io(Pwm)
|
|
ISENSE = io(Analog)
|
|
PHASE_BEMF = io(Analog)
|
|
PHASE_OUT = io(Net)
|
|
P_GROUND = io(Ground)
|
|
D_GROUND = io(Ground)
|
|
GPIO_BEMF = io(Gpio)
|
|
|
|
POWER_PHASE_POST_SHUNT = Power()
|
|
VBOOT_NET = Net()
|
|
HIGH_SIDE_GATE_P1 = Net()
|
|
HIGH_SIDE_GATE_P2 = Net()
|
|
LOW_SIDE_GATE_P1 = Net()
|
|
LOW_SIDE_GATE_P2 = Net()
|
|
|
|
|
|
# Gate Driver
|
|
L6387E(
|
|
name="L6387ED",
|
|
package="SOIC",
|
|
bootstrap_cap_value="1uF 10%",
|
|
VCC=POWER_GATE_DRIVE,
|
|
GND=P_GROUND,
|
|
VBOOT=VBOOT_NET,
|
|
OUT=PHASE_OUT,
|
|
LIN=Gpio(PWM_LOW),
|
|
HIN=Gpio(PWM_HIGH),
|
|
LVG=LOW_SIDE_GATE_P1,
|
|
HVG=HIGH_SIDE_GATE_P1,
|
|
)
|
|
|
|
Component(
|
|
name="D_BOOTSTRAP",
|
|
symbol=Symbol(library="./B05100W-TP.kicad_sym"),
|
|
footprint="Diode_SMD:D_SOD-123",
|
|
part=Part(mpn="B05100W", manufacturer="Diodes Incorporated"),
|
|
description="Schottky Diode",
|
|
properties={
|
|
"voltage": "100V",
|
|
"current": "1A",
|
|
},
|
|
pins={
|
|
"A": POWER_GATE_DRIVE,
|
|
"K": VBOOT_NET,
|
|
},
|
|
)
|
|
|
|
Capacitor(
|
|
name="C_VCC",
|
|
value="470nF 10%",
|
|
voltage="25V",
|
|
package="0402",
|
|
P1=POWER_GATE_DRIVE,
|
|
P2=P_GROUND,
|
|
)
|
|
|
|
Capacitor(
|
|
name="C_HIGH_IN",
|
|
value="100pF 10%",
|
|
voltage="25V",
|
|
package="0402",
|
|
P1=PWM_HIGH,
|
|
P2=P_GROUND,
|
|
)
|
|
|
|
Capacitor(
|
|
name="C_LOW_IN",
|
|
value="100pF 10%",
|
|
voltage="25V",
|
|
package="0402",
|
|
P1=PWM_LOW,
|
|
P2=P_GROUND,
|
|
)
|
|
|
|
# Fets
|
|
|
|
HighSideCurrentSense(
|
|
name="R_SHUNT",
|
|
ref_config="MIDSUPPLY",
|
|
shunt_value="0.010ohm 1%",
|
|
shunt_package="2512",
|
|
POWER_BUS_IN=POWER_PHASE,
|
|
POWER_BUS_OUT=POWER_PHASE_POST_SHUNT,
|
|
POWER_3V3=POWER_3V3,
|
|
ISENSE_OUT=ISENSE,
|
|
GND=D_GROUND,
|
|
)
|
|
|
|
Component(
|
|
name="STL100N8F7-high",
|
|
symbol=Symbol(library="./STL100N8F7.kicad_sym"),
|
|
footprint="Package_TO_SOT_SMD:TO-252-2",
|
|
part=Part(
|
|
mpn="STL100N8F7",
|
|
manufacturer="STMicroelectronics",
|
|
),
|
|
description="N-Channel MOSFET",
|
|
properties={
|
|
"voltage": "80V",
|
|
"current": "100A",
|
|
"rds_on": "7.5mOhm",
|
|
},
|
|
pins={
|
|
"G": HIGH_SIDE_GATE_P2,
|
|
"D_1": POWER_PHASE_POST_SHUNT,
|
|
"D_2": POWER_PHASE_POST_SHUNT,
|
|
"D_3": POWER_PHASE_POST_SHUNT,
|
|
"D_4": POWER_PHASE_POST_SHUNT,
|
|
"D_5": POWER_PHASE_POST_SHUNT,
|
|
"S_1": PHASE_OUT,
|
|
"S_2": PHASE_OUT,
|
|
"S_3": PHASE_OUT,
|
|
},
|
|
)
|
|
|
|
Component(
|
|
name="STL100N8F7-low",
|
|
symbol=Symbol(library="./STL100N8F7.kicad_sym"),
|
|
footprint="Package_TO_SOT_SMD:TO-252-2",
|
|
part=Part(
|
|
mpn="STL100N8F7",
|
|
manufacturer="STMicroelectronics",
|
|
),
|
|
description="N-Channel MOSFET",
|
|
properties={
|
|
"voltage": "80V",
|
|
"current": "100A",
|
|
"rds_on": "7.5mOhm",
|
|
},
|
|
pins={
|
|
"G": LOW_SIDE_GATE_P2,
|
|
"D_1": PHASE_OUT,
|
|
"D_2": PHASE_OUT,
|
|
"D_3": PHASE_OUT,
|
|
"D_4": PHASE_OUT,
|
|
"D_5": PHASE_OUT,
|
|
"S_1": P_GROUND,
|
|
"S_2": P_GROUND,
|
|
"S_3": P_GROUND,
|
|
},
|
|
)
|
|
|
|
# Connecting Components
|
|
|
|
Resistor(
|
|
name="R_HIGH_GATE",
|
|
value="33ohms 1%",
|
|
package="0402",
|
|
P1=HIGH_SIDE_GATE_P1,
|
|
P2=HIGH_SIDE_GATE_P2,
|
|
)
|
|
|
|
Resistor(
|
|
name="R_LOW_GATE",
|
|
value="33ohms 1%",
|
|
package="0402",
|
|
P1=LOW_SIDE_GATE_P1,
|
|
P2=LOW_SIDE_GATE_P2,
|
|
)
|
|
|
|
# Gate-Source discharge resistors
|
|
Resistor(
|
|
name="R_HIGH_GS",
|
|
value="10kohm 1%",
|
|
package="0402",
|
|
P1=HIGH_SIDE_GATE_P2,
|
|
P2=PHASE_OUT,
|
|
)
|
|
|
|
Resistor(
|
|
name="R_LOW_GS",
|
|
value="10kohm 1%",
|
|
package="0402",
|
|
P1=LOW_SIDE_GATE_P2,
|
|
P2=P_GROUND,
|
|
)
|
|
|
|
PHASE_R_OUT = Net()
|
|
|
|
Resistor(
|
|
name="R_OUT",
|
|
value="1ohm 1%",
|
|
package="0603",
|
|
P1=PHASE_OUT,
|
|
P2=PHASE_R_OUT,
|
|
)
|
|
|
|
Capacitor(
|
|
name="C_OUT",
|
|
value="10nF 1%",
|
|
voltage="100V",
|
|
package="0603",
|
|
P1=PHASE_R_OUT,
|
|
P2=P_GROUND,
|
|
)
|
|
|
|
|
|
Capacitor(
|
|
name="C_IN",
|
|
value="10uF 20%",
|
|
voltage="100V",
|
|
package="1210",
|
|
P1=POWER_PHASE,
|
|
P2=P_GROUND,
|
|
)
|
|
|
|
# Bemf
|
|
|
|
Component(
|
|
name="bemf_d1",
|
|
symbol=Symbol(library="./BAT30KFILM.kicad_sym"),
|
|
footprint="Diode_SMD:D_SOD-123",
|
|
part=Part(mpn="BAT30KFILM", manufacturer="STMicroelectronics"),
|
|
description="Schottky Diode",
|
|
properties={
|
|
"voltage": "30V",
|
|
"current": "200mA",
|
|
},
|
|
pins={
|
|
"A": PHASE_BEMF,
|
|
"K": POWER_3V3,
|
|
},
|
|
)
|
|
|
|
BEMF_R_NET = Net()
|
|
|
|
Resistor(
|
|
name="bemf_r_top",
|
|
value="120kohm 1%",
|
|
package="0402",
|
|
P1=PHASE_OUT,
|
|
P2=PHASE_BEMF,
|
|
)
|
|
|
|
Resistor(
|
|
name="bemf_r_bottom",
|
|
value="4.7kohm 1%",
|
|
package="0402",
|
|
P1=BEMF_R_NET,
|
|
P2=PHASE_BEMF,
|
|
)
|
|
|
|
Component(
|
|
name="bemf_d2",
|
|
symbol=Symbol(library="./BAT30KFILM.kicad_sym"),
|
|
footprint="Diode_SMD:D_SOD-123",
|
|
part=Part(mpn="BAT30KFILM", manufacturer="STMicroelectronics"),
|
|
description="Schottky Diode",
|
|
properties={
|
|
"voltage": "30V",
|
|
"current": "200mA",
|
|
},
|
|
pins={
|
|
"A": BEMF_R_NET,
|
|
"K": GPIO_BEMF,
|
|
},
|
|
)
|