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/indicators.tsx
import { Fragment } from "react";
import { AO3400A } from "../components/AO3400A";
import { SN74AHCT1G125DBVR } from "../components/SN74AHCT1G125DBVR";
import { TZ_0807Z1RGB_5V_I4_MS_5mA_ as RgbLed } from "../components/TZ_0807Z1RGB_5V_I4_MS_5mA_";
import { Cap, Res, link } from "./nets";
export function Indicators() {
return (
<>
<SN74AHCT1G125DBVR name="U_RGB_BUF" pcbX={21} pcbY={7} />
{link("U_RGB_BUF", "pin1", "GND")}
{link("U_RGB_BUF", "pin2", "SPI0_D0")}
{link("U_RGB_BUF", "pin3", "GND")}
{link("U_RGB_BUF", "pin4", "RGB_BUFFERED")}
{link("U_RGB_BUF", "pin5", "VIN_5V")}
<Cap name="C_RGB_BUF" net="VIN_5V" x={21} y={4} />
<Res name="R_RGB_IN" a="SPI0_D0" b="GND" value="100k" x={16} y={7} />
<Res
name="R_RGB_DATA"
a="RGB_BUFFERED"
b="RGB_DIN"
value="330"
x={25}
y={7}
/>
{[0, 1].map((i) => (
<Fragment key={i}>
<RgbLed name={`D_RGB${i}`} pcbX={31 + i * 7} pcbY={8} />
{link(`D_RGB${i}`, "VDD", "VIN_5V")}
{link(`D_RGB${i}`, "GND", "GND")}
{link(`D_RGB${i}`, "DIN", i ? "RGB_CHAIN" : "RGB_DIN")}
{i === 0 && link("D_RGB0", "DOU", "RGB_CHAIN")}
<Cap name={`C_RGB${i}`} net="VIN_5V" x={31 + i * 7} y={5} />
</Fragment>
))}
<chip
name="BZ1"
manufacturerPartNumber="PS1240P02BT"
pinLabels={{ pin1: "POS", pin2: "NEG" }}
pcbX={-38}
pcbY={-27}
footprint={
<footprint>
<platedhole
portHints={["pin1"]}
shape="circle"
pcbX={-2.5}
holeDiameter={0.8}
outerDiameter={1.6}
/>
<platedhole
portHints={["pin2"]}
shape="circle"
pcbX={2.5}
holeDiameter={0.8}
outerDiameter={1.6}
/>
<silkscreencircle radius={6.2} />
<courtyardcircle radius={6.5} />
</footprint>
}
/>
<AO3400A name="Q_BUZZ" pcbX={-28} pcbY={-28} />
{link("BZ1", "POS", "V3V3")}
{link("BZ1", "NEG", "BUZZ_DRAIN")}
{link("Q_BUZZ", "D", "BUZZ_DRAIN")}
{link("Q_BUZZ", "S", "GND")}
{link("Q_BUZZ", "G", "BUZZ_GATE")}
{link("U1", "C18", "BUZZ_PWM")}
<Res
name="R_BUZZ_GATE"
a="BUZZ_PWM"
b="BUZZ_GATE"
value="100"
x={-24}
y={-28}
/>
<Res
name="R_BUZZ_OFF"
a="BUZZ_GATE"
b="GND"
value="100k"
x={-24}
y={-31}
/>
<Res
name="R_BUZZ_BLEED"
a="BUZZ_DRAIN"
b="V3V3"
value="10k"
x={-30}
y={-32}
/>
</>
);
}