main
Ray tca6408a: component.models_3d pose record per STEP (Z-up, seated z=0, pad-centre origin, identity binding) 739a2a9 21h ago
{
  "schema_version": 1,
  "type": "component",
  "slug": "tca6408a",
  "title": "TCA6408A 8-Bit I2C I/O Expander",
  "brief": "8-bit I2C I/O expander with configurable direction, polarity inversion, and interrupt.",
  "version": "0.1.0",
  "license": "CC-BY-SA-4.0",
  "tags": [
    "gpio-expander",
    "i2c",
    "io-expander",
    "8-bit",
    "interrupt",
    "ti",
    "tssop-16"
  ],
  "component": {
    "mpn": "TCA6408A",
    "manufacturer": "Texas Instruments",
    "package": "TSSOP-16",
    "pin_count": 16,
    "category": "Interface",
    "subcategory": "I/O Expander",
    "datasheet": "https://www.ti.com/lit/ds/symlink/tca6408a.pdf",
    "parts": {
      "symbol": "tca6408a.kicad_sym",
      "footprint": "tca6408a.kicad_mod",
      "model_3d": "tca6408a-etched.glb",
      "model_3d_plain": "tca6408a.glb",
      "model_3d_step": "tca6408a-etched.step",
      "model_3d_step_plain": "tca6408a.step",
      "lbr": "tca6408a.lbr"
    },
    "distributor_links": {},
    "pins": [
      {
        "number": "1",
        "name": "VCCI",
        "type": "power_in",
        "description": "Supply voltage for the I2C side (1.65-5.5 V). Connect directly to the VCC of the external I2C controller; provides voltage-level translation between the I2C bus and the P-ports."
      },
      {
        "number": "2",
        "name": "ADDR",
        "type": "input",
        "description": "Hardware I2C slave-address select input. Tie directly to VCCP for one address or to GND for the other; VIH ≥ 0.7 x VCCP."
      },
      {
        "number": "3",
        "name": "RESET",
        "type": "input",
        "description": "Active-low reset input. Drive low to reset the device registers to their default (all P-ports as inputs). Connect to VCCI through a pull-up resistor if no active drive is used."
      },
      {
        "number": "4",
        "name": "P0",
        "type": "bidirectional",
        "description": "P-port 0. Push-pull general-purpose I/O referenced to VCCP; configured as an input at power-up. IOL up to 25 mA (P-port continuous 50 mA max)."
      },
      {
        "number": "5",
        "name": "P1",
        "type": "bidirectional",
        "description": "P-port 1. Push-pull general-purpose I/O referenced to VCCP; configured as an input at power-up."
      },
      {
        "number": "6",
        "name": "P2",
        "type": "bidirectional",
        "description": "P-port 2. Push-pull general-purpose I/O referenced to VCCP; configured as an input at power-up."
      },
      {
        "number": "7",
        "name": "P3",
        "type": "bidirectional",
        "description": "P-port 3. Push-pull general-purpose I/O referenced to VCCP; configured as an input at power-up."
      },
      {
        "number": "8",
        "name": "GND",
        "type": "power_in",
        "description": "Device ground reference. Continuous current through GND rated to 200 mA."
      },
      {
        "number": "9",
        "name": "P4",
        "type": "bidirectional",
        "description": "P-port 4. Push-pull general-purpose I/O referenced to VCCP; configured as an input at power-up."
      },
      {
        "number": "10",
        "name": "P5",
        "type": "bidirectional",
        "description": "P-port 5. Push-pull general-purpose I/O referenced to VCCP; configured as an input at power-up."
      },
      {
        "number": "11",
        "name": "P6",
        "type": "bidirectional",
        "description": "P-port 6. Push-pull general-purpose I/O referenced to VCCP; configured as an input at power-up."
      },
      {
        "number": "12",
        "name": "P7",
        "type": "bidirectional",
        "description": "P-port 7. Push-pull general-purpose I/O referenced to VCCP; configured as an input at power-up."
      },
      {
        "number": "13",
        "name": "INT",
        "type": "output",
        "description": "Open-drain active-low interrupt output. Asserted when any P-port input changes state. Connect to VCCI through a pull-up resistor."
      },
      {
        "number": "14",
        "name": "SCL",
        "type": "input",
        "description": "I2C serial clock input. Connect to VCCI through a pull-up resistor; supports 100-kHz Standard-mode and 400-kHz Fast-mode."
      },
      {
        "number": "15",
        "name": "SDA",
        "type": "bidirectional",
        "description": "I2C serial data bus (open-drain). Connect to VCCI through a pull-up resistor; IOL up to 25 mA."
      },
      {
        "number": "16",
        "name": "VCCP",
        "type": "power_in",
        "description": "Supply voltage for the P-port side (1.65-5.5 V). Sets the logic level of P0-P7; continuous current through VCCP rated to 160 mA."
      }
    ],
    "provenance": {
      "extractor": "ds2sf",
      "datasheet": {
        "url": "https://www.ti.com/lit/ds/symlink/tca6408a.pdf",
        "pages": 50,
        "sha256": "4e444553aa8bf678",
        "source_tier": "mfr"
      },
      "cad": "KiCad official (CC-BY-SA 4.0)",
      "pins": {
        "total": 16,
        "described": 16,
        "cites_pages": true,
        "refuses_to_fabricate": true
      }
    },
    "viewers": {
      "symbol": "viewers/symbol.html",
      "footprint": "viewers/footprint.html"
    },
    "models_3d": [
      {
        "file": "tca6408a.step",
        "role": "plain",
        "up": "Z",
        "units": "mm",
        "origin": "footprint origin = pad-pattern centre",
        "seat": "z = 0",
        "extents_mm": [
          6.4,
          5.0,
          1.1
        ],
        "zmin_mm": -0.0,
        "centre_offset_mm": 0.0,
        "footprint_binding": "identity",
        "sha256": "6ad5e98224d02a427d9a6b929a28dbc158b9925fba5adec12db05079f1016948",
        "checked": "2026-10-07",
        "checked_by": "factory/step_pose.py (Z-up, origin, seat, binding)"
      },
      {
        "file": "tca6408a-etched.step",
        "role": "eda",
        "up": "Z",
        "units": "mm",
        "origin": "footprint origin = pad-pattern centre",
        "seat": "z = 0",
        "extents_mm": [
          6.4,
          5.0,
          1.1
        ],
        "zmin_mm": -0.0,
        "centre_offset_mm": 0.0,
        "footprint_binding": "identity",
        "sha256": "89e88ae16d64a9724d1f709a4709b172755efe98b5b60ae77e0aa68650d3b1f3",
        "checked": "2026-10-07",
        "checked_by": "factory/step_pose.py (Z-up, origin, seat, binding)"
      }
    ]
  },
  "metadata": {
    "specs": {
      "Type": "8-bit I2C I/O expander",
      "I/O": "8, per-pin direction",
      "Interface": "I2C (up to 400 kHz)",
      "Features": "Polarity inversion, interrupt, reset",
      "Addressing": "1 address pin (2 devices)",
      "Supply voltage": "1.65 V to 5.5 V",
      "Operating temperature": "-40 C to 85 C"
    }
  },
  "sections": [
    "hero",
    "viewers",
    "readme",
    "breadcrumbs",
    "info"
  ],
  "discovery_triggers": [
    "I2C GPIO expander",
    "add 8 I/O",
    "port expander",
    "interrupt on change"
  ],
  "discovery_pitch": "Add 8 configurable GPIO pins to an MCU over I2C, with per-pin direction, polarity inversion, and an interrupt output.",
  "author": {
    "name": "Ray",
    "email": "[email protected]"
  },
  "dependencies": {},
  "hero": {
    "type": "image",
    "path": "docs/hero.png"
  },
  "files": [
    "page.json",
    "README.md",
    "tca6408a.kicad_sym",
    "tca6408a.kicad_mod",
    "tca6408a.glb",
    "tca6408a.step",
    "tca6408a.lbr",
    "docs/hero.png",
    "docs/tca6408a-datasheet.pdf",
    "viewers/symbol.html",
    "viewers/footprint.html",
    "tca6408a-etched.step"
  ],
  "variants": [
    {
      "mpn": "TCA6408APW",
      "kind": "unknown"
    },
    {
      "mpn": "TCA6408APWR",
      "kind": "unknown"
    },
    {
      "mpn": "TCA6408ARGT",
      "kind": "unknown"
    },
    {
      "mpn": "TCA6408ARGTR",
      "kind": "unknown"
    },
    {
      "mpn": "TCA6408ARSV",
      "kind": "unknown"
    },
    {
      "mpn": "TCA6408ARSVR",
      "kind": "unknown"
    }
  ]
}