Lib-electronic-components ti

Texas Instruments MPN encoding patterns, suffix decoding, and handler guidance. Use when working with TI components or TIHandler.

install
source · Clone the upstream repo
git clone https://github.com/Cantara/lib-electronic-components
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/Cantara/lib-electronic-components "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/manufacturers/ti" ~/.claude/skills/cantara-lib-electronic-components-ti && rm -rf "$T"
manifest: .claude/skills/manufacturers/ti/SKILL.md
source content

Texas Instruments (TI) Manufacturer Skill

MPN Structure

TI MPNs follow this general structure:

[PREFIX][SERIES][VARIANT][PACKAGE][TEMP][QUALIFIER]
   │       │        │        │      │       │
   │       │        │        │      │       └── Optional: R=Tape/Reel, E=Lead-free
   │       │        │        │      └── Temperature: I=Industrial, Q=Automotive, M=Military
   │       │        │        └── Package code (see table below)
   │       │        └── Variant letter (A, B, C for improved specs)
   │       └── Series number (e.g., 358, 7805, 317)
   └── Family prefix (LM, TL, TPS, SN, etc.)

Example Decoding

LM358DR
│  │  ││
│  │  │└── R = Tape and Reel
│  │  └── D = SOIC package
│  └── 358 = Dual Op-Amp series
└── LM = Linear/Mixed-signal prefix

TPS63020DSJR
│  │    │  │
│  │    │  └── R = Tape and Reel
│  │    └── DSJ = SON package (3x3mm)
│  └── 63020 = Buck-Boost converter
└── TPS = Power Supply prefix

Package Codes

Through-Hole Packages

CodePackagePin CountNotes
NDIP8-40Plastic DIP
PDIP8-40Plastic DIP (alternate)
TTO-2203-5Power package
T3TO-22033-pin TO-220
KTO-32-3Metal can power
HTO-398Metal can

Surface Mount - Small Signal

CodePackagePitchNotes
DSOIC1.27mm8-16 pins
DWSOIC-Wide1.27mmWide body
PWTSSOP0.65mmThin profile
DGKMSOP/VSSOP0.5mmMini SOIC
DBVSOT-230.95mm5-6 pins
DRLSOT-5530.5mmVery small
DRVSON0.5mmQFN variant

Surface Mount - Power

CodePackageNotes
KCTO-252 (DPAK)Medium power SMD
KVTO-252Variant
MPSOT-2234-pin power
DTSOT-223Alternate code

Family Prefixes

Analog/Linear (LM, TL, NE)

PrefixCategoryExamples
LMGeneral analogLM358 (op-amp), LM7805 (regulator), LM317 (adj reg)
TLTI LinearTL072 (JFET op-amp), TL431 (reference)
NESignetics legacyNE5532 (low-noise op-amp)
UAOriginal TIUA7805 (equivalent to LM7805)

Power Management (TPS, TLV, LP)

PrefixCategoryExamples
TPSPower supplyTPS63020 (buck-boost), TPS7350 (LDO)
TLVLow voltageTLV431 (low-V reference)
LPLow powerLP2950 (LDO)

Logic & Interface (SN, CD)

PrefixCategoryExamples
SNTI logicSN74HC595 (shift register)
CDCMOS logicCD4017 (decade counter)

Microcontrollers (MSP, CC)

PrefixCategoryExamples
MSP430Ultra-low-power MCUMSP430G2553
CCWireless MCUCC2541 (BLE), CC3200 (WiFi)

Temperature Grades

SuffixRangeApplication
(none)0°C to +70°CCommercial
I-40°C to +85°CIndustrial
A-40°C to +85°CIndustrial (alternate)
Q-40°C to +125°CAutomotive
M-55°C to +125°CMilitary

Critical Pattern Conflicts

LM35 vs LM358

LM35 = Temperature sensor (letter A-D after "35") LM358 = Dual op-amp (digit 8 after "35")

LM35DZ   → Temperature sensor (D = grade, Z = TO-92 package)
LM358N   → Dual op-amp (8 = part of series, N = DIP package)

Handler Pattern:

// LM35 sensors: letter A-D immediately after "35"
"^LM35[A-D][A-Z0-9-]*$"

// LM358 op-amps: digit after "35"
"^LM358[A-Z0-9]*(?:N|D|P|DG|PW)?$"

78xx vs 79xx Regulators

78xx = Positive voltage regulator 79xx = Negative voltage regulator

LM7805CT  → +5V regulator, TO-220
LM7905CT  → -5V regulator, TO-220

Common Series Reference

Op-Amps

SeriesTypeEquivalent
LM358Dual, general purposeMC1458, RC4558
LM324Quad, general purposeMC3403
TL072Dual JFET, low noiseTL082
TL074Quad JFETTL084
NE5532Dual, low noiseSA5532
LM311ComparatorLM211

Voltage Regulators

SeriesTypeVoltageEquivalent
LM7805Fixed positive+5VMC7805, UA7805
LM7812Fixed positive+12VMC7812
LM7905Fixed negative-5VMC7905
LM317Adjustable positive1.25-37VLM350, LM338
LM337Adjustable negative-1.25 to -37V-

Temperature Sensors

SeriesTypeOutput
LM35Precision analog10mV/°C
TMP36Precision analog10mV/°C + 500mV offset

Handler Implementation Notes

Package Code Extraction

// TI package codes come AFTER the base part number
// Example: LM358D → base="LM358", package="D"

// For voltage regulators, package often follows voltage
// Example: LM7805CT → base="LM7805", package="CT" (TO-220)

// CRITICAL: Check longer suffixes BEFORE shorter ones!
// "LM7805DT".endsWith("T") is TRUE, but DT=SOT-223, not TO-220
if (suffix.endsWith("CT")) return "TO-220";   // 2-char first
if (suffix.endsWith("DT")) return "SOT-223";  // 2-char first
if (suffix.endsWith("MP")) return "SOT-223";  // 2-char first
if (suffix.endsWith("KC")) return "TO-252";   // 2-char first
if (suffix.endsWith("T")) return "TO-220";    // 1-char LAST

// Same for SOIC vs MSOP vs TSSOP
if (suffix.startsWith("DGK")) return "MSOP";  // 3-char first
if (suffix.startsWith("PW")) return "TSSOP";  // 2-char
if (suffix.startsWith("D")) return "SOIC";    // 1-char LAST

Bug Example (Fixed in PR #78):

// WRONG - "DT" ends with "T" so this returns TO-220 incorrectly
if (upperMpn.endsWith("T")) return "TO-220";   // Matches first!
if (upperMpn.endsWith("DT")) return "SOT-223"; // Never reached

// CORRECT - Check longer suffixes first
if (upperMpn.endsWith("DT")) return "SOT-223"; // Matches correctly
if (upperMpn.endsWith("T")) return "TO-220";   // Only bare "T"

Series Extraction

// Extract base series before package/temperature suffix
// LM358APWRQ1 → LM358 (ignore A=variant, PW=package, R=tape, Q1=automotive)

// Voltage regulators include voltage in series
// LM7805 → full series is "LM7805" not just "LM78"

Related Files

  • Handler:
    manufacturers/TIHandler.java
  • Component types:
    OPAMP_TI
    ,
    VOLTAGE_REGULATOR_LINEAR_TI
    ,
    VOLTAGE_REGULATOR_SWITCHING_TI
    ,
    TEMPERATURE_SENSOR_TI
    ,
    LED_TI
  • Package registry:
    PackageCodeRegistry.java
    (standard codes)

Learnings & Edge Cases

  • LM317 vs LM350 vs LM338: Same adjustable regulator family, different current ratings (1.5A/3A/5A)
  • UA prefix: Original TI designation, functionally equivalent to LM (UA7805 = LM7805)
  • Automotive suffix Q1/Q: Indicates AEC-Q100 qualified for automotive use
  • Green/lead-free: Suffix "G" or "E" sometimes indicates RoHS compliance
  • Suffix ordering bug (PR #78): When using
    endsWith()
    for package detection, ALWAYS check longer suffixes first. "DT" ends with "T", so checking "T" first causes wrong results.
  • TIHandlerTest location: Tests must be in
    handlers
    package, NOT
    manufacturers
    package (causes classpath shadowing)
  • Handler initialization: Use
    MPNUtils.getManufacturerHandler("LM358")
    in tests, not
    new TIHandler()
    (causes circular init)
<!-- Add new learnings above this line -->