AnasSarkiz/Game-Boy-Enhance
This code defines a hardware schematic featuring a CPU with associated power, clock, and interface components, including specialized chips, crystals, connectors, and passive components, all structured for circuit design and simulation.
- Version
- 1.0.3
- License
- unset
- Stars
- 0
s4/components/interfaces.tsx
import type { ReactElement } from "react"
import type { ChipProps } from "@tscircuit/props"
import { HX_TYPE_C_16P_L8_35 } from "../imports/HX_TYPE_C_16P_L8_35"
import { SN74AHC1G08DCKR } from "../imports/SN74AHC1G08DCKR"
import { USBLC6_2SC6 } from "../imports/USBLC6_2SC6"
import { ZDSD04GLGEAG } from "../imports/ZDSD04GLGEAG"
import { JK_nSMD100_16 } from "../imports/JK_nSMD100_16"
type InterfaceProps = Pick<ChipProps, "name" | "pcbX" | "pcbY" | "pcbRotation" | "schX" | "schY" | "schSectionName">
export function UsbRecoveryConnector(props: InterfaceProps) {
const supplierChip: ReactElement<ChipProps> = HX_TYPE_C_16P_L8_35(props)
return <connector {...supplierChip.props} standard="usb_c" pinAttributes={{
pin1: { requiresGround: true, mustBeConnected: true },
pin2: { requiresGround: true, mustBeConnected: true },
pin3: { requiresGround: true, mustBeConnected: true },
pin4: { requiresGround: true, mustBeConnected: true },
pin5: { requiresGround: true, mustBeConnected: true },
pin7: { requiresGround: true, mustBeConnected: true },
pin6: { providesPower: true, mustBeConnected: true }, pin8: { providesPower: true, mustBeConnected: true },
pin9: { mustBeConnected: true }, pin15: { mustBeConnected: true },
pin11: { mustBeConnected: true }, pin12: { mustBeConnected: true },
pin13: { mustBeConnected: true }, pin14: { mustBeConnected: true },
pin10: { doNotConnect: true }, pin16: { doNotConnect: true },
}} />
}
export function UsbInputFuse(props: InterfaceProps) {
const supplierChip: ReactElement<ChipProps> = JK_nSMD100_16(props)
return <fuse {...supplierChip.props} symbol={undefined} currentRating="1A" voltageRating="16V"
pinAttributes={{ pin1: { mustBeConnected: true }, pin2: { mustBeConnected: true } }} />
}
export function UsbRecoveryProtection(props: InterfaceProps) {
const supplierChip: ReactElement<ChipProps> = USBLC6_2SC6(props)
// ST's top-view circuit connects 1–6 and 3–4 inside the package.
return <chip {...supplierChip.props} internallyConnectedPins={[[1, 6], [3, 4]]} pinAttributes={{
pin1: { mustBeConnected: true }, pin6: { mustBeConnected: true },
pin3: { mustBeConnected: true }, pin4: { mustBeConnected: true },
pin2: { requiresGround: true, mustBeConnected: true },
pin5: { requiresPower: true, mustBeConnected: true },
}} />
}
export function BootStorage(props: InterfaceProps) {
const supplierChip: ReactElement<ChipProps> = ZDSD04GLGEAG(props)
return <chip {...supplierChip.props} pinAttributes={{
pin1: { mustBeConnected: true }, pin2: { mustBeConnected: true },
pin3: { mustBeConnected: true }, pin5: { mustBeConnected: true },
pin6: { mustBeConnected: true }, pin7: { mustBeConnected: true },
pin4: { requiresGround: true, mustBeConnected: true },
pin8: { requiresPower: true, mustBeConnected: true },
}} />
}
export function RecoveryClockGate(props: InterfaceProps) {
const supplierChip: ReactElement<ChipProps> = SN74AHC1G08DCKR(props)
return <chip {...supplierChip.props} pinAttributes={{
pin1: { mustBeConnected: true }, pin2: { mustBeConnected: true },
pin4: { mustBeConnected: true },
pin3: { requiresGround: true, mustBeConnected: true },
pin5: { requiresPower: true, mustBeConnected: true },
}} />
}