astra/am3352-sbc

A 4-layer AM3352 single-board computer with 128‑MiB DDR3, PMIC power regulation, USB‑C 5‑V PD input, dual USB host ports, HDMI output with ESD protection, microSD/UART/JTAG interfaces, addressable RGB indicators, and a PWM-driven buzzer.

Version
0.1.19
License
unset
Stars
0

design/pd-power.tsx

import { CH224K } from "../components/CH224K";
import { TYPE_C_31_M_12 } from "../components/usb-c";
import { Cap, Res, link } from "./nets";

// Fixed 5 V request. CFG1=1 selects 5 V; CFG2/3 are don't-care.
// CH224K PG is open-drain, active LOW after successful voltage negotiation.
// This design requires a 5 V / 3 A PD source. PG alone does not certify 3 A.
export function PdPower() {
  return (
    <>
      <TYPE_C_31_M_12
        name="J_PD"
        pcbX={-46}
        pcbY={0}
        pcbRotation={270}
        noConnect={["SBU1", "SBU2", "DP1", "DP2", "DM1", "DM2"]}
      />
      <CH224K name="U_PD" pcbX={-35} pcbY={1} noConnect={["DP", "DM"]} />
      {["VBUS1", "VBUS2"].map((p) => link("J_PD", p, "PD_VBUS"))}
      {["GND1", "GND2", "SHELL1", "SHELL2", "SHELL3", "SHELL4"].map((p) =>
        link("J_PD", p, "GND"),
      )}
      {link("J_PD", "CC1", "PD_CC1")}
      {link("J_PD", "CC2", "PD_CC2")}
      {link("U_PD", "CC1", "PD_CC1")}
      {link("U_PD", "CC2", "PD_CC2")}
      {link("U_PD", "GND", "GND")}
      {link("U_PD", "VDD", "PD_VDD")}
      {link("U_PD", "VBUS", "PD_SENSE")}
      {link("U_PD", "CFG1", "PD_VDD")}
      {link("U_PD", "CFG2", "GND")}
      {link("U_PD", "CFG3", "GND")}
      {link("U_PD", "PG", "PD_PGn")}
      <Res name="R_PD_VDD" a="PD_VBUS" b="PD_VDD" value="1k" x={-40} y={-6} />
      <Res
        name="R_PD_SENSE"
        a="PD_VBUS"
        b="PD_SENSE"
        value="10k"
        x={-37}
        y={-6}
      />
      <Cap name="C_PD_VDD" net="PD_VDD" value="1uF" x={-40} y={-9} />
      <Cap name="C_PD_IN" net="PD_VBUS" value="1uF" x={-44} y={-7} />
      <chip
        name="Q_PD"
        manufacturerPartNumber="AO3401A"
        footprint="sot23"
        pinLabels={{ pin1: "G", pin2: "S", pin3: "D" }}
        pcbX={-38}
        pcbY={-14}
      />
      {link("Q_PD", "S", "PD_VBUS")}
      {link("Q_PD", "D", "VIN_5V")}
      {link("Q_PD", "G", "PD_GATE")}
      <Res
        name="R_PD_GATE"
        a="PD_GATE"
        b="PD_PGn"
        value="10k"
        x={-34}
        y={-10}
      />
      <Res
        name="R_PD_OFF"
        a="PD_GATE"
        b="PD_VBUS"
        value="100k"
        x={-34}
        y={-13}
      />
      <Cap name="C_PD_OUT" net="VIN_5V" value="10uF" x={-38} y={-18} />
      <testpoint
        name="TP_5V"
        footprintVariant="pad"
        padDiameter={1.5}
        pcbX={-33}
        pcbY={-18}
      />
      {link("TP_5V", "pin1", "VIN_5V")}
      <silkscreentext
        text="USB-C PD / 5V 3A"
        pcbX={-38}
        pcbY={10}
        fontSize={0.8}
      />
    </>
  );
}