Lib-electronic-components mps
Monolithic Power Systems MPN encoding patterns, suffix decoding, and handler guidance. Use when working with MPS power components or MPSHandler.
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/mps" ~/.claude/skills/cantara-lib-electronic-components-mps && rm -rf "$T"
manifest:
.claude/skills/manufacturers/mps/SKILL.mdsource content
Monolithic Power Systems (MPS) Manufacturer Skill
Manufacturer Overview
MPS (Monolithic Power Systems) specializes in high-performance power management solutions. The company is known for:
- DC-DC Converters: Step-down (buck), step-up (boost), and SEPIC converters
- LED Drivers: Constant-current drivers for backlighting and general illumination
- Motor Drivers: Stepper and brushless DC motor controllers
- Power Modules: Integrated solutions with inductor and passives included
- Automotive-grade variants: AEC-Q100 qualified parts (MPQ series)
MPN Structure
MPS MPNs follow this general structure:
[PREFIX][SERIES][VARIANT][PACKAGE][-SUFFIX] | | | | | | | | | +-- Optional: LF=Lead-free, Z=RoHS, AEC1=Automotive | | | +-- 2-letter package code (EN, DN, GQ, etc.) | | +-- Optional variant letter | +-- 3-4 digit part number +-- MP, MPQ (automotive), or MPM (module)
Prefix Meanings
| Prefix | Category | Pattern | Description |
|---|---|---|---|
| MP1 | Step-Down | | Entry-level DC-DC converters |
| MP2 | Step-Down/LDO | | Buck converters and LDOs |
| MP3 | LED Driver | | LED driver ICs |
| MP4 | High-Current | | High-current step-down converters |
| MP5 | Step-Up/SEPIC | | Boost and SEPIC converters |
| MP6 | Motor Driver | | Stepper/BLDC motor drivers |
| MP7 | Power Switch | | Load switches and eFuses |
| MP8 | Multi-Channel | | PMICs with multiple outputs |
| MP9 | High-Voltage | | High-voltage DC-DC converters |
| MPQ | Automotive | | AEC-Q100 qualified versions |
| MPM | Module | | Power modules with inductor |
Example Decoding
MP1584EN-LF-Z | | || | | | | || | +-- Z = RoHS compliant | | || +-- LF = Lead-free | | |+-- EN = SOIC-8E package | | +-- (no variant letter) | +-- 1584 = 3A step-down converter +-- MP = Standard MPS prefix MPQ4560GQ-AEC1-LF-Z | | || | | | || +-- AEC1-LF-Z = Automotive + Lead-free + RoHS | | |+-- GQ = QFN package | | +-- (no variant) | +-- 4560 = 2A step-down converter +-- MPQ = Automotive-grade prefix MPM3610GQV-Z | | | | | | | +-- Z = RoHS | | +-- GQV = QFN variant package | +-- 3610 = 1.2A power module +-- MPM = Power module prefix
Package Codes
QFN Variants
| Code | Package | Notes |
|---|---|---|
| GQ | QFN | Standard QFN |
| GL | QFN | QFN variant |
| GR | QFN | QFN variant |
| GS | QFN-EP | QFN with exposed pad |
| GT | QFN | QFN variant |
| GU | QFN | QFN variant |
| GV | QFN | QFN variant |
| GN | QFN | QFN variant |
WLCSP (Wafer-Level Chip Scale Package)
| Code | Package | Notes |
|---|---|---|
| GF | WLCSP | Ultra-small form factor |
| GW | WLCSP | WLCSP variant |
SOIC/SOP Variants
| Code | Package | Notes |
|---|---|---|
| EN | SOIC-8E | Extended SOIC-8 |
| DN | SO-8 | Standard SOIC-8 |
| EC | SOIC-8 | SOIC-8 variant |
| EF | SOIC-8 | SOIC-8 variant |
| EG | TSSOP-8 | Thin profile |
| EH | TSSOP-16 | 16-pin TSSOP |
| EJ | SOP-8 | SOP-8 variant |
| EK | MSOP-8 | Mini SOIC-8 |
| EL | MSOP-10 | Mini SOIC-10 |
SOT Variants
| Code | Package | Notes |
|---|---|---|
| DF | TSOT-23 | Thin SOT-23 |
| DG | TSOT-23-5 | 5-pin thin SOT |
| DH | SOT-23-8 | 8-pin SOT-23 |
DFN Variants
| Code | Package | Notes |
|---|---|---|
| DJ | DFN | Standard DFN |
| DK | DFN-10 | 10-pin DFN |
| DL | DFN-12 | 12-pin DFN |
Module Packages
| Code | Package | Notes |
|---|---|---|
| MN | QFN-Module | Module with QFN footprint |
| MF | Module-BGA | BGA module package |
Power Packages
| Code | Package | Notes |
|---|---|---|
| HF | TO-263 | D2PAK power package |
| HN | TO-220 | Through-hole power |
Component Type Mapping
The MPSHandler supports these ComponentTypes:
| MPN Pattern | ComponentType | Description |
|---|---|---|
, , , , , , | VOLTAGE_REGULATOR | DC-DC converters and regulators |
(except 3xxx/6xxx) | VOLTAGE_REGULATOR | Automotive DC-DC converters |
| VOLTAGE_REGULATOR | Power modules |
| LED_DRIVER | LED driver ICs |
| LED_DRIVER | Automotive LED drivers |
| MOTOR_DRIVER | Motor controller ICs |
| MOTOR_DRIVER | Automotive motor drivers |
| All MPS parts | IC | Base IC type for all parts |
Series Extraction Rules
The handler extracts series as follows:
// MPM series: returns "MPM" "MPM3610GQV-Z" -> "MPM" // MPQ series: returns "MPQ" "MPQ4560GQ-AEC1-LF-Z" -> "MPQ" // Standard MP[1-9]xxx: returns first 3 characters "MP1584EN-LF-Z" -> "MP1" "MP2307DN-LF-Z" -> "MP2" "MP6500HF" -> "MP6"
Series Descriptions
| Series | Category |
|---|---|
| MP1 | Step-Down Converters |
| MP2 | Step-Down/LDO Converters |
| MP3 | LED Drivers |
| MP4 | High-Current Step-Down |
| MP5 | Step-Up/SEPIC Converters |
| MP6 | Motor Drivers |
| MP7 | Power Switches |
| MP8 | Multi-Channel PMIC |
| MP9 | High-Voltage Converters |
| MPQ | Automotive Grade |
| MPM | Power Modules |
Package Code Extraction Rules
The handler extracts package codes with this logic:
- Remove common suffixes:
,-LF-Z
,-Z
,-LF
, etc.-AEC1 - Match pattern:
MP[A-Z]?[0-9]{3,4}([A-Z]{2}).* - Look up the 2-letter code in the PACKAGE_CODES map
- Return the mapped package name or the raw code
// Example extraction: "MP1584EN-LF-Z" -> Remove suffix: "MP1584EN" -> Match: group(1) = "EN" -> Lookup: PACKAGE_CODES.get("EN") = "SOIC-8E" "MPQ4560GQ-AEC1-LF-Z" -> Remove suffix: "MPQ4560GQ" -> Match: group(1) = "GQ" -> Lookup: PACKAGE_CODES.get("GQ") = "QFN"
Official Replacement Logic
The handler identifies official replacements in two scenarios:
Same Base Part, Different Package
MP1584EN <-> MP1584DN // Same part, different package (SOIC-8E vs SO-8)
Automotive Equivalents (MPQ vs MP)
MP4560GQ <-> MPQ4560GQ // Consumer vs automotive grade
The
isOfficialReplacement() method checks:
- Automotive equivalents (MPQ ↔ MP with same 4-digit number)
- Same series and same base part number
Automotive Detection
MPS uses two indicators for automotive-grade parts:
// Method: isAutomotiveGrade(String mpn) // 1. MPQ prefix indicates automotive "MPQ4560GQ-LF-Z" -> true // 2. -AEC suffix indicates automotive qualification "MP4560GQ-AEC1-LF-Z" -> true // Standard consumer parts "MP4560GQ-LF-Z" -> false
Common Part Examples
Step-Down Converters (Buck)
| MPN | Description | Key Specs |
|---|---|---|
| MP1584EN-LF-Z | 3A step-down | 4.5-28V input, SOT-8E |
| MP2307DN-LF-Z | 3A step-down | 4.75-23V input, SO-8 |
| MP2359DJ-LF-Z | 1.2A step-down | 4.5-24V input, DFN |
| MP4560DN-LF-Z | 2A step-down | 4.5-55V input, SO-8 |
LED Drivers
| MPN | Description | Key Specs |
|---|---|---|
| MP3302DJ-LF-Z | LED driver | 2.7-6V input, DFN |
| MP3394GS-Z | 4-channel LED | QFN-EP |
Motor Drivers
| MPN | Description | Key Specs |
|---|---|---|
| MP6500HF | Stepper driver | 2.5A, TO-263 |
| MP6513GQ-Z | 3-phase BLDC | QFN |
Power Modules
| MPN | Description | Key Specs |
|---|---|---|
| MPM3610GQV-Z | 1.2A module | Integrated inductor |
| MPM3833GQV-Z | 3.3A module | Integrated inductor |
Handler Implementation Notes
Supported Types Declaration
The handler uses
Set.of() for immutable type set:
public Set<ComponentType> getSupportedTypes() { return Set.of( ComponentType.IC, ComponentType.VOLTAGE_REGULATOR, ComponentType.LED_DRIVER, ComponentType.MOTOR_DRIVER ); }
Pattern Registration
Patterns are registered for both specific and base types:
// MP3xxx registered for both LED_DRIVER and IC registry.addPattern(ComponentType.LED_DRIVER, "^MP3[0-9]{3}[A-Z0-9-]*$"); registry.addPattern(ComponentType.IC, "^MP3[0-9]{3}[A-Z0-9-]*$");
matches() Implementation
The handler overrides
matches() for efficient direct pattern checking:
// Direct pattern checks by type for performance switch (type) { case VOLTAGE_REGULATOR: return isVoltageRegulator(upperMpn); case LED_DRIVER: return isLEDDriver(upperMpn); case MOTOR_DRIVER: return isMotorDriver(upperMpn); case IC: return isMPSPart(upperMpn); }
Related Files
- Handler:
manufacturers/MPSHandler.java - Component types:
,VOLTAGE_REGULATOR
,LED_DRIVER
,MOTOR_DRIVERIC - Test file:
(if exists)handlers/MPSHandlerTest.java
Learnings & Edge Cases
- MPQ vs MP: The automotive variant MPQ has a 4-digit part number (MPQ4560) while standard MP uses 4 digits after the prefix character (MP4560). This is a 1-character offset when extracting the numeric part.
- AEC suffix: Parts can be automotive without MPQ prefix if they have
suffix. Always check both.-AEC1 - Package code position: Package codes come immediately after the part number digits, before any hyphens. The handler strips
and similar suffixes before extraction.-LF-Z - Module prefix MPM: Power modules have their own prefix and are different from standard MP parts - they include an integrated inductor.
- Series overlap: MP6xxx (motor drivers) and MPQ6xxx are the same - both are motor drivers. Same for MP3xxx/MPQ3xxx (LED drivers). The MPQ prefix only adds automotive qualification.
- getSupportedTypes() uses Set.of(): The handler correctly uses immutable Set.of() instead of HashSet.
- No manufacturer-specific types: Unlike some handlers, MPS doesn't define manufacturer-specific ComponentTypes like
. It uses the base types directly.VOLTAGE_REGULATOR_MPS