krishnax12/tensa-zangetsu-keychain-nfc
Summary: Calculates target inductance and estimated resonance for a 14.5 MHz square antenna using chip, interturn, bridge, and connection capacitances.
- Version
- 0.0.13
- License
- unset
- Stars
- 1
nfc-circuit.tsx
import React from "react"
import { NT2H1311F0DTLH } from "./imports/NT2H1311F0DTLH/NT2H1311F0DTLH"
import {
antennaRoute,
coilInductance,
coilOrigin,
coilWidth,
innerTerminal,
outerTerminal,
} from "./square-antenna"
export function NfcCircuit() {
return (
<>
<NT2H1311F0DTLH
name="U1"
pcbX={1}
pcbY={45}
layer="bottom"
pinLabels={{
pin1: "GND",
pin2: "LB",
pin3: "FD",
pin4: "LA",
pin5: "EP",
}}
noConnect={["GND", "FD", "EP"]}
/>
<inductor
name="L1"
doNotPlace
inductance={coilInductance}
pcbX={coilOrigin[0]}
pcbY={coilOrigin[1]}
footprint={
<footprint>
<smtpad
shape="circle"
coveredWithSolderMask
radius={0.275}
pcbX={outerTerminal[0]}
pcbY={outerTerminal[1]}
layer="bottom"
portHints={["pin1"]}
/>
<platedhole
shape="circle"
coveredWithSolderMask
holeDiameter={0.3}
outerDiameter={0.6}
pcbX={innerTerminal[0]}
pcbY={innerTerminal[1]}
portHints={["pin2"]}
/>
<pcbtrace
route={antennaRoute.map(([x, y]) => ({
route_type: "wire" as const,
x,
y,
width: coilWidth,
layer: "bottom" as const,
}))}
/>
</footprint>
}
/>
<trace name="RF_A" from=".U1 > .LA" to=".L1 > .pin1" thickness={0.2} />
<trace name="RF_B" from=".U1 > .LB" to=".L1 > .pin2" thickness={0.2} />
{/* GND and unused FD are left open for this passive tag. */}
</>
)
}