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
layout/UsbCPortRoutes.tsx
/**
* USB-C port routes (PD sink on J_POWER, USB0 programming port J_USB_PROG). Generated by
* scripts/route-usb-c-ports.ts from scripts/usb-c-ports.route.json over the built board's
* copper, then committed as plain TSX. Regenerate rather than hand-edit point lists.
*/
const traces = [{"name":"USBCP_CC1_0","from":".Power_input > .J_POWER > .A5","to":".Power_input > .U_PD > .15","width":0.12,"layer":"top","points":[{"x":27.25,"y":19.9},{"x":21.15,"y":26},{"x":11.55,"y":26},{"x":8.3,"y":22.75}]},{"name":"USBCP_CC2_0","from":".Power_input > .J_POWER > .B5","to":".Power_input > .U_PD > .14","width":0.12,"layer":"top","points":[{"x":24.25,"y":19.95},{"x":23.25,"y":20.95},{"x":21.15,"y":20.95},{"x":17.85,"y":17.65},{"x":11.7,"y":17.65},{"x":9.75,"y":19.6},{"x":9.75,"y":20.8},{"x":8.3,"y":22.25}]},{"name":"USBCP_PD_VBUS_CAP_0","from":".Power_input > .U_PD > .18","to":".Power_input > .C_PD_VBUS > .pin2","width":0.2,"layer":"top","points":[{"x":8.65,"y":24.25}]},{"name":"USBCP_PD_VBUS_FEED_0","from":".Power_input > .C_PD_VBUS > .pin2","to":"USBCP_PD_VBUS_FEED_V0.top","width":0.2,"layer":"top","points":[]},{"name":"USBCP_PD_VBUS_FEED_1","from":"USBCP_PD_VBUS_FEED_V0.bottom","to":"USBCP_PD_VBUS_FEED_V1.bottom","width":0.2,"layer":"bottom","points":[]},{"name":"USBCP_PD_VBUS_FEED_2","from":"USBCP_PD_VBUS_FEED_V1.top","to":".Power_input > .C_RAW_EFUSE > .pin1","width":0.2,"layer":"top","points":[]},{"name":"USBCP_NOR_VCC_0","from":".Power_input > .U_TYPEC_NOR > .5","to":"USBCP_NOR_VCC_V0.top","width":0.2,"layer":"top","points":[]},{"name":"USBCP_NOR_VCC_1","from":"USBCP_NOR_VCC_V0.inner4","to":"USBCP_NOR_VCC_V1.inner4","width":0.2,"layer":"inner4","points":[]},{"name":"USBCP_NOR_VCC_2","from":"USBCP_NOR_VCC_V1.top","to":".Power_input > .C_RAW_NOR > .pin1","width":0.2,"layer":"top","points":[]},{"name":"USBCP_CONTRACT_N_0","from":".Power_input > .U_PD > .3","to":"USBCP_CONTRACT_N_V0.top","width":0.12,"layer":"top","points":[]},{"name":"USBCP_CONTRACT_N_1","from":"USBCP_CONTRACT_N_V0.inner4","to":"USBCP_CONTRACT_N_V1.inner4","width":0.12,"layer":"inner4","points":[{"x":9.35,"y":18.2}]},{"name":"USBCP_CONTRACT_N_2","from":"USBCP_CONTRACT_N_V1.top","to":".Power_input > .U_TYPEC_NOR > .3","width":0.12,"layer":"top","points":[]},{"name":"USBCP_VDC_OUT_0","from":".Power_input > .U_PD > .11","to":"USBCP_VDC_OUT_V0.top","width":0.15,"layer":"top","points":[]},{"name":"USBCP_VDC_OUT_1","from":"USBCP_VDC_OUT_V0.inner2","to":"USBCP_VDC_OUT_V1.inner2","width":0.15,"layer":"inner2","points":[]},{"name":"USBCP_VDC_OUT_2","from":"USBCP_VDC_OUT_V1.top","to":".Power_input > .U_INPUT_EFUSE > .5","width":0.15,"layer":"top","points":[]},{"name":"USBCP_ISNK_A_0","from":".Power_input > .U_PD > .5","to":".Power_input > .R_PD_ISNK_UP > .pin2","width":0.12,"layer":"top","points":[{"x":2.45,"y":22.25}]},{"name":"USBCP_ISNK_B_0","from":".Power_input > .R_PD_ISNK_UP > .pin2","to":".Power_input > .R_PD_ISNK_DN > .pin2","width":0.12,"layer":"top","points":[]},{"name":"USBCP_VDDD_A_0","from":".Power_input > .U_PD > .23","to":".Power_input > .C_PD_VDDD > .pin2","width":0.2,"layer":"top","points":[{"x":5.25,"y":25.35},{"x":5,"y":25.6},{"x":4.5,"y":25.6},{"x":4.4,"y":25.5},{"x":4.4,"y":25.4},{"x":4.3,"y":25.3},{"x":2.45,"y":25.3}]},{"name":"USBCP_VDDD_B_0","from":".Power_input > .C_PD_VDDD > .pin2","to":".Power_input > .C_PD_VDDD_HF1 > .pin2","width":0.2,"layer":"top","points":[]},{"name":"USBCP_VDDD_C_0","from":".Power_input > .C_PD_VDDD_HF1 > .pin2","to":".Power_input > .C_PD_VDDD_HF2 > .pin2","width":0.2,"layer":"top","points":[]},{"name":"USBCP_VDDD_D_0","from":".Power_input > .C_PD_VDDD_HF2 > .pin2","to":".Power_input > .R_PD_ISNK_UP > .pin1","width":0.15,"layer":"top","points":[]},{"name":"USBCP_VDDD_E_0","from":".Power_input > .U_PD > .12","to":".Power_input > .U_PD > .13","width":0.12,"layer":"top","points":[]},{"name":"USBCP_VDDD_F_0","from":".Power_input > .U_PD > .12","to":".Power_input > .R_PD_ISNK_UP > .pin1","width":0.12,"layer":"top","points":[{"x":7.25,"y":20.7},{"x":6.95,"y":20.4},{"x":2.45,"y":20.4},{"x":1.35,"y":21.5},{"x":1.35,"y":22.35}]},{"name":"USBCP_VCCD_0","from":".Power_input > .U_PD > .24","to":"USBCP_VCCD_V0.top","width":0.2,"layer":"top","points":[]},{"name":"USBCP_VCCD_1","from":"USBCP_VCCD_V0.bottom","to":"USBCP_VCCD_V1.bottom","width":0.2,"layer":"bottom","points":[]},{"name":"USBCP_PD_GND_1_0","from":".Power_input > .U_PD > .1","to":".Power_input > .U_PD > .25","width":0.15,"layer":"top","points":[{"x":5.25,"y":23}]},{"name":"USBCP_PD_GND_2_0","from":".Power_input > .U_PD > .2","to":".Power_input > .U_PD > .25","width":0.15,"layer":"top","points":[{"x":5.25,"y":23.75}]},{"name":"USBCP_PD_GND_6_0","from":".Power_input > .U_PD > .6","to":".Power_input > .U_PD > .25","width":0.15,"layer":"top","points":[{"x":4.75,"y":21.75}]},{"name":"USBCP_PD_GND_19_0","from":".Power_input > .U_PD > .19","to":".Power_input > .U_PD > .25","width":0.15,"layer":"top","points":[{"x":7.25,"y":24.25}]},{"name":"USBCP_PD_GND_22_0","from":".Power_input > .U_PD > .22","to":".Power_input > .U_PD > .25","width":0.15,"layer":"top","points":[{"x":5.75,"y":23.25}]},{"name":"USBCP_PD_EP_GND_0","from":".Power_input > .U_PD > .25","to":"USBCP_PD_EP_GND_VG.top","width":0.3,"layer":"top","points":[]},{"name":"USBCP_C_PD_VBUS_GND_0","from":".Power_input > .C_PD_VBUS > .pin1","to":"USBCP_C_PD_VBUS_GND_VG.top","width":0.2,"layer":"top","points":[]},{"name":"USBCP_C_PD_VDDD_GND_0","from":".Power_input > .C_PD_VDDD > .pin1","to":"USBCP_C_PD_VDDD_GND_VG.top","width":0.2,"layer":"top","points":[]},{"name":"USBCP_C_PD_VDDD_HF1_GND_0","from":".Power_input > .C_PD_VDDD_HF1 > .pin1","to":"USBCP_C_PD_VDDD_HF1_GND_VG.top","width":0.2,"layer":"top","points":[]},{"name":"USBCP_C_PD_VDDD_HF2_GND_0","from":".Power_input > .C_PD_VDDD_HF2 > .pin1","to":"USBCP_C_PD_VDDD_HF2_GND_VG.top","width":0.2,"layer":"top","points":[]},{"name":"USBCP_C_PD_VCCD_GND_0","from":".Power_input > .C_PD_VCCD > .pin1","to":"USBCP_C_PD_VCCD_GND_VG.top","width":0.2,"layer":"top","points":[{"x":2.95,"y":25.9}]},{"name":"USBCP_R_PD_ISNK_DN_GND_0","from":".Power_input > .R_PD_ISNK_DN > .pin1","to":"USBCP_R_PD_ISNK_DN_GND_VG.top","width":0.2,"layer":"top","points":[]},{"name":"USBCP_NOR_IN1_GND_0","from":".Power_input > .U_TYPEC_NOR > .1","to":"USBCP_NOR_IN1_GND_VG.top","width":0.2,"layer":"top","points":[]},{"name":"USBCP_NOR_IN2_GND_0","from":".Power_input > .U_TYPEC_NOR > .6","to":"USBCP_NOR_IN2_GND_VG.top","width":0.2,"layer":"top","points":[]},{"name":"USBCP_USB0_DP_CPU_0","from":".Processor > .U1 > .N17","to":"USBCP_USB0_DP_CPU_V0.top","width":0.12,"layer":"top","points":[{"x":3.2,"y":6.4},{"x":3.2,"y":9.05}]},{"name":"USBCP_USB0_DP_CPU_1","from":"USBCP_USB0_DP_CPU_V0.bottom","to":"USBCP_USB0_DP_CPU_V1.bottom","width":0.12,"layer":"bottom","points":[{"x":1.3,"y":10.95},{"x":-12.75,"y":10.95}]},{"name":"USBCP_USB0_DM_CPU_0","from":".Processor > .U1 > .N18","to":"USBCP_USB0_DM_CPU_V0.top","width":0.12,"layer":"top","points":[]},{"name":"USBCP_USB0_DM_CPU_1","from":"USBCP_USB0_DM_CPU_V0.inner4","to":"USBCP_USB0_DM_CPU_V1.inner4","width":0.12,"layer":"inner4","points":[]},{"name":"USBCP_USB0_DM_CPU_2","from":"USBCP_USB0_DM_CPU_V1.bottom","to":"USBCP_USB0_DM_CPU_V2.bottom","width":0.12,"layer":"bottom","points":[{"x":-14,"y":12.7}]},{"name":"USBCP_USB0_DP_CONN_0","from":".USB_prog > .U_PROG_ESD > .1","to":".USB_prog > .J_USB_PROG > .A6","width":0.12,"layer":"top","points":[{"x":-18.35,"y":16.55},{"x":-18.35,"y":17.35},{"x":-17.35,"y":18.35},{"x":-17.05,"y":18.35},{"x":-16.75,"y":18.65}]},{"name":"USBCP_USB0_DM_CONN_0","from":".USB_prog > .U_PROG_ESD > .2","to":".USB_prog > .J_USB_PROG > .A7","width":0.12,"layer":"top","points":[{"x":-17.5,"y":16},{"x":-17.25,"y":15.75},{"x":-15.75,"y":15.75},{"x":-15.65,"y":15.85},{"x":-15.65,"y":18.05},{"x":-16.4,"y":18.8},{"x":-16.4,"y":19.8},{"x":-16.5,"y":19.9},{"x":-17,"y":19.9},{"x":-17.25,"y":19.65}]},{"name":"USBCP_USB0_DP_FLIP_0","from":".USB_prog > .J_USB_PROG > .A6","to":".USB_prog > .J_USB_PROG > .B6","width":0.12,"layer":"top","points":[{"x":-16.75,"y":18.65},{"x":-17.05,"y":18.35},{"x":-17.45,"y":18.35},{"x":-17.75,"y":18.65}]},{"name":"USBCP_USB0_DM_FLIP_0","from":".USB_prog > .J_USB_PROG > .A7","to":".USB_prog > .J_USB_PROG > .B7","width":0.12,"layer":"top","points":[{"x":-17.25,"y":19.65},{"x":-17,"y":19.9},{"x":-16.5,"y":19.9},{"x":-16.25,"y":19.65}]},{"name":"USBCP_USB0_VBUS_JOIN_0","from":".USB_prog > .J_USB_PROG > .A4","to":".USB_prog > .J_USB_PROG > .A9","width":0.2,"layer":"top","points":[{"x":-14.6,"y":19.55},{"x":-15.25,"y":20.2},{"x":-18.75,"y":20.2},{"x":-19.4,"y":19.55}]},{"name":"USBCP_USB0_VBUS_CPU_1","from":"USBCP_USB0_VBUS_CPU_V0.inner2","to":"USBCP_USB0_VBUS_CPU_V1.inner2","width":0.1,"layer":"inner2","points":[{"x":3.15,"y":4.85},{"x":-0.55,"y":4.85},{"x":-2.4,"y":6.7}]},{"name":"USBCP_USB0_VBUS_CPU_2","from":"USBCP_USB0_VBUS_CPU_V1.inner4","to":"USBCP_USB0_VBUS_CPU_V2.inner4","width":0.1,"layer":"inner4","points":[]},{"name":"USBCP_USB0_VBUS_CPU_3","from":"USBCP_USB0_VBUS_CPU_V2.top","to":".USB_prog > .J_USB_PROG > .A4","width":0.1,"layer":"top","points":[]},{"name":"USBCP_PROG_CC1_0","from":".USB_prog > .J_USB_PROG > .A5","to":".USB_prog > .R_PROG_CC1 > .pin1","width":0.12,"layer":"top","points":[{"x":-15.75,"y":18.5},{"x":-14.7,"y":17.45},{"x":-14.7,"y":17}]},{"name":"USBCP_PROG_CC2_0","from":".USB_prog > .J_USB_PROG > .B5","to":".USB_prog > .R_PROG_CC2 > .pin1","width":0.12,"layer":"top","points":[{"x":-18.75,"y":18.15}]},{"name":"USBCP_J_USB_PROG_A1_GND_0","from":".USB_prog > .J_USB_PROG > .A1","to":"USBCP_J_USB_PROG_A1_GND_VG.top","width":0.25,"layer":"top","points":[]},{"name":"USBCP_J_USB_PROG_A12_GND_0","from":".USB_prog > .J_USB_PROG > .A12","to":"USBCP_J_USB_PROG_A12_GND_VG.top","width":0.25,"layer":"top","points":[]},{"name":"USBCP_R_PROG_CC1_pin2_GND_0","from":".USB_prog > .R_PROG_CC1 > .pin2","to":"USBCP_R_PROG_CC1_pin2_GND_VG.top","width":0.25,"layer":"top","points":[]},{"name":"USBCP_R_PROG_CC2_pin2_GND_0","from":".USB_prog > .R_PROG_CC2 > .pin2","to":"USBCP_R_PROG_CC2_pin2_GND_VG.top","width":0.25,"layer":"top","points":[]},{"name":"USBCP_U_PROG_ESD_3_GND_0","from":".USB_prog > .U_PROG_ESD > .3","to":"USBCP_U_PROG_ESD_3_GND_VG.top","width":0.25,"layer":"top","points":[]},{"name":"USBCP_U_PROG_ESD_8_GND_0","from":".USB_prog > .U_PROG_ESD > .8","to":"USBCP_U_PROG_ESD_8_GND_VG.top","width":0.25,"layer":"top","points":[]}]
const vias = [{"name":"USBCP_PD_VBUS_FEED_V0","x":10.1,"y":25.1,"net":"USBC_VBUS_RAW","fromLayer":"top","toLayer":"bottom"},{"name":"USBCP_PD_VBUS_FEED_V1","x":10.1,"y":21.9,"net":"USBC_VBUS_RAW","fromLayer":"top","toLayer":"bottom"},{"name":"USBCP_NOR_VCC_V0","x":16.8,"y":19.45,"net":"USBC_VBUS_RAW","fromLayer":"top","toLayer":"inner4"},{"name":"USBCP_NOR_VCC_V1","x":12.65,"y":19.45,"net":"USBC_VBUS_RAW","fromLayer":"top","toLayer":"inner4"},{"name":"USBCP_CONTRACT_N_V0","x":4.3,"y":23.25,"net":"PD_CONTRACT_N","fromLayer":"top","toLayer":"inner4"},{"name":"USBCP_CONTRACT_N_V1","x":14.8,"y":18.2,"net":"PD_CONTRACT_N","fromLayer":"top","toLayer":"inner4"},{"name":"USBCP_VDC_OUT_V0","x":6.8,"y":21.05,"net":"SYS_5V","fromLayer":"top","toLayer":"inner2"},{"name":"USBCP_VDC_OUT_V1","x":14.25,"y":21.05,"net":"SYS_5V","fromLayer":"top","toLayer":"inner2"},{"name":"USBCP_VCCD_V0","x":4.65,"y":25.1,"net":"PD_VCCD","fromLayer":"top","toLayer":"bottom"},{"name":"USBCP_VCCD_V1","x":3.9,"y":25.85,"net":"PD_VCCD","fromLayer":"top","toLayer":"bottom"},{"name":"USBCP_PD_EP_GND_VG","x":6.35,"y":22.65,"net":"GND","fromLayer":"top","toLayer":"bottom"},{"name":"USBCP_C_PD_VBUS_GND_VG","x":8.45,"y":25.05,"net":"GND","fromLayer":"top","toLayer":"bottom"},{"name":"USBCP_C_PD_VDDD_GND_VG","x":0.55,"y":25.5,"net":"GND","fromLayer":"top","toLayer":"bottom"},{"name":"USBCP_C_PD_VDDD_HF1_GND_VG","x":1.25,"y":24.45,"net":"GND","fromLayer":"top","toLayer":"bottom"},{"name":"USBCP_C_PD_VDDD_HF2_GND_VG","x":0.55,"y":23.45,"net":"GND","fromLayer":"top","toLayer":"bottom"},{"name":"USBCP_C_PD_VCCD_GND_VG","x":3.35,"y":25.9,"net":"GND","fromLayer":"top","toLayer":"bottom"},{"name":"USBCP_R_PD_ISNK_DN_GND_VG","x":0.55,"y":22.15,"net":"GND","fromLayer":"top","toLayer":"bottom"},{"name":"USBCP_NOR_IN1_GND_VG","x":14.35,"y":20.05,"net":"GND","fromLayer":"top","toLayer":"bottom"},{"name":"USBCP_NOR_IN2_GND_VG","x":17.65,"y":20.05,"net":"GND","fromLayer":"top","toLayer":"bottom"},{"name":"USBCP_USB0_DP_CPU_V0","x":2.75,"y":9.5,"net":"USB0_DP","fromLayer":"top","toLayer":"bottom"},{"name":"USBCP_USB0_DP_CPU_V1","x":-18,"y":16.2,"net":"USB0_DP","fromLayer":"top","toLayer":"bottom"},{"name":"USBCP_USB0_DM_CPU_V0","x":2.8,"y":8.9,"net":"USB0_DM","fromLayer":"top","toLayer":"inner4"},{"name":"USBCP_USB0_DM_CPU_V1","x":-1,"y":12.7,"net":"USB0_DM","fromLayer":"inner4","toLayer":"bottom"},{"name":"USBCP_USB0_DM_CPU_V2","x":-17.5,"y":16.2,"net":"USB0_DM","fromLayer":"top","toLayer":"bottom"},{"name":"USBCP_USB0_VBUS_CPU_V0","x":3.6,"y":4.4,"net":"USB0_VBUS","fromLayer":"top","toLayer":"inner2"},{"name":"USBCP_USB0_VBUS_CPU_V1","x":-2.4,"y":7.15,"net":"USB0_VBUS","fromLayer":"inner2","toLayer":"inner4"},{"name":"USBCP_USB0_VBUS_CPU_V2","x":-14.4,"y":19.15,"net":"USB0_VBUS","fromLayer":"top","toLayer":"inner4"},{"name":"USBCP_J_USB_PROG_A1_GND_VG","x":-13.05,"y":18.4,"net":"GND","fromLayer":"top","toLayer":"bottom"},{"name":"USBCP_J_USB_PROG_A12_GND_VG","x":-20.2,"y":18.65,"net":"GND","fromLayer":"top","toLayer":"bottom"},{"name":"USBCP_R_PROG_CC1_pin2_GND_VG","x":-13.85,"y":17.85,"net":"GND","fromLayer":"top","toLayer":"bottom"},{"name":"USBCP_R_PROG_CC2_pin2_GND_VG","x":-20.75,"y":17.15,"net":"GND","fromLayer":"top","toLayer":"bottom"},{"name":"USBCP_U_PROG_ESD_3_GND_VG","x":-17,"y":16.7,"net":"GND","fromLayer":"top","toLayer":"bottom"},{"name":"USBCP_U_PROG_ESD_8_GND_VG","x":-17,"y":17.5,"net":"GND","fromLayer":"top","toLayer":"bottom"}]
export function UsbCPortRoutes() {
return <group name="UsbCPortRoutes" pcbRelative>
{vias.map(v => <via key={v.name} name={v.name} pcbX={v.x} pcbY={v.y} fromLayer={v.fromLayer} toLayer={v.toLayer} holeDiameter={0.15} outerDiameter={0.3} connectsTo={`net.${v.net}`} />)}
{traces.map(t => <trace key={t.name} name={t.name} from={t.from} to={t.to} width={t.width} pcbPathRelativeTo=".Processor > .U1 > .A1" pcbPaths={[[t.from, ...t.points, t.to]]} />)}
</group>
}