Artery Technology Manufacturer Skill
MPN Structure
Artery MCUs follow a structure similar to STM32:
code
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
code
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
java
// 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
java
// 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
java
// 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
java
// 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
java
// 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