.claude/skills/manufacturers/esmt/SKILL.md
ESMT (Elite Semiconductor Memory Technology) MPN encoding patterns, suffix decoding, and handler guidance. Use when working with ESMT DRAM and Flash memory components or ESMTHandler.
npx skillsauth add Cantara/lib-electronic-components esmtInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
ESMT MPNs follow this general structure:
[PREFIX][DENSITY][CONFIG][VERSION]-[SPEED][PACKAGE]
| | | | | |
| | | | | +-- Package code (TG, BG, etc.)
| | | | +-- Speed grade (6, 5, 2.5, 100, 70)
| | | +-- Version letter (A, B, etc.)
| | +-- Memory configuration (bus width, banks)
| +-- Density in Mbit
+-- Series prefix (M12L, M14D, F25L, F49L)
M12L128168A-6TG
| | | || ||
| | | || |+-- TG = TSOP-II package
| | | || +-- 6 = 6ns speed grade
| | | |+-- A = version/revision
| | | +-- 8 = 8 banks
| | +-- 16 = 16-bit data bus
| +-- 128 = 128 Mbit density
+-- M12L = SDRAM series
F25L016A-100PAIG
| | || | ||
| | || | |+-- IG = Industrial grade
| | || | +-- PA = SOP package
| | || +-- 100 = 100MHz speed
| | |+-- A = version
| | +-- 016 = 16 Mbit
| +-- 25L = SPI Flash series
+-- F = Flash prefix
| Prefix | Memory Type | Description | |--------|-------------|-------------| | M12L | SDRAM | Synchronous DRAM | | M14D | DDR SDRAM | DDR1 SDRAM | | F25L | SPI Flash | Serial SPI NOR Flash | | F49L | Parallel Flash | Parallel NOR Flash |
| Code | Density | Notes | |------|---------|-------| | 16 | 16 Mbit | | | 32 | 32 Mbit | | | 64 | 64 Mbit | | | 128 | 128 Mbit | | | 256 | 256 Mbit | DDR only | | 512 | 512 Mbit | DDR only |
| Code | Density | Notes | |------|---------|-------| | 004 | 4 Mbit | Leading zeros | | 008 | 8 Mbit | Leading zeros | | 016 | 16 Mbit | Leading zeros | | 032 | 32 Mbit | Leading zeros | | 064 | 64 Mbit | Leading zeros | | 128 | 128 Mbit | |
| Code | Density | Notes | |------|---------|-------| | 160 | 16 Mbit | Scaled encoding (160 = 16Mb) | | 320 | 32 Mbit | Scaled encoding | | 640 | 64 Mbit | Scaled encoding |
| Code | Package | Description | |------|---------|-------------| | A | TSOP | Thin Small Outline Package | | B | BGA | Ball Grid Array | | TG | TSOP-II | TSOP Type II | | WG | WBGA | Window BGA | | BG | BGA | Ball Grid Array | | PA | SOP | Small Outline Package | | PAIG | SOP | SOP with Industrial Grade | | PG | SOP-8 | 8-pin SOP |
| Code | Speed | Access Time | |------|-------|-------------| | 5 | 200MHz | 5ns | | 6 | 166MHz | 6ns | | 7 | 143MHz | 7ns | | 2.5 | 400MHz | 2.5ns (DDR) |
| Code | Speed | Notes | |------|-------|-------| | 70 | 70ns | Parallel Flash | | 100 | 100MHz | SPI Flash | | 104 | 104MHz | High-speed SPI |
| Part Number | Density | Configuration | Speed | |-------------|---------|---------------|-------| | M12L128168A-6TG | 128 Mbit | 8M x 16 x 8 banks | 166MHz | | M12L64164A-5TG | 64 Mbit | 4M x 16 x 4 banks | 200MHz | | M12L32164A-6TG | 32 Mbit | 2M x 16 x 4 banks | 166MHz |
| Part Number | Density | Configuration | Speed | |-------------|---------|---------------|-------| | M14D5121632A-2.5BG | 512 Mbit | 32M x 16 x 2 | 400MHz | | M14D2561616A-2.5BG | 256 Mbit | 16M x 16 x 1 | 400MHz | | M14D1281616A-2.5BG | 128 Mbit | 8M x 16 x 1 | 400MHz |
| Part Number | Density | Interface | Speed | |-------------|---------|-----------|-------| | F25L004A-100PAIG | 4 Mbit | SPI | 100MHz | | F25L008A-100PAIG | 8 Mbit | SPI | 100MHz | | F25L016A-100PAIG | 16 Mbit | SPI | 100MHz |
| Part Number | Density | Interface | Speed | |-------------|---------|-----------|-------| | F49L160UA-70TG | 16 Mbit | Parallel | 70ns | | F49L320UA-70TG | 32 Mbit | Parallel | 70ns |
The configuration digits after the density encode:
M12L128168A
|||
||+-- Banks (4 or 8)
|+-- Data bus width (16-bit = 16)
+-- First digit varies
| Config Code | Meaning | |-------------|---------| | 168 | 16-bit bus, 8 banks | | 164 | 16-bit bus, 4 banks | | 1616 | 16-bit bus, 16Mbit config |
// SDRAM - M12L series
"^M12L\\d+.*"
// DDR SDRAM - M14D series
"^M14D\\d+.*"
// SPI Flash - F25L series (also MEMORY_FLASH type)
"^F25L\\d+.*"
// Parallel Flash - F49L series (also MEMORY_FLASH type)
"^F49L\\d+.*"
// Handle hyphenated MPNs - get part after last hyphen
int lastHyphen = upperMpn.lastIndexOf('-');
if (lastHyphen > 0) {
String suffix = upperMpn.substring(lastHyphen + 1);
// Strip leading speed grade digits/dots
String pkgCode = suffix.replaceAll("^[0-9.]+", "");
// Check PACKAGE_CODES map
}
// SPI Flash uses leading zeros: 004, 008, 016
// Parallel Flash uses scaled encoding: 160=16Mbit
// F25L004A -> "4" (strip leading zeros)
// F49L160UA -> "16" (scale down by 10)
| ESMT | Samsung | Micron | ISSI | |------|---------|--------|------| | M12L128168A | K4S641632N | MT48LC8M16 | IS42S16800 | | M12L64164A | K4S281632I | MT48LC4M16 | IS42S16400 |
| ESMT | Winbond | Macronix | SST | |------|---------|----------|-----| | F25L016A | W25Q16 | MX25L1606E | SST25VF016B | | F25L008A | W25Q80 | MX25L8006E | SST25VF080B |
manufacturers/ESMTHandler.javaMEMORY, MEMORY_FLASH, ICdata-ai
Cost-effective task delegation strategy using Haiku model for straightforward work. Use when planning how to approach simple, pattern-following tasks to minimize costs.
tools
Use when working with component similarity calculations - comparing MPNs, finding equivalent parts, implementing new similarity calculators, or understanding how component matching works.
testing
Use when working with transistor similarity calculations - comparing BJT MPNs, understanding NPN/PNP polarity matching, equivalent groups like 2N2222/PN2222, or transistor-specific similarity logic.
testing
Use when working with sensor similarity calculations - comparing temperature/accelerometer/humidity sensor MPNs, understanding sensor families, equivalent parts, or sensor-specific similarity logic.