armhub.dev
Vendors · 43 pages
Vendors

Microchip (SAM, PIC32CM/CK/CX)

Microchip's Cortex-M lines — the inherited Atmel SAM family and Microchip's own PIC32C Cortex-M parts.

6 min read · 1,210 wordsupdated · May 12, 2026

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.

Microchip ARM portfolio — at a glance
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.

SeriesCorePosition
SAM D10/11/20Cortex-M0+Entry-level, ultra-low-power
SAM D21/D51M0+ / M4FHobbyist favourites (Adafruit Feather, MakeyMakey)
SAM L10 / L11Cortex-M23Low-power, TrustZone (L11)
SAM L21 / L22Cortex-M0+Ultra-low-power
SAM 3 / 4Cortex-M3 / M4Older mainstream
SAM E70 / S70 / V70 / V71Cortex-M7Industrial — Ethernet, CAN, USB HS
SAM E51/E54Cortex-M4FConnectivity (Ethernet, USB, CAN)
PIC32CM/CKCortex-M0+/M33Latest Cortex-M0+ and M33 from Microchip
PIC32CX BZM4F + radioBLE / Zigbee with M4F app core
PIC32CZ CAM7High-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:

  1. 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.
  2. 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.
  3. 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.
FeatureSAM D21SAM E54SAM E70
CoreCortex-M0+ @ 48 MHzCortex-M4F @ 120 MHzCortex-M7 @ 300 MHz
Flash256 KB1 MB2 MB
SRAM32 KB256 KB384 KB
SERCOMs68n/a (USART + TWIHS + SPI dedicated)
TCCs354
Event channels123250 (XDMAC)
Ethernetnoyes (MAC)yes (MAC)
CAN-FDno2x2x
Trust / securitynoTrustZone-like via SCB, OPAICM (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.