Vendors · 43 pages
- STM32 (ST) — overview
- STM32 F / G / H mainstream
- STM32 L / U low-power
- STM32 WB / WL wireless
- NXP Kinetis & i.MX RT
- NXP LPC family
- Nordic nRF
- Nordic nRF53 dual-core
- Nordic nRF91 cellular
- Raspberry Pi RP2040 / RP2350
- Renesas RA / RX
- TI Tiva / MSP432
- TI Sitara (Cortex-A + R)
- Microchip SAM
- Silicon Labs EFM32 / EFR32
- Infineon XMC / PSoC
- Infineon AURIX
- GigaDevice GD32 — overview
- GD32F mainstream (M3/M4)
- GD32L low-power (M23)
- GD32W wireless (M33)
- Artery AT32 — overview
- AT32F4 mainstream (M4)
- AT32M motor / power
- Nuvoton NuMicro — overview
- NuMicro M0 entry-level
- NuMicro M4 mainstream
- NuMicro M23 secure
- Ambiq Apollo — overview
- Apollo4 sub-µA M4F
- Apollo510 / Apollo5 (Helium M55)Helium
- Maxim / ADI MAX32 — overview
- MAX32 general-purpose M4
- MAX78000 ML acceleratorAI
- NVIDIA Jetson — overview
- Jetson Orin Nano / NX
- Jetson AGX Orin / Thor
- MediaTek — overview
- MediaTek Genio (IoT A-series)
- MediaTek Filogic Wi-Fi router
- Rockchip — overview
- Rockchip RK3566 / RK3568
- Rockchip RK3588 / RK3582
Microchip (SAM, PIC32CM/CK/CX)
Microchip's Cortex-M lines — the inherited Atmel SAM family and Microchip's own PIC32C Cortex-M parts.
Microchip's ARM portfolio comes from two places: their long-standing PIC32 line (which now includes Cortex-M variants alongside the MIPS-based PIC32MX/MZ) and the SAM family acquired with Atmel in 2016.
- SAM Cortex-M0+ tiers
- SAM D10/11/20 (entry), SAM D21 (hobbyist favourite), SAM L10/L21/L22 (ultra-low-power), SAM C20/C21 (5 V industrial)
- SAM Cortex-M4F
- SAM D51 (mainstream), SAM E51/E53/E54 (Ethernet + CAN-FD)
- SAM Cortex-M7
- SAM E70 / S70 / V70 / V71 — industrial and automotive (V71 is AEC-Q100 qualified)
- SAM Cortex-M23
- SAM L10 / L11 — TrustZone on L11; ultra-low-power
- PIC32C series
- PIC32CM (M0+ / M23), PIC32CK (M33 with TrustZone), PIC32CX BZ (M4F + 2.4 GHz radio), PIC32CZ CA (M7 with TSN Ethernet)
- SiP Cortex-A
- SAMA5D2 / D27 (Cortex-A5 + on-package DDR + power management — true SiP), SAMA7G54 (Cortex-A7 multimedia)
- IDE / SDK
- MPLAB X IDE (NetBeans-based), MPLAB Harmony 3 framework, MPLAB Code Configurator (MCC), MPLAB XC32 / GCC compilers
- SERCOM
- Distinctive Atmel peripheral — runtime-configurable as UART / SPI / I²C / LIN
SAM (was Atmel)
The Atmel SAM family is one of the larger Cortex-M product lines. Microchip has continued the line, with newer parts under the PIC32C branding.
| Series | Core | Position |
|---|---|---|
| SAM D10/11/20 | Cortex-M0+ | Entry-level, ultra-low-power |
| SAM D21/D51 | M0+ / M4F | Hobbyist favourites (Adafruit Feather, MakeyMakey) |
| SAM L10 / L11 | Cortex-M23 | Low-power, TrustZone (L11) |
| SAM L21 / L22 | Cortex-M0+ | Ultra-low-power |
| SAM 3 / 4 | Cortex-M3 / M4 | Older mainstream |
| SAM E70 / S70 / V70 / V71 | Cortex-M7 | Industrial — Ethernet, CAN, USB HS |
| SAM E51/E54 | Cortex-M4F | Connectivity (Ethernet, USB, CAN) |
| PIC32CM/CK | Cortex-M0+/M33 | Latest Cortex-M0+ and M33 from Microchip |
| PIC32CX BZ | M4F + radio | BLE / Zigbee with M4F app core |
| PIC32CZ CA | M7 | High-perf with CAN, TSN Ethernet |
The SERCOM peripheral
The most distinctive Atmel/Microchip feature. SERCOM (Serial Communication Interface) is a modular block that can be configured as UART, SPI, I²C, or LIN — at runtime. A SAM D21 with six SERCOMs can have, say, 2× UART + 2× SPI + 2× I²C, or 3× SPI + 3× I²C, or any other combination.
Each SERCOM has identical registers regardless of mode; the mode is a bit in the CTRL register.
// Configure SERCOM3 as I²C master
SERCOM3->I2CM.CTRLA.reg =
SERCOM_I2CM_CTRLA_MODE_I2C_MASTER |
SERCOM_I2CM_CTRLA_SPEED(0) |
SERCOM_I2CM_CTRLA_ENABLE;The flexibility is great for board layout — change a SERCOM's mode in firmware and you've changed the pin's protocol. The complexity is that "configure UART2" no longer means anything specific; you have to track which SERCOM is wired to which pins on your board.
Harmony — the SDK
Microchip Harmony 3 is the modern SDK, generated by MPLAB Code Configurator (MCC). It produces a project tree with HAL drivers for every peripheral.
It's serviceable. Older Atmel ASF (Atmel Software Framework) is still around for legacy SAM projects; Harmony is the recommended path for new development.
When you'd pick Microchip ARM
- Existing Microchip 8-bit / 16-bit PIC team — same vendor, easier transition.
- Need a SAM E70/E71 industrial part — strong industrial peripheral set (CAN-FD, Ethernet, USB HS).
- Adafruit-ecosystem hobby / education — SAM D21/D51 are everywhere in Adafruit and SparkFun boards.
- PIC32CM/CK — modern Cortex-M0+/M33 with full Microchip security feature set.
Microchip's strength is breadth across MCUs, analog, RF, and security ICs. For all-Microchip BOMs, the ARM parts integrate cleanly.
The Atmel peripheral architecture — what makes SAM distinctive
The SAM family has always had a distinct peripheral philosophy. Three concepts recur across the line:
- Event System — a chip-wide interconnect (separate from the AHB/APB buses) that lets any peripheral signal any other peripheral within one clock cycle, without CPU involvement. An ADC conversion can trigger a DMA transfer, which signals a timer, which signals a DAC update — all autonomously. Up to 12 channels on SAM D21; 32 on SAM E54. Configured at runtime, not at synthesis time.
- TC + TCC modules — Microchip uses two timer flavours: TC (Timer/Counter) is a general-purpose 16/32-bit timer; TCC (Timer/Counter for Control) is a richer variant with waveform extensions, fault inputs, and complementary outputs for motor control or LED dimming. The TCC modules are similar in spirit to ST's TIM1/TIM8 advanced timers.
- Generic Clock Generators (GCLK) — instead of a fixed clock tree, the SAM line gives you 8 or 12 configurable clock generators that any peripheral can subscribe to. A typical bring-up writes the clock for every used peripheral; forgetting to enable GCLK is the most common SAM "the peripheral is dead, why?" bug.
| Feature | SAM D21 | SAM E54 | SAM E70 |
|---|---|---|---|
| Core | Cortex-M0+ @ 48 MHz | Cortex-M4F @ 120 MHz | Cortex-M7 @ 300 MHz |
| Flash | 256 KB | 1 MB | 2 MB |
| SRAM | 32 KB | 256 KB | 384 KB |
| SERCOMs | 6 | 8 | n/a (USART + TWIHS + SPI dedicated) |
| TCCs | 3 | 5 | 4 |
| Event channels | 12 | 32 | 50 (XDMAC) |
| Ethernet | no | yes (MAC) | yes (MAC) |
| CAN-FD | no | 2x | 2x |
| Trust / security | no | TrustZone-like via SCB, OPA | ICM (Integrity Check Module), TRNG |
The SERCOM gotcha and the matching solution
The flexibility of SERCOM creates its own coordination problem: a SAM D21 part has six SERCOMs and a pin-mux fabric that lets each SERCOM appear on multiple physical pins. The MPLAB Harmony configurator gives a graphical mapping, but the consequence is that schematic and firmware are tightly coupled in ways that traditional MCUs are not. A simple "swap the I²C and SPI buses on this board" change requires updating both the schematic pin assignment and the SERCOM mode register, with no automatic verification.
Microchip's MCC (Code Configurator) emits a header named peripheral_clk_config.h and a startup function that programs the SERCOM mode bits. Treat this file as part of the schematic — version-control it, code-review changes, and document the SERCOM-to-pin mapping in the board README.
/* Manual SERCOM3 as SPI master configuration */
SERCOM3->SPI.CTRLA.reg =
SERCOM_SPI_CTRLA_MODE_SPI_MASTER |
SERCOM_SPI_CTRLA_DOPO(0) | /* MOSI on PAD[0], SCK on PAD[1] */
SERCOM_SPI_CTRLA_DIPO(3) | /* MISO on PAD[3] */
SERCOM_SPI_CTRLA_ENABLE;
while (SERCOM3->SPI.SYNCBUSY.bit.ENABLE);The trade-off is real: SERCOM saves silicon area and gives you board-layout flexibility, but adds firmware coordination burden. Production teams sometimes accept the area penalty and use a chip with dedicated UART / SPI / I²C blocks instead (NXP LPC55, Renesas RA4) to escape this complexity.
SAM E70 / V71 — the Cortex-M7 industrial line
The SAM E70 and SAM V71 are Microchip's Cortex-M7 entries, originally Atmel SMART parts. SAM V71 is AEC-Q100 Grade 2 automotive qualified — uncommon in this performance class — and ships in body-electronics ECUs and infotainment audio nodes. Both share:
- Cortex-M7 with single-precision FPU at 300 MHz.
- 16 KB I-cache + 16 KB D-cache.
- ITCM / DTCM tightly coupled memory.
- Gigabit Ethernet MAC (GMAC) with AVB / TSN extensions.
- USB HS host/device with on-chip PHY.
- CAN-FD x 2.
- ICM (Integrity Check Module) — hashes a memory region in hardware for secure boot.
- XDMAC — 24-channel DMA controller with linked-list descriptors.
For network-attached industrial designs (IO-Link masters, PROFINET adapters, audio-over-Ethernet endpoints), the SAM V71 is genuinely competitive with STM32H7 and NXP RT1170. The trade-off is the smaller community — STM32H7 has far more reference designs and Stack Overflow answers.
MPLAB Harmony, MCC, and PIC32C versus SAM branding
Microchip is gradually renaming SAM parts under the PIC32C umbrella. PIC32CM is the new branding for Cortex-M0+ / M23 SAM-derived parts; PIC32CK is Cortex-M33 with TrustZone; PIC32CX BZ combines Cortex-M4F with a 2.4 GHz radio for Bluetooth / Zigbee; PIC32CZ CA is the latest Cortex-M7 with TSN Ethernet and PolarFire-class security. Datasheets still cross-reference the original SAM names — internally a PIC32CK is "SAM-something-renamed" — but new product launches use the PIC32C name exclusively.
The branding shift signals Microchip's intent to consolidate ARM and PIC32 (MIPS) under one product line name even though the underlying architectures differ. For a firmware engineer, the practical impact is that you'll see both names in support tickets and reference designs; the silicon is the same.
- Cortex-M0+ — SAM D / L / C core.
- Cortex-M4 — SAM E51, SAM D51 core.
- Cortex-M7 — SAM E70/S70/V70/V71 core.
- Cortex-M23 / M33 — SAM L11, PIC32CK with TrustZone.
- Cortex-A overview — SAMA5 SiP family.
- TrustZone — SAM L11 and PIC32CK secure model.
- CMSIS — what Harmony layers on.
- MPU on Cortex-M — SAM E70 cache + DMA partitioning.
- STMicro — STM32G0/G4 versus SAM D21/E54.
- QEMU & Renode — Renode has SAM D21 and partial SAM E70 models.
- Interrupt latency tool — explore SAM event-system latency budgets.