tscircuit/ti

ti tscircuit library

Version
1.0.194
License
unset
Stars
0

lib/subcircuits/PowerSupply_WindowModule.circuit.tsx

import type { SubcircuitProps } from "@tscircuit/props";
import "tscircuit";
import { ReverseBatteryProtection_TLV1805_SQJ461EP } from "./ReverseBatteryProtection_TLV1805_SQJ461EP.circuit.tsx";
import { SupervisorWatchdog_TPS3850 } from "./SupervisorWatchdog_TPS3850.circuit.tsx";
import { VoltageRegulator_LM73605 } from "./VoltageRegulator_LM73605.circuit.tsx";

// Both sheet-2 children use source-relative coordinates. Their documented
// Altium-origin difference is (0.509, -12.192) mm. Keep the source X offset and
// add a documented +1.6-mm native-sheet Y packing translation to bring the
// complete 3.3-V System Supply section closer to Reverse Battery Protection.
const REGULATOR_SHEET_2_OFFSET = { x: 0.509, y: -10.592 } as const;

// Uniformly place the complete source layout in the vertical center of the
// enlarged native sheet frame. This parent-only translation preserves every
// child coordinate and the exact relative offset between the two sections.
const MAIN_SUPPLY_SHEET_Y_OFFSET = 6.2;

/**
 * Automotive-window-module power-supply composite backed by the verified
 * shared nets in TI TIDA-050008:
 *
 * VBATT -> reverse protection / EMI filter -> VIN1 -> LM73605 -> +3.3V
 * +3.3V -> TPS3850 supply monitor and window watchdog
 *
 * The native schematic sheets mirror the authoritative TIDA-050008 CAD:
 * reverse-battery protection and the regulator remain on "Main Supply"
 * (source sheet 2), while the TPS3850 remains on "Watchdog and Vref" (source
 * sheet 3). The child sections keep their source-relative layouts. This
 * parent joins only the verified sheet nets; it does not synthesize
 * thresholds, timing, dividers, or grounding arrangements.
 *
 * Both sheet frames use native ANSI-B sizing, matching the released Altium
 * title blocks. A uniform +6.2-mm parent translation centers the Main Supply
 * layout vertically. The regulator child additionally receives the documented
 * +1.6-mm Y packing translation above; no child geometry is scaled.
 */
export const PowerSupply_WindowModule = (props: SubcircuitProps) => (
  <subcircuit routingDisabled {...props}>
    <schematicsheet
      name="main_supply"
      displayName="Main Supply"
      sheetIndex={0}
      sheetSize="ANSI_B"
    />
    <schematicsheet
      name="watchdog_and_vref"
      displayName="Watchdog and Vref"
      sheetIndex={1}
      sheetSize="ANSI_B"
    />

    <net name="GND" isPowerNet isGroundNet />
    <net name="V3_3" isPowerNet />

    <ReverseBatteryProtection_TLV1805_SQJ461EP
      name="reverseBattery"
      schSheetName="main_supply"
      schY={MAIN_SUPPLY_SHEET_Y_OFFSET}
    />
    <VoltageRegulator_LM73605
      name="regulator"
      schSheetName="main_supply"
      schX={REGULATOR_SHEET_2_OFFSET.x}
      schY={REGULATOR_SHEET_2_OFFSET.y + MAIN_SUPPLY_SHEET_Y_OFFSET}
    />
    <SupervisorWatchdog_TPS3850
      name="supervisorWatchdog"
      schSheetName="watchdog_and_vref"
    />

    <trace
      name="VBATT"
      schDisplayLabel="VBATT"
      from=".reverseBattery > .VBATT"
      to="net.VBATT"
    />
    <trace
      name="VIN1"
      schDisplayLabel="VIN1"
      path={[".reverseBattery > .VIN1", ".regulator > .VIN1", "net.VIN1"]}
    />
    <trace
      name="V3_3"
      schDisplayLabel="+3.3V"
      from=".regulator > .V3_3"
      to="net.V3_3"
    />
    <trace
      name="V3_3"
      schDisplayLabel="+3.3V"
      from=".supervisorWatchdog > .V3_3"
      to="net.V3_3"
    />
    <trace
      name="GND"
      path={[".reverseBattery > .GND", ".regulator > .GND", "net.GND"]}
    />
    <trace name="GND" from=".supervisorWatchdog > .GND" to="net.GND" />
    <trace
      name="V_CTRL1"
      schDisplayLabel="V_CTRL1"
      from=".regulator > .V_CTRL1"
      to="net.V_CTRL1"
    />
    <trace
      name="WDI"
      schDisplayLabel="WDI"
      from=".supervisorWatchdog > .WDI"
      to="net.WDI"
    />
    <trace
      name="WDO"
      schDisplayLabel="WDO"
      from=".supervisorWatchdog > .WDO"
      to="net.WDO"
    />
    <trace
      name="RESET_3V3"
      schDisplayLabel="3.3RESET"
      from=".supervisorWatchdog > .RESET_3V3"
      to="net.RESET_3V3"
    />

    <port name="VBATT" direction="left" connectsTo="reverseBattery.VBATT" />
    <port name="GND" direction="left" connectsTo="reverseBattery.GND" />
    <port name="V3_3" direction="right" connectsTo="regulator.V3_3" />
    <port name="V_CTRL1" direction="right" connectsTo="regulator.V_CTRL1" />
    <port name="WDI" direction="left" connectsTo="supervisorWatchdog.WDI" />
    <port name="WDO" direction="right" connectsTo="supervisorWatchdog.WDO" />
    <port
      name="RESET_3V3"
      direction="right"
      connectsTo="supervisorWatchdog.RESET_3V3"
    />
  </subcircuit>
);

export default PowerSupply_WindowModule;