tscircuit/ti

ti tscircuit library

Version
1.0.186
License
unset
Stars
0

examples/SeatPositionModule.circuit.tsx

import {
  CommunicationInterface_TCAN1042_TIDA01428,
  LightDriver_TIDA01330,
  Microcontroller_MSPM0L1306Q1_TIDA020065,
  MotorDriver_DRV8305_TIDA01330,
  PositionFeedback_DRV5013_TIDA01389,
  PowerSupply_LM5050_TIDA00992,
} from "@tsci/tscircuit.ti";
import "tscircuit";

/** Seat Position Module assembled from reusable TI reference subcircuits. */
export default () => (
  <board width="200mm" height="130mm" autorouter="beta_pipeline9">
    <schematicsheet name="power" displayName="Power Supply" sheetIndex={0} />
    <schematicsheet name="can" displayName="CAN Interface" sheetIndex={1} />
    <schematicsheet name="mcu" displayName="Microcontroller" sheetIndex={2} />
    <schematicsheet
      name="position"
      displayName="Position Feedback"
      sheetIndex={3}
    />
    <schematicsheet name="light" displayName="Light Driver" sheetIndex={4} />
    <schematicsheet name="motor" displayName="Motor Driver" sheetIndex={5} />

    <net name="VBATT" isPowerNet />
    <net name="VPROTECTED" isPowerNet />
    <net name="V5P0" isPowerNet />
    <net name="V3P3" isPowerNet />
    <net name="GND" isGroundNet />
    <net name="CANH" />
    <net name="CANL" />

    <PowerSupply_LM5050_TIDA00992
      name="power"
      schSheetName="power"
      pcbX={-70}
      pcbY={35}
      pcbPositionMode="relative_to_board_anchor"
    />
    <CommunicationInterface_TCAN1042_TIDA01428
      name="can"
      schSheetName="can"
      pcbX={-65}
      pcbY={-5}
      pcbPositionMode="relative_to_board_anchor"
    />
    <Microcontroller_MSPM0L1306Q1_TIDA020065
      name="mcu"
      schSheetName="mcu"
      pcbX={50}
      pcbY={35}
      pcbPositionMode="relative_to_board_anchor"
    />
    <PositionFeedback_DRV5013_TIDA01389
      name="position"
      schSheetName="position"
      pcbX={65}
      pcbPositionMode="relative_to_board_anchor"
    />
    <LightDriver_TIDA01330
      name="light"
      schSheetName="light"
      pcbX={-65}
      pcbY={-35}
      pcbPositionMode="relative_to_board_anchor"
    />
    <MotorDriver_DRV8305_TIDA01330
      name="motor"
      schSheetName="motor"
      pcbX={15}
      pcbY={-30}
      pcbPositionMode="relative_to_board_anchor"
    />

    {/* Vehicle input and protected battery rail. */}
    <trace from=".power > .U1 > .IN" to="net.VBATT" />
    <trace from=".power > .U1 > .OUT" to="net.VPROTECTED" />
    <trace from=".motor > .U1 > .PVDD" to="net.VPROTECTED" />
    <trace from=".light > .R3 > .pin1" to="net.VPROTECTED" />

    {/* Regulated rails supplied by the surrounding seat module. */}
    <trace from=".can > .R21 > .pin1" to="net.V5P0" />
    <trace from=".can > .R22 > .pin1" to="net.V3P3" />
    <trace from=".mcu > .C14 > .pin2" to="net.V3P3" />
    <trace from=".position > .U6 > .VCC" to="net.V3P3" />
    <trace from=".motor > .C18 > .pin1" to="net.V3P3" />

    {/* Common ground. */}
    <trace from=".power > .U1 > .GND" to="net.GND" />
    <trace from=".can > .U6 > .GND" to="net.GND" />
    <trace from=".mcu > .U6 > .VSS" to="net.GND" />
    <trace from=".position > .U6 > .GND" to="net.GND" />
    <trace from=".motor > .U1 > .GND1" to="net.GND" />

    {/* Vehicle CAN bus and MCU interface. */}
    <trace from=".can > .R23 > .pin1" to="net.CANH" />
    <trace from=".can > .R24 > .pin2" to="net.CANL" />
    <trace from=".mcu > .U6 > .PA8" to=".can > .U6 > .TXD" />
    <trace from=".mcu > .U6 > .PA9" to=".can > .U6 > .RXD" />
    <trace from=".mcu > .U6 > .PA10" to=".can > .U6 > .STB" />

    {/* Position feedback, lighting and protected-power control. */}
    <trace from=".position > .U6 > .OUT" to=".mcu > .U6 > .PA11" />
    <trace from=".position > .U5 > .OUT" to=".mcu > .U6 > .PA12" />
    <trace from=".mcu > .U6 > .PA13" to=".light > .R4 > .pin1" />
    <trace from=".mcu > .U6 > .PA0" to=".power > .R3 > .pin1" />

    {/* DRV8305 status, serial interface and three half-bridge inputs. */}
    <trace from=".motor > .U1 > .nFAULT" to=".mcu > .U6 > .PA1" />
    <trace from=".mcu > .U6 > .PA3" to=".motor > .U1 > .WAKE" />
    <trace from=".mcu > .U6 > .PA4" to=".motor > .U1 > .nSCS" />
    <trace from=".mcu > .U6 > .PA5" to=".motor > .U1 > .SCLK" />
    <trace from=".mcu > .U6 > .PA6" to=".motor > .U1 > .SDI" />
    <trace from=".motor > .U1 > .SDO" to=".mcu > .U6 > .PA7" />
    <trace from=".mcu > .U6 > .PA21" to=".motor > .U1 > .INHA" />
    <trace from=".mcu > .U6 > .PA22" to=".motor > .U1 > .INLA" />
    <trace from=".mcu > .U6 > .PA23" to=".motor > .U1 > .INHB" />
    <trace from=".mcu > .U6 > .PA24" to=".motor > .U1 > .INLB" />
    <trace from=".mcu > .U6 > .PA25" to=".motor > .U1 > .INHC" />
    <trace from=".mcu > .U6 > .PA26" to=".motor > .U1 > .INLC" />
    <trace from=".mcu > .U6 > .PA27" to=".motor > .U1 > .EN_GATE" />
  </board>
);