AgentSkillsCN

memory

适用于与存储元件——Flash、EEPROM、SRAM、DRAM——配合使用时。支持添加编码规则、解析存储器 MPN、提取容量、接口类型及速度信息。

SKILL.md
--- frontmatter
name: memory
description: Use when working with memory components - Flash, EEPROM, SRAM, DRAM. Includes adding patterns, parsing memory MPNs, extracting capacity, interface type, and speed information.

Memory Component Skill

Guidance for working with memory components in the lib-electronic-components library.

Supported Manufacturers & Patterns

ManufacturerHandlerMPN PatternsExample
WinbondWinbondHandlerW25Q#, W25X#, W##W25Q128JVSIQ
MicronMicronHandlerMT#, N25Q#, M25P#MT25QL128ABA
ISSIISSIHandlerIS#, IS25LP#, IS25WP#IS25LP128F
MicrochipMicrochipHandlerAT24C#, AT25#, SST26#AT24C256
MacronixVariousMX25#MX25L12835F
Cypress/InfineonCypressHandlerS25FL#, FM24#S25FL128S

ComponentTypes

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

code
W25Q 128 JV SIQ
│    │   │  │
│    │   │  └── Package (SIQ=SOIC-8 150mil)
│    │   └───── Voltage/Grade (JV=3.3V, FV=1.8V)
│    └───────── Density (128=128Mbit)
└────────────── Series

Common Densities

CodeSize
3232Mbit (4MB)
6464Mbit (8MB)
128128Mbit (16MB)
256256Mbit (32MB)
512512Mbit (64MB)

Interfaces

TypeDescriptionSpeed
SPISerial Peripheral Interface50-133MHz
QSPIQuad SPI104-133MHz
DSPIDual SPI80-104MHz
ParallelParallel interfaceVarious

EEPROM

Microchip AT24C Series (I2C EEPROM)

code
AT24C 256 C
│     │   │
│     │   └── Temperature range (C=Commercial)
│     └────── Density (256=256Kbit)
└──────────── Series (I2C EEPROM)

Common EEPROM Series

SeriesInterfaceOrganization
AT24CI2Cx8
AT25SPIx8
93CMicrowirex8/x16

SRAM

Patterns

ManufacturerPatternExample
ISSIIS61#, IS62#IS62WV12816BLL
CypressCY62#, CY7C#CY62256NLL

Adding New Memory Patterns

  1. In the manufacturer handler's initializePatterns():
java
registry.addPattern(ComponentType.MEMORY, "^NEWMEM[0-9].*");
registry.addPattern(ComponentType.MEMORY_FLASH, "^NEWMEM[0-9].*");
registry.addPattern(ComponentType.MEMORY_MANUFACTURER, "^NEWMEM[0-9].*");
  1. Add to getSupportedTypes():
java
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

CodePackage
SIQSOIC-8 150mil
SIGSOIC-8 208mil
DIQDFN-8
CIQWSON-8
BIQBGA
PIQPDIP-8

Memory Type Detection

The library can detect memory types from MPN patterns:

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

Learnings & Quirks

<!-- Record component-specific discoveries, edge cases, and quirks here -->