Selecting a 32-bit Microchip Microcontroller

Microchip Technology has a lot of microcontrollers to choose from, so many that the task of selecting the perfect one for your specific needs can be overwhelming.

This page is intended to help narrow your search and provide you with links to other device selection resources. It also has links to device family pages, connecting you with all the information you need to evaluate and design with these MCUs.


low_cost.png

Lowest Cost (under $1.50)

Family Core Speed (MHz) Flash (KB) SRAM (KB) Notes
SAMD1x/2x Arm® Cortex®-M0+ 48 8-256 4-32 Lowest cost
SAMC Arm Cortex-M0+ 48 8-256 4-32 5 V supply
PIC32MM microAptiv 25 16-64 4-8
PIC32MX1/2/5 M4K® 50 16-512 4-64 PIC32MX1/2 are low cost

low_power_usb.png

Low Power and Full-Speed USB

Family Core Speed (MHz) Flash (KB) SRAM (KB) Notes
SAMD1x/2x Arm Cortex-M0+ 48 8-256 4-32 SAMD11/21 have USB
SAML Arm Cortex-M0+/M23 48 16-256 4-32 Lowest power
SAM4 Arm Cortex-M4/M4F 120 128-2048 64-160 SAM4L has USB
SAMG Arm Cortex-M4F 120 256-512 64-176 SAMG55 has USB
SAMD5x Arm Cortex-M4F 120 256-1024 128-256
PIC32MM microAptiv 25 16-64 4-8 PIC32MM-GPM has USB
PIC32MX1/2 (XLP) M4K 72 128-256 32-64 PIC32MX254/274 have USB

large_mem_usb.png

Large Memory and USB (512 KB Flash minimum)

Full-Speed USB
Family Core Speed (MHz) Flash (KB) SRAM (KB) Notes
SAM4 Arm Cortex-M4/M4F 120 128-2048 64-160 Ethernet, CAN 2.0B
SAMG Arm Cortex-M4F 120 256-512 64-176 SAMG55 has USB
SAMD5x Arm Cortex-M4F 120 256-1024 128-256
SAME5x Arm Cortex-M4F 120 256-1024 128-256 Ethernet, CAN FD
PIC32MX3/4 M4K 120 32-512 16-128
PIC32MX5/6/7 M4K 80 64-512 16-128 Ethernet, CAN 2.0B
PIC32MK microAptiv 120 512-1024 128-256 Motor control peripherals and 2 USB
High-Speed USB
Family Core Speed (MHz) Flash (KB) SRAM (KB) Notes
SAMS7/E7/V7 Arm Cortex-M7 300 512-2048 256-384 Ethernet, CAN FD
PIC32MZ EF M-Class 252 512-2048 128-512 Ethernet, CAN 2.0B
PIC32MZ DA microAptiv 200 1024-2048 256-640 Ethernet, CAN 2.0B, DDR2 (32 MB embedded or 128 MB external)

eth_usb_can.png

Ethernet, Full-Speed USB, and CAN (80-120 MHz)

Family Core Speed (MHz) Flash (KB) SRAM (KB) Notes
SAM4 Arm Cortex-M4/M4F 120 128-2048 64-160 SAM4E has all three with CAN 2.0B
SAME5x Arm Cortex-M4F 120 256-1024 128-256 CAN FD
PIC32MX5/6/7 M4K 80 64-512 16-128 PIC32MX7 has all three with CAN 2.0B

hp_eth_usb_can.png

Ethernet, High-Speed USB, and CAN (200 MHz minimum)

Family Core Speed (MHz) Flash (KB) SRAM (KB) Notes
SAMS7/E7/V7 Arm Cortex-M7 300 512-2048 256-384 SAME7/V7 have all three with CAN FD
PIC32MZ EF M-Class 252 512-2048 128-512 CAN 2.0B
PIC32MZ DA microAptiv 200 1024-2048 256-640 Graphics controller, DDR2 (32 MB embedded or 128 MB external) and CAN 2.0B

motor_control.png

Motor Control

Family Core Speed (MHz) Flash (KB) SRAM (KB) Notes
SAMD1x/2x Arm Cortex-M0+ 48 8-256 4-32 SAMD21L for motor control
SAMC Arm Cortex-M0+ 48 32-256 4-32 SAMC21 for motor control
SAME5x Arm Cortex-M4F 120 256-1024 128-256
SAMS7/E7/V7 Arm Cortex-M7 300 512-2048 256-384
PIC32MK microAptiv 120 512-1024 128-256 3 DACs, 4 OpAmps, 5 Comparators, 2 USB, 4 CAN 2.0B

graphics.png

Graphics

Family Core Speed (MHz) Flash (KB) SRAM (KB) Notes
Low-cost controllerless:
PIC32MX1/2/5 M4K 50 16-512 4-64 Lowest cost
PIC32MX1/2 (XLP) M4K 72 128-256 32-64 Low power
PIC32MX3/4 M4K 120 32-512 16-128
PIC32MX5/6/7 M4K 80 64-512 16-128 Ethernet, USB, CAN 2.0B
PIC32MK microAptiv 120 512-1024 128-256 Motor control peripherals
PIC32MZ EF M-Class 252 512-2048 128-512 Ethernet, USB, CAN 2.0B
Integrated graphics controller and DDR2:
PIC32MZ DA microAptiv 200 1024-2048 256-640 DDR2 (32 MB embedded or 128 MB external)

Other MCU's and MPUs with an integrated graphics controller:


5v_can.png

5 V and CAN

Family Core Speed (MHz) Flash (KB) SRAM (KB) Notes
SAMC Arm Cortex-M0+ 48 32-256 4-32 CAN FD

security.png

Security

Family Core Speed (MHz) Flash (KB) SRAM (KB) Notes
SAML Arm Cortex-M0+/M23 48 16-256 4-32 AES, SHA, 3DES, TRNG, Tamper Detection, TrustZone®, Integrity Check Monitor (SHA), HW root of trust/secure boot
SAM4 Arm Cortex-M4/M4F 120 128-2048 64-160 AES, 3DES, TRNG, Tamper Detection
SAMG Arm Cortex-M4F 120 256-512 64-176 Tamper Detection
SAMD5x Arm Cortex-M4F 120 256-1024 128-256 AES, 3DES, TRNG, Tamper Detection, RSA, ECC, Integrity Check Monitor (SHA)
SAME5x Arm Cortex-M4F 120 256-1024 128-256 AES, 3DES, TRNG, Tamper Detection, RSA, ECC, Integrity Check Monitor (SHA)
SAMS7/E7/V7 Arm Cortex-M7 300 512-2048 256-384 AES, 3DES, TRNG, Tamper Detection, Integrity Check Monitor (SHA), HW root of trust/secure boot
PIC32MZ EF M-Class 252 512-2048 128-512 AES, 3DES, TRNG
PIC32MZ DA microAptiv 200 1024-2048 256-640 AES, 3DES, TRNG

selector_guide.png

Microchip's 32-bit Homepage and Selector Guide

 Self-Paced Training

The material in these training modules exists elsewhere on this site in a general reference format. However, the training modules present it in an organized, step-by-step sequence to help you learn the topic from the ground up.

 Projects and Examples

Topic
ADC Project Using chipKIT® WF32 for Harmony v2
ADC Project Using chipKIT® Wi-FIRE for Harmony v2
Arm® TrustZone® Getting Started Application on SAM L11 MCUs
Create your first Motor Control Application using MPLAB® Harmony v3
Creating a Harmony v2 BSP for Your Custom Hardware
Creating Advanced Applications using MPLAB® Harmony v2
Creating Simple Applications Using MPLAB® Harmony v2
Getting Started with Harmony v3 Drivers and Middleware on PIC32MZ EF MCUs using FreeRTOS
Getting Started with Harmony v3 Drivers and System Services on SAM E70/S70/V70/V71 MCUs
Getting Started with Harmony v3 Drivers on SAM C21 MCUs Using FreeRTOS™
Getting Started with Harmony v3 Drivers on SAM D21 MCUs Using FreeRTOS
Getting Started with Harmony v3 Drivers on SAM E54 MCUs Using FreeRTOS™
Getting Started with Harmony v3 Peripheral Libraries on PIC32MK GP MCUs
Getting Started With Harmony v3 Peripheral Libraries on PIC32MX 470 MCUs
Getting Started with Harmony v3 Peripheral Libraries on PIC32MZ EF MCUs
Getting Started with Harmony v3 Peripheral Libraries on SAM D5x/E5x MCUs
Getting Started with Harmony v3 Peripheral Libraries on SAM E70/S70/V70/V71 MCUs
Getting Started with Harmony v3 Peripheral Libraries on SAM L10 MCUs
Getting Started with Harmony v3 Peripheral Libraries on SAMC2x MCUs
Getting Started with MPLAB® Harmony v3 Drivers on SAM E70/S70/V70/V71 MCUs Using FreeRTOS™
Getting Started with MPLAB® Harmony v3 Peripheral Libraries on SAM D21 MCUs
Getting Started with USB on SAM MCUs Using MPLAB® Harmony v3
Harmony v2 USB Flash Drive Audio Player Tutorial
JavaScript Oscilloscope with MPLAB® Harmony v2
Low Power Application on SAM D21 (Arm® Cortex® M0+) MCUs Using MPLAB® Harmony v3 Peripheral Libraries
Low Power Application on SAM E54 (Arm® Cortex® M4) MCUs Using MPLAB® Harmony v3 Peripheral Libraries
Low Power Application on SAM L10 (Cortex M23) MCUs Using MPLAB® Harmony v3 Peripheral Libraries
Low Power Application on SAM L21 (Cortex M0+) MCUs Using MPLAB® Harmony v3 Peripheral Libraries
Low Power Application on SAMC2x (Arm® Cortex®-M0+) MCUs Using MPLAB® Harmony v3 Peripheral Libraries
Migrating ASF SAM C21 Application to MPLAB Harmony v3 PIC32CM MC
MPLAB® Harmony v2 Live Photoframe Tutorial
MPLAB® Harmony v2 Ports Project Using chipKIT® WF32
MPLAB® Harmony v2 Ports Project Using chipKIT® Wi-FIRE
MPLAB® Harmony v2 SD Card Audio Player/Reader Tutorial
MPLAB® Harmony v2 TCP/IP Stack Training
MPLAB® Harmony v2 Timer Driver Example (Static) Using chipKIT® WF32
MPLAB® Harmony v2 Timer System Service Example Using chipKIT® WF32
MPLAB® Harmony v2 Timer System Service Example Using chipKIT® Wi-FIRE
MPLAB® Harmony v2 Timer System Service Example Using PIC32MZ EF Starter Kit
MPLAB® Harmony v2 USART Dynamic Driver Project Using chipKIT® WF32
MPLAB® Harmony v2 USART Static Driver Example Using chipKIT® WF32
MPLAB® Harmony v2 USB Audio Speaker Tutorial
MPLAB® Harmony v2 USB Audio Speaker (with RTOS) Tutorial
MPLAB® Harmony v2 Voice Recorder/Player Tutorial
MPLAB® Harmony v2 Web Photo Frame Tutorial
MPLAB® Harmony v3 SD Card Audio Player/Reader Tutorial
Objective and Overview
Rapid prototyping with 32-bit MCU-based Curiosity Nano Evaluation Kit using MPLAB® Harmony v3 Software Framework
SEGGER emWin Audio Player with MPLAB® Harmony v2 Tutorial

 Frequently Asked Questions

Topic
Why does PIC32 execution not return from the interrupt routine?
Why is the REFCLKO signal on the PIC32 not a square wave with a 50% duty cycle?
Why is the PIC32 not entering sleep mode?
Why can't I write to Program / Boot Flash memory?
Why can't I drive my MOSFET when connected to PWM?
What pin is used by the PIC32MX to detect connection of USB 5 V power?
What is the instruction size of a PIC® MCU?
What does the "-ICD" suffix on an MCU mean?
Using Output Compare Interrupts with PWM
Pin Multiplexing on PIC32MX570F512L for UART 5 - Is RPF3 available for UART5TX?
PIC32 SPI Receive Data Buffer is Empty and Interrupt Flag is Not Set
How can I disable/enable JTAG at runtime on the PIC32MZ?
Do the device pin tables show which pins are 5V tolerant?
Using MPLAB® Harmony MHC to Control PIC32M JTAG
How can I create a Programmable Gain Amplifier (PGA) using an OP Amp and DAC output from a PIC® MCU?
What are the limitations of the PIC32 PMP Slave mode?
PIC32 can run at lower frequencies but not at high frequencies
PIC32 - Open Drain Pin Not Reaching 5V
Is the PIC32's boot memory pre-programmed with a bootloader?
Is it possible to do a CAN bootloader for PIC32?
Impact of Ripple on Vdd when using a Microchip Microcontroller
What PIC32MZ SPI data pins (SDI and SDO) can be used to achieve 50 MHz?
The PIC32 I²S™ LRCK signal is changing on the rising edge. How can I change it on the falling edge?
How do you enable the code protection bit during run time in PIC32MX devices?
How can I find a pin-to-pin compatible microcontroller to migrate my project?
Failed to Program PIC32MM
Does the number of stop-bits selected affect the UART receiver circuitry behavior?
PIC32 is resetting without an exception
PIC32 Exceptions Showing Invalid Address
Connecting a Ethernet Switch to a PIC32MZ
Can the RTCC on a PIC® MCU without a VBAT run off a battery?
Why is a change notification interrupt run without the flag bit being set?
Why can't I get the PIC32 SPI bus to run at 25 MHz?
What is the most common problem encountered when communicating with a PIC® MCU SPI module?
Can the ADC measure 5 V if the VDD is 3.3 V?
Why won't the Watchdog Timer (WDT) wake the PIC32 from sleep?
Why doesn't the MPLAB® Harmony pin diagram show the programming (PGEC/PGED) pins?
Will I damage the peripheral on my 3.3 V device if I'm using it in a 5 V system?
Where can I find the ADC voltage reference?

Notice: ARM is a registered trademark of ARM Limited in the EU and other countries.

© 2024 Microchip Technology, Inc.
Notice: ARM and Cortex are the registered trademarks of ARM Limited in the EU and other countries.
Information contained on this site regarding device applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchip devices in life support and/or safety applications is entirely at the buyer's risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights.