shibosoftwaredev/f1c100s-linux-nema8-stepper-controller
Restores component part numbers and CAD models, removes test-point 3D bodies, and validates that solder paste exists only on top-side SMT pads without altering copper or DRC.
- Version
- 0.3.5
- License
- unset
- Stars
- 0
electrical-corrections.tsx
import { footprints } from "./footprints"
const wire = (name: string, from: string, to: string, thickness = 0.15) =>
<trace name={name} from={from} to={to} thickness={thickness} />
const r0402 = (name: string, value: string, lcsc: string, x: number, y: number, schX = x, schY = y, schSheetName?: string) =>
<resistor name={name} resistance={value} footprint="0402"
supplierPartNumbers={{jlcpcb:[lcsc]}} pcbX={x} pcbY={y}
schX={schX} schY={schY} schSheetName={schSheetName} />
const c0402 = (name: string, value: string, lcsc: string, x: number, y: number, schX = x, schY = y, schSheetName?: string) =>
<capacitor name={name} capacitance={value} maxVoltageRating={50} footprint="0402"
supplierPartNumbers={{jlcpcb:[lcsc]}} pcbX={x} pcbY={y}
schX={schX} schY={schY} schSheetName={schSheetName} />
/**
* Corrections deliberately render after the frozen carrier. This keeps all
* established source/PCB identifiers stable while adding the protection and
* Ethernet networks found during the electrical sign-off review.
*/
export function ElectricalCorrections() {
return <group name="ELECTRICAL_CORRECTIONS" pcbX={0} pcbY={0} schX={0} schY={0}>
{/* HUSB238A-controlled 30 V high-side switch. AO4407A pins 1-3 are Source,
pin 4 Gate and pins 5-8 Drain. The internal leadframe connections are
declared so all package pins participate in the high-current net. */}
<chip name="Q_VBUS" manufacturerPartNumber="AO4407A"
supplierPartNumbers={{jlcpcb:["C3011194"]}} footprint={footprints.so8}
pinLabels={{pin1:"S",pin2:"S2",pin3:"S3",pin4:"G",pin5:"D",pin6:"D2",pin7:"D3",pin8:"D4"}}
internallyConnectedPins={[["pin1","pin2","pin3"],["pin5","pin6","pin7","pin8"]]}
pcbX={15} pcbY={22.5} schX={10} schY={9} schSheetName="pd_power" />
{wire("VBUS_SWITCH_GATE", ".Q_VBUS > .pin4", ".U_PD > .GATE")}
{wire("VBUS_SWITCH_OUT", ".Q_VBUS > .pin5", "net.VBUS_PD", 0.8)}
{wire("VBUS_SOURCE_BRIDGE_12", ".Q_VBUS > .pin1", ".Q_VBUS > .pin2", 0.8)}
{wire("VBUS_SOURCE_BRIDGE_23", ".Q_VBUS > .pin2", ".Q_VBUS > .pin3", 0.8)}
{wire("VBUS_DRAIN_BRIDGE_56", ".Q_VBUS > .pin5", ".Q_VBUS > .pin6", 0.8)}
{wire("VBUS_DRAIN_BRIDGE_67", ".Q_VBUS > .pin6", ".Q_VBUS > .pin7", 0.8)}
{wire("VBUS_DRAIN_BRIDGE_78", ".Q_VBUS > .pin7", ".Q_VBUS > .pin8", 0.8)}
{/* W5500 / integrated-magnetics termination from the official WIZnet
reference: 49.9 ohm TX pullups, AC-coupled RX and filtered center taps. */}
<net name="ETH_RX_BIAS" nominalTraceWidth={0.2} />
{c0402("C_ETH_RXN_AC", "6.8nF", "C1590", -16.7, -23, 17, -5, "ethernet")}
{c0402("C_ETH_RXP_AC", "6.8nF", "C1590", -16.7, -25, 17, -2, "ethernet")}
{r0402("R_ETH_TCT", "10", "C25077", -17, -15, 17, 1, "ethernet")}
{c0402("C_ETH_TCT", "22nF", "C1532", -17, -17, 17, 4, "ethernet")}
{c0402("C_ETH_RCT", "10nF", "C15195", -10, -14, 17, 7, "ethernet")}
{wire("ETH_TXN_TERM", ".R_ETH_TXN > .pin2", ".U_ETH > .pin4")}
{wire("ETH_TXP_TERM", ".R_ETH_TXP > .pin2", ".U_ETH > .pin4")}
{wire("ETH_RXN_TERM_IN", ".U_ETH > .RXN", ".R_ETH_RXN > .pin1", 0.2)}
{wire("ETH_RXN_TERM_BIAS", ".R_ETH_RXN > .pin2", ".J_ETH > .pin5", 0.2)}
{wire("ETH_RXP_TERM_IN", ".U_ETH > .RXP", ".R_ETH_RXP > .pin1", 0.2)}
{wire("ETH_RXP_TERM_BIAS", ".R_ETH_RXP > .pin2", ".J_ETH > .pin5", 0.2)}
{wire("ETH_TCT_FEED", ".R_ETH_TCT > .pin2", ".U_ETH > .pin4", 0.3)}
{wire("ETH_TCT_DECOUPLE", ".C_ETH_TCT > .pin1", ".J_ETH > .pin4", 0.2)}
{wire("ETH_TCT_DECOUPLE_GND", ".C_ETH_TCT > .pin2", ".U_ETH > .pin3", 0.2)}
{wire("ETH_RCT_DECOUPLE", ".C_ETH_RCT > .pin1", ".J_ETH > .pin5", 0.2)}
{wire("ETH_RCT_DECOUPLE_GND", ".C_ETH_RCT > .pin2", ".U_ETH > .pin3", 0.2)}
</group>
}
