ShiboSoftwareDev/am625sip-linux-board

This code defines the physical footprint and pin layout for an AM625 System-in-Package (SIP) component, detailing pad positions, pin labels, and package outline for hardware integration.

Version
1.0.24
License
unset
Stars
0

subcircuits/usb0-analog-support.tsx

import { Fragment } from "react"
import { LBZX84C6V8LT1G } from "../imports/LBZX84C6V8LT1G"

const SIGNAL_LAYERS = ["top", "inner1", "inner2", "bottom"] as const

const BoundaryPad = ({
  name,
  pcbX,
  pcbY,
  plated = false,
}: {
  name: string
  pcbX: number
  pcbY: number
  plated?: boolean
}) => (
  <chip
    name={name}
    pcbX={pcbX}
    pcbY={pcbY}
    noSchematicRepresentation
    footprint={
      <footprint>
        {plated ? (
          <platedhole
            portHints={["pin1"]}
            shape="circle"
            holeDiameter="0.3mm"
            outerDiameter="0.8mm"
          />
        ) : (
          <smtpad
            portHints={["pin1"]}
            shape="rect"
            width="0.5mm"
            height="0.5mm"
          />
        )}
      </footprint>
    }
  />
)

export const Usb0AnalogSupportSubcircuit = () => (
  <subcircuit
    name="USB0_ANALOG_SUPPORT"
    autorouter="default"
    exposedNets={["GND"]}
    defaultTraceWidth="0.15mm"
    minTraceWidth="0.08128mm"
    minTraceToPadEdgeClearance="0.05mm"
    minPadEdgeToPadEdgeClearance="0.08128mm"
    minViaEdgeToPadEdgeClearance="0.08128mm"
    minViaHoleEdgeToViaHoleEdgeClearance="0.1016mm"
    minViaHoleDiameter="0.1mm"
    minViaPadDiameter="0.24mm"
  >
    <autoroutingphase
      name="USB0_ANALOG_SIGNALS"
      phaseIndex={0}
      autorouter="default"
    />
    <autoroutingphase
      name="USB0_ANALOG_GROUND_DROPS"
      phaseIndex={1}
      autorouter="fanout"
      fanoutRoutingLayers={[...SIGNAL_LAYERS]}
      fanoutPourNetMap={{ inner1: ["GND"] }}
    />

    <net name="GND" routingPhaseIndex={1} />

    <BoundaryPad name="X_SOC_VBUS" pcbX={-7} pcbY={2} />
    <BoundaryPad name="X_CONNECTOR_VBUS" pcbX={-7} pcbY={0} plated />
    <BoundaryPad name="X_RCALIB" pcbX={-7} pcbY={-2} />
    <BoundaryPad name="X_GND" pcbX={7} pcbY={-2} plated />

    <resistor
      name="R26"
      resistance="499ohm"
      footprint="0402"
      supplierPartNumbers={{ jlcpcb: ["C881065"] }}
      pcbX={-4}
      pcbY={-2}
    />
    <resistor
      name="R27"
      resistance="16.5k"
      footprint="0402"
      supplierPartNumbers={{ jlcpcb: ["C226807"] }}
      pcbX={-4}
      pcbY={2}
    />
    <resistor
      name="R28"
      resistance="3.48k"
      footprint="0402"
      supplierPartNumbers={{ jlcpcb: ["C5126222"] }}
      pcbX={-4}
      pcbY={0}
    />
    <resistor
      name="R29"
      resistance="10k"
      footprint="0402"
      supplierPartNumbers={{ jlcpcb: ["C2906861"] }}
      pcbX={-5.5}
      pcbY={1}
      pcbRotation={90}
    />
    <LBZX84C6V8LT1G name="D4" pcbX={0} pcbY={0} />

    <trace
      name="USB0_RCALIB_LOCAL"
      from=".X_RCALIB > .pin1"
      to=".R26 > .pin1"
      routingPhaseIndex={0}
    />
    <trace
      name="USB0_VBUS_SOC_NODE"
      path={[".X_SOC_VBUS > .pin1", ".R27 > .pin1", ".R29 > .pin1"]}
      routingPhaseIndex={0}
    />
    <trace
      name="USB0_VBUS_DIVIDER_NODE"
      path={[".R27 > .pin2", ".R28 > .pin2", ".D4 > .cathode"]}
      routingPhaseIndex={0}
    />
    <trace
      name="USB0_VBUS_SOURCE"
      from=".R28 > .pin1"
      to=".X_CONNECTOR_VBUS > .pin1"
      width="0.3mm"
      routingPhaseIndex={0}
    />

    {[
      ["USB0_RCALIB_GND", ".R26 > .pin2"],
      ["USB0_VBUS_PULLDOWN_GND", ".R29 > .pin2"],
      ["USB0_VBUS_CLAMP_GND", ".D4 > .anode"],
      ["USB0_ANALOG_BOUNDARY_GND", ".X_GND > .pin1"],
    ].map(([name, from]) => (
      <Fragment key={name}>
        <trace
          name={name}
          from={from}
          to="net.GND"
          width="0.3mm"
          routingPhaseIndex={1}
        />
      </Fragment>
    ))}
  </subcircuit>
)

export default () => (
  <board
    width="18mm"
    height="10mm"
    layers={4}
    defaultTraceWidth="0.15mm"
    minTraceWidth="0.08128mm"
    minTraceToPadEdgeClearance="0.05mm"
    minPadEdgeToPadEdgeClearance="0.08128mm"
    minViaEdgeToPadEdgeClearance="0.08128mm"
    minViaHoleEdgeToViaHoleEdgeClearance="0.1016mm"
    minViaHoleDiameter="0.1mm"
    minViaPadDiameter="0.24mm"
    pcbStyle={{ viaHoleDiameter: "0.1mm", viaPadDiameter: "0.24mm" }}
    autorouter="default"
  >
    <Usb0AnalogSupportSubcircuit />
  </board>
)