0hmX/tps6521401vafr-pmic

This code models and visualizes the pin configuration and electrical attributes of the TPS6521401 voltage supervisor IC in a specific WQFN-HR package.

Version
1.0.1
License
unset
Stars
0

dist/index.js

import { jsx, jsxs } from 'react/jsx-runtime';
import { Fragment } from 'react';

const TPS6521401VAFR_PIN_LABELS = {
    pin1: ["MODE", "STBY", "MODE_STBY"],
    pin2: "FB_B2",
    pin3: "VLDO2",
    pin4: ["VSYS", "PVIN_LDO12", "VSYS_PVIN_LDO12"],
    pin5: "VLDO1",
    pin6: "AGND",
    pin7: "VDD1P8",
    pin8: "FB_B1",
    pin9: ["GPO", "nWAKEUP", "GPO_nWAKEUP"],
    pin10: "PGND",
    pin11: "LX_B1",
    pin12: "PVIN_B1",
    pin13: "SDA",
    pin14: "SCL",
    pin15: "nINT",
    pin16: ["GPIO", "VSEL", "GPIO_VSEL"],
    pin17: "nRSTOUT",
    pin18: "FB_B3",
    pin19: ["EN", "PB", "VSENSE", "EN_PB_VSENSE"],
    pin20: "PVIN_B3",
    pin21: "LX_B3",
    pin22: "PGND",
    pin23: "LX_B2",
    pin24: "PVIN_B2",
};
const leftPins = [2, 3, 4, 5, 6];
const bottomPins = [8, 9, 11, 12];
const rightPins = [14, 15, 16, 17, 18];
const topPins = [20, 21, 23, 24];
/**
 * TPS6521401 in TI's VAF0024A WQFN-HR package.
 *
 * VAF0024A is not a conventional QFN-24: pins 1, 7, 13, and 19 are L-shaped,
 * and PGND pins 10 and 22 extend into the center thermal land. Consequently a
 * generic qfn24 footprinter string must not be substituted for this footprint.
 */
const TPS6521401VAFR = (props) => (jsx("chip", { pinLabels: TPS6521401VAFR_PIN_LABELS, datasheetUrl: "https://www.ti.com/lit/ds/symlink/tps65214.pdf", pinAttributes: {
        pin1: { mustBeConnected: true },
        pin2: { mustBeConnected: true },
        pin3: {
            providesPower: true,
            mustBeConnected: true,
            shouldHaveDecouplingCapacitor: true,
            recommendedDecouplingCapacitorCapacitance: "2.2uF",
        },
        pin4: {
            requiresPower: true,
            mustBeConnected: true,
            shouldHaveDecouplingCapacitor: true,
            recommendedDecouplingCapacitorCapacitance: "4.7uF",
        },
        pin5: {
            providesPower: true,
            mustBeConnected: true,
            shouldHaveDecouplingCapacitor: true,
            recommendedDecouplingCapacitorCapacitance: "2.2uF",
        },
        pin6: { requiresGround: true, mustBeConnected: true },
        // Internal 1.8 V reference output: capacitor only, no external load.
        pin7: {
            providesPower: true,
            mustBeConnected: true,
            shouldHaveDecouplingCapacitor: true,
            recommendedDecouplingCapacitorCapacitance: "2.2uF",
        },
        pin8: { mustBeConnected: true },
        pin9: {
            canUseOpenDrain: true,
            isUsingOpenDrain: true,
            needsExternalPullup: true,
        },
        pin10: { requiresGround: true, mustBeConnected: true },
        // LX pins provide switched power to inductors, not regulated rails.
        pin11: { providesPower: true },
        pin12: {
            requiresPower: true,
            mustBeConnected: true,
            shouldHaveDecouplingCapacitor: true,
            recommendedDecouplingCapacitorCapacitance: "4.7uF",
        },
        pin13: {
            capabilities: ["i2c_sda"],
            activeCapability: "i2c_sda",
            canUseOpenDrain: true,
            isUsingOpenDrain: true,
            needsExternalPullup: true,
            mustBeConnected: true,
        },
        pin14: {
            capabilities: ["i2c_scl"],
            activeCapability: "i2c_scl",
            needsExternalPullup: true,
            mustBeConnected: true,
        },
        pin15: {
            canUseOpenDrain: true,
            isUsingOpenDrain: true,
            needsExternalPullup: true,
        },
        pin16: {
            isGpio: true,
            canUseOpenDrain: true,
        },
        pin17: { canUsePushPull: true },
        pin18: { mustBeConnected: true },
        pin19: { mustBeConnected: true },
        pin20: {
            requiresPower: true,
            mustBeConnected: true,
            shouldHaveDecouplingCapacitor: true,
            recommendedDecouplingCapacitorCapacitance: "4.7uF",
        },
        pin21: { providesPower: true },
        pin22: { requiresGround: true, mustBeConnected: true },
        pin23: { providesPower: true },
        pin24: {
            requiresPower: true,
            mustBeConnected: true,
            shouldHaveDecouplingCapacitor: true,
            recommendedDecouplingCapacitorCapacitance: "4.7uF",
        },
    }, manufacturerPartNumber: "TPS6521401VAFR", schPinArrangement: {
        leftSide: {
            pins: [1, 16, 19, 14, 13],
            direction: "top-to-bottom",
        },
        rightSide: {
            pins: [17, 15, 3, 5, 7, 9],
            direction: "top-to-bottom",
        },
        topSide: {
            pins: [4, 24, 20, 12],
            direction: "left-to-right",
        },
        bottomSide: {
            pins: [6, 10, 22, 2, 8, 18, 11, 21, 23],
            direction: "left-to-right",
        },
    }, footprint: jsxs("footprint", { children: [leftPins.map((pin, index) => (jsx(Fragment, { children: jsx("smtpad", { portHints: [`pin${pin}`], pcbX: "-1.35mm", pcbY: `${1 - index * 0.5}mm`, width: "0.6mm", height: "0.25mm", shape: "rect" }) }, `pin${pin}`))), bottomPins.map((pin, index) => (jsx(Fragment, { children: jsx("smtpad", { portHints: [`pin${pin}`], pcbX: `${ -1 + index * 0.5 + (index > 1 ? 0.5 : 0)}mm`, pcbY: "-1.35mm", width: "0.25mm", height: "0.6mm", shape: "rect" }) }, `pin${pin}`))), rightPins.map((pin, index) => (jsx(Fragment, { children: jsx("smtpad", { portHints: [`pin${pin}`], pcbX: "1.35mm", pcbY: `${ -1 + index * 0.5}mm`, width: "0.6mm", height: "0.25mm", shape: "rect" }) }, `pin${pin}`))), topPins.map((pin, index) => (jsx(Fragment, { children: jsx("smtpad", { portHints: [`pin${pin}`], pcbX: `${1 - index * 0.5 - (index > 1 ? 0.5 : 0)}mm`, pcbY: "1.35mm", width: "0.25mm", height: "0.6mm", shape: "rect" }) }, `pin${pin}`))), jsx("smtpad", { portHints: ["pin1"], shape: "polygon", points: [
                    { x: -1.65, y: 1.65 },
                    { x: -1.175, y: 1.65 },
                    { x: -1.175, y: 1.425 },
                    { x: -1.425, y: 1.425 },
                    { x: -1.425, y: 1.175 },
                    { x: -1.65, y: 1.175 },
                ] }), jsx("smtpad", { portHints: ["pin7"], shape: "polygon", points: [
                    { x: -1.65, y: -1.65 },
                    { x: -1.175, y: -1.65 },
                    { x: -1.175, y: -1.425 },
                    { x: -1.425, y: -1.425 },
                    { x: -1.425, y: -1.175 },
                    { x: -1.65, y: -1.175 },
                ] }), jsx("smtpad", { portHints: ["pin13"], shape: "polygon", points: [
                    { x: 1.65, y: -1.65 },
                    { x: 1.175, y: -1.65 },
                    { x: 1.175, y: -1.425 },
                    { x: 1.425, y: -1.425 },
                    { x: 1.425, y: -1.175 },
                    { x: 1.65, y: -1.175 },
                ] }), jsx("smtpad", { portHints: ["pin19"], shape: "polygon", points: [
                    { x: 1.65, y: 1.65 },
                    { x: 1.175, y: 1.65 },
                    { x: 1.175, y: 1.425 },
                    { x: 1.425, y: 1.425 },
                    { x: 1.425, y: 1.175 },
                    { x: 1.65, y: 1.175 },
                ] }), jsx("smtpad", { portHints: ["pin10"], shape: "polygon", points: [
                    { x: -0.5, y: 0 },
                    { x: 0.5, y: 0 },
                    { x: 0.5, y: -0.3365 },
                    { x: 0.1, y: -0.3365 },
                    { x: 0.1, y: -1.65 },
                    { x: -0.1, y: -1.65 },
                    { x: -0.1, y: -0.3365 },
                    { x: -0.5, y: -0.3365 },
                ] }), jsx("smtpad", { portHints: ["pin22"], shape: "polygon", points: [
                    { x: -0.5, y: 0 },
                    { x: 0.5, y: 0 },
                    { x: 0.5, y: 0.3365 },
                    { x: 0.1, y: 0.3365 },
                    { x: 0.1, y: 1.65 },
                    { x: -0.1, y: 1.65 },
                    { x: -0.1, y: 0.3365 },
                    { x: -0.5, y: 0.3365 },
                ] }), jsx("silkscreenpath", { route: [
                    { x: -1.85, y: 1.05 },
                    { x: -1.85, y: 1.85 },
                    { x: -1.05, y: 1.85 },
                ] }), jsx("silkscreenpath", { route: [
                    { x: 1.05, y: 1.85 },
                    { x: 1.85, y: 1.85 },
                    { x: 1.85, y: 1.05 },
                ] }), jsx("silkscreenpath", { route: [
                    { x: 1.85, y: -1.05 },
                    { x: 1.85, y: -1.85 },
                    { x: 1.05, y: -1.85 },
                ] }), jsx("silkscreenpath", { route: [
                    { x: -1.05, y: -1.85 },
                    { x: -1.85, y: -1.85 },
                    { x: -1.85, y: -1.05 },
                ] }), jsx("silkscreencircle", { pcbX: "-2.05mm", pcbY: "1.65mm", radius: "0.15mm" }), jsx("courtyardoutline", { outline: [
                    { x: -2.25, y: 2.1 },
                    { x: 2.25, y: 2.1 },
                    { x: 2.25, y: -2.1 },
                    { x: -2.25, y: -2.1 },
                    { x: -2.25, y: 2.1 },
                ] })] }), ...props }));
var index_circuit = () => (jsx("board", { width: "10mm", height: "10mm", children: jsx(TPS6521401VAFR, { name: "U1" }) }));

export { TPS6521401VAFR, TPS6521401VAFR_PIN_LABELS, index_circuit as default };