Nuvoton Technology MPN encoding patterns, suffix decoding, and handler guidance. Use when working with Nuvoton MCUs, audio codecs, TPM chips, or NuvotonHandler.
Nuvoton has multiple product families with different MPN structures:
NUC[SERIES][LINE][PIN][FLASH][PKG][TEMP][VER]
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ └── Version (0, 1, etc.)
│ │ │ │ │ │ └── Temperature (N=normal, A=automotive)
│ │ │ │ │ └── Package type (A=QFN, etc.)
│ │ │ │ └── Flash size code
│ │ │ └── Pin code (LD=48, SD=64, VD=100, ZD=144)
│ │ └── Line number (23, 40, etc.)
│ └── Series (1=Cortex-M0, 2=Cortex-M0)
└── NuMicro prefix
M[LINE][PIN][FLASH][PKG]
│ │ │ │ │
│ │ │ │ └── Package code (AE=LQFP-48)
│ │ │ └── Flash size code
│ │ └── Pin code (LD=48, SD=64, LG=100, KI=128)
│ └── Line number (031=entry, 451=motor, 480=high-perf)
└── M-series prefix
NUC123LD4AN0
│ │ │ │││││
│ │ │ ││││└── Version 0
│ │ │ │││└── Temperature N (normal)
│ │ │ ││└── Package A (QFN)
│ │ │ │└── Flash 4 (64KB)
│ │ │ └── Pin LD (LQFP-48)
│ │ └── Line 23
│ └── Series 1 (Cortex-M0)
└── NUC prefix
M451LG6AE
│ │ │ ││
│ │ │ │└── Package E (LQFP variant)
│ │ │ └── Package A (LQFP)
│ │ └── Flash 6 (512KB)
│ └── Pin LG (LQFP-100)
└── M451 series (Cortex-M4 motor control)
| Code | Package | Pin Count |
|---|---|---|
| LD | LQFP-48 | 48 |
| LE | LQFP-48 | 48 |
| SD | LQFP-64 | 64 |
| SE | LQFP-64 | 64 |
| VD | LQFP-100 | 100 |
| VE | LQFP-100 | 100 |
| ZD | LQFP-144 | 144 |
| AN | QFN-33 | 33 |
| Code | Package | Pin Count |
|---|---|---|
| LD | LQFP-48 | 48 |
| LC | LQFP-48 | 48 |
| SD | LQFP-64 | 64 |
| SC | LQFP-64 | 64 |
| LG | LQFP-100 | 100 |
| VG | LQFP-100 | 100 |
| KI | LQFP-128 | 128 |
| ZG | LQFP-144 | 144 |
| ZI | LQFP-144 | 144 |
| Code | Package |
|---|---|
| AT | TSSOP-20 |
| AS | SOP-20 |
| AQ | QFN-20 |
| FB | TSSOP-20 |
| DA | TSSOP-16 |
| BA | TSSOP-8 |
| AE | LQFP-48 |
| Code | Package |
|---|---|
| YG | QFN-32 |
| YGB | QFN-32 |
| LG | WLCSP |
| G | QFN-48 |
| Series | Core | Features | Max Clock |
|---|---|---|---|
| NUC1xx | Cortex-M0 | General purpose | 50MHz |
| NUC2xx | Cortex-M0 | Enhanced peripherals | 72MHz |
| M031 | Cortex-M0 | Entry-level | 48MHz |
| M451 | Cortex-M4 | Motor control | 72MHz |
| M480 | Cortex-M4 | High performance | 192MHz |
| Series | Core | Features |
|---|---|---|
| N76E003 | 8051 | Low-cost, small footprint |
| MS51 | Enhanced 8051 | More peripherals |
| Series | Type | Features |
|---|---|---|
| NAU8810 | Mono Codec | Single input/output |
| NAU8822 | Stereo Codec | Dual input/output |
| NAU88L25 | Low Power Codec | Battery applications |
| Series | Type | Features |
|---|---|---|
| NPCT6xx | TPM 2.0 | Trusted Platform Module |
| Code | Flash Size |
|---|---|
| 2 | 16KB |
| 3 | 32KB |
| 4 | 64KB |
| 5 | 128KB |
| 6 | 256KB |
| Code | Flash Size |
|---|---|
| 2 | 32KB |
| 3 | 64KB |
| 4 | 128KB |
| 5 | 256KB |
| 6 | 512KB |
| Code | Flash Size |
|---|---|
| A | 128KB |
| B | 256KB |
| C | 384KB |
| D | 512KB |
// NUC series: Pin code is after line number
// NUC123LD4AN0 -> LD determines package
// M-series: Pin code is after series number
// M451LG6AE -> LG determines package
// N76E series: Package code is 2-letter prefix of pin count
// N76E003AT20 -> AT = TSSOP, 20 = pins
// NUC1xx and NUC2xx return generic series
if (upperMpn.matches("^NUC1\\d{2}.*")) return "NUC1xx";
if (upperMpn.matches("^NUC2\\d{2}.*")) return "NUC2xx";
// M-series returns exact line number
if (upperMpn.startsWith("M031")) return "M031";
if (upperMpn.startsWith("M451")) return "M451";
if (upperMpn.startsWith("M480")) return "M480";
// NAU88L must be checked before NAU88
if (upperMpn.matches("^NAU88L\\d{2}.*")) return "NAU88L";
// MCUs: Same series AND same pin count are replacements
// Audio Codecs: Same series are replacements (package variants OK)
manufacturers/NuvotonHandler.javaMICROCONTROLLER, IC