tscircuit/ti

ti tscircuit library

Version
1.0.195
License
unset
Stars
0

lib/subcircuits/CommunicationInterface_TCAN1042_TIDA01428.circuit.tsx

import type { SubcircuitProps } from "@tscircuit/props";
import "tscircuit";
import { TCAN1042HGVDRBQ1 } from "../chips/TCAN1042HGVDRBQ1.circuit.tsx";

const commonModeChokeSymbol = (
  <symbol>
    <port
      name="pin4"
      pinNumber={4}
      schX={-0.65}
      schY={1.2}
      direction="up"
      schStemLength={0.7}
    />
    <port
      name="pin3"
      pinNumber={3}
      schX={0.65}
      schY={1.2}
      direction="up"
      schStemLength={0.7}
    />
    <schematicpath
      svgPath="M -0.65 0.5 L -0.5 0.5 C -0.5 0.22 -0.2 0.22 -0.2 0.5 C -0.2 0.22 0.1 0.22 0.1 0.5 C 0.1 0.22 0.4 0.22 0.4 0.5 L 0.65 0.5"
      strokeWidth={0.04}
      strokeColor="#840000"
    />
    <schematiccircle
      center={{ x: -0.35, y: 0.4 }}
      radius={0.06}
      strokeWidth={0.025}
      color="#840000"
      fillColor="#840000"
      isFilled
    />
    <schematicline
      x1={-0.55}
      y1={0.1}
      x2={0.55}
      y2={0.1}
      strokeWidth={0.035}
      color="#840000"
    />
    <schematicline
      x1={-0.55}
      y1={-0.1}
      x2={0.55}
      y2={-0.1}
      strokeWidth={0.035}
      color="#840000"
    />
    <schematicpath
      svgPath="M -0.65 -0.5 L -0.5 -0.5 C -0.5 -0.22 -0.2 -0.22 -0.2 -0.5 C -0.2 -0.22 0.1 -0.22 0.1 -0.5 C 0.1 -0.22 0.4 -0.22 0.4 -0.5 L 0.65 -0.5"
      strokeWidth={0.04}
      strokeColor="#840000"
    />
    <schematiccircle
      center={{ x: -0.35, y: -0.4 }}
      radius={0.06}
      strokeWidth={0.025}
      color="#840000"
      fillColor="#840000"
      isFilled
    />
    <port
      name="pin1"
      pinNumber={1}
      schX={-0.65}
      schY={-1.2}
      direction="down"
      schStemLength={0.7}
    />
    <port
      name="pin2"
      pinNumber={2}
      schX={0.65}
      schY={-1.2}
      direction="down"
      schStemLength={0.7}
    />
    <schematictext
      text="4"
      schX={-0.8}
      schY={0.95}
      schRotation={90}
      fontSize={0.16}
      anchor="center"
      color="#840000"
    />
    <schematictext
      text="3"
      schX={0.8}
      schY={0.95}
      schRotation={90}
      fontSize={0.16}
      anchor="center"
      color="#840000"
    />
    <schematictext
      text="1"
      schX={-0.8}
      schY={-0.95}
      schRotation={90}
      fontSize={0.16}
      anchor="center"
      color="#840000"
    />
    <schematictext
      text="2"
      schX={0.8}
      schY={-0.95}
      schRotation={90}
      fontSize={0.16}
      anchor="center"
      color="#840000"
    />
    <schematictext
      text="{NAME}"
      schX={0.85}
      schY={0.42}
      fontSize={0.22}
      anchor="left"
    />
  </symbol>
);

/**
 * CAN FD interface topology from the TIDA-01428 reference design.
 * Reference: https://www.ti.com/tool/TIDA-01428
 */
export const CommunicationInterface_TCAN1042_TIDA01428 = (
  props: SubcircuitProps,
) => (
  <subcircuit schMaxTraceDistance="8mm" {...props}>
    <net name="GND" isGroundNet />

    <resistor
      name="R21"
      resistance="0ohm"
      tolerance="5%"
      footprint="0603"
      schX={-5}
      schY={2}
      schOrientation="vertical"
      connections={{
        pin1: "net.V5P0",
        pin2: ["U6.VCC", "C28.pin1"],
      }}
    />
    <capacitor
      name="C28"
      capacitance="0.1uF"
      maxVoltageRating="25V"
      footprint="0603"
      schX={-5}
      schY={-2}
      schOrientation="vertical"
      connections={{ pin2: "net.GND" }}
    />
    <resistor
      name="R22"
      resistance="0ohm"
      tolerance="5%"
      footprint="0603"
      schX={-3.8}
      schY={2}
      schOrientation="vertical"
      connections={{
        pin1: "net.V3P3",
        pin2: ["U6.VIO", "C29.pin1"],
      }}
    />
    <capacitor
      name="C29"
      capacitance="0.1uF"
      maxVoltageRating="25V"
      footprint="0603"
      schX={-3.8}
      schY={-2}
      schOrientation="vertical"
      connections={{ pin2: "net.GND" }}
    />

    <TCAN1042HGVDRBQ1
      name="U6"
      schX={0}
      schY={0}
      connections={{
        TXD: "net.CAN_TXD",
        STB: "net.CAN_STB",
        RXD: "net.CAN_RXD",
        CANH: "L7.pin4",
        CANL: "L7.pin1",
        GND: "net.GND",
        PAD: "net.GND",
      }}
    />

    <chip
      name="L7"
      manufacturerPartNumber="B82789C0104H001"
      datasheetUrl="https://www.tdk-electronics.tdk.com/inf/30/db/ind_2008/b82789c0.pdf"
      footprint="soic4"
      symbol={commonModeChokeSymbol}
      schX={5}
      schY={0.6}
      connections={{
        pin3: "net.CANH",
        pin2: "net.CANL",
      }}
    />

    <chip
      name="U7"
      manufacturerPartNumber="TPD2E007DCKR"
      datasheetUrl="https://www.ti.com/lit/ds/symlink/tpd2e007.pdf"
      footprint="sot23"
      pinLabels={{ pin1: "IO1", pin2: "IO2", pin3: "GND" }}
      pinAttributes={{
        IO1: { requiresPower: true, providesPower: true },
        IO2: { requiresPower: true, providesPower: true },
        GND: { requiresGround: true },
      }}
      schPinArrangement={{
        leftSide: { direction: "top-to-bottom", pins: [2, 1] },
        rightSide: { direction: "top-to-bottom", pins: [3] },
      }}
      doNotPlace
      schX={8}
      schY={0.6}
      connections={{ IO1: "net.CANL", IO2: "net.CANH", GND: "net.GND" }}
    />

    <resistor
      name="R23"
      resistance="60.4ohm"
      tolerance="1%"
      footprint="1206"
      schX={10.8}
      schY={1.4}
      schOrientation="vertical"
      connections={{ pin1: "net.CANH", pin2: "R24.pin1" }}
    />
    <resistor
      name="R24"
      resistance="60.4ohm"
      tolerance="1%"
      footprint="1206"
      schX={10.8}
      schY={-1}
      schOrientation="vertical"
      connections={{ pin2: "net.CANL" }}
    />
    <capacitor
      name="C27"
      capacitance="4700pF"
      maxVoltageRating="50V"
      footprint="0603"
      schX={10}
      schY={0.5}
      connections={{ pin2: "R24.pin1", pin1: "net.GND" }}
    />
    <capacitor
      name="C26"
      capacitance="56pF"
      maxVoltageRating="50V"
      footprint="0603"
      schX={12.8}
      schY={1.4}
      schOrientation="vertical"
      connections={{ pin1: "net.CANH", pin2: "net.GND" }}
    />
    <capacitor
      name="C30"
      capacitance="56pF"
      maxVoltageRating="50V"
      footprint="0603"
      schX={12.8}
      schY={-2}
      schOrientation="vertical"
      connections={{ pin1: "net.CANL", pin2: "net.GND" }}
    />
  </subcircuit>
);

export default CommunicationInterface_TCAN1042_TIDA01428;