Lib-electronic-components nuvoton

Nuvoton Technology MPN encoding patterns, suffix decoding, and handler guidance. Use when working with Nuvoton MCUs, audio codecs, TPM chips, or NuvotonHandler.

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/nuvoton" ~/.claude/skills/cantara-lib-electronic-components-nuvoton && rm -rf "$T"
manifest: .claude/skills/manufacturers/nuvoton/SKILL.md
source content

Nuvoton Technology Manufacturer Skill

MPN Structure

Nuvoton has multiple product families with different MPN structures:

ARM Cortex-M MCUs (NUC, M-series)

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

Example Decoding

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)

Package Codes

NUC Series Pin Codes

CodePackagePin Count
LDLQFP-4848
LELQFP-4848
SDLQFP-6464
SELQFP-6464
VDLQFP-100100
VELQFP-100100
ZDLQFP-144144
ANQFN-3333

M-Series Pin Codes

CodePackagePin Count
LDLQFP-4848
LCLQFP-4848
SDLQFP-6464
SCLQFP-6464
LGLQFP-100100
VGLQFP-100100
KILQFP-128128
ZGLQFP-144144
ZILQFP-144144

8051 MCU Package Codes

CodePackage
ATTSSOP-20
ASSOP-20
AQQFN-20
FBTSSOP-20
DATSSOP-16
BATSSOP-8
AELQFP-48

Audio Codec Package Codes

CodePackage
YGQFN-32
YGBQFN-32
LGWLCSP
GQFN-48

Product Families

ARM Cortex-M MCUs

SeriesCoreFeaturesMax Clock
NUC1xxCortex-M0General purpose50MHz
NUC2xxCortex-M0Enhanced peripherals72MHz
M031Cortex-M0Entry-level48MHz
M451Cortex-M4Motor control72MHz
M480Cortex-M4High performance192MHz

8051-Based MCUs

SeriesCoreFeatures
N76E0038051Low-cost, small footprint
MS51Enhanced 8051More peripherals

Audio Codecs

SeriesTypeFeatures
NAU8810Mono CodecSingle input/output
NAU8822Stereo CodecDual input/output
NAU88L25Low Power CodecBattery applications

Security ICs

SeriesTypeFeatures
NPCT6xxTPM 2.0Trusted Platform Module

Flash Size Encoding

NUC Series

CodeFlash Size
216KB
332KB
464KB
5128KB
6256KB

M-Series (Numeric)

CodeFlash Size
232KB
364KB
4128KB
5256KB
6512KB

M480 Series (Letter)

CodeFlash Size
A128KB
B256KB
C384KB
D512KB

Handler Implementation Notes

Package Code Extraction

// 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

Series Extraction

// 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";

Official Replacement Logic

// MCUs: Same series AND same pin count are replacements
// Audio Codecs: Same series are replacements (package variants OK)

Related Files

  • Handler:
    manufacturers/NuvotonHandler.java
  • Component types:
    MICROCONTROLLER
    ,
    IC

Learnings & Edge Cases

  • NUC vs M naming: NUC series uses full format (NUC123LD4AN0), M-series is shorter (M451LG6AE)
  • N76E003 popularity: Most popular Nuvoton 8051 MCU due to low cost and Arduino compatibility
  • NAU88L prefix: NAU88L25 must match before generic NAU88xx pattern
  • M480 flash encoding: Uses letters (A-D) instead of numbers for flash size
  • Pin code position varies: NUC at position 6, M-series at position 4, N76E at end of MPN
  • TPM chips: NPCT6xx series are security ICs, not MCUs
<!-- Add new learnings above this line -->