ShiboSoftwareDev/t113-s3-linux-computer-p9

The code defines a PCB subcircuit for a buck converter module featuring a TMI3112H IC, FTC252010S power switch, and associated passive components like capacitors and resistors for voltage regulation and feedback control.

Version
0.1.4
License
unset
Stars
0

subcircuits/microsd-boot.tsx

import { C, R, part } from "../components/standard-passives"
import { TF_01A } from "../imports/TF_01A"

const SECTION = "MICROSD_BOOT"

const breakoutPad = (
  name: string,
  net: string,
  label: string,
  x: number,
) => (
  <testpoint
    name={name}
    footprint={
      <footprint>
        <smtpad
          portHints={["pin1"]}
          pcbX="0mm"
          pcbY="0mm"
          width="1.0mm"
          height="1.0mm"
          shape="rect"
        />
        <courtyardrect width="1.5mm" height="1.5mm" />
      </footprint>
    }
    pcbX={x}
    pcbY={13}
    schSectionName={SECTION}
    connections={{ pin1: `net.${net}` }}
    pcbSx={{ "& silkscreentext": { visibility: "hidden" } }}
  >
    <silkscreentext text={label} pcbX={x} pcbY={14.2} fontSize="0.55mm" />
  </testpoint>
)

export const MicroSdBootSubcircuit = ({
  exposeToParent = true,
}: {
  exposeToParent?: boolean
}) => (
  <subcircuit
    name="MICROSD_BOOT"
    width="42mm"
    height="34mm"
    autorouter="default"
    autorouterVersion="beta_pipeline9"
    autorouterEffortLevel="10x"
    defaultTraceWidth="0.15mm"
    exposeNets={exposeToParent}
    schAutoLayoutEnabled
    schTraceAutoLabelEnabled
  >
    <net name="VDD_3V3" isPowerNet nominalTraceWidth="0.5mm" />
    <net name="GND" isGroundNet nominalTraceWidth="0.5mm" />
    <net name="SD_DAT0" />
    <net name="SD_DAT1" />
    <net name="SD_DAT2" />
    <net name="SD_DAT3" />
    <net name="SD_CMD" />
    <net name="SD_CLK" />
    <net name="SD_CARD_DETECT_N" />

    <TF_01A
      name="J_SD"
      pcbX={0}
      pcbY={-6}
      schX={0}
      schY={0}
      schSectionName={SECTION}
      pcbSx={{ "& silkscreentext": { visibility: "hidden" } }}
    />

    {breakoutPad("TP_SD_DAT2", "SD_DAT2", "D2", 9)}
    {breakoutPad("TP_SD_DAT3", "SD_DAT3", "D3", 6)}
    {breakoutPad("TP_SD_CMD", "SD_CMD", "CMD", 3)}
    {breakoutPad("TP_SD_CLK", "SD_CLK", "CLK", 0)}
    {breakoutPad("TP_SD_DAT0", "SD_DAT0", "D0", -3)}
    {breakoutPad("TP_SD_DAT1", "SD_DAT1", "D1", -6)}
    {breakoutPad("TP_SD_CD", "SD_CARD_DETECT_N", "CD", -9)}

    <R name="R_SD_DAT2_PU" resistance={part.r4k7.value} mpn={part.r4k7.mpn}
      lcsc={part.r4k7.lcsc} x={7.4} y={4.2} rotation={90} sectionName={SECTION} />
    <R name="R_SD_DAT3_PU" resistance={part.r4k7.value} mpn={part.r4k7.mpn}
      lcsc={part.r4k7.lcsc} x={5.4} y={4.2} rotation={90} sectionName={SECTION} />
    <R name="R_SD_CMD_PU" resistance={part.r4k7.value} mpn={part.r4k7.mpn}
      lcsc={part.r4k7.lcsc} x={3.4} y={4.2} rotation={90} sectionName={SECTION} />
    <R name="R_SD_DAT0_PU" resistance={part.r4k7.value} mpn={part.r4k7.mpn}
      lcsc={part.r4k7.lcsc} x={-5.4} y={4.2} rotation={90} sectionName={SECTION} />
    <R name="R_SD_DAT1_PU" resistance={part.r4k7.value} mpn={part.r4k7.mpn}
      lcsc={part.r4k7.lcsc} x={-7.4} y={4.2} rotation={90} sectionName={SECTION} />
    <R name="R_SD_CD_PU" resistance={part.r10k.value} mpn={part.r10k.mpn}
      lcsc={part.r10k.lcsc} x={-9.4} y={4.2} rotation={90} sectionName={SECTION} />

    <C name="C_SD_HF" capacitance={part.c100n.value} mpn={part.c100n.mpn}
      lcsc={part.c100n.lcsc} x={-2.16} y={1.6} rotation={180}
      sectionName={SECTION} />
    <C name="C_SD_BULK" capacitance={part.c10u.value} mpn={part.c10u.mpn}
      lcsc={part.c10u.lcsc} x={-2.16} y={3.6} rotation={90}
      size="0603" sectionName={SECTION} />

    <trace name="SD_DAT2_ESCAPE" from=".J_SD > .DAT2" to=".TP_SD_DAT2 > .pin1"
      width="0.15mm" />
    <trace name="SD_DAT3_ESCAPE" from=".J_SD > .DAT3" to=".TP_SD_DAT3 > .pin1"
      width="0.15mm" />
    <trace name="SD_CMD_ESCAPE" from=".J_SD > .CMD" to=".TP_SD_CMD > .pin1"
      width="0.15mm" />
    <trace name="SD_CLK_ESCAPE" from=".J_SD > .CLK" to=".TP_SD_CLK > .pin1"
      width="0.15mm" />
    <trace name="SD_DAT0_ESCAPE" from=".J_SD > .DAT0" to=".TP_SD_DAT0 > .pin1"
      width="0.15mm" />
    <trace name="SD_DAT1_ESCAPE" from=".J_SD > .DAT1" to=".TP_SD_DAT1 > .pin1"
      width="0.15mm" />
    <trace name="SD_CD_ESCAPE" from=".J_SD > .CARD_DETECT_N" to=".TP_SD_CD > .pin1"
      width="0.15mm" />

    <bus name="SDC0_TOP_BUS" pcbAllowedLayers={["top"]} pcbTraceWidth="0.15mm"
      maxLengthSkew="2.5mm" connections={[
        "SD_DAT2_ESCAPE",
        "SD_DAT3_ESCAPE",
        "SD_CMD_ESCAPE",
        "SD_CLK_ESCAPE",
        "SD_DAT0_ESCAPE",
        "SD_DAT1_ESCAPE",
      ]} />

    <trace name="SD_DAT2_PULLUP" from=".J_SD > .DAT2" to=".R_SD_DAT2_PU > .pin1" />
    <trace name="SD_DAT3_PULLUP" from=".J_SD > .DAT3" to=".R_SD_DAT3_PU > .pin1" />
    <trace name="SD_CMD_PULLUP" from=".J_SD > .CMD" to=".R_SD_CMD_PU > .pin1" />
    <trace name="SD_DAT0_PULLUP" from=".J_SD > .DAT0" to=".R_SD_DAT0_PU > .pin1" />
    <trace name="SD_DAT1_PULLUP" from=".J_SD > .DAT1" to=".R_SD_DAT1_PU > .pin1" />
    <trace name="SD_CD_PULLUP" from=".J_SD > .CARD_DETECT_N" to=".R_SD_CD_PU > .pin1" />
    <bus name="SDC0_PULLUPS_TOP" pcbAllowedLayers={["top"]} connections={[
      "SD_DAT2_PULLUP",
      "SD_DAT3_PULLUP",
      "SD_CMD_PULLUP",
      "SD_DAT0_PULLUP",
      "SD_DAT1_PULLUP",
      "SD_CD_PULLUP",
    ]} />

    <trace name="SD_VDD_LOCAL" from=".J_SD > .VDD" to=".C_SD_HF > .pin1" width="0.4mm"
      />
    <trace name="SD_VSS_LOCAL" from=".J_SD > .VSS" to=".C_SD_HF > .pin2" width="0.4mm"
      />
    <trace name="SD_VDD_BULK" from=".C_SD_HF > .pin1" to=".C_SD_BULK > .pin1" width="0.5mm" />
    <trace name="SD_VSS_BULK" from=".C_SD_HF > .pin2" to=".C_SD_BULK > .pin2" width="0.5mm" />
    <bus name="SD_POWER_LOCAL_TOP" pcbAllowedLayers={["top"]} connections={[
      "SD_VDD_LOCAL", "SD_VSS_LOCAL", "SD_VDD_BULK", "SD_VSS_BULK",
    ]} />

    <trace name="SD_VDD_PLANE" from=".C_SD_BULK > .pin1" to="net.VDD_3V3" width="0.5mm" />
    <trace name="SD_GND_PLANE" from=".C_SD_BULK > .pin2" to="net.GND" width="0.5mm" />
    <trace name="SD_DAT2_PULLUP_POWER" from=".R_SD_DAT2_PU > .pin2" to="net.VDD_3V3" />
    <trace name="SD_DAT3_PULLUP_POWER" from=".R_SD_DAT3_PU > .pin2" to="net.VDD_3V3" />
    <trace name="SD_CMD_PULLUP_POWER" from=".R_SD_CMD_PU > .pin2" to="net.VDD_3V3" />
    <trace name="SD_DAT0_PULLUP_POWER" from=".R_SD_DAT0_PU > .pin2" to="net.VDD_3V3" />
    <trace name="SD_DAT1_PULLUP_POWER" from=".R_SD_DAT1_PU > .pin2" to="net.VDD_3V3" />
    <trace name="SD_CD_PULLUP_POWER" from=".R_SD_CD_PU > .pin2" to="net.VDD_3V3" />
    <trace name="SD_SHELL_GROUND_1" from=".J_SD > .GND1" to="net.GND" width="0.5mm" />
    <trace name="SD_SHELL_GROUND_2" from=".J_SD > .GND2" to="net.GND" width="0.5mm" />
    <trace name="SD_SHELL_GROUND_3" from=".J_SD > .GND3" to="net.GND" width="0.5mm" />
    <trace name="SD_SHELL_GROUND_4" from=".J_SD > .GND4" to="net.GND" width="0.5mm" />

    <silkscreentext text="microSD BOOT / ROOTFS" pcbX={0} pcbY={8.1} fontSize="0.7mm" />
  </subcircuit>
)