Lib-electronic-components memory
Use when working with memory components - Flash, EEPROM, SRAM, DRAM. Includes adding patterns, parsing memory MPNs, extracting capacity, interface type, and speed information.
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/memory" ~/.claude/skills/cantara-lib-electronic-components-memory && rm -rf "$T"
manifest:
.claude/skills/memory/SKILL.mdsource content
Memory Component Skill
Guidance for working with memory components in the lib-electronic-components library.
Supported Manufacturers & Patterns
| Manufacturer | Handler | MPN Patterns | Example |
|---|---|---|---|
| Winbond | | , , | |
| Micron | | , , | |
| ISSI | | , , | |
| Microchip | | , , | |
| Macronix | Various | | |
| Cypress/Infineon | | , | |
ComponentTypes
// Base types ComponentType.MEMORY ComponentType.MEMORY_FLASH ComponentType.MEMORY_EEPROM // Manufacturer-specific types ComponentType.MEMORY_FLASH_WINBOND ComponentType.MEMORY_EEPROM_WINBOND ComponentType.MEMORY_MICRON ComponentType.MEMORY_ISSI ComponentType.MEMORY_MICROCHIP ComponentType.MEMORY_ATMEL ComponentType.MEMORY_INFINEON ComponentType.MEMORY_NXP ComponentType.MEMORY_ST ComponentType.MEMORY_RENESAS ComponentType.MEMORY_MAXIM
Flash Memory
Winbond W25Q Series (SPI NOR Flash)
W25Q 128 JV SIQ │ │ │ │ │ │ │ └── Package (SIQ=SOIC-8 150mil) │ │ └───── Voltage/Grade (JV=3.3V, FV=1.8V) │ └───────── Density (128=128Mbit) └────────────── Series
Common Densities
| Code | Size |
|---|---|
| 32 | 32Mbit (4MB) |
| 64 | 64Mbit (8MB) |
| 128 | 128Mbit (16MB) |
| 256 | 256Mbit (32MB) |
| 512 | 512Mbit (64MB) |
Interfaces
| Type | Description | Speed |
|---|---|---|
| SPI | Serial Peripheral Interface | 50-133MHz |
| QSPI | Quad SPI | 104-133MHz |
| DSPI | Dual SPI | 80-104MHz |
| Parallel | Parallel interface | Various |
EEPROM
Microchip AT24C Series (I2C EEPROM)
AT24C 256 C │ │ │ │ │ └── Temperature range (C=Commercial) │ └────── Density (256=256Kbit) └──────────── Series (I2C EEPROM)
Common EEPROM Series
| Series | Interface | Organization |
|---|---|---|
| AT24C | I2C | x8 |
| AT25 | SPI | x8 |
| 93C | Microwire | x8/x16 |
SRAM
Patterns
| Manufacturer | Pattern | Example |
|---|---|---|
| ISSI | , | |
| Cypress | , | |
Adding New Memory Patterns
- In the manufacturer handler's
:initializePatterns()
registry.addPattern(ComponentType.MEMORY, "^NEWMEM[0-9].*"); registry.addPattern(ComponentType.MEMORY_FLASH, "^NEWMEM[0-9].*"); registry.addPattern(ComponentType.MEMORY_MANUFACTURER, "^NEWMEM[0-9].*");
- Add to
:getSupportedTypes()
types.add(ComponentType.MEMORY); types.add(ComponentType.MEMORY_FLASH); types.add(ComponentType.MEMORY_MANUFACTURER);
Similarity Calculation
MemorySimilarityCalculator compares:
- Memory type (Flash, EEPROM, SRAM)
- Density/capacity
- Interface (SPI, I2C, parallel)
- Voltage range
- Speed grade
- Package
Package Codes
| Code | Package |
|---|---|
| SIQ | SOIC-8 150mil |
| SIG | SOIC-8 208mil |
| DIQ | DFN-8 |
| CIQ | WSON-8 |
| BIQ | BGA |
| PIQ | PDIP-8 |
Memory Type Detection
The library can detect memory types from MPN patterns:
// Detect flash memory ComponentType type = ComponentType.fromMPN("W25Q128JVSIQ"); // Returns MEMORY_FLASH_WINBOND // Detect EEPROM ComponentType type = ComponentType.fromMPN("AT24C256"); // Returns MEMORY_EEPROM or MEMORY_ATMEL