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.mdsource 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
| Code | Package | Pin Count | Notes |
|---|---|---|---|
| N | DIP | 8-40 | Plastic DIP |
| P | DIP | 8-40 | Plastic DIP (alternate) |
| T | TO-220 | 3-5 | Power package |
| T3 | TO-220 | 3 | 3-pin TO-220 |
| K | TO-3 | 2-3 | Metal can power |
| H | TO-39 | 8 | Metal can |
Surface Mount - Small Signal
| Code | Package | Pitch | Notes |
|---|---|---|---|
| D | SOIC | 1.27mm | 8-16 pins |
| DW | SOIC-Wide | 1.27mm | Wide body |
| PW | TSSOP | 0.65mm | Thin profile |
| DGK | MSOP/VSSOP | 0.5mm | Mini SOIC |
| DBV | SOT-23 | 0.95mm | 5-6 pins |
| DRL | SOT-553 | 0.5mm | Very small |
| DRV | SON | 0.5mm | QFN variant |
Surface Mount - Power
| Code | Package | Notes |
|---|---|---|
| KC | TO-252 (DPAK) | Medium power SMD |
| KV | TO-252 | Variant |
| MP | SOT-223 | 4-pin power |
| DT | SOT-223 | Alternate code |
Family Prefixes
Analog/Linear (LM, TL, NE)
| Prefix | Category | Examples |
|---|---|---|
| LM | General analog | LM358 (op-amp), LM7805 (regulator), LM317 (adj reg) |
| TL | TI Linear | TL072 (JFET op-amp), TL431 (reference) |
| NE | Signetics legacy | NE5532 (low-noise op-amp) |
| UA | Original TI | UA7805 (equivalent to LM7805) |
Power Management (TPS, TLV, LP)
| Prefix | Category | Examples |
|---|---|---|
| TPS | Power supply | TPS63020 (buck-boost), TPS7350 (LDO) |
| TLV | Low voltage | TLV431 (low-V reference) |
| LP | Low power | LP2950 (LDO) |
Logic & Interface (SN, CD)
| Prefix | Category | Examples |
|---|---|---|
| SN | TI logic | SN74HC595 (shift register) |
| CD | CMOS logic | CD4017 (decade counter) |
Microcontrollers (MSP, CC)
| Prefix | Category | Examples |
|---|---|---|
| MSP430 | Ultra-low-power MCU | MSP430G2553 |
| CC | Wireless MCU | CC2541 (BLE), CC3200 (WiFi) |
Temperature Grades
| Suffix | Range | Application |
|---|---|---|
| (none) | 0°C to +70°C | Commercial |
| I | -40°C to +85°C | Industrial |
| A | -40°C to +85°C | Industrial (alternate) |
| Q | -40°C to +125°C | Automotive |
| M | -55°C to +125°C | Military |
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
| Series | Type | Equivalent |
|---|---|---|
| LM358 | Dual, general purpose | MC1458, RC4558 |
| LM324 | Quad, general purpose | MC3403 |
| TL072 | Dual JFET, low noise | TL082 |
| TL074 | Quad JFET | TL084 |
| NE5532 | Dual, low noise | SA5532 |
| LM311 | Comparator | LM211 |
Voltage Regulators
| Series | Type | Voltage | Equivalent |
|---|---|---|---|
| LM7805 | Fixed positive | +5V | MC7805, UA7805 |
| LM7812 | Fixed positive | +12V | MC7812 |
| LM7905 | Fixed negative | -5V | MC7905 |
| LM317 | Adjustable positive | 1.25-37V | LM350, LM338 |
| LM337 | Adjustable negative | -1.25 to -37V | - |
Temperature Sensors
| Series | Type | Output |
|---|---|---|
| LM35 | Precision analog | 10mV/°C |
| TMP36 | Precision analog | 10mV/°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_TILED_TI - Package registry:
(standard codes)PackageCodeRegistry.java
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
for package detection, ALWAYS check longer suffixes first. "DT" ends with "T", so checking "T" first causes wrong results.endsWith() - TIHandlerTest location: Tests must be in
package, NOThandlers
package (causes classpath shadowing)manufacturers - Handler initialization: Use
in tests, notMPNUtils.getManufacturerHandler("LM358")
(causes circular init)new TIHandler()