{
  "metadata": {
    "id": "texas-instruments-tmp117maidrvr",
    "name": "Texas Instruments TMP117MAIDRVR Digital Temperature Sensor",
    "type": "sensor",
    "description": "High-accuracy 16-bit digital temperature sensor with I2C/SMBus interface and EEPROM in a 6-pin WSON (DRV) package.",
    "manufacturer": "Texas Instruments",
    "part_number": "TMP117MAIDRVR",
    "datasheet_url": "https://www.ti.com/lit/ds/symlink/tmp117.pdf",
    "tags": [
      "tmp117maidrvr",
      "tmp117",
      "temperature-sensor",
      "digital-sensor",
      "i2c",
      "smbus",
      "wson-6",
      "ti"
    ],
    "schema_version": "1.4.0",
    "version": "1.0.0-rc.2",
    "taxonomy": [
      "sensor.environmental"
    ]
  },
  "domains": [
    {
      "domain": "electrical",
      "power_domains": [
        {
          "id": "vdd",
          "name": "Sensor Supply",
          "nominal_voltage_V": 3.3,
          "voltage_range_V": [
            1.8,
            5.5
          ],
          "max_current_mA": null,
          "isolation_type": "non_isolated",
          "ground_reference": "common",
          "description": "Primary supply input for TMP117MAIDRVR."
        }
      ],
      "resources": [
        {
          "id": "vplus",
          "name": "V+",
          "description": "Supply voltage input.",
          "functions": [
            {
              "name": "power_input",
              "direction": "sink",
              "signal_class": "power"
            }
          ],
          "connector_type": "smd_pin",
          "power_domain_id": "vdd"
        },
        {
          "id": "gnd",
          "name": "GND",
          "description": "Ground reference.",
          "functions": [
            {
              "name": "ground",
              "direction": "bidirectional",
              "signal_class": "ground"
            }
          ],
          "connector_type": "smd_pin",
          "power_domain_id": "vdd"
        },
        {
          "id": "sda",
          "name": "SDA",
          "description": "I2C/SMBus serial data line.",
          "functions": [
            {
              "name": "i2c_sda",
              "direction": "bidirectional",
              "signal_class": "data"
            }
          ],
          "connector_type": "smd_pin",
          "power_domain_id": "vdd"
        },
        {
          "id": "scl",
          "name": "SCL",
          "description": "I2C/SMBus serial clock line.",
          "functions": [
            {
              "name": "i2c_scl",
              "direction": "sink",
              "signal_class": "clock"
            }
          ],
          "connector_type": "smd_pin",
          "power_domain_id": "vdd"
        },
        {
          "id": "alert",
          "name": "ALERT",
          "description": "Programmable temperature alert output (open-drain behavior).",
          "functions": [
            {
              "name": "digital_output",
              "direction": "source",
              "signal_class": "status"
            }
          ],
          "connector_type": "smd_pin",
          "power_domain_id": "vdd"
        },
        {
          "id": "add0",
          "name": "ADD0",
          "description": "Address select input for 7-bit I2C address selection.",
          "functions": [
            {
              "name": "digital_input",
              "direction": "sink",
              "signal_class": "control"
            }
          ],
          "connector_type": "smd_pin",
          "power_domain_id": "vdd"
        }
      ],
      "interfaces": [
        {
          "id": "power_input",
          "name": "Power Input",
          "protocol": {
            "type": "power",
            "role": "input"
          },
          "requires": [
            {
              "function": "power_input",
              "count": 1
            },
            {
              "function": "ground",
              "count": 1
            }
          ],
          "power_delivery": {
            "max_voltage_V": 5.5,
            "min_voltage_V": 1.8
          },
          "description": "Power input interface for sensor operation."
        },
        {
          "id": "i2c_target",
          "name": "I2C Target",
          "protocol": {
            "type": "i2c",
            "role": "slave"
          },
          "requires": [
            {
              "function": "i2c_sda",
              "count": 1
            },
            {
              "function": "i2c_scl",
              "count": 1
            }
          ],
          "protocol_max_freq_Hz": 4000000,
          "constraints": {
            "requires_matching_voltage_domain": true
          },
          "description": "Digital temperature telemetry and configuration over I2C/SMBus-compatible bus."
        },
        {
          "id": "alert_signal",
          "name": "Alert Output",
          "protocol": {
            "type": "digital",
            "role": "output"
          },
          "requires": [
            {
              "function": "digital_output",
              "count": 1
            }
          ],
          "description": "Interrupt-style alert output for threshold events."
        },
        {
          "id": "i2c_address_select_add0",
          "name": "I2C Address Select (ADD0)",
          "protocol": {
            "type": "digital",
            "role": "input"
          },
          "requires": [
            {
              "function": "digital_input",
              "count": 1
            }
          ],
          "constraints": {
            "requires_matching_voltage_domain": true
          },
          "description": "ADD0 strap pin used to select the I2C address (must be tied to a valid state per datasheet)."
        }
      ],
      "supply_voltage_V": [
        1.8,
        5.5
      ],
      "pin_count": 6
    },
    {
      "domain": "thermal",
      "resources": [],
      "interfaces": [],
      "operating_temperature_C": [
        -55,
        150
      ],
      "metadata": {
        "sensing_resolution_C_per_lsb": 0.0078,
        "max_accuracy_C": 0.1,
        "package": "WSON-6 (DRV)"
      }
    }
  ],
  "design_rules": [
    "Place local bypass capacitance close to V+ and GND pins to minimize noise-induced measurement error.",
    "Use a pull-up resistor on ALERT when host interrupt detection is required.",
    "Route SDA and SCL with appropriate pull-ups for selected bus voltage domain and speed.",
    "Set ADD0 strap according to desired address and avoid floating state during operation."
  ],
  "validation_requirements": [
    "Verify I2C communication at selected address with register read/write smoke tests.",
    "Confirm temperature conversion resolution and register decoding at 16-bit output.",
    "Validate ALERT threshold behavior and polarity/interrupt mode configuration.",
    "Confirm measurement accuracy against a calibrated reference in target operating range."
  ],
  "usage_notes": "TMP117MAIDRVR is suited for precision board and ambient temperature monitoring where low drift and calibrated digital output are required.",
  "application_examples": [
    "Medical-grade body temperature monitoring",
    "Industrial process thermal monitoring",
    "Battery pack and charger thermal supervision",
    "Embedded system board-level thermal telemetry"
  ],
  "compatibility_notes": "Supports SMBus and I2C signaling with four address options via ADD0 strap; integrates with 1.8 V to 5.5 V logic domains when pull-ups are chosen appropriately.",
  "warnings": [
    "Do not exceed 5.5 V on V+ pin.",
    "ALERT pin is open-drain style and requires external pull-up for valid high level.",
    "Accuracy depends on PCB layout and thermal coupling; avoid self-heating sources near the package."
  ]
}