Skip to content
atmel logo

Atmel (now Microchip) Manufacturer Skill

atmel

Atmel/Microchip AVR MPN encoding patterns, suffix decoding, and handler guidance. Use when working with ATmega, ATtiny, SAM, or other Atmel components.

SKILL.md

Full skill instructions

Atmel (now Microchip) Manufacturer Skill

MPN Structure

Atmel MPNs follow this general structure:

[FAMILY][SERIES][VARIANT]-[PACKAGE][TEMP]
   │       │        │         │      │
   │       │        │         │      └── Optional temperature grade
   │       │        │         └── Package code (after hyphen)
   │       │        └── Feature variant (P=picopower, A=automotive, etc.)
   │       └── Series number (flash size, pin count encoded)
   └── Product family (ATMEGA, ATTINY, ATSAM, etc.)

Example Decoding

ATMEGA328P-PU
│     │  │  ││
│     │  │  │└── (no temp suffix = commercial)
│     │  │  └── U in PU = standard grade
│     │  └── P = picoPower technology
│     └── 328 = 32KB flash, 8-bit
└── ATMEGA = AVR 8-bit megaAVR family

ATSAM3X8E-AU
│    │ ││  ││
│    │ ││  │└── U = standard grade
│    │ ││  └── A = TQFP package
│    │ │└── E = Ethernet variant
│    │ └── 8 = 512KB flash
│    └── 3X = Cortex-M3 SAM3X series
└── ATSAM = ARM-based SAM family

Package Codes (After Hyphen)

CodePackageDescription
PUPDIPPlastic Dual In-line Package (through-hole)
AUTQFPThin Quad Flat Pack (surface mount)
MUQFN/​MLFQuad Flat No-leads / Micro Lead Frame
SUSOICSmall Outline IC
XUTSSOPThin Shrink Small Outline Package
TUQFPQuad Flat Pack (larger than TQFP)
CUWLCSP/​UCSPWafer Level / Ultra Chip Scale Package
SSSSOPShrink Small Outline Package

Package Code Pattern

[PACKAGE_TYPE][GRADE]
      │          │
      │          └── U = Standard, C = Commercial, I = Industrial
      └── P=PDIP, A=TQFP, M=QFN, S=SOIC, X=TSSOP, T=QFP, C=WLCSP

Product Families

8-bit AVR Microcontrollers

FamilyDescriptionExample
ATmegaFeature-rich 8-bitATMEGA328P, ATMEGA2560
ATtinySmall footprint 8-bitATTINY85, ATTINY13A
AT90USB/​CAN enabledAT90USB162, AT90CAN128
ATxmegaExtended 8/​16-bitATXMEGA128A1U

32-bit ARM Microcontrollers

FamilyCoreExample
ATSAM3Cortex-M3ATSAM3X8E (Arduino Due)
ATSAM4Cortex-M4ATSAM4S16B
ATSAMDCortex-M0+ATSAMD21G18A
ATSAMECortex-M7ATSAME70Q21

Memory Products

FamilyTypeExample
AT24CI2C EEPROMAT24C256-PU (256Kbit)
AT25SPI EEPROM/​FlashAT25SF041 (4Mbit Flash)
AT45DBDataFlashAT45DB321E

Security/​Touch Products

FamilyTypeExample
ATECCCrypto AuthenticationATECC608A
ATSHASHA AuthenticationATSHA204A
AT42QTQTouch ControllerAT42QT1010
ATMXTmaXTouch ControllerATMXT336S

Series Number Encoding

ATmega Series Numbers

The number encodes flash size and sometimes pin count:

SeriesFlashSRAMEEPROMNotes
ATMEGA88KB1KB512BOriginal
ATMEGA888KB1KB512BImproved
ATMEGA16816KB1KB512BPin-compatible with 88
ATMEGA32832KB2KB1KBArduino Uno
ATMEGA1284128KB16KB4KBHigh memory
ATMEGA2560256KB8KB4KBArduino Mega

ATtiny Series Numbers

SeriesFlashPinsNotes
ATTINY131KB8Smallest
ATTINY252KB8
ATTINY454KB8
ATTINY858KB8Popular small MCU
ATTINY848KB14More I/​O
ATTINY23132KB20UART included

Variant Suffixes (Before Hyphen)

SuffixMeaning
PpicoPower - Ultra low power modes
ARevision A / Automotive grade
VLow voltage operation (1.8V-5.5V)
PApicoPower + Automotive
PBpicoPower revision B
UUSB capable
LLow voltage (1.8V-3.6V only)

Example Variants

ATMEGA328    → Original
ATMEGA328P   → picoPower (lower sleep current)
ATMEGA328PB  → picoPower revision B (more features)
ATMEGA328PA  → Automotive grade picoPower

Temperature Grades

GradeRangeSuffix Position
Commercial0°C to +70°C(no suffix)
Industrial-40°C to +85°COften implicit
Automotive-40°C to +125°CA in variant or separate

Common Arduino Mappings

Arduino BoardMCUFull MPN
UnoATmega328PATMEGA328P-PU
NanoATmega328PATMEGA328P-AU
Mega 2560ATmega2560ATMEGA2560-16AU
LeonardoATmega32U4ATMEGA32U4-AU
DueATSAM3X8EATSAM3X8E-AU
ZeroATSAMD21G18AATSAMD21G18A-AU

Handler Implementation Notes

Package Code Extraction

// Atmel package codes are AFTER the hyphen
// ATMEGA328P-PU → package = "PU"

String[] parts = mpn.split("-");
if (parts.length > 1) {
    String suffix = parts[parts.length - 1];
    return switch (suffix) {
        case "PU" -> "PDIP";
        case "AU" -> "TQFP";
        case "MU" -> "QFN/​MLF";
        case "SU" -> "SOIC";
        case "XU" -> "TSSOP";
        case "TU" -> "QFP";
        case "CU" -> "WLCSP";
        default -> suffix;
    };
}

Series Extraction

// Extract family + number, stop at variant letter or hyphen
// ATMEGA328P-PU → series = "ATMEGA328"
// ATTINY85-20PU → series = "ATTINY85"

if (mpn.startsWith("ATMEGA")) {
    // Find end of digits after "ATMEGA"
    int end = "ATMEGA".length();
    while (end < mpn.length() && Character.isDigit(mpn.charAt(end))) {
        end++;
    }
    return mpn.substring(0, end);
}

Pattern Matching

// ATmega: ATMEGA + digits + optional letter variant + optional -package
"^ATMEGA[0-9]+[A-Z]?(?:-[A-Z]{2,4})?$"

// ATtiny: ATTINY + digits + optional variant + optional -package
"^ATTINY[0-9]+[A-Z]?(?:-[A-Z]{2,4})?$"

// SAM: ATSAM + series + variant + -package
"^ATSAM[A-Z0-9]+(?:-[A-Z]{2,4})?$"

Pin Compatibility Groups

28-pin PDIP/​TQFP Compatible

  • ATMEGA8 / ATMEGA88 / ATMEGA168 / ATMEGA328
  • Direct drop-in replacements (different flash sizes)

8-pin DIP/​SOIC Compatible

  • ATTINY13 / ATTINY25 / ATTINY45 / ATTINY85
  • Increasing flash sizes, same pinout

44-pin TQFP Compatible

  • ATMEGA16 / ATMEGA32 / ATMEGA644 / ATMEGA1284

Related Files

  • Handler: manufacturers/​AtmelHandler.java
  • Component types: MICROCONTROLLER_ATMEL, MCU_ATMEL, MEMORY_ATMEL, TOUCH_ATMEL, CRYPTO_ATMEL
  • Package registry: PackageCodeRegistry.java (Atmel-specific codes: PU, AU, MU, SU, XU, CU)

Learnings & Edge Cases

  • Microchip acquisition: Atmel was acquired by Microchip in 2016. New parts may have Microchip branding but same MPN structure
  • Speed grades: Some parts have speed suffix before package (e.g., ATMEGA328P-20AU = 20MHz max)
  • PU vs AU: Same chip, different package. PU=DIP for prototyping, AU=TQFP for production
  • P suffix importance: ATMEGA328 and ATMEGA328P are different! The P version has lower power consumption
  • Memory in name: ATmega328 has 32KB flash (32), ATtiny85 has 8KB (8), but encoding isn't always consistent

Handler Cleanup Notes (TODO)

AtmelHandler needs the same cleanup as TIHandler (PR #77):

  • Replace HashSet with Set.of() in getSupportedTypes()
  • Handler doesn't use PackageCodeRegistry - has local switch statement
  • Pattern may not handle speed grades like -20AU (20MHz before package)
  • Case sensitivity - some methods use mpn.startsWith() without toUpperCase()

Test Notes

When creating AtmelHandlerTest:

  • Put in no.cantara.electronic.component.lib.handlers package (NOT manufacturers)
  • Use @BeforeAll with MPNUtils.getManufacturerHandler("ATMEGA328P")
  • Test categories: ATmega, ATtiny, AT90, XMEGA, SAM, Memory (AT24C, AT25), Touch (AT42QT), Crypto (ATECC, ATSHA)
<!-- Add new learnings above this line -->

More skills from majiayu000

xiaohongshu logo
majiayu000/claude-arsenal

xiaohongshu

xiaohongshu

286 148
View
agent-task-conductor logo
majiayu000/claude-skill-registry

agent-task-conductor

Conduct multi-agent task orchestration and workflow coordination.

663 1
View
conductor-setup logo
majiayu000/claude-skill-registry

conductor-setup

Initialize project with Conductor artifacts (product definition,

663 1
View
animation-designer logo
majiayu000/claude-skill-registry

animation-designer

Expert in web animations, transitions, and motion design using Framer Motion and CSS

663 1
View
diagramming logo
majiayu000/claude-skill-registry

diagramming

Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...

663 1
View
h3-pg logo
majiayu000/claude-skill-registry-data

h3-pg

PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.

23 1
View
conductor-development logo
majiayu000/claude-skill-registry

conductor-development

Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...

663 1
View
conductor-status logo
majiayu000/claude-skill-registry

conductor-status

Display project status, active tracks, and next actions

663 1
View
dockerization logo
majiayu000/claude-skill-registry

dockerization

Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.

663 1
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View