astra/f1c100s

This code defines and renders a four-layer, top-mounted F1C100S module with detailed pin assignments, schematic annotations, and layout profiles, facilitating design, validation, and routing of the hardware including support for decoupling capacitors, crystal oscillators, and external connectors.

Version
0.11.0
License
unset
Stars
0

src/ClockCrystal.tsx

/** Abracon ABM8: https://abracon.com/Resonators/abm8.pdf, page 2.
 * 12 pF load variant; the two external 18 pF C0G capacitors allow 3 pF stray. */
export function ClockCrystal({
	placement,
}: {
	placement: { x: number; y: number; rotation: number };
}) {
	return (
		<crystal
			name="Y1"
			frequency="24MHz"
			loadCapacitance="12pF"
			pinVariant="four_pin"
			manufacturerPartNumber="ABM8-24.000MHZ-12-B1U-T"
			maxTraceLength={10}
			pcbX={placement.x}
			pcbY={placement.y}
			pcbRotation={placement.rotation}
			schX={-25}
			schY={-10}
			layer="top"
		>
			{" "}
			<footprint>
				{/* Abracon ABM8 recommended land pattern, top view. */}
				<smtpad
					portHints={["pin1"]}
					pcbX={-1.15}
					pcbY={-0.875}
					width={1.3}
					height={1.05}
					shape="rect"
				/>
				<smtpad
					portHints={["pin2"]}
					pcbX={1.15}
					pcbY={-0.875}
					width={1.3}
					height={1.05}
					shape="rect"
				/>
				<smtpad
					portHints={["pin3"]}
					pcbX={1.15}
					pcbY={0.875}
					width={1.3}
					height={1.05}
					shape="rect"
				/>
				<smtpad
					portHints={["pin4"]}
					pcbX={-1.15}
					pcbY={0.875}
					width={1.3}
					height={1.05}
					shape="rect"
				/>
				<silkscreenpath
					route={[
						{ x: -1.6, y: -1.25 },
						{ x: 1.6, y: -1.25 },
						{ x: 1.6, y: 1.25 },
						{ x: -1.6, y: 1.25 },
						{ x: -1.6, y: -1.25 },
					]}
				/>
			</footprint>
		</crystal>
	);
}