0hmX/am3352-ddr-track-a-local-dfm-wip-20261007
Experimental RJ45-corrected board with isolated PG indication. 1005/1005 source joins pass; 15 expanded-guard physical errors, sourcing and qualification gates remain. Not fabrication-ready.
- Version
- 0.0.14
- License
- unset
- Stars
- 0
hdmi/power/PowerRail.tsx
import { savedRefdesStyle } from "../../layout/SavedSilkscreen"
import parts from "./power-components"
import { Hdmifootprint } from "../components/Hdmifootprint"
import { cadModelForFootprint } from "../../models"
/** Actual converter circuit. The encrypted vendor model is not a native SPICE model. */
export function HdmiPowerRail({ placement }: { placement: Record<string, any> }) {
return <>{parts.map((p: any) => {
if (!placement[p.name]) throw new Error(`Missing HDMI power placement: ${p.name}`)
const props = {
name: p.name, pcbStyle: savedRefdesStyle(p.name),
manufacturerPartNumber: p.mpn,
...placement[p.name],
cadModel: p.kind === "resistor" ? undefined : cadModelForFootprint(p.footprintKey),
connections: Object.fromEntries(Object.entries(p.connections).map(([pin, net]) =>
[`pin${pin}`, `net.${net}`])),
}
if (p.kind === "resistor") return <resistor key={p.name} {...props}
resistance={p.value} footprint="0402" />
const footprint = <Hdmifootprint footprintKey={p.footprintKey} />
if (p.kind === "capacitor") return <capacitor key={p.name} {...props}
capacitance={p.value} footprint={footprint} />
if (p.kind === "inductor") return <inductor key={p.name} {...props}
inductance={p.value} footprint={footprint} />
return <chip key={p.name} {...props} footprint={footprint}
pinLabels={Object.fromEntries(Object.entries(p.pinLabels).map(([pin, label]) =>
[`pin${pin}`, [pin, label]]))}
noConnect={p.noConnect.map((pin: string) => `pin${pin}`)} />
})}</>
}