name: artery
description: Artery Technology MPN encoding patterns, suffix decoding, and handler guidance. Use when working with Artery AT32 MCUs (STM32-compatible ARM Cortex-M4) or ArteryHandler.
Artery Technology Manufacturer Skill
MPN Structure
Artery MCUs follow a structure similar to STM32:
AT32[FAMILY][SERIES][VARIANT][PIN][FLASH][PKG][TEMP]
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ └── Temperature (6/7)
│ │ │ │ │ │ └── Package (T=LQFP, U=QFN, H=BGA)
│ │ │ │ │ └── Flash size (4=16KB...M=4096KB)
│ │ │ │ └── Pin code (C=48, R=64, V=100, Z=144)
│ │ │ └── Optional variant (A, etc.)
│ │ └── Series number (403, 413, 415, 421, 435, etc.)
│ └── Family (F=MCU, WB=Wireless)
└── AT32 prefix
Example Decoding
AT32F403AVCT7
│ │ │ ││││
│ │ │ │││└── Temp 7 (industrial extended, -40 to +105C)
│ │ │ ││└── Package T (LQFP)
│ │ │ │└── Flash C (256KB)
│ │ │ └── Pin V (100-pin)
│ │ └── Variant A
│ └── Series 403 (high performance)
└── F = MCU family
AT32WB415CCU6
│ │ │││
│ │ ││└── Temp 6 (industrial, -40 to +85C)
│ │ │└── Package U (QFN)
│ │ └── Flash C (256KB)
│ └── Pin C (48-pin)
└── WB415 = Wireless (Bluetooth LE)
Package Codes
Package Type (2nd from last character)
| Code |
Package |
| T |
LQFP |
| U |
QFN |
| H |
BGA |
Pin Count (4th from last character)
| Code |
Pin Count |
| K |
32 |
| T |
36 |
| C |
48 |
| R |
64 |
| V |
100 |
| Z |
144 |
| I |
176 |
Flash Size Encoding (3rd from last character)
| Code |
Flash Size |
| 4 |
16KB |
| 6 |
32KB |
| 8 |
64KB |
| B |
128KB |
| C |
256KB |
| D |
384KB |
| E |
512KB |
| G |
1024KB |
| M |
4096KB |
Temperature Grades (last character)
| Code |
Range |
Description |
| 6 |
-40 to +85C |
Industrial |
| 7 |
-40 to +105C |
Industrial Extended |
Product Series
High Performance (AT32F403, AT32F407)
| Series |
Core |
Clock |
Features |
| AT32F403 |
Cortex-M4 |
240MHz |
High performance, up to 1MB Flash |
| AT32F403A |
Cortex-M4 |
240MHz |
Enhanced AT32F403 |
| AT32F407 |
Cortex-M4 |
240MHz |
Ethernet + CAN |
Mainstream (AT32F413, AT32F415)
| Series |
Core |
Clock |
Features |
| AT32F413 |
Cortex-M4 |
200MHz |
Mainstream, cost-effective |
| AT32F415 |
Cortex-M4 |
150MHz |
USB OTG support |
Value Line (AT32F421, AT32F423, AT32F425)
| Series |
Core |
Clock |
Features |
| AT32F421 |
Cortex-M4 |
120MHz |
Entry-level |
| AT32F423 |
Cortex-M4 |
150MHz |
Enhanced value |
| AT32F425 |
Cortex-M4 |
96MHz |
USB device |
High-Performance Plus (AT32F435, AT32F437)
| Series |
Core |
Clock |
Features |
| AT32F435 |
Cortex-M4 |
288MHz |
High-perf, up to 4MB Flash |
| AT32F437 |
Cortex-M4 |
288MHz |
High-perf + Ethernet |
Wireless (AT32WB415)
| Series |
Core |
Clock |
Features |
| AT32WB415 |
Cortex-M4 |
150MHz |
Bluetooth LE 5.0 |
Handler Implementation Notes
Package Code Extraction
// Package type is 2nd from last character
// AT32F403AVCT7 -> T = LQFP
char packageChar = upperMpn.charAt(upperMpn.length() - 2);
String packageType = MCU_PACKAGE_CODES.get(packageChar);
// Combine with pin count for full package name
int pinCount = extractMCUPinCount(upperMpn);
return packageType + pinCount; // e.g., "LQFP100"
Pin Count Extraction
// Pin code is 4th from last character
// AT32F403AVCT7 -> V = 100 pins
char pinCode = upperMpn.charAt(upperMpn.length() - 4);
Integer pinCount = MCU_PIN_COUNTS.get(pinCode);
Flash Size Extraction
// Flash code is 3rd from last character
// AT32F403AVCT7 -> C = 256KB
char flashCode = upperMpn.charAt(upperMpn.length() - 3);
Integer flashSize = MCU_FLASH_SIZES.get(flashCode);
Series Extraction
// AT32WB must be checked before AT32F
if (upperMpn.startsWith("AT32WB415")) return "AT32WB415";
// Standard series extraction
if (upperMpn.startsWith("AT32F403")) return "AT32F403";
if (upperMpn.startsWith("AT32F407")) return "AT32F407";
// etc.
Official Replacement Logic
// Same series AND same pin count = valid replacement
// Flash size, package type, and temperature can differ
String series1 = extractSeries(mpn1);
String series2 = extractSeries(mpn2);
if (!series1.equals(series2)) return false;
int pins1 = extractMCUPinCount(mpn1);
int pins2 = extractMCUPinCount(mpn2);
return pins1 == pins2;
Related Files
- Handler:
manufacturers/ArteryHandler.java
- Component types:
MICROCONTROLLER, IC
STM32 Compatibility
Artery AT32 MCUs are designed as enhanced STM32-compatible alternatives:
| AT32 Series |
STM32 Equivalent |
Advantages |
| AT32F403A |
STM32F103 |
Higher clock (240 vs 72MHz) |
| AT32F407 |
STM32F107 |
Higher clock, more Flash |
| AT32F413 |
STM32F103 |
Better price/performance |
| AT32F415 |
STM32F105 |
USB OTG compatible |
| AT32F421 |
STM32F030 |
Cortex-M4 vs M0 |
| AT32F435/437 |
STM32F4xx |
Up to 4MB Flash |
Important: While register-compatible for most peripherals, always verify critical functionality when migrating from STM32.
Variant Suffixes
Some series have variant letters after the series number:
| Variant |
Meaning |
| A |
Enhanced version (e.g., AT32F403A) |
| (none) |
Standard version |
Learnings & Edge Cases
- Position-based extraction: Package at -2, flash at -3, pin at -4 from end
- 4MB Flash: AT32F435/437 support M=4096KB, larger than most STM32
- AT32WB prefix: Wireless series uses WB instead of F in family position
- 240MHz+ clocks: Artery MCUs often have higher clock speeds than equivalent STM32
- Variant letter optional: AT32F403 and AT32F403A are different series
- Temperature 7 is extended: Goes to +105C vs standard industrial +85C
- STM32 migration: Pin-compatible but verify peripheral registers for critical functions