pixalynx/pixal-gps
These files define two separate printed circuit boards: a small, two-layer battery cartridge with protection circuitry and contact pads for a pouch cell, and a larger, two-layer wireless charging dock featuring USB-C input, a resonant coil, and wireless power transmission components.
- Version
- 0.1.2
- License
- unset
- Stars
- 0
review/source-build/parts/Nrf9151.tsx
import type { ChipProps } from "tscircuit"
import { Nrf9151Lga113 } from "../lib/footprints"
/** Nordic nRF9151 SiP (nRF9151-LACA-R7), LGA-113 12.1 x 11.1 x 1.2 mm.
* Pin table from the nRF9151 Product Specification "Pin assignments" (docs/sources.md
* [nrf9151-ps]); numbering counter-clockwise from the top-left corner (pin 1 = GND corner,
* 2-19 down the left edge, 20 corner, 21-40 bottom edge, 41 corner, 42-59 right edge,
* 60 corner, 61-80 top edge, 81-104 interior reserved, 105-113 centre GND). */
export const nrf9151Pins = {
pin1: ["GND_1"], pin2: ["P0_20", "AIN7"], pin3: ["SWDCLK"], pin4: ["SWDIO"], pin5: ["P0_21", "TRACECLK"],
pin6: ["P0_22", "TRACEDATA0"], pin7: ["GND_7"], pin8: ["P0_23", "TRACEDATA1"], pin9: ["nRESET"], pin10: ["ENABLE"],
pin11: ["P0_24", "TRACEDATA2"], pin12: ["P0_25", "TRACEDATA3"], pin13: ["GND_13"], pin14: ["VDD"], pin15: ["GND_15"],
pin16: ["SIM_RST"], pin17: ["SIM_IO"], pin18: ["SIM_CLK"], pin19: ["SIM_1V8"], pin20: ["GND_20"],
pin21: ["MAGPIO0"], pin22: ["MAGPIO1"], pin23: ["MAGPIO2"], pin24: ["DEC0"], pin25: ["GND_25"], pin26: ["SIM_DET"],
pin27: ["SDATA"], pin28: ["SCLK"], pin29: ["VIO"], pin30: ["GND_30"], pin31: ["RESERVED_31"], pin32: ["RESERVED_32"],
pin33: ["RESERVED_33"], pin34: ["GND_34"], pin35: ["ANT"], pin36: ["GND_36"], pin37: ["AUX"], pin38: ["GND_38"],
pin39: ["GND_39"], pin40: ["GND_40"], pin41: ["GND_41"], pin42: ["GPS"], pin43: ["GND_43"], pin44: ["P0_26"],
pin45: ["P0_27"], pin46: ["GND_46"], pin47: ["P0_28"], pin48: ["P0_29"], pin49: ["P0_30"], pin50: ["P0_31"],
pin51: ["GND_51"], pin52: ["COEX0"], pin53: ["COEX1"], pin54: ["COEX2"], pin55: ["GND_55"], pin56: ["P0_00"],
pin57: ["P0_01"], pin58: ["P0_02"], pin59: ["P0_03"], pin60: ["GND_60"], pin61: ["P0_04"], pin62: ["P0_05"],
pin63: ["P0_06"], pin64: ["P0_07"], pin65: ["VDD_GPIO"], pin66: ["GND_66"], pin67: ["P0_08"], pin68: ["P0_09"],
pin69: ["P0_10"], pin70: ["P0_11"], pin71: ["GND_71"], pin72: ["P0_12"], pin73: ["P0_13", "AIN0"], pin74: ["P0_14", "AIN1"],
pin75: ["P0_15", "AIN2"], pin76: ["GND_76"], pin77: ["P0_16", "AIN3"], pin78: ["P0_17", "AIN4"], pin79: ["P0_18", "AIN5"],
pin80: ["P0_19", "AIN6"],
pin81: ["RESERVED_81"], pin82: ["RESERVED_82"], pin83: ["RESERVED_83"], pin84: ["RESERVED_84"], pin85: ["RESERVED_85"],
pin86: ["RESERVED_86"], pin87: ["RESERVED_87"], pin88: ["RESERVED_88"], pin89: ["RESERVED_89"], pin90: ["RESERVED_90"],
pin91: ["RESERVED_91"], pin92: ["RESERVED_92"], pin93: ["RESERVED_93"], pin94: ["RESERVED_94"], pin95: ["RESERVED_95"],
pin96: ["RESERVED_96"], pin97: ["RESERVED_97"], pin98: ["RESERVED_98"], pin99: ["RESERVED_99"], pin100: ["RESERVED_100"],
pin101: ["RESERVED_101"], pin102: ["RESERVED_102"], pin103: ["RESERVED_103"], pin104: ["RESERVED_104"],
pin105: ["GND_105"], pin106: ["GND_106"], pin107: ["GND_107"], pin108: ["GND_108"], pin109: ["GND_109"],
pin110: ["GND_110"], pin111: ["GND_111"], pin112: ["GND_112"], pin113: ["GND_113"],
} as const
/** All ground lands. Pins 15 and 40 reach ground only through the SiP's conformal shield and
* are not a signal reference (Nordic HDG "GND"); they are still tied to GND here. */
export const nrf9151GndPins = ["GND_1", "GND_7", "GND_13", "GND_15", "GND_20", "GND_25", "GND_30", "GND_34", "GND_36", "GND_38", "GND_39", "GND_40", "GND_41", "GND_43", "GND_46", "GND_51", "GND_55", "GND_60", "GND_66", "GND_71", "GND_76", "GND_105", "GND_106", "GND_107", "GND_108", "GND_109", "GND_110", "GND_111", "GND_112", "GND_113"] as const
export const Nrf9151 = (props: ChipProps<typeof nrf9151Pins>) => (
<chip
{...props}
manufacturerPartNumber="nRF9151-LACA-R7"
supplierPartNumbers={{ jlcpcb: ["C22397843"] }}
pinLabels={nrf9151Pins}
internallyConnectedPins={[[...nrf9151GndPins]]}
footprint={<Nrf9151Lga113 />}
cadModel={{ objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C22397843.obj?uuid=c99b497c192940919af8e3c7060d37d3", rotationOffset: { x: 0, y: 0, z: 0 }, positionOffset: { x: 0, y: 0, z: 0 } }}
schWidth={6}
schHeight={14}
schPinArrangement={{
leftSide: { direction: "top-to-bottom", pins: ["VDD", "ENABLE", "VDD_GPIO", "DEC0", "nRESET", "SWDCLK", "SWDIO", "SIM_1V8", "SIM_RST", "SIM_CLK", "SIM_IO", "SIM_DET", "COEX0", "COEX1", "COEX2", "MAGPIO0", "MAGPIO1", "MAGPIO2", "VIO", "SCLK", "SDATA"] },
rightSide: { direction: "top-to-bottom", pins: ["ANT", "AUX", "GPS", "P0_00", "P0_01", "P0_02", "P0_03", "P0_04", "P0_05", "P0_06", "P0_07", "P0_08", "P0_09", "P0_10", "P0_11", "P0_12", "P0_13", "P0_14", "P0_15", "P0_16", "P0_17", "P0_18", "P0_19", "P0_20", "P0_21", "P0_22", "P0_23", "P0_24", "P0_25", "P0_26", "P0_27", "P0_28", "P0_29", "P0_30", "P0_31"] },
bottomSide: { direction: "left-to-right", pins: ["GND_1", "GND_112", "GND_113"] },
}}
pinAttributes={{
VDD: { requiresPower: true }, VDD_GPIO: { requiresPower: true }, ENABLE: { mustBeConnected: true }, DEC0: { mustBeConnected: true },
SIM_1V8: { providesPower: true }, VIO: { providesPower: true }, SIM_DET: { doNotConnect: true },
GND_1: { requiresGround: true }, GND_112: { requiresGround: true }, GND_113: { requiresGround: true },
...Object.fromEntries(Array.from({ length: 24 }, (_, i) => [`RESERVED_${81 + i}`, { doNotConnect: true }])),
RESERVED_31: { doNotConnect: true }, RESERVED_32: { doNotConnect: true }, RESERVED_33: { doNotConnect: true },
}}
/>
)