Texas Instruments MPN encoding patterns, suffix decoding, and handler guidance. Use when working with TI components or TIHandler.
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.)
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
<!-- Add new learnings above this line -->| 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 |
| 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 |
| 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 |
| 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) |
| Prefix | Category | Examples |
|---|---|---|
| TPS | Power supply | TPS63020 (buck-boost), TPS7350 (LDO) |
| TLV | Low voltage | TLV431 (low-V reference) |
| LP | Low power | LP2950 (LDO) |
| Prefix | Category | Examples |
|---|---|---|
| SN | TI logic | SN74HC595 (shift register) |
| CD | CMOS logic | CD4017 (decade counter) |
| Prefix | Category | Examples |
|---|---|---|
| MSP430 | Ultra-low-power MCU | MSP430G2553 |
| CC | Wireless MCU | CC2541 (BLE), CC3200 (WiFi) |
| 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 |
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 = Positive voltage regulator 79xx = Negative voltage regulator
LM7805CT → +5V regulator, TO-220
LM7905CT → -5V regulator, TO-220
| 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 |
| 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 | - |
| Series | Type | Output |
|---|---|---|
| LM35 | Precision analog | 10mV/°C |
| TMP36 | Precision analog | 10mV/°C + 500mV offset |
// 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"
// 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"
manufacturers/TIHandler.javaOPAMP_TI, VOLTAGE_REGULATOR_LINEAR_TI, VOLTAGE_REGULATOR_SWITCHING_TI, TEMPERATURE_SENSOR_TI, LED_TIPackageCodeRegistry.java (standard codes)endsWith() for package detection, ALWAYS check longer suffixes first. "DT" ends with "T", so checking "T" first causes wrong results.handlers package, NOT manufacturers package (causes classpath shadowing)MPNUtils.getManufacturerHandler("LM358") in tests, not new TIHandler() (causes circular init)