Developer Help
Toggle navigation
Search
Home
Training
Self-Paced Training
Get Started Here
Development Tools
What tools do I need?
Software Tools
Get Started Here
MPLAB® X IDE
Get Started Here
Installation
System Requirements
Compiler Requirements
Java Platform and Operating System Information
Install MPLAB® X IDE
MPLAB® X IDE v5.40 and Earlier
Installation Dependencies on 64-bit Linux
Mac OSX 10.7 and above require JRE6
How to replace Java version installed with MPLAB® X IDE
Introduction to the MPLAB X Development Environment
Migration to MPLAB X IDE
Migrating from MPLAB IDE v8
Migrating to MPLAB X IDE from MPLAB IDE v8
Major Differences
Menu Comparison
Menu Comparison
File Menu Differences
Edit Menu Differences
View Menu Differences
Project Menu Differences
Debugger Menu Differences
Programmer Menu Differences
Tools Menu Differences
Configure Menu Differences
Window Menu Differences
Help Menu Differences
Tool Support Differences
Migration Considerations
Migrating from Atmel Studio
Migrating to MPLAB X IDE from Atmel Studio IDE
Terminology Differences
Conceptual Differences
Programming and Launching Debug Sessions
Configuration
Configuration
Command Line Options
High Resolution/DPI Monitors
Running Multiple Instances
Switching USB Drivers (Windows)
Manually Install USB Drivers (Windows)
JVM Configuration Options
Reset to Default State
Options Window
Options Window
General
General
Editor
Editor
General
Formatting
Code Completion
Code Templates
Hints
Macros
Fonts & Colors
Fonts & Colors
Syntax
Highlighting
Annotations
Diff
Versioning
Keymap
Keymap
C/C++
C/C++
Highlighting
Embedded
Embedded
Build Tools
Project Options
Generic Settings
Suppressible Messages
Diagnostics
Other
Miscellaneous
Miscellaneous
Appearance
Diff
Files
Issue Tracking
JavaScript
Spellchecker
Tasks
Terminal
Versioning
Make MPLAB X IDE Run Faster
Project Properties
Memory Usage
License Manager
Hardware Tool Connections
Project Build Speed
Debug
Simulator Speed
Operating Systems
Plug-ins
Plug-ins
Plug-ins Window
Plug-ins Window
Updates Tab
Available Plug-ins
Downloaded Tab
Installed Tab
Settings Tab
Microchip Plug-ins
Install a Microchip Plug-in
MPLAB Code Configurator (MCC)
Application Launcher
Code Profiler
Code Profiling
Capabilities
Requirements
Plug-in Installation
Plug-in Setup
Starting the Code Profiler
Code Profiling Window
Graphing Profile Data
Code Profiling Controls
Data Monitor and Control Interface (DMCI)
Data Monitor and Control Interface
Modes
Requirements
Installation
Modify Capture
RTDM Mode
Runtime Watch Mode
Videos
MPLAB® Data Visualizer
MPLAB Data Visualizer
Machine Learning (ML) Plugin
Halt Notifier
Halt Notifier Plug-in Overview
Install and Launch the Halt Notifier Plug-in
Add Halt Notifier Icon to Toolbar
Enable, Disable, and Configure Notifications
Customize Audio Notification
Customize Email Notification
Customize Script Notification
Close the Halt Notifier Window
PC-lint
PC-lint
Gimpel PC-lint/MISRA Installation
How to Use Gimpel PC-lint/MISRA Plug-in
Using PC-lint with MPLAB X IDE
Third Party Plug-ins
Install a Third-Party Plug-in
Running Plug-ins
User Interface
User Interface
Dashboard Window
Main Toolbar
Main Toolbar
Main Toolbar Customization
File Menu
Projects
Projects
MPLAB X IDE v5.xx Project Compatibility
Packs and Projects
Introduction to Device Family Packs (DFPs)
Packs and Projects
Device Pack FAQs
What are DFPs?
Packs vs. DFPs
Where are DFPs Installed?
What is contained in DFPs?
How are DFPs Distributed?
Minimum Tool Versions Using DFPs
Which Header Files are Used?
Managing DFPs for Different Project Types
Creating Projects
Project Types
Standalone Project
Import MPLAB 8 Project
Prebuilt (HEX File) Project
Loadable Projects, Files, and Symbols
Loadable Projects, Files, and Symbols
Projects Window – Loadables Setup
Project Properties Window – Loading Setup
Project Properties Window – Loading Setup
Combining the Current Project with Other Projects
Combining the Current Project HEX File with Other HEX Files
Loading an Alternative HEX File
Loading Debug Symbols During Program/Build
The Preferred Method to Use Loadables
Loadable Projects and Files: Bootloaders
User Makefile Project
Library Project
Import IAR EW Project
Template Projects
Application Specific Projects
Bootloader Project
Projects using Scripts
Project Directory Structure
Project Configurations
Project Configurations
Create a Project Configuration
Conditionally Compiled Code in Project Configurations
Modifying Projects
Modifying Projects
File Operations
File Operations
Project Properties
Project Properties
Open Project Properties Window
Project Settings
Project Settings
Project Support Lights
Compiler Settings
Allocating Heap Memory
Assembler Settings
Linker Settings
Select Debugger/Programmer
Debugger/Programmer Settings
Libraries
Project Paths
Project Paths
Output Path
Intermediates Path
Include Directories
Changing a Project's MCU
Organizing Projects
Organizing Projects
Projects Window
Projects Window
Logical Folders
Create a Logical Folder
Rename a Logical Folder
Remove a Logical Folder
Move Logical Files and Folders
Add Existing Item...
Add Existing Items From Folders...
Locate Headers
Add Item to Important Files...
Export HEX
Files Window
Files Window
Apply a diff Patch
Revert Deleted Using Local History
Favorites Window
Favorites Window
Multiple Projects
Multiple Projects
Set Main Project
Clear Main Project
Building Projects
Building Projects
Build for Debugging
Build for Release
Build Settings
Change Link Order
Configure Project Build Options
Configure File Build Options
Makefiles
Makefiles
Build Errors
Build Errors
No Rule to Make Target
Project Operations
Project Operations
Open a Project
Close a Project
Copy a Project
Rename a Project
Package a Project Into a ZIP File
Libraries
Libraries
HEX Files
Read Device and Save HEX File
Project Paths, Files, and Folders
Project Templates
Project Templates
Files
Files
Create File
Create File in Project
Add Existing File(s) to Project
Add Folder to Project
Open File
Open File in Project
Rename File
Remove File from Project
Delete File
File Templates
File Templates
Editor
Editor
Interface and Shortcuts
Interface and Shortcuts
Editor Toolbar
Glyph Margin
Tab Key
Code Folding
Code Templates
Code Assistance
Code Assistance
Code Documentation
Options
Find Matching Brace
Select Between Braces
Basic Tasks
Basic Tasks
Opening Files
Rectangular Edit
Appearance
Appearance
Fonts and Colors
Fonts and Colors
Change Editor Font
Change Editor Colors
Change Semantic Highlighting
Line Numbers
Right Margin Line
Dynamic Feedback
Dynamic Feedback
Error Stripe and Glyph Margin
Live Parsing
Instance Highlighting
Remove Highlighting from Search Results or Selection Matches
Navigation
Navigation
Navigate Menu
Hyperlink Navigation
Navigator Window
Navigator Icons
Classes Window
Search, Replace, and Refactor
Search, Replace, and Refactor
Find Instances of Text in a File
Find in File
Find Usages
Find in Project(s)
Replace in File
Replace in Project(s)
Refactor Code
Productivity Tools
Productivity Tools
Automatic Code Formatting
Automatic Code Formatting
Formatting Rules
Apply Formatting
Tasks List
Tasks List
Comparing Files (diff)
Comparing Files (diff)
Generate Documentation
Generate Documentation
Window Management
Window Management
Dock and Undock Windows
View Two Files Simultaneously
Split View of Single File
Restore Single Editor Window
Maximize the Editor Window
Restore the Editor Window
Multiple Monitors
Resetting Window Locations
Keyboard Shortcuts
Configuring Keyboard Shortcuts
Window Navigation Shortcuts
Debugging
Debugging
Debugger/Programmer Interfaces
Debugger/Programmer Interfaces
UPDI High Voltage Activation Information
UPDI High Voltage Activation Information
MPLAB PICkit™ 4 In-Circuit Debugger - High Voltage Activation of UPDI
MPLAB X IDE - Debugging with UPDI (AVR MCUs)
MPLAB X IDE - Debugging with debugWIRE (AVR MCUs)
Debugger/Programmer Configuration
Debug Startup Options
Debug Toolbar
Start a Debug Session
Viewing Memory and Variables
Difference between Watches and Variables Windows
Watches Window
Watches Window
How Un-resolvable Watch Window Symbols can Affect Debugging Speed
Watches in Local Variables View
Show Array Segment
Create as Fixed Watch
Saving and Importing Watches
Alternate Watch Views
Variables Window
Variables Window
Show All/Some Local Variables
Embedded Memory Windows
View Embedded Memory
Change the Value in a File Register
View and Set Configuration Bits
Debug Disassembly Window
Breakpoints
Breakpoints
Line Breakpoints
Line Breakpoints
Set Line Breakpoint
Clear/Remove Line Breakpoint
Disable Line Breakpoint
Enable Line Breakpoint
Modify Line Breakpoint
Address Breakpoints
Address Breakpoints
Set Address Breakpoint
Determine A Line's Address
Clear/Remove Address Breakpoint
Disable Address Breakpoint
Enable Address Breakpoint
Modify Address Breakpoint
Data Breakpoints
Data Breakpoints
Set Data Breakpoint
Clear/Remove Data Breakpoint
Disable Data Breakpoint
Enable Data Breakpoint
Modify Data Breakpoint
Event Breakpoints
Event Breakpoints
Set Event Breakpoint
Clear/Remove Event Breakpoint
Disable Event Breakpoint
Enable Event Breakpoint
Modify Event Breakpoint
Complex Breakpoints
Sequence Breakpoints
Sequence Breakpoints
Set Sequence Breakpoint
Clear/Remove Sequence Breakpoint
Disable Sequence Breakpoint
Enable Sequence Breakpoint
Change Sequence Breakpoint Order
Remove Breakpoint from Sequence
Tuple Breakpoints
Tuple Breakpoints
Set Tuple Breakpoint
Clear/Remove Tuple Breakpoint
Disable Tuple Breakpoint
Enable Tuple Breakpoint
Remove Breakpoint from Tuple
Hardware Breakpoints
Software Breakpoints
Enable Software Breakpoints
Breakpoints Window
Stopwatch
Call Stack
Call Stack
Call Graph
Call Graph
Instrumented Trace and Log
Instrumented Trace and Log
Data Monitor and Control Interface (DMCI)
Data Monitor and Control Interface
Real-Time Data Monitor (RTDM)
Real-Time Data Monitor
RTDM Applications Programming Interface (API)
RTDM API
Functions
RTDM_Start()
RTDM_ProcessMsgs()
CloseRTDM()
RTDM_CumulativeCrc16()
Constants
RTDM_FCY
RTDM_BAUDRATE
RTDM_UART
RTDM_UART_PRIORITY
RTDM_RXBUFFERSIZE
RTDM_MAX_XMIT_LEN
RTDM_POLLING
RTDM_MIN_CODE_SIZE
Simulator
Simulator
Stimulus
Code Coverage
Bug Tracking
Bug Tracking
Bugzilla Integration
__DEBUG Macro
Version Control
Version Control
Local History
Git Integraton
Git Integration
Git Installation
Git Initialization
Cloning a Git Repository
Cloning a Git Repository from GitHub
Adding Files to a Git Repository
Committing Sources to a Git Repository
Working with Branches
Working with Branches
Creating a Branch
Checking Out Sources from a Branch
Merging Branches
Deleting a Branch
Working with Remote Repositories
Working with Remote Repositories
Fetching
Pulling
Pushing
Subversion Integration
Subversion Integration
Installation and Operation (Windows)
Installation and Operation (Mac OS)
Installation and Operation (Linux)
Install Subversion Client
MPLAB® X IDE Subversion Features
MPLAB® X IDE Subversion Features
Setting Up Subversion
Subversion Synchronization
Editing Sources
Subversion Window
Committing Sources
Working with Version Control Systems
Analysis
Compiler Advisor
Automation
CI/CD Wizard
IDE Scripting
Command Line Debugger (MDB)
Microchip Debugger
How to Invoke MDB
MDB Scripts
MDB Reference
MDB Reference
backtrace Command
break (address) Command
break (line) Command
continue Command
delete Command
device Command
halt Command
help Command
hwtool Command
next Command
print Command
program Command
quit Command
reset Command
run Command
sleep Command
step Command
stim Command
upload Command
wait Command
watch Command
x Command
Stimulus Control Language (SCL)
Stimulus Control Language
Getting Started
Concepts
SCL Reference
Reference
accessin() Function
Assignment
Boolean Expressions
Comments
configuration Statement
Constants
endfile() Function
file_close() Function
file_open() Function
if Statement
loop Statement
match() Function
now() Function
packetin() Function
pin Statement
Predefined Types
process Statement
random_time() Function
read() Function
readline() Function
report() Function
Special Function Register (SFR)
Shared Label
Shared Location
Shared Variable
testbench Statement
Types
Variables
wait Statement
while Statement
SCL Examples
Input Clock
File Injection
Reading from a File
IDE Scripting with Groovy
IDE Scripting with Groovy
Troubleshooting
Tools > Options Window Won't Open
MPLAB X IDE Won't Start
HEXMATE Conflict Report Address Error
Working Outside of MPLAB X IDE
Working Outside of MPLAB X IDE
Compiling for Debug Outside of MPLAB X IDE
Building a Project Outside of MPLAB X IDE
Creating Makefiles Outside of MPLAB X IDE
Creating Makefiles Outside of MPLAB X IDE
Makefile Creation
prjMakefilesGenerator
Makefiles Description
Make Environment
Makefile Interface
Environment Variables to Control the Make Process
Environment Variables to Control the Make Process
Variables to Control Tool Names/Locations
Variables to Control Processor Selection
Variables to Control Special Linking Needs
Variables to Modify Command Lines
Special Considerations for Each Language Tool
Special Considerations for Each Language Tool
XC8
XC16
XC32
Working with Revision Control Systems
Other Resources
Other Resources
Development Tools Videos
Development Tools Webinars
The Improved Version of MPLAB® Xpress
Get Started Here
Working with the New MPLAB Xpress
Working with GitHub
Working with Hardware Tools
Supported Features by MPLAB XC License
MPLAB Xpress Instructional Videos
MPLAB Xpress
Get Started Here
Introduction
IDE
Examples
Xpress IDE Examples Section
Hello World - Light an LED
Serial Communication
LED Control with Potentiometer
I2C to EMC1001 Temp Sensor using MCC
Analog Read with ADCC
Control I/O Pins with CLC JK FlipFlop
ADCC Threshold Comparison
Conductive Ink Capacitive Sensor using ADCC
Conditional Wake-up From Sleep w/CLC
Code Free Switch Debounce with Timer2 HLT
Sending ADCC Data via Bluetooth with RN41
Detecting Missing Events using Timer 2 HLT
LM35 Temp Sensor w/ MPLAB Xpress
Create an Extra PWM using the CLC
Motor Control
Low Side Drive using PWM
H-Bridge using CWG
Lock Anti-Phase H-Bridge Drive
Stepper Motor Drive using H-Bridge
Creating a Project
Importing a Project
Importing/Writing MPLAB X Examples
Compiling a Project
Programming a Board
Bridge Tool
Debugging a Project
Opening MCC in MPLAB Xpress
GPIO Setup in MPLAB Xpress
Using Timer2,4,6 in MPLAB Xpress
Using Timer0 in MPLAB Xpress
Using CWG in MPLAB Xpress
EUSART Setup Basics in MPLAB Xpress
Using the PWM Module in MPLAB Xpress
MPLAB IPE
Get Started Here
What is IPE?
Installation
Requirements
Install MPLAB IPE
Supported Programming Tools
Launching the IPE Application
Multiple IPE Instances
IPE Modes
Production Mode
Production Mode
Production Mode Settings
Setting Up a Programmer
Apply Device
Disconnect Tool
Importing a Hex File
Exporting a Hex File
Programming a Device
Blank Check
Advanced Mode
Advanced Mode Login
Password Change
Advanced Mode
Advanced Mode Options
Operate Option View
Power Options
Memory Settings
Environment Settings
SQTP Settings
Settings
Log Out
IPE Demonstration
IPE Help
Menus
File Menu
Settings Menu
View Menu
SQTP File Format Specification
SQTP File Format Specification
SQTP Overview
SQTP Example File
Intel HEX File Format
MPLAB® IPE SQTP File Generation
Customer Generated SQTP Files
Programming of Devices
Understanding Usage of RETLW in SQTP File for Midrange and Baseline Devices
Examples of SQTP Files For Various Memory Regions
Additional Information
Differences in SQTP File Behavior Between MPLAB IPE v2.35 (and Before) and MPLAB IPE v2.40 (and Later)
Differences in the SQTP Feature Between MPLAB® IDE v8.xx and MPLAB IPE for the Flash Data Memory Region
C Programming
MPLAB® XC Compilers
Get Started Here
MPLAB® XC8 Compiler
Get Started Here
Install MPLAB XC8 Compiler
MPLAB® XC8 v2.x
What's New in MPLAB® XC8 v2.0
Moving to the v2.0 MPLAB® XC8 C Compiler
AVR® Devices in MPLAB® XC8 v2.05
Read-Only Objects and MPLAB® XC8 compiler for AVR® MCUs
Articles
XC8 Microcontroller Device Families
XC8 Defining Large Objects
Memory Considerations When Using Flash Routines
Powering Out of Reset
Selective Code Protection
Finding the Cause of Reset
Using Hexmate on the Command Line
Building XC8 Libraries
Duplicated Functions
Blocking External Table Reads
Customizing User-Defined Sections
Crafty Optimizations
Using Code Offset with PIC® Devices
Printing to the UART Console in MPLAB X IDE Simulator
CRC Checksum Algorithms in Hexmate
XC8 Common Macros
Additional content planned...
MPLAB XC16 Compiler
Get Started Here
Install MPLAB XC16 Compiler
Articles
The Importance of Memory Model Selection
Safe and Precise Control of In-line Assembly With MPLAB® XC16/32
Additional content planned...
MPLAB XC32 Compiler
Get Started Here
Install MPLAB XC32 Compiler
Redirect stdout for use with printf()
Set the Include Directory path
Articles
Safe and Precise Control of In-line Assembly With MPLAB® XC16/32
Fast Atomic Access of PIC32 SFRs
Additional content planned...
MPLAB XC32++ Compiler
Get Started Here
Install MPLAB XC32++ Compiler
Interrupts
Interrupts
Additional content planned...
MPLAB Code Coverage
MPLAB Code Coverage Overview
Assemblers
MPLAB® XC8 PIC® Assembler
AVR Assembler
AVR Assembler
Using AVR Assembler with MPLAB X IDE Projects
IAR C/C++ Compiler
Get Started Here
IAR C/C++ Compiler for AVR MCUs in MPLAB X IDE
MPLAB Code Configurator (MCC)
Get Started Here
MPLAB® Code Configurator
Installation of MCC within MPLAB X
MCC Project Resources
Configurable Logic Cell GUI
Setting up GPIO
MCC Merge Window
Saving/Adding an MCC Project Configuration Setup
Saving/Importing Individual Peripheral MCC Configurations
MCC Notifications/Warnings Tab
MCC Options Settings
MCC Interrupts
MCC Library Version Selection
MCC Examples
Using Timer0 in MCC
Using Timer2/4/6 in MCC
Using CWG in MCC
Using TCPlite Library In MCC
MPLAB Harmony v2
MPLAB Harmony v3
Atmel® Studio IDE
Get Started Here
Install Atmel Studio
Atmel Studio 7 Introduction
Creating a Project in Studio 7
Selecting a Tool
Hello World Project
Code Stepping
Atmel START (ASF4)
Get Started Here
Introduction Videos
Creating Applications using START
SAM E54 Event System with RTC, ADC, USART and DMA
Objective, Overview and Source Files
Step 1: Create a project for the SAM E54
Step 2: Configure drivers for the application
Step 3: Reconfiguring existing project
Step 4: Add application code to the project
Step 5: Build, program and observe the outputs
AVR START Projects
AVR ADC In Atmel START
SAM D21 START Projects
SAM D21 UART
SAM D21 ADC and I²C
SAM D21 Bootloader
Browsing pre-written START projects
Using Eclipse with Atmel START
Advanced Software Framework v3 (ASF3)
Get Started Here
ASF3 Tutorials
ASF Audio Sine Tone Tutorial
Objective, Overview, and Source Files
Step 1: Create Project for the SAM V71
Step 2: Add Drivers/Components/Services using ASF Wizard
Step 3: Configure Evaluation Board
Step 4: Add Source File and Review Code to Configure Peripherals
Step 5: Review the Application Code
Step 6: Debug Your Application
Interface LCD with SAM L22 MCU Tutorial
Objective, Overview, and Source Files
Step 1: Create Project for the SAM L22
Step 2: Add Drivers/Components/Services using ASF Wizard
Step 3: Add SLCD Library Files and Initialize SLCD Controller
Step 4: Control and drive the LCD Display
MPLAB® Device Blocks for Simulink®
Get Started Here
Introduction
Installation
MPLAB® Device Blocks for Simulink® Library content
BUS UART
BUS UART Blocks
UART Configuration Block
UART Tx Block
UART Rx Block
UART Tx-Matlab Block
picgui Graphical Interface Block
Examples
UART Terminal Example
Utilities
Terminal Emulators
Static Analyzers
Anaconda Python Distribution
FPGA Design Tools
Get Started Here
Installing and Licensing Libero® SoC
Getting Started Using Libero® SoC
MPLAB® Mindi™ Analog Simulator
Get Started Here
MPLAB® Mindi™ Analog Simulator Hands On Workbook
Chapter 1 - Getting Started with MPLAB Mindi
Chapter 2 - Linear and LDO Regulator Models
Chapter 3 - Experiment with Driving MOSFETs
Chapter 4 - Peak Current Mode Step-Down (Buck) Converters
Chapter 5 - COT Buck Regulators with External Ripple Injection
Chapter 6 - COT Regulators with Internal Ripple Injection
Chapter 7 - Peak Current Mode Step-Up (Boost) Regulators
Chapter 8 - Peak Current Mode Control Buck-Boost Converters
Chapter 9 - Peak Current Mode Step-up LED Current Regulators
Chapter 10 - High Voltage Sequential Linear LED Drivers
Chapter 11 - High Voltage Peak Current Mode Buck LED Drivers
Chapter 12 - Fundamentals of Linear Simulation
Chapter 13 - AC Amplification
Chapter 14 - Differential Amplification
Chapter 15 - Current Sensing
Chapter 1 to 15 - MPLAB® Mindi™ Analog Simulator Hands On Workbook
Introduction
About
Download
Welcome Page
Schematic Models
Schematic Application Examples
Running Basic Simulations
Create a Schematic
Using the Schematic Editor
Setting up a SIMetrix Simulaton
Setting up a SIMPLIS Simulation
Analysis Modes
PLD Software Tools
Get Started Here
Additional content planned...
Hardware Tools
Get Started Here
Hardware Tools Comparison
Debug Tools and Device Memory
Debug Executive
Demo Boards & Starter Kits
PICDEM™ 2 Plus
PICDEM™ FS USB
USB Power Delivery Software Framework Evaluation Kit User's Guide
I. Overview
II. Getting Started
III. Hardware User's Guide
IV. Evaluating UPD301C
UPD301C Plug-In Module
UPD301C Basic Sink Application Example
UPD301B Basic Source Application Example
PICDEM™ Lab II
Curiosity
Curiosity (8-bit)
Curiosity Training Videos
Curiosity HPC
PIC24F Curiosity
PIC32MM Curiosity
PIC32MM USB Curiosity
Curiosity PIC32MX470
Curiosity PIC32MZEF
Curiosity PIC32MZEF v2
ATmega4809 Curiosity Nano
SAM E51 Curiosity Nano Evaluation Kit
Microstick
Microstick II
Microstick 3 V K-Series
Microstick 5 V K-Series
Xpress Boards
MPLAB® Xpress PIC16F18855
MPLAB® Xpress PIC16F18345 Board
MPLAB® Xpress PIC16F18877 Board
chipKIT® Wi-FIRE
chipKIT® WF32
Explorer 8
Explorer 16
Explorer 16/32
Automotive Networking Development Board
PIC32MK GP Development Kit
RF & Wireless
RN1723 Evaluation Kit
BM70 PICtail™
BM71 PICtail™
RN4870 PICtail™
PIC32 Starter Kits
PIC32MX1/2/5 Starter Kit
PIC32MX274 XLP Starter Kit
PIC32MX USB Starter Kit III
PIC32MX Ethernet Starter Kit II
PIC32MZ Embedded Connectivity with FPU
PIC32MZ Embedded Graphics with External DRAM (DA)
PIC32MZ Embedded Graphics with Stacked DRAM (DA)
PIC32 Multimedia Expansion Board II
PIC32 Multimedia Expansion Board II (v5)
MCP2221 Breakout Module
Motor Control
dsPICDEM™ MCLV-2 Development Board
BLDC 24V Motor Control Kit
Xplained Boards
ATtiny817 Xplained
ATmega328PB Xplained
SAM D11 Xplained Pro
SAM D21 Xplained Pro
SAM L21 Xplained Pro
SAM L22 Xplained Pro
SAM C21 Xplained Pro
SAM C21N Xplained Pro
SAM 4L8 Xplained Pro
SAM 4E Xplained Pro
SAM G55 Xplained Pro
SAM E54 Xplained Pro
SAM E70 Xplained
SAM V71 Xplained Ultra Evaluation Kit
SAMA5D3 Xplained
SAMA5D4 Xplained
I/O1 Xplained Pro Extension Kit
Un-Brick an AVR Xplained Board
CryptoAuth Trust Platform
Internet of Things
SecureIoT1702 Development Board
About
SecureIoT1702 Development Board User's Guide
Get Started Here
Features
Recommended Tools and Accessories
Powering the Board
Jumper Options
Using the FT230X USB-Serial Converter
Programming and Debugging
Schematic
Bill of Materials
MPLAB® REAL ICE™ In-Circuit Emulator
Get Started Here
Setup
Debug Executive
Emulator Communications
Emulator Communications Overview
Emulator Communication with the PC
Emulator Communication with the Target
Target Communication Overview
Standard Communication
High-Speed/LVDS Communication (Performance Pak)
Target Connection Circuitry
Target Circuit Design Precautions
Trace Communications
Emulator Operation
Emulator Operation Overview
Requirements For Debugging
Sequence of Operations Leading to Debugging
Debugging Details
Programming with the Emulator
Emulator Troubleshooting
Configuration Options
Configuration Options Overview
Select Memory Range to Program
Freeze Peripherals on Halt
Erase All Before Programming
Low Voltage Programming
Use Software Breakpoints
Debug Clock Selection and Speed
Select REAL ICE Firmware to Load
External Trigger Configuration
Trace and Profiling
Trace and Profiling
Configuration Options
Instruction Trace / Profiling (PIC32)
Instruction Trace / Profiling (PIC32) Overview
Requirements for Trace
How Instruction Trace Works
Setting Up and Using Trace
PC Profiling – 32-Bit MCUs Only
Instruction Trace Connections
Trace Hardware Specifications
Other Types of Instruction Trace
User Instrumented Trace
User Instrumented Trace Overview
Requirements for Trace
How Instrumented Trace Works
Types of Trace
I/O Port Trace Connections (Logic Port)
Setting Up Trace in MPLAB X IDE
Running Trace
Tracing Tips
Disabling Trace
Resource Usage Examples
More on Trace/Log ID Numbers
Trace Quick Reference
Jump Trace
PC Sampling & Profiling
PC Sampling & Profiling Overview
PC Sampling: 8- and 16-Bit MCUs Only
PC Profiling – 32-Bit MCUs Only
Function Level Profiling (FLP)
Function Level Profiling Overview
FLP Requirements
FLP Clock Setup (8- and 16-Bit MCUs Only)
FLP Sampling Setup
FLP Operation
Data Capture and Runtime Watches
Data Capture and Runtime Watches
Data Capture and DMCI
Runtime Watches and DMCI – PIC32 MCUs Only
Runtime Watches and the Watches Window
Application In/Out (App IO)
Application In/Out
Using App I/O with 8- and 16-Bit MCUs
Using App I/O with 32-Bit MCUs
Running the App I/O Code
Changing App I/O Window Options
External Triggers
Debug Headers
Hardware Specifications
Hardware Overview
USB Port/Power
Emulator Pod Hardware
Standard Communications Hardware
Standard Communications Hardware
Standard Driver Board
Modular Cable and Connector
High-Speed/LVDS Communication Hardware
Emulator Self Test using the Loopback Test Board
Target Board Considerations
Target Board Considerations
Target Connection Circuitry
Target Circuit Design Precautions
Emulator Firmware Upgrade
Accessories
Power Monitor
Power Monitor
Power Monitor Help
Power Monitor Introduction
Hardware Setup
Software Plugin Installation
Software Setup
Target Board Power Selection
Power Monitor Selection as Plugin Board
Power Monitor Selection for Data Collection
Power Monitor Usage
Power Breakpoints
Power Data Collection and Troubleshooting
Power Data Only Mode
Power Data with Program Counter (PC) Mode
Alternative Target Power (CHA) Setup
Device Power (CHB) Setup
Power Monitor Window Controls
Power Monitor Views
Trace and Profiling Function Summary
Hardware Specifications
Performance Pak
Performance Pak Overview
Emulator-to-Target Connections
Performance Pak High-Speed Receiver Board
Performance Pak LVDS Cables and Target Pinout
Target Communication Connections
Isolator Unit Connections
SPI Trace
Target Connection Circuitry
Target Circuit Design Precautions
Performance Pak Hardware
JTAG Adapter
JTAG Adapter Overview
JTAG Adapter Support
Switch from Non-JTAG to JTAG Hardware
Switch from JTAG to Non-JTAG Hardware
JTAG Adapter Schematics
Isolator Unit
Isolator Unit Overview
Device Support
Hardware Setup
Software Setup
Isolator Unit Design
Third Party Support
Trace Interface Kit
Trace Interface Kit Overview
PIM with Trace Layout
Trace Interface Kit Components
SAM-ICE JTAG Emulator
Get Started Here
Atmel® ICE In-Circuit Emulator
Get Started Here
Connecting Atmel-ICE to AVR and SAM
Connecting to a JTAG Target
Connecting to an aWire Target
Connecting to a PDI Target
Connecting to a UPDI Target
Connecting to a debugWire Target
Connecting to a SPI Target
Connecting to a TPI Target
Connecting to a SWD Target
Connecting to Data Gateway Interface
Power Debugger
Get Started Here
MPLAB® ICD 3 In-Circuit Debugger
Get Started Here
Setup
Debug Executive
Pod Hardware
Self Test using the Test Interface Module
Configuration Options
Configuration Options Overview
Configure MPLAB ICD3 for Manual Memory and Range Selection
Program Memory Range Selection
Preserve a Program Memory Range
Prevent EEPROM Data Memory From Being Programmed
Preserve EEPROM Data Memory
Use Software Breakpoints
Erase All Before Programming
Low Voltage Programming
Freeze Peripherals on Halt
Power Target From ICD 3
Debug Clock Selection
Select ICD 3 Firmware to Load
Debug Headers
MPLAB® ICD 4 in-Circuit Debugger
Get Started Here
MPLAB® ICD 4 Introduction
MPLAB® ICD 4 Components
MPLAB® ICD 4 Block Diagram
Operations
MPLAB® ICD 4 Debugger to Target Communication
MPLAB® ICD 4 Target Communication Connections
MPLAB® ICD 4 Debugging
MPLAB® ICD 4 Requirement for Debugging
MPLAB® ICD 4 Sequence of Operations Leading to Debugging
MPLAB® ICD 4 Debugging Details
MPLAB® ICD 4 Programming
MPLAB® ICD 4 Resources Used by the Debugger
Debugger Usage
MPLAB® ICD 4 Installation and Setup
MPLAB® ICD 4 Quick Debug/Program Reference
MPLAB® ICD 4 Connecting the Target Board
MPLAB® ICD 4 Setting up the Target Board
MPLAB® ICD 4 Starting and Stopping Debugging
MPLAB® ICD 4 Viewing Processor Memory and Files
MPLAB® ICD 4 Breakpoints and Stopwatch
Troubleshooting
MPLAB® ICD 4 The Five Questions to Answer First
MPLAB® ICD 4 Top Reasons Why You Can’t Debug
MPLAB® ICD 4 Other Things to Consider
MPLAB® ICD 4 Frequently Asked Questions (FAQs)
MPLAB® ICD 4 Error Messages
Debugger Function Summary
MPLAB® ICD 4 Debugger Selection and Switching
Debugger Options Selection
MPLAB® ICD 4 Debugger Options Selection
Memories to Program
Debug Options
Program Options
Freeze Peripherals
Power
Secure Segment
Firmware
Clock
Hardware Specification
MPLAB® ICD 4 USB Port/Communication
MPLAB® ICD 4 In-Circuit Debugger
Standard Communication Hardware
Standard Communication Hardware
Connecting an RJ-11 Type Cable to an RJ-45 Socket
MPLAB® ICD 4 Debugger Pinouts for Interfaces
Standard Communication
Modular Cable Specification
ICD Test Interface Module
Target Board Considerations
MPLAB® ICD 4 Glossary
Recommended Reading
Support
PICkit™ 3 In-Circuit Debugger
Get Started Here
Setup
Debug Executive
Configuration Options
Configuration Options Overview
Select Memory Range to Program
Modifying a Single EEPROM Data Byte
Erase All Before Programming
Low Voltage Programming
Freeze Peripherals On Halt
Power Target From PICkit 3
Debug Clock Selection
Programmer To Go
Select PICkit 3 Firmware to Load
PICkit 3 Connection Failure Error
PICkit 3 Scripting Tool
Debug Headers
MPLAB® PICkit™ 4 In-Circuit Debugger
Get Started Here
Setup
Programmer To Go
Debugger/Programmer Interfaces
MPLAB® PICkit 4 - High Voltage Activation of UPDI
Configuration Options
Configuration Options Overview
Memories to Program
Debug
Program
Freeze Peripherals
Power
Programmer To Go
Secure Segment
Firmware
Clock
Communication
Hardware Specifications
Block Diagram
Unit Description
Indicator Light Strip
Debugger Connector Pinout
Pinouts for Interfaces
Adapter Board Pinouts
MPLAB® Snap
Get Started Here
MPLAB® Snap Description
MPLAB® Snap Features
MPLAB® Snap Components
MPLAB® Snap Additional Items Needed
MPLAB® Snap vs. MPLAB® PICkit™ 4
MPLAB® Snap Pinout Information
MPLAB® Snap LEDs
MPLAB® Snap to Target Communication
MPLAB® Snap Options Selection
MPLAB® Snap Troubleshooting
MPLAB PM3 Universal Device Programmer
Get Started Here
Configuring the PM3
Hardware Setup
Pod Hardware
Configuring the Project
Configuration Options Overview
Project Properties Window
Memories to Program
Program Options
Voltages
ICSP Options
MPLAB® PM3 ICSP™ Hardware
Firmware
Program with MPLAB IDE
Program with MPLAB IPE
Accessories
Emulation Headers & Emulation Extension Paks
Get Started Here
Tool Support
Emulation Headers & EEPs Overview
About Emulation Headers & EEPs
Compare Emulation Header, Debug Header and Device Features
Support Information
Hardware Setup
MPLAB X IDE Setup
Additional Information
Emulation Header Features
Features Table
Runtime Watch, Breakpoint and Trace Resources
Runtime Watches
Real Time Hardware Instruction Trace
Instruction Trace Overview
Set Up Trace Hardware
Set Up Trace with MPLAB® X IDE
Using Trace
Trace Hardware
Hardware Address/Data Breakpoints
Enhanced Event Breakpoints
Event Combiners
Event Combiners Overview
Complex Breakpoint Sequence
Complex Breakpoint Latched-And
Complex Breakpoint Nesting
Stopwatch Cycle Counter
Trigger In/Out
Trigger Out Example
View Hardware Stack On Halt
Previous Program Counter
Background Debug
Emulation Header List
Emulation Header List
AC244055
AC244063
AC244064
AC244065
AC244066
-ME2 Silicon Errata
Emulation Header Target Footprints
Emulation Header Connections
Processor Extension Paks & Debug Headers
Get Started Here
Tool Support
PEPs & Debug Headers Overview
About PEPs & Debug Headers
Debug Header Details
Compare Debug Header and Device Features
Debug Header Support Information
Debug Header Hardware Setup
Debug Header Setup for MPLAB® X IDE
Debug Headers Additional Information
Required Debug Header List
Required Debug Headers Table
AC162050, AC162058
AC162052, AC162055, AC162056, AC162057
AC162053, AC162054
AC162059, AC162070, AC162096
AC162060
AC162061
AC162066
AC162083
AC244023, AC244024
AC244028
AC244045
AC244051, AC244052, AC244061
AC244062
Optional Debug Header List
Optional Debug Header List - PIC12/16 Devices
Optional Debug Headers Table - PIC12/16 Devices
AC244049, AC244050
AC244026, AC244027
AC244060
AC244053, AC244054
AC244043, AC244044
AC244046, AC244047
AC244048
AC244035, AC244036
Optional Debug Header List - PIC18 Devices
Optional Debug Headers Table - PIC18 Devices
AC244033, AC244034
AC162062, AC162079, AC162087, AC162091
AC162064
AC162078
AC162067, AC162074
Optional Debug Header List - PIC24 Devices
Optional Debug Headers Table - PIC24 Devices
AC162088, AC162094
AC162065, AC244022
Debug Header Target Footprints
Debug Header Connections
K2L Network Tool Solutions
Get Started Here
MediaLB® Analyzer
Get Started Here
Development Tools Design Advisory
Get Started Here
ICSP Considerations
Communications Channels
Grounding and AC Applications
Oscillator Circuit Setup
Target Power
Correcting Crosstalk With dsPIC30FXX Devices
dsPIC30FXX Devices and Clock Postscaler
PIC32MX and iFlowtrace™
Troubleshooting Invalid Device ID Errors
Debug Limitations - PIC MCUs
Get Started Here
General Debug Limitations
General Programming Limitations
General Device-ME2/ICE/ICD Limitations
8-Bit Device Limitations - PIC10F/12F/16F
PIC10F2xx/12F5xx/16F5xx Limitations
PIC10F2xx/12F5xx/16F5xx Limitations
PIC12F6xx/16F6xx Limitations
PIC12F629/675 Limitations
PIC12F635/683, PIC16F63X/68X Limitations
PIC16F616 Family Limitations
PIC16F630/676 Limitations
PIC16F648A Family Limitations
PIC16F690 Family Limitations
PIC16F7xx Limitations
PIC16F7x Limitations
PIC16F716 Limitations
PIC16F727 Family Limitations
PIC16F777 Family Limitations
PIC16F785 Limitations
PIC16F8xx Limitations
PIC16F87/88 Limitations
PIC16F818/819 Limitations
PIC16F870/871 Limitations
PIC16F877 Family Limitations
PIC16F877A Family Limitations
PIC16F887 Limitations
PIC16F9xx Limitations
PIC16F946 Limitations
PIC16F1xxx Limitations
PIC16F1xxx Limitations
8-Bit Device Limitations - PIC18F
PIC18F Limitations
PIC18F Extended, PIC18FXXK Limitations
PIC18FXXJ Limitations
16-Bit Device Limitations - dsPIC, PIC24
dsPIC30 Limitations
dsPIC30 SMPS, dsPIC33, PIC24 Limitations
32-Bit Device Limitations - PIC32M
32-Bit Device Limitations - PIC32M
Engineering Technical Notes (ETNs)
chipKIT™ Embedded Platforms
PLD Hardware Tools
Get Started Here
Additional content planned...
Functions
Embedded Software Integration
Get Started Here
C Programming
Get Started Here
How C Compilers Work
Development Tools Data Flow
Runtime Environment
Core Language Elements
A Simple C Program
Comments
Keywords
Directives
The
#include
Directive
Variables
Variables
Persistent Variable Setup
Variable Declarations and Definitions
Aligning Variables to a Word or Long
RAM Variables in a Fixed Location
Identifiers
Data Types
Data Types
Data Type Qualifiers
Enumeration (
enum
) Data Type
Choosing an Integer Data Type
Using Scaled Integers Instead of Larger Types
Variables and Data Types Lab
Literal Constants
Literal Constants
Integer Literals
Floating Point Literals
Literal Qualifiers
Character Literals
String Literals
Escape Sequences (Digraphs)
Symbolic Constants
Symbolic Constants
Text Substitution Labels
Constant Variables
Symbolic Constants Lab
Operators
Operators
Arithmetic Operators
Division Operator
To Cast, or Not to Cast
Implicit Type Conversion
Modulus Operator
Increment Decrement Operators
Assignment Operators
Relational Operators
The Difference Between = and ==
Logical Operators
Short Circuit Evaluation
Bitwise Operators
The Difference Between & and &&
Shift Operators
Memory Addressing Operators
Conditional Operator
Explicit Type Cast Operator
Other Operators
Precedence (Order of Operations)
Lab Exercise 4: Operators
Expressions and Statements
Making Decisions
Boolean Expressions
if
Statement
switch
Statement
Loops
for
Loop
while
Loop
do-while
Loop
break
Statement
continue
Statement
Functions
Functions
Passing Parameters by Value
Passing Parameters by Reference
Recursive Functions
Functions and Variable Scope
Multi-File Projects and Storage Class Specifiers
Variable Scope and Lifetime
auto
Variables
static
Variables
extern
Variables
register
Variables
Function Scope and Lifetime
extern
Functions
static
Functions
Library and Header Files
Processor Specific Header Files
Data Structures
Arrays
Multidimensional Arrays
Strings
Passing Arrays and Strings to Functions
Structures (
struct
)
Unions (
union
)
Bit Fields
Data Pointers
Data Pointers
Data Pointer Patterns
void
Pointer Use
Function Pointers
Function Pointers
Callback Functions
Macros
Macros with
#define
The C Preprocessor’s Arithmetic World
Dynamic Memory Allocation
Dynamic Memory Allocation
The
malloc()
Function
Avoid Memory Allocation Catastrophe
PIC® Microcontroller Specific
Configuration Bits, EEPROM, and ID locations
Debug Only Features Added to Source Code
Sleep Mode Setup
Make Your Code Small for FREE
C Debugging Techniques
C Debugging Techniques
Don’t Be Hoist on Any Petard
Articles
Bits, Bools, and Bit-fields
Structure Padding
Assert Your Success
Consider Built-in Functions Before In-line Assembly
Optimizing Loops
Compiler Diagnostics
Understanding Floating-Point Values
Variable Concepts
MPASM™ Assembly Language Programming
Get Started Here
Branch on Compare
A switch/case Implementation
MPLAB® Harmony v3
Get Started Here
MPLAB® Harmony Libraries
MPLAB® Code Configurator (MCC)
Install MCC and Download the Framework
Create a New Project
Open an Existing Demo Project
Create a new MPLAB Harmony v3 project using MCC [Detailed]
Objective and Overview
Step 1: Create project and configure the MCU
Step 2: Configure USART and RTC Peripheral Libraries
Step 3: Configure Pins for Switch and LED
Step 4: Generate Code
Step 5: Add Application Code to the Project
Step 6: Build, Program, and Observe the Outputs
Update and configure an existing MHC based MPLAB Harmony v3 project to MCC based project
Objective and Overview
Step 1: Open the existing MHC project and migrate it to the MCC project
Step 2: Verify the existing MHC configuration on MCC
Step 3: Configure Pins for Switch and LED to extend the application
Step 4: Generate Code
Step 5: Extend the application code in the project
Step 6: Build, Program, and Observe the Outputs
MPLAB® Harmony Configurator (MHC)
Install MHC and Download the Framework
Create a New Project
Open an Existing Demo Project
MPLAB Harmony Projects and Tutorials
Peripheral Libraries on SAM L10
Getting Started with Harmony v3 Peripheral Libraries
Objective and Overview
Step 1: Create Project and Configure the SAM L10
Step 2: Configure I²C, USART, and RTC
Step 3: Configure Pins for Switch and LED
Step 4: Generate Code
Step 5: Add Application Code to the Project
Step 6: Build, Program, and Observe the Outputs
Peripheral Libraries with Low Power on SAM L10
Objective and Overview
Step 1: Create Project and Configure the SAM L10
Step 2: Configure I²C, USART, and RTC
Step 3: Configure ADC, Event System, and EIC
Step 4: Configure PM, SUPC, NVMCTRL, LED and Wake-up Test Pins
Step 5: Generate Code
Step 6: Add Application Code to the Project
Step 7: Build, Program, and Observe the Outputs
Peripheral Libraries on SAM C2x
Getting Started with Harmony v3 Peripheral Libraries
Objective and Overview
Step 1: Create New Harmony Project
Step 2: Configure I2C, USART, and RTC
Step 3: Configure Pins for Switch and LED
Step 4: Generate Code
Step 5: Add Application Code to the Project
Step 6: Build, Program, and Observe the Outputs
Low Power Application with Harmony v3 Peripheral Libraries
Objective and Overview
Step 1: Create Project and Configure the SAM C21
Step 2: Configure I²C, USART, and RTC
Step 3: Configure ADC, Event System, and EIC
Step 4: Configure PM, SUPC, and LED
Step 5: Generate Code
Step 6: Add Application Code to the Project
Step 7: Build, Program, and Observe the Outputs
Peripheral Libraries on SAM D21
Getting Started with Harmony v3 Peripheral Libraries
Objective and Overview
Step 1: Create Project and Configure the SAM D21
Step 2: Configure I²C, USART, RTC, and DMA
Step 3: Configure Pins for Switch and LED
Step 4: Generate Code
Step 5: Add Application Code to the Project
Step 6: Build, Program, and Observe the Outputs
Low Power Application with Harmony v3 Peripheral Libraries
Objective and Overview
Step 1: Create Project and Configure the SAM D21
Step 2: Configure I²C, USART, and RTC
Step 3: Configure AC, Event System, and EIC
Step 4: Configure PM and NVMCTRL PLIBs, and LED Pin
Step 5: Generate Code
Step 6: Add Application Code to the Project
Step 7: Build, Program, and Observe the Outputs
Peripheral Libraries on SAM D5x/E5x
Getting Started with Harmony v3 Peripheral Libraries
Objective and Overview
Step 1: Create New Harmony Project
Step 2: Configure I2C, USART, RTC, and DMA
Step 3: Configure Pins for Switch and LED
Step 4: Generate Code
Step 5: Add Application Code to the Project
Step 6: Build, Program, and Observe the Outputs
Low Power Application with Harmony v3 Peripheral Libraries
Objective and Overview
Step 1: Create Project and Configure the SAM E54
Step 2: Configure I²C, USART, and RTC
Step 3: Configure ADC, Event System, and EIC
Step 4: Configure PM, SUPC and NVMCTRL PLIBs, and LED Pin
Step 5: Generate Code
Step 6: Add Application Code to the Project
Step 7: Build, Program, and Observe the Outputs
Peripheral Libraries on SAM E70
Objective and Overview
Step 1: Create Project and Configure the SAM E70
Step 2: Configure I²C, USART, and TC
Step 3: Configure Pins for Switch and LED
Step 4: Generate Code
Step 5: Add Application Code to the Project
Step 6: Build, Program, and Observe the Outputs
Peripheral Libraries on SAM L2x
Low Power Application with Harmony v3 using Peripheral Libraries
Objective and Overview
Step 1: Create Project and Configure the SAM L21
Step 2: Configure I²C, USART, and RTC Peripheral Libraries
Step 3: Configure ADC, Event System, and EIC Peripheral Libraries
Step 4: Configure PM, SUPC, and NVMCTRL Peripheral Libraries, LED and Wake-up test pins
Step 5: Generate Code
Step 6: Add Application Code to the Project
Step 7: Build, Program, and Observe the Outputs
Peripheral Libraries on PIC32 MZ EF
Objective and Overview
Step 1: Create Project and Configure the PIC32 MZ
Step 2: Configure TMR1, I²C, USART, and DMA
Step 3: Configure Pins for Switch and LED
Step 4: Generate Code
Step 5: Add Application Code to the Project
Step 6: Build, Program, and Observe the Outputs
Peripheral Libraries on PIC32 MX470
Objective and Overview
Step 1: Create Project and Configure the PIC32MX470
Step 2: Configure I²C, UART, CORE TIMER, TMR2, and DMA
Step 3: Configure Pins for Switch and LED
Step 4: Generate Code
Step 5: Add Application Code to the Project
Step 6: Build, Program, and Observe the Outputs
Peripheral Libraries on PIC32 MK GP
Objective and Overview
Step 1: Create Project and Configure the PIC32MKGP
Step 2: Configure SPI, UART, CORETIMER, and TMR2 Peripheral Libraries
Step 3: Configure Pins for Switch and LED
Step 4: Generate Code
Step 5: Add Application Code to the Project
Step 6: Build, Program, and Observe the Outputs
Drivers and System Services on SAM E70/S70/V70/V71
Objective and Overview
Step 1: Create Project and Configure the SAM E70
Step 2: Configure Timer System Service, I²C, and USART
Step 3: Configure LED Pin and Application Tasks
Step 4: Generate Code
Step 5: Add Application Code to the Project
Step 6: Build, Program, and Observe the Outputs
Drivers and FreeRTOS on SAM D21
Objective and Overview
Step 1: Create Project and Configure the SAM D21
Step 2: Configure I²C and USART Drivers in Synchronous mode
Step 3: Configure LED Pin and Application Threads
Step 4: Generate Code
Step 5: Add Application Code to the Project
Step 6: Build, Program, and Observe the Outputs
Drivers and FreeRTOS on SAM C21
Objective and Overview
Step 1: Create Project and Configure the SAM C21
Step 2: Configure I²C and USART Drivers in Synchronous mode
Step 3: Configure LED Pin and Application Threads
Step 4: Generate Code
Step 5: Add Application Code to the Project
Step 6: Build, Program, and Observe the Outputs
Drivers and FreeRTOS on SAM E54
Objective and Overview
Step 1: Create Project and Configure the SAM E54
Step 2: Configure I²C and USART Drivers in Synchronous mode
Step 3: Configure LED Pin and Application Threads
Step 4: Generate Code
Step 5: Add Application Code to the Project
Step 6: Build, Program, and Observe the Outputs
Drivers and FreeRTOS on SAM E70/S70/V70/V71
Objective and Overview
Step 1: Create Project and Configure the SAM E70
Step 2: Configure I²C and USART Drivers
Step 3: Configure LED Pin and Application Threads
Step 4: Generate Code
Step 5: Add Application Code to the Project
Step 6: Build, Program, and Observe the Outputs
Drivers, Middleware and FreeRTOS on PIC32 MZ EF
Objective and Overview
Step 1: Create project and configure the PIC32MZ EF
Step 2: Configure synchronous I²C and USART Drivers
Step 3: Configure USB High Speed Driver, USB Host Middleware and File System Service
Step 4: Configure Application Threads
Step 5: Generate Code
Step 6: Add Application Code to the Project
Step 7: Build, Program, and Observe the Outputs
Digit Recognition AI/ML Application on SAM E51
Objective and Overview
Step 1: Create Project and Configure the SAM E51
Step 2: Configure USART, Timers TC0, TC3 and RTC Peripheral Libraries
Step 3: Configure CCL, ADC, PTC, and Touch Libraries
Step 4: Configure Generic Display, Display Controller Driver, Display Interface and TensorFlow
Step 5: Configure Legato Graphics on GFX composer
Step 6: Configure TensorFlow Lite Micro (TFLM) and CMSIS NN Package
Step 7: Configure Harmony Core, NVMCTRL, EVSYS, Input System Service and GPIO Pins
Step 8: Generate Code
Step 9: Add Application Code to the Project
Step 10: Build, Program, and Observe the Outputs
SD Card Audio Player/Reader Tutorial on PIC32 MZ EF
Objective and Overview
Audio-Tone Generation Using a Lookup Table
Audio-Tone Generation from a Text File Stored in an SD Card
SD Card Reader Support to Load Audio Files
Play a WAV Audio File from an SD Card
Display Graphics Support to Select and Play Audio File
Motor Control on SAM E54
Objective and Overview
Step 1: Create Project and Configure the SAM E70
Step 2: Configure Peripheral Libraries
Step 3: Configure Switch and LED pins
Step 4: Generate Code
Step 5: Add Application Code to the Project
Step 6: Build, Program, and Observe the Outputs
Arm® TrustZone® Getting Started Application on SAM L11 MCUs
Objective and Overview
Step 1: Create a SAM L11 Secure and Non-secure Group Project
Step 2: Configure I²C, USART, and RTC Peripheral Libraries
Step 3: Configure Pins for Switch and LED
Step 4: Generate Code
Step 5: Add Secure Application Code to the Project
Step 6: Add Non-secure Application Code to the Project
Step 6: Build, Program, and Observe the Outputs
Migrating ASF on SAM C21 to MPLAB Harmony on PIC32CM MC
Objective and Overview
Step 1: Create Project and Configure the PIC32CM MC
Step 2: Configure I²C, USART, and STDIO
Step 3: Configure ADC
Step 4: Generate Code
Step 5: Add Application Code to the Project
Step 6: Build, Program, and Observe the Outputs
Bluetooth Enabled Smart Appliance Control on PIC32CM MC
Objective and Overview
Step 1: Create Project and Configure the PIC32CM MC
Step 2: Configure I²C
Step 3: Configure SPI and SysTick
Step 4: Configure UART and BM71 driver
Step 5: Generate Code
Step 6: Add Microelectronica Routine Code to the Project
Step 7: Add Application Code to the Project
Step 8: Build, Program, and Observe the Outputs
Getting Started with USB on SAM MCUs
Objective and Overview
Step 1: Create and Configure Harmony v3 Project
Step 2: Configure TIME System Service, I²C, USB and ADC
Step 3: Configure Clocks, Pins and Application Tasks
Step 4: Generate Code
Step 5: Add Application Code to the Project
Step 6: Build, Program, and Observe the Output
Getting Started with Harmony v3 to Create a Web-Enabled Digital Photo Frame
Introduction and PDF Download
Getting Started with IoT on PIC32 WFI32E
Objective and Overview
Lab 1 - Create the Application
Objective and Overview
Part 1 - Create Project & Configure MCU
Step 1: Install the MHC Plug-in in MPLAB® X IDE
Step 2: Create MPLAB® Harmony v3 Project using MPLAB X IDE
Step 3: With MHC, verify System Clock Settings
Step 4: With MHC, configure I2C Driver, PLIB, Pins and Harmony Core
Step 5: With MHC, configure GPIO pin and interrupts
Step 6: With MHC, configure Debug System Service, Console System Service, USB Driver as CDC USB, and USB pins
Step 7: With MHC, configure System Time Service and Timer 1
Step 8: With MHC, view final project graph
Step 9: With MHC, Generate code
Part 2 - Add Application Code & Build the Application
Step 10: Add application code
Step 11: Build and Run the Application
Lab 2 - Log Data to SDCARD
Objective and Overview
Part 1 - Configure SDSPI Driver, File System, RTC Peripheral Library
Step 1: Rename Project
Step 2: With MHC, configure File System Service
Step 3: With MHC, configure SDSPI Driver, SPI Peripheral Library, and SPI pins
Step 4: With MHC, configure RTC Peripheral Library
Step 5: With MHC, configure Harmony Core and BSP
Step 6: With MHC, view final project graph and generate code
Part 2 - Add Application Code & Build the Application
Step 7: Add code to the SDCARD application
Step 8: Build and Run the Application
Lab 3 - Move Application into an RTOS
Objective and Overview
Part 1 - Configure FreeRTOS, I2C Driver, SDSPI Driver, File System, Harmony Core
Step 1: Rename Project
Step 2: With MHC, configure FreeRTOS
Step 3: With MHC, verify I2C Driver, SDSPI Driver, File System Service configurations
Step 4: With MHC, configure Harmony Core
Step 5: With MHC, generate code
Part 2 - Add Application Code & Build the Application
Step 6: Modify the temperature sensor and SDCARD application
Step 7: Add code to USB debug application task
Step 8: Build and Run the Application
Lab 4 - Add HTTP Web Server to Visualize Data
Objective and Overview
Part 1 - Configure FreeRTOS, I2C Driver, SDSPI Driver, File System, Harmony Core
Step 1: Rename Project
Step 2: With MHC, configure TCPIP stack
Step 3: With MHC, configure HTTPNET server component
Step 4: With MHC, modify the configuration of the File System
Step 5: With MHC, configure Harmony Core
Step 6: With MHC, configure WIFI Service
Step 7: With MHC, generate code
Part 2 - Add Application Code & Build the Application
Step 8: Add code to WIFI application task
Step 9: Build and Run the application
Secure Boot on PIC32CM LS60 Curiosity Pro Development Board
Objective and Overview
Step 1: Create the Secure Bootloader Project from Scratch
Step 2: Create a Test Application Project from Scratch
Step 3: Running the Application
MPLAB® Harmony v2
Get Started Here
What is the MPLAB Harmony Framework?
MPLAB Harmony Overview
MPLAB Harmony Benefits
Portability
Configurability
Modularity
Compatibility
Flexibility
Libraries and Utilities
Glossary of MPLAB® Harmony Terms
Introduction Tutorial Videos
MPLAB Harmony Configurator (MHC)
MHC Overview
MHC Tutorial Videos
Files Generated by MHC
MPLAB Harmony Configurator (MHC) Installation
MPLAB Harmony Graphics Composer (MHGC) Overview
MPLAB Harmony Framework Overview
System Service Library
Driver Library
Peripheral Library (PLIB)
Middleware (TCP/IP, USB, Graphics, ect…)
Middleware Overview
Graphics Library Overview
USB Library
TCP/IP Library
3rd Party TCP/IP Software
Crypto Library
Bluetooth Stack
Math Library
RTOS Options
RTOS Overview
embOS
ThreadX
µC/OS-III
FreeRTOS
OPENRTOS
Installing MPLAB Harmony
MPLAB Harmony Help and Documentation
MPLAB Harmony Libraries
Libraries for Common PIC32 Peripherals
System Service Libraries
Interrupt System Service
Interrupt System Service Library Interface
Timer System Service
Timer System Service Library
Timer System Service "Under the Covers"
Timer System Service Library Interface
Driver Libraries
ADC Driver Library
ADC Driver Library
ADC Driver Library Interface
Output Compare Driver Library
Output Compare Driver Library
Output Compare Driver Library Interface
SPI Driver Library
SPI Driver Library
SPI Driver Library Interface
Timer Driver Library
Timer Driver Library
Timer Driver Library Interface
USART Driver Library
USART Driver Library
USART Static Driver
USART Static Driver "Under the Covers"
USART Dynamic Driver
USART Dynamic Driver "Under the Covers"
USART Data Transfer Models
USART Driver Library Interface
Handles and Data Objects for Dynamic Drivers
Peripheral Libraries
ADC Peripheral Library
ADC Peripheral Library
ADC Peripheral Library Interface
Interrupt Peripheral Library
Interrupt Peripheral Library
Interrupt Peripheral Library Interface
Output Compare Peripheral Library
Output Compare Peripheral Library
Output Compare Peripheral Library Interface
Ports Peripheral Library
Ports Peripheral Library
Ports Peripheral Library Interface
SPI Peripheral Library
SPI Peripheral Library
SPI Peripheral Library Interface
Timer Peripheral Library
Timer Peripheral Library
Timer Peripheral Library Interface
USART Peripheral Library
USART Peripheral Library
USART Peripheral Library Interface
Middleware (TCP/IP, USB, Graphics, ect…)
USB Libraries
USB Application Programming Interface
USB Host Libraries
USB Host APIs
HID APIs
CDC APIs
Audio APIs
USB Device Libraries
USB Device APIs
Vendor APIs
HID APIs
CDC APIs
Audio APIs
Board Support Package (BSP) Library
Board Support Package
Board Support Package Interface
Development Boards for Harmony Projects
Development Board Info (device, clock, debug pins)
Application Migration using a Board Support Package
MPLAB Harmony Projects and Tutorials
Projects (Creation, Organization, Settings)
Creating a New Project
Creating a New Project "Under the Covers"
Migrating a Project to your PCB
Project Settings
Compiler Settings
Project Source Folder
Specify Framework Path
Project Folders
Folder Structure
Folder Descriptions
"system_config" Folder
State Machine Model
State Machine Model
What is a state machine?
Example Projects in the "apps" Folder
Introduction to MPLAB Harmony Training
Creating Simple Applications using MPLAB Harmony
Creating Advanced Applications using MPLAB Harmony
MPLAB Harmony Labs for ADC, UART, & USB Bootloader
Peripherals
ADC
ADC Tutorial
ADC Tutorial
ADC Example Projects
All ADC Examples
ADC Project Using chipKIT™ WF32
ADC Project Using chipKIT™ Wi-FIRE
Interrupts
Interrupts Tutorial
Interrupts Tutorial
Controling System Level Interrupt Parameters
Controlling Peripheral Interrupts with Harmony System Service
Managing External Interrupts with Harmony
Output Compare
Output Compare Tutorial
Ports
Ports Tutorial
Ports Tutorial
Ports Example Projects
All Ports Examples
Ports Project Using chipKIT™ WF32
Ports Project Using chipKIT™ Wi-FIRE
SPI/I2S
I2S Tutorial
SPI Tutorial
SPI Tutorial
Using Harmony's Dynamic SPI Driver
Timer
Timer Tutorial
Timer Tutorial
Using Harmony Static Drivers to Control Timers
Using Harmony Dynamic Drivers to Control Timers
Using the Harmony Timer System Service
Timer Example Projects
All Timer Examples
Static Driver Using chipKIT WF32
Static Driver Using chipKIT WF32 (step-by-step)
Dynamic Driver Using chipKIT WF32
System Service Using chipKIT WF32
System Service Using chipKIT Wi-FIRE
System Service Using PIC32MZ EF Starter Kit
USART
USART Tutorial
USART Tutorial
USART Example Projects
All USART Examples
Static Driver Using chipKIT™ WF32
Dynamic Driver Using chipKIT™ WF32
Middleware
SD card Audio Player Tutorial
SD card Audio Player
SD card Audio Player: Lab1
SD card Audio Player: Lab2
SD card Audio Player: Lab3
SD card Audio Player: Lab4
SD card Audio Player: Lab5
Voice Recorder/Player Tutorial
Objective, Overview & Source Files
Step 1: Create Project & Configure the PIC32
Step 2: Configure Audio CODEC, I2C & I2S Drivers
Step 3: Configure the SD card driver, SPI driver & File System
Step 4: Add WAV Decoder Functionality
Step 5: Design Display GUI, & Configure the Touch & I2C Driver
Step 6: Generate Harmony Code
Step 7: Include Application Specific Source Code & Files
Step 8: Review the Application Code
Step 9: Debug Your Application
USB Audio Speaker Tutorial
Objective, Overview and Source Files
Step 1: Create Project and Configure the PIC32
Step 2: Configure Audio CODEC, I2C & I2S drivers
Step 3: Configure USB Library (Audio Device)
Step 4: Design Display GUI & Config Touch & I2C Driver
Step 5: Generate Harmony Code
Step 6: Add Source Files & Other Code
Step 7: Review the Application Code
Step 8: Debug Your Application
USB Audio Speaker (with RTOS) Tutorial
Objective, Overview and Source Files
Step 1: Verify Performance of “USB Audio Speaker”
Step 2: Overload State Machine by Adding Time Consuming Application
Step 3: Integrate FreeRTOS into the Application
Step 4: Generate Harmony Code
Step 5: Verify Application Performance
USB Flash Drive Audio Player Tutorial
Objective, Overview and Source Files
Step 1: Create Project and Configure the PIC32
Step 2: Configure Audio CODEC, I2C & I2S Drivers
Step 3: Configure USB Library (Mass Storage Host)
Step 4: Configure File System
Step 5: Add WAV Decoder Functionality
Step 6: Design Display GUI, and Configure the Touch and I2C Driver
Step 7: Generate Harmony code
Step 8: Include Application Specific Source Code and Files
Step 9: Review the Application Code
Step 10: Debug Your Application
Web Photo Frame Tutorial
Objective, Overview and Source Files
Step 1: Create Project and Configure the PIC32
Step 2: Configure TCPIP Stack and Related Modules
Step 3: Design Display GUI, and Configure the Touch and I2C Driver
Step 4: Configure the USB Library for the Console System Service
Step 5: Configure the SD card driver, SPI driver and File System
Step 6: Generate Harmony code
Step 7: Include Application Specific Source Code and Files
Step 8: Review the Application Code
Step 9: Debug Your Application
SEGGER emWin Audio Player Tutorial
Objective, Overview and Source Files
Step 1: Create Project and Configure the PIC32
Step 2: Configure Audio CODEC, I2C & I2S Drivers
Step 3: Configure the SD Card Driver, SPI Driver & File System
Step 4: Add WAV Decoder Functionality
Step 5: Configure USB Library and File System
Step 6: Configure SEGGER emWin Graphics Library
Step 7: Configure Graphics Display, Graphics Driver and Touch
Step 8: Enable Random Number Generator (RNG) System Service
Step 9: Generate Code and Build Project
Step 10: Design Display GUI using SEGGER emWin Graphics Library
Step 11: Include Application Specific Source Code and Files
Step 12: Review the Application Code
Step 13: Debug Your Application
Live Photoframe Tutorial
Objective, Overview and Source Files
Step 1: Create Project and Configure the PIC32
Step 2: Configure TCP/IP Stack and Related Modules
Step 3: Configure the SD Card Driver, SPI Driver & File System
Step 4: Configure the Camera and Related Modules
Step 5: Enable Graphics Library and Configure Graphics Controller
Step 6: Configure Console System Service
Step 7: Generate Code and Build Project
Step 8 Include Application Specific Source Code and Files
Step 9: Review the Application Code
Step 10: Debug Your Application
Board Support Package Creation Tutorial
Objective and Overview
Step 1: Pin Mapping
Step 2: Verify and Update Global MHC Config File
Step 3: Create New BSP Folder and Modify Files
Step 4: Update Local MHC Config File
Step 5: Create a Project Using New BSP
Step 6: Test New BSP
USB Training
USB Device (Project Description)
USB HID Device (Project Description)
TCP/IP Training
TCP/IP Stack Training
JavaScript Oscilloscope
MPLAB Code Configurator (MCC)
Atmel START (ASF4)
Advanced Software Framework v3 (ASF3)
Microchip Libraries for Applications (MLA)
Microchip Libraries for Applications (MLA)
MLA Graphics Library Self-Paced Training
Application Development Requirements
Structure of an MLA Graphics Project
Creating a New Graphics Project
Overview of a typical Graphics Application's Software
Graphic Primitives
Using Fonts in a Graphics Application
Importing Fonts Into an MLA Project
Importing Images Into an MLA Project
Bitmap Image Memory Requirements
Using Bitmap Images
Graphics Objects Heap Requirements
Graphics Objects Examples
Creating Graphics Objects
Style Schemes of Graphics Objects
State Bits of Graphic Objects
Drawing Graphics Objects
Changing the State of a Graphics Object
Getting Touch Input from a Screen
Processing User Input
Messaging Structure
Timing Touch Events
Operating Systems
Embedded Linux
Get Started Here
Linux Tools
Run Linux on Windows or Mac with a Virtual Machine
Cross Compilers
Etcher
Minicom
The source Command
Flash a Bootable SD Card for the SAMA5D27-SOM1-EK1
Wi-Fi® and Ethernet
Get Started Here
TCP/IP Protocol Suite
Get Started Here
Introduction to TCP/IP
Intro to TCP/IP Video
Routers, Switches, Addresses
Routers
IP Addresses
Obtaining an IP Address
Switches in Local Networks
MAC Addresses
Example: Switch Operation on a Local Network
Example: Simplified Local Network TCP/IP Communication
Five Layer Model
Overview
Application Layer (Layer 5)
Transport Layer (Layer 4)
Network Layer (Layer 3)
Data Link Layer (Layer 2)
Physical Layer (Layer 1)
TCP vs. UDP
Common TCP/IP Applications
Overview
DHCP
DNS
HTTP
NBNS
SMTP
SNMP
SNTP
Telnet
TFTP
Sockets and Ports
TCP/IP Ports Defined
"Well Known" Ports
Ephemeral (Dynamic) Ports
Sockets
Example: Established Sockets
Example: Use Sockets to Create a TCP Connection
Berkeley Sockets
Network Address Translation (NAT)
Network Address Translation (NAT)
NAT Translation Table
Client-Server Model
Client-Server Model Defined
Example: DHCP Client-Server
Client-Server Programming Model
Example: HTTP Client-Server Model
Internet vs Local Network Servers
Internet vs. Local Network Server
Local Network Server Obstacles and Solutions
Address Resolution Protocol (ARP)
ARP
Example: Detailed TCP/IP Communication
Reference: Network Analysis Tools
802.11/Wi-Fi
Get Started Here
Wi-Fi® Fundamentals
What is WiFi?
802.11 and the OSI Model
802.11 Channels
802.11 a/b/g/n Explained
Hosts, Access Points, and Links
Network Configurations
Connecting to the Network
802.11/Wi-Fi Security
802.11 Power Management
802.11 Regulatory Considerations
WINC1500
Introduction
Wi-Fi and Ethernet using Harmony
Internet of Things
Amazon Web Services
Zero Touch Provisioning Kit
Universal Serial Bus
Get Started Here
What is USB?
What is USB?
Host
Hub
Device
Cables and Connectors
How USB Works
How USB Works
Endpoints
Frames
Transactions
Transfer Types
Descriptor Tables
Device Classes
Enumeration
Enumeration
Control Commands
Reset, Suspend, and Resume
Speeds and Specifications
Speeds and Specifications
Full Speed
High Speed
High Speed
Detecting High Speed Devices
Super Speed
Super Speed Plus
Type- C
Type-C Terminology
Type-C "CC" and "VCON" pins
Type-C Cables
Type-C Alternate Mode
USB Power Delivery
USB Power Delivery Options
Battery Charging v 1.2
Developing USB Applications with Microchip
Wired Communications
Get Started Here
I²C
Get Started with I²C
Protocol
Chip Select and Addressing
Start and Stop Conditions
Byte Write
Page Write
Current Address Read
Random Read
Sequential Read
MOST®
Get Started with MOST
Additional content planned...
CAN
Get Started Here
Overview
CAN Products (Overview)
LIN
Get Started Here
Overview
LIN Specification
LIN Workflow
Protocol
Overview
Physical Layer
Data Link Layer
Overview
LIN Message Frame
Signals
Frame Types
Frame Timing
Application Layer
LIN Description File
Ethernet
Get Started Here
Overview
Ethernet Families
Ethernet Products
Protocol Fundamentals
Overview
Wireless Communications
Get Started Here
Bluetooth® Low Energy (BLE)
Fundamentals
Introduction
Architecture
Controller Layer
Physical Layer
Link Layer
Overview
Channels
Roles/States
Device Address
Packet Types
Discovery (Advertising & Scanning)
Connections
Security
Host Layer
Generic Access Profile (GAP)
Overview
Roles
Modes & Procedures
Security
Generic Attribute Profile (GATT)
Overview
UUIDs
Roles
Attributes
Data Organization
BLE Development on Android Tutorial
Android BLE Development For BM70 / RN4870
Android Permissions for BLE
Android Service for BLE
Scanning for BLE Devices
Connecting to a BLE Device
Discovering BLE Device Services and Characteristics
Accessing BLE Device Characterisitics
Transparent UART service for BM70/RN4870
Accessing the Transparent UART Service
LoRa®
Get Started Here
Connecting a SAMR34 LoRaWAN™ End-Device to a LoRaWAN™ Network Server
Range Test Comparison between WLR089U module and SAMR34 chip-down XPRO
LoRaWAN™
LoRaWAN™ Architecture
LoRaWAN™ Message and End Device Types
LoRaWAN™ Join Types
Provisioning LoRa® End Device to Network Servers
Provisioning LoRaWAN™ Gateway to Network Servers
Application Configuration
Touch Sensing
Get Started Here
Touch Video Library
Video Tutorials
Touch and Input Sensing Products
Guide To Design Touch Sensor
MPLAB® Code Configurator Support Summary
MCC mTouch® Capacitive Sensing Library
Get Started Here
Installation
Changelog
mTouch® Capacitive Sensing Library Module
Sensor Pin Manager
Sensor Configuration
Button/Proximity Sensor Configuration
Slider and Wheel Configuration
Surface/Gesture Configuration
Automatic Frequency Adaptation (AFA)
mTouch® Low-Power Configuration
Host Interface Configuration
mTouch® Library Module API
Step by Step Examples
Low Pin Count Curiosity Board
Low Cost mTouch® Evaluation Kit
PIC16F18446 Curiosity Nano and QT7 Touch Board
PIC18F57Q43 Curiosity Nano and QT8 Touch Board
MCC Melody Touch Library Configurator
Release Notes
Step by Step Examples
Generate Touch Project with MCC Melody
Device Support
Harmony 3 Touch Configurator
Release Notes
Step by Step Examples
Set up the Environment
Open and Execute Touch Example Projects
Generate Touch Project in Harmony
Visualize Touch Data using Data Visualizer
Configure Surface and Gesture MH3 Touch Project
Creating a Driven Shield Project with MHC
SAML11 TrustZone® Touch Project
START QTouch® Library Configurator
Get Started Here
Release Notes
Step by Step Examples
Introduction to QTouch® Project Creation
Generate User Board Touch Project
Generate Atmel Board Touch Project
Generate SAML1x Touch Project
Generate QTouch Surface & Gesture Project
Generate Lump Project
Generate Low-Power Sensor Project
Generate Mutual Cap Boost Mode Project
Import Touch Project into IAR Embedded Workbench
Import Touch Project into Atmel Studio
Visualize Touch Debug Data using Data Visualizer
Design Guide
Guide to Configure Clock in Touch Project
Guide for PTC Driven Shield Design
Guide for Timer based Driven Shield on SAM Devices
Guide to Connect to Touch Surface Utility
Guide for Surface Sensor Design
Guide for Slider Sensor Design
Guide to Tune Touch Sensors
Guide to Tune Slider and Wheel
Guide to Interpret CC Calibration Value
Glossary of Touch Terms
Modular Library Three Group Example
Design Support
Touch Host Driver
Touch Host Driver Release Notes
Touch Host Driver Getting Started
Turnkey Touch
Turnkey Documentation
MCC Turnkey Touch Library
Release Notes
CAP1xxx Library User's Guide
Touch Sensor Altium Designer® Plugin
Touch Sensor Plugin Release Notes
Guide to Install Touch Sensor Plugin in Altium Designer®
Guide to Use Touch Sensor Plugin in Altium Designer®
Microchip Touch Bridge
Introduction to Microchip Touch Bridge
MPLAB Data Visualizer Touch Plugin
Introduction to MPLAB DV Touch Plugin
Visualize Touch Data Using MPLAB Data Visualizer
Machine Learning Touch
Motion Gestures Touch Demo
QTouch®, mTouch® Terminology
maXTouch®
Touchscreen Interface with maXTouch® Studio Lite
MGC3130 - E-Field Based 3D Tracking and Gesture Controller
Atmel Studio QTouch® Library Composer (Legacy Tool)
QTouch® Library Installation
Introduction to QTouch® Peripheral Touch Controller (PTC)
Intro to PTC Hands-on Project
Analyze Touch Data Using QTouch® Analyzer
QTouch® Sensor Parameters
Adjusting the Detect Threshold of a QTouch® Sensor
Changing the Detect Hysteresis of a QTouch® Sensor
Configuring AKS™ Groups
Motor Control
Get Started Here
Vocabulary of Motor Control
Types of Electric Motors
Motors controlled by Microchip
Brushed DC
Stepper
Brushless DC (BLDC)
Controlling Motors with Microchip
Control Algorithms
Field Oriented Control (FOC)
Overmodulation of a 3-phase FOC controlled Motor
Interactive Overmodulation Viewer
motorBench™ Development Suite
motorBench™ Development Suite
Power Conversion
Get Started Here
Power Management
Get Started Here
Power Supply Filtering
MCP19111 Digitally Enhanced Power Converter
Digitally Enhanced Power Analog (DEPA)
Motor and MOSFET Drivers
Introduction to the CIP Hybrid Power Kit
SMPS Design with the CIP Hybrid Power Starter Kit
Voltage Regulators
Get Started Here
Linear Regulators
Get Started Here
Precision Voltage Reference
Additional content planned...
Low Drop-Out Regulators
Get Started Here
Product Advisor Tool
LDO Regulators Features & Applications
MCP1755 Low Dropout Regulator (LDO)
Additional content planned...
Switching Regulators
Get Started Here
Non-Synchronous Buck Converter Application
Synchronous Buck Converter Application
MCP16331 Step-Down (buck) DC-DC Converter
MCP16331 Buck Converter Evaluation Board
Design Analyzer
Get Started Here
Buck Converter Design Analyzer Introduction
Synchronous Buck Converter Overview
MCP16311/2 Design Analyzer Overview
MCP16311/2 Overview
MCP16311/2 Design Analyzer Design Example
Bode Plot Parameters
Buck Power Supply Graphical User Interface (GUI)
Buck Power Supply Graphical User Interface Introduction
Buck Power Supply GUI System Components
Buck Power Supply GUI Environment
Buck Power Supply GUI Installation
Buck Power Supply GUI Hardware & Software Requirements
Buck Power Supply GUI Operation
Digital Compensator Design Tool
Get Started Here
Digital Compensator Design Tool Introduction
Digital Compensator Design Tool Getting Started
Digital Compensator Design Tool Single Loop System
Digital Compensator Design Tool Peak Current Mode Control
Import Existing Project
Single-Loop System Block Diagram
Peak Current Mode System Block Diagram
Defining the System Plant
Defining the Feedback
Selecting the Compensator
3P3Z Compensator
2P2Z Compensator
PID Compensator
Type III Analog Compensator
Type II Analog Compensator
What Compensator Type Should I Select?
How are the Coefficients Calculated?
KDC, KuC Gain
Bode, Nyquist, Root Locus Plots
Generate Summary Report
DCDT Default Values
Related Application Notes
Family Datasheets and Reference Manual Documents
Switching Regulator Circuits
MIC24045 Synchronous Step Down Regulator
Power Conversion Application Notes
Light Emitting Diodes
Get Started Here
LED Applications
Driving LEDs
LED Lighting SMPS Topologies
Driving LEDs with a Charge Pump
Driving LEDs with a Boost Regulator
Driving LEDs with a SEPIC Regulator
LED Applications with PIC® MCU
Driving LEDs with PIC® MCU
Control LEDs with PWM
MCP1630 Boost Mode LED Driver
LED Applications with Digital Control
Advanced Communication Solutions for Lighting
Wi-Fi Inteface
USB Interface
Ethernet Interface
CAN and LIN Protocols
MOSFET Drivers
Get Started Here
What Are MOSFET Drivers?
MCP14AXX Power MOSFET Drivers
Signal Conditioning
Get Started Here
Operational Amplifiers (op amps)
Get Started Here
Introduction to Operational Amplifiers
Zero Drift Amplifiers
High Side Current Sense Amplifiers
Low Side Current Sense Amplifiers
Thermocouple Junction Behavior
Preventing Large Thermoelectric Voltages
Curing Thermoelectric Voltage Effects
Measurement of Temperature Related Quantities
Leakage Currents
Other Tips
Design Example
Summary & References
PCB Parasitic Resistance
Additional content planned...
Digital Signal Processing
Get Started Here
Additional content planned...
Machine Learning
Get Started Here
ML Video Library
ML Partners Plugin for MPLAB®
ML Partners Plugin User's Guide
Using the ML Partners Plugin with Edge Impulse
Using the ML Partners Plugin with SensiML
Example Applications
Smartbell with Edge Impulse
Keyword Spotting with Edge Impulse
Sound Recognition with Edge Impulse
Gesture Recognition with SensiML
Fan condition monitoring with SensiML
Fan condition monitoring on the AVR DA
Integrating the Edge Impulse Inferencing SDK
Integrating the SensiML Inferencing SDK
Authentication
Get Started Here
Trust Platform Design Suite v2
Installing the Trust Platform Design Suite v2
Trust Platform Design Suite v1
Installing the Trust Platform Design Suite v1
Secure Provisioning of TrustFLEX
Secure Provisioning of TrustCUSTOM
CryptoAuth Trust Platform Factory Reset
Trust Platform v1 Getting Started Labs
TrustFLEX for Accessory Authentication
TrustFLEX for Firmware Validation
TrustFLEX for IP Protection
TrustFLEX for Public Key Rotation
Asymmetric Authentication - Use Case Example
Symmetric Authentication - Use Case Example
Symmetric Authentication with Non-Secure MCU - Use Case Example
Secure Firmware Download - Use Case Example
Hardware-Software Integration
Get Started Here
Additional content planned...
Projects
Get Started Here
Power Conversion
AN2039 Four-Channel PIC16F1XXX Power Sequencer
AN2039 - Four-Channel Power Sequencer
Firmware Implementation
Firmware Implementation
I²C Slave Interrupt
I²C Commands
Add Code Module
Add Timer
Hardware Implementation
8-bit PIC® Microcontrollers
Digital Output
Digital Input
Analog Input
Timer 0 - Delay Using Polling
Pulse Width Modulation
Timer 0 - Delay Using Interrupt
Using MPLAB® XC8 Built-In Delay
Comparator and Fixed Voltage Reference
Interrupt on Change
Timer 1 Interrupt Using Function Pointers
Digital to Analog Converter (DAC)
USART Serial Communication
Controlling an Analog Servo
Using the CLC JK Flip Flop
Using an MCC Generated Interrupt Callback Function
ADC Auto Update using Timer 6
Color Sensing in Embedded Applications
EMG Signal Processing For Embedded Applications
Push-Up Counter Bluetooth Application Using EMG Signals
Controlling a Motorized Prosthetic Arm Using EMG Signals
Weather Sensing Over Bluetooth®
Health Monitoring and Tracking System Using GSM/GPS
8-bit AVR® Microcontrollers
Digital I/O Project on AVR Xplained 328PB
DIY Useless Box
16-bit PIC® Microcontrollers
Required Materials for PIC24F Example Projects
PIC24F Digital Output Example Project
PIC24F Digital Intput Example Project
PIC24F Timer Example Using Polling
PIC24F Timer Example Using Interrupts
PIC24F ADC Input Example Project
Speak to Rotate a Stepper Motor
32-bit SAM Microcontrollers
SAM C21 SysTick Example Project
SAM C21 Sigma-Delta ADC Example Project
SAM C21 SERCOM SPI Slave Example Project
SAM D21 SysTick Example Project
SAM D21 NVIC Example Project
SAM D21 DFLL48M 48 MHz Initialization Example
SAM D21 SERCOM I²C Slave Example Project
SAM D21 SERCOM SPI Master Example Project
32-bit SAM Microprocessors
Developing SAM MPU Applications with MPLAB X IDE
An Overview of 32-bit SAM Microprocessor Development
An MPLAB Harmony Project using SAMA5D27
SAM MPU Software Pack Examples
MPLAB X IDE Support for 32-bit SAM Microprocessors
Build a SAM MPU Software Pack Example
Debug Bootstrap Code in SAM MPU SRAM
Debug an Application in SAM MPU DDRAM/SDRAM
Standalone Project for SAM MPU Applications
Debug an Application in SAM MPU QSPI Memory - Simple
Debug an Application in SAM MPU QSPI Memory - Complex
Using MPLAB Harmony v3 Projects with SAM MPUs
Additional content planned...
Products
8-bit PIC® Microcontrollers
Get Started Here
8-bit Microcontroller Summary
Microcontroller Design Recommendations for 8-bit Devices
Low Voltage Programming of 8-bit Devices
Core Independent Peripherals
Peripherals (All Families)
8-bit Peripheral Summary
Interrupts
Interrupts
Timers
Timers
Timer 0 (TMR0)
Timer 0
TMR0 Timer Mode
TMR0 Counter Mode
TMR0 Interrupt
TMR0 Example Using MPLAB® Code Configurator
Timer 1 (TMR1)
Timer 1 (TMR1)
Timer 1 Operation
Timer 1 Prescaler
Timer 1 Interrupt
Timer 1 Clock Source
Timer 1 Gate
Timer 1 Sleep Operation
Timer 2/4/6 (TMR2/4/6)
Timer 2/4/6
TMR2 Operation
TMR2 Interrupt
TMR2 Example Using MPLAB Code Configurator
TMR4 Interrupt Example Using Callback Function
Hardware Limit Timer (HLT)
Hardware Limit Timer
HLT Operation
HLT Resets
HLT Interrupts
Angular Timer (AT)
Angular Timer
Singular Pulse Mode
Multiple Pulse Mode
Capture / Compare
Power-up Timer
Analog-to-Digital Converter (ADC)
Analog-to-Digital Converter
Analog-to-Digital Converter with Computation
ADC Example AutoConvert Using Timer 6
Digital-to-Analog Converter (DAC)
Digital-to-Analog Converter
Comparator Module
Comparator Module
Comparator Register Options
Internal Comparator Setup
Universal Asynchronous Receiver Transceiver (USART)
EUSART/AUSART Peripheral
Slope Compensation Module (SCM)
Slope Compensation
Slope Compensation Module
Using the SCM
SCM Example
Capture/Compare/PWM (CCP/ECCP)
CCP/ECCP Peripheral
Input Capture
Input Capture
Prescaler
I/O Pin Configuration
Timer1 Configuration
Interrupts
Sleep Mode Operation
Output Compare
Output Compare
Special Event Trigger
I/O Pin Configuration
Timer1 Configuration
Interrupts
Pulse Width Modulator (PWM)
Pulse Width Modulation (PWM)
10-bit PWM
10-bit PWM Code Configurator Example
CCP Pulse Width Modulation
Timer Selection
Enhanced PWM (ECCP Module)
Enhanced PWM
Half-Bridge Mode
Steering Mode
Dead Band Control
Full Bridge Control
Auto Shutdown/Restart
Single Output Mode
Steering Option
Steering Synchronization
Configurable Logic Cell (CLC)
Configurable Logic Cell
CLC Configuration Tool
CLCxCON
CLCxSEL0-1
CLCxGLS1-4
CLCxPOL
Using the CLC JK Flip Flop
CLC Controlled Train Crossing Signal
Complementary Waveform Generator (CWG)
Complementary Waveform Generator
CWG Example
Complementary Output Generator (COG)
Complementary Output Generator
Numerically Controlled Oscillator (NCO)
Numerically Controlled Oscillator
Peripheral Pin Select (PPS)
Peripheral Pin Select
Zero Cross Detect (ZCD)
Zero Cross Detect
Fixed Voltage Reference (FVR)
Fixed Voltage Reference
FVR Setup
Temperature Indicator
Temperature Indicator
Calibration
Operation
Reset Options (All Families)
Reset Options
Power-On Reset (POR)
Brown Out Reset (BOR)
Programming Mode Exit Reset (PMER)
Software Reset Instruction
Watchdog Timer Reset (WDT)
Low Power Brown Out Reset (LPBOR)
Master Clear Pin Reset (MCLR)
Stack Overflow/Underflow Reset
Oscillator Options (All Families)
8-bit Oscillator Options
External Clock
External Crystal Oscillator Modes
External RC Oscillator
TMR1 Secondary Oscillator
Internal Oscillator
Oscillator Startup Timer
Clock Switching
4x Phase Locked Loop (PLL)
Two-Speed Clock Start-up
Fail-Safe Clock Monitor
Active Clock Tuning (ACT)
Baseline Family Reference
Baseline Family
Architecture
Coming Soon…
Instruction Set
Instruction Set
Mid-Range Family Reference
Mid-Range Family
Architecture
Coming Soon…
Instruction Set
Coming Soon…
Enhanced Mid-Range Family Reference
Enhanced Mid-Range Family
Architecture
Instruction Set
Configuration Bits
Configuration Bit Summary in C
Data Memory
Data Memory
Program Memory
Program Memory
Peripherals
Peripherals
Digital I/O
Digital I/O
Analog-to-Digital Converter (ADC)
Analog-to-Digital Converter
Configurable Logic Cell (CLC)
Configurable Logic Cell
CLC Configuration Tool
CLCxCON
CLCxSEL0-1
CLCxGLS1-4
CLCxPOL
Complementary Waveform Generator (CWG)
Complementary Waveform Generator
CWG Example
Numerically Controlled Oscillator (NCO)
Numerically Controlled Oscillator
Interrupts
Interrupts
Interrupt Example
Example Program Settings
Programming Examples
PIC18 Family Reference
PIC18 Family
Architecture
PIC18F Architecture Overview
Peripherals
Vectored Interrupt Controller
Vectored Interrupt Controller Overview
Vectored Interrupts on 8-bit MCU
Examples
Demonstrating 8-bit PIC MCU Direct Memory Access (DMA)
Step 1: Connect Hardware
Step 2: Create and Setup MPLAB X IDE Project for MCU1
Step 3: Configure MCU1 Resources with MCC
Step 4: Build and Program MCU1
Step 5: Create and Setup MPLAB X IDE Project for MCU2
Step 6: Configure MCU2 Resources with MCC
Step 7: Build and Program MCU2
Step 8: Test Application
8-bit AVR Microcontrollers
Get Started Here
8-Bit AVR® Microcontroller Structure
AVR CPU Core
AVR Instruction Timing
AVR Arithmetic Logic Unit
AVR General Purpose Registers
AVR Stack Register
AVR Status Register
AVR Memory
Optimizing C Code on AVR
AVR Read While Write Memory (Bootloader)
AVR Digital I/O Ports
AVR Low Power Sleep Modes
AVR Peripheral Power Reduction Register
AVR Fuses
AVR Programming Interfaces
AVR Watchdog Timer
AVR USART Introduction
AVR Timer Compare Register Double Buffer
AVR ADC Operating Modes
AVR ADC Differential Mode
AVR ADC Noise Reduction Mode
AVR ADC Reference Voltage
AVR Serial Peripheral Interface (SPI)
AVR Peripheral Touch Controller (PTC)
AVR Internal Comparator
AVR Brown-Out Detection
AVR Interrupts
AVR External Interrupts
AVR Real Time Counter (RTC)
8-Bit AVR® Peripherals
Oscillator
megaAVR® Oscillator Overview
megaAVR® Oscillator Example Project
USART
Overview
megaAVR® USART Configuration
megaAVR® USART Example Project (Polled)
Interrupts
Overview
Configuration
Interrupt Example Project
Interrupts Special Considerations
Analog Comparator and Voltage Reference
Comparator Overview
Comparator Example Project
Timer / Counters
Timer Overview
Timer Example Project
Internal Temperature Sensor
Overview
ADC Setup for Internal Temperature Sensor
Low Power Operation
Low Power Overview
Power Saving Example Project
ADC and Power Optimization
Reset Sources
Reset Sources Overview
Reset Sources Example Project
Getting Started with AVR® Microcontrollers
Introduction and Key Training Application
Finding Documentation and Turning on an LED
Flashing an LED at a Specific Frequency
Read an I/O as Input to Turn on LED
Using Pin Change Interrupts
Making Our Simple App Low Power
Using Timer Overflow IRQs
Using Timer Compare Match IRQs
Using PWM to Dim an LED
Updating PWM Duty Cycle Using a Millisecond Timer
A More Complete PWM Driver
Seeing PWM Waveforms on the Data Visualizer
Using Hardware Fast PWM Mode and Testing with Data Visualizer
Switching Between Programming and Power Options with Xplained Mini
Setting up the Data Visualizer
Using the USART to Loopback From a Serial Terminal
Understanding the USART Baud Rate Macro
Using an App Note to Implement IRQ-based USART Communications
Splitting Functions Into USART.h and .c Files
Sending "Hello World!" from the USART
Using AVR MCU Libc's stdio to Send Formatted Strings
Using and Testing the AVR MCU ADC
Updating PWM Duty Cycle from ADC Sensor Reading
10 ms ADC Samples Averaged Over 1 Second
Sending Averaged ADC Sample Over USART
Better Coding Practice for USART Send Using a Sendflag
Understanding USART TX Pin Activity Using the Data Visualizer
picoPower and Putting an Application to Sleep
Introduction to PTC on AVR
Secure AVR BLE IoT Node
Using AVR® Microcontrollers with Atmel START
Using AVR with START - Part 1
Using AVR with START - Part 2
Using AVR with START - Part 3
Using AVR with START - Part 4
Using AVR with START - Part 5
Using AVR with START - Part 6
Additional content planned...
16-bit PIC Microcontrollers and dsPIC DSCs
Get Started Here
16-bit Architecture Overview
dsPIC33CH Dual-Core Controller
dsPIC33CH Overview
Steps to Program the dsPIC33CH
Configuring the Master Project
Exporting Slave Information from the Master
Configuring the Slave Project
Importing Information to the Slave
Programming Example (Step-by-Step)
CPU and Instruction Set
Instruction Set Architecture
dsPIC® Architectural Enhancements
Memory
Program Memory
Program Memory Structure
Reading Flash Memory
Writing to Flash Memory
Data Memory
Data Memory Structure
Extending the Data Memory
Reading Flash Memory with Program Space Visibility (PSV)
Peripherals
16-bit Peripheral Summary
Digital I/O
I/O Ports
Intelligent Analog
Coming Soon…
Waveform Control
Coming Soon…
Timing and Measurement
Timers
Safety and Monitoring
Coming Soon…
Communications
Coming Soon…
User Interface
Coming Soon…
Secure Data
Coming Soon…
System Flexibility and Low Power
Peripheral Trigger Generator (PTG)
PTG Description
PTG Step Commands
Initializing the PTG
Programming the PTG
Controlling Step Command Timing
Setting the Trigger Pulse Width
Starting and Stopping the PTG
PTG Application Examples
Low Power Operating Modes
Doze Mode
Extreme Low Power
Vbat
Interrupts
16-bit Interrupts and Exceptions
PIC24F Interrupt Vectors
MCU and Oscillator Configuration
Configuration Bits
Oscillator
16-bit Oscillator System
Overview
CPU Clocking Scheme
Primary Oscillator (POSC)
Low Power RC (LPRC) Oscillator
Fast RC Oscillator (FRC/LPFRC)
PLL
PLL Overview
4x PLL
24x (96 MHz) PLL
80 MHz PLL
140 MHz PLL
Secondary Oscillator (SOSC)
Auxiliary Oscillator and PLL
Fail-Safe Clock Monitor
Clock Switching
Two-Speed Start-up
Reference Clock Output Generator
What Happens at Start-up
Low Power Options
Low Power Operating Modes
Doze, Idle, and Sleep Modes
Deep Sleep
Vbat Mode
Switching the Clock at Run-time
Software Development
Software Development Tools
16-bit PIC® MCU Families
Adding SD Flash Memory Card Functionality Using MPLAB® Code Configurator
Step 1: Connect Hardware
Step 2: Download Example Code and Setup MCC
Step 3: Configure MCU Resources With MCC
Step 4: Configure File System (FatFs) and SD/MMC Card Libraries
Step 5: Build and Program
Step 6: Test Application
32-bit Microcontrollers
Get Started Here
Selecting your 32-bit MCU
PIC32M MCUs
FAQs
Family Reference Pages
PIC32MM
PIC32MX1/2/5
PIC32MX1/2 (XLP)
PIC32MX3/4
PIC32MX5/6/7
PIC32MK
PIC32MZ EF
PIC32MZ DA
Family Reference Manual
Peripherals
I/O Ports
USART
Timers
Output Compare
ADC
Interrupts
Oscillator
Oscillator Overview
Secondary Oscillator
Oscillator Startup Timer
Two-Speed Startup
Fail-Safe Clock Monitor
Clock Switching
Memory
Virtual vs. Physical Memory
Virtual vs. Physical Memory Map
Device Configuration Registers
PIC32MX Family Training
Get Started Here
PIC32MX CPU Overview
Architecture
Instruction Pipeline
M4K® CPU Core ISA
Overview
CPU Registers
Shadow Registers
Addressing Modes
Instruction Categories
Data Types
Endianness
Coprocessors
Memory Organization
Overview
Modes of Operation
Virtual Address Space
Address Translation
Memory Map
Alignment
Prefetch Cache
Exception Mechanism
Exception Mechanism
Exception Operation
Exception Types
Interrupt & Exception Usage
Entry Points
Control Registers
Processor Initialization
Interrupt Code Example
Exception Code Example
System Bus Matrix
Peripherals Overview
Oscillator Configuration
Oscillator
Primary Oscillator
Fast RC Oscillator
Low Power RC Oscillator
System Clock (SYSCLK)
Peripheral Bus Clock
Reference Clock
PLL
System PLL
USB PLL
Oscillator System Diagram
Oscillator System Features
Oscillator Configuration
PIC32MZ Family Training
Get Started Here
PIC32MZ CPU Overview
Architecture
Instruction Pipeline
microAptiv® & M5150 MPU Core ISA
Overview
CPU Registers
Shadow Registers
Addressing Modes
Instruction Categories
Data Types
Endianness
Coprocessors
Memory Organization
Overview
Modes of Operation
Virtual Address Space
Address Translation
Memory Map
Alignment
L1 Cache
Cache Coherency
Prefetch Module
Exception Mechanism
Exception Mechanism
Exception Operation
Exception Types
Interrupt & Exception Usage
Entry Points
Control Registers
Processor Initialization
Interrupt Code Example
Exception Code Example
System Bus
System Bus
Peripherals Overview
Oscillator Configuration
Oscillator
Primary Oscillator
Fast RC Oscillator
Backup Fast RC Oscillator
Low Power RC Oscillator
System Clock (SYSCLK)
Peripheral Bus Clocks (PBCLKx)
Reference Clock
System PLL
Clock Distribution Table
Cache Memory
What is cache memory?
How does cache work?
Cache coherency defined
Enable cache and manage cache coherency
Cache policy comparison chart
Change cache policy
Cache management assembly instructions
Completely disable cache
Disable cache for shared data
Maintaining cache coherency
PIC32MK Family Training
PIC32MK System Clock
PIC32MK Interrupts
PIC32MK ADC
PIC32MK Motor Control PWM (MC-PWM)
Kernel and User mode in the PIC32MK
Migrating from PIC32MX to PIC32MZ
MPLAB® Harmony
SAM MCUs
Differences Among ARM Cortex Families
Family Reference Pages
SAMD1x/2x
SAML
SAMC
SAM4
SAMG
SAMD5x
SAME5x
SAMS7/E7/V7
Accessing SAM MCU Registers in C
SAM D21 Family Training
SAM D21 MCU Overview
SAM D21 Code Examples Listing
Processor Core
Processor Overview
System Timer (SysTick)
Overview
Configuration
System Timer Example Project (GCC)
Nested Vectored Interrupt Controller (NVIC)
Overview
Configuration
NVIC Example Project (GCC)
I/O Bus (IOBUS)
Overview
System Control Block (SCB)
Overview
Micro Trace Buffer (MTB)
Overview
Peripherals
Clock System
Overview
Configuration
DFLL48M 48 MHz Initialization Example (GCC)
Generic Clock Controller (GCLK)
Overview
System Controller (SYSCTRL)
Overview
High Speed Bus (HPB)
Overview
Memory
Overview
AHB-APB Bridge
Overview
External Interrupt Controller (EIC)
Overview
Device Service Unit (DSU)
Overview
Power Manager (PM)
Overview
Peripheral Access Controller (PAC)
Overview
Direct Memory Access Controller (DMAC)
Overview
Non-Volatile Memory Controller (NVMCTRL)
Overview
Watchdog Timer (WDT)
Overview
Real Time Clock (RTC)
Overview
Timer/Counter (TC)
Overview
Digital to Analog Converter (DAC)
Overview
Analog Comparator (AC)
Overview
Peripheral Touch Controller (PTC)
Overview
Event System (EVSYS)
Overview
Universal Serial Bus (USB)
Overview
Serial Communication (SERCOM SPI Master)
Overview
Configuration
SERCOM SPI Master Example Project (GCC)
Serial Communication (SERCOM I²C Slave)
Overview
Configuration
SERCOM I²C Slave Example Project (GCC)
Inter-IC Sound Controller (I²S™)
Overview
SAM C21 Family Training
SAM C21 MCU Overview
SAM C21 Code Examples Listing
Processor Core
Processor Overview
System Timer (SysTick)
Overview
Configuration
System Timer Example Project (GCC)
Peripherals
Sigma-Delta Analog to Digital Converter (ADC)
Overview
Sigma-Delta vs SAR ADCs
Configuration
Sigma-Delta ADC Example Project (GCC)
Serial Communication (SERCOM SPI Slave)
Overview
Configuration
SERCOM SPI Slave Example Project (GCC)
Controller Area Network (CAN)
Overview
SAM L10 Family Training
SAM L10 MCU Overview
Processor Core
Memories
Embedded Memories
Overview
Flash Memory
Data Flash
Internal SRAM
Boot ROM
NVM Rows
NVM User Row
Serial Number
System Architecture
AHB Matrix
Clock System
Event System
DMA
Low Power Techniques
Overview
Power Supplies
Voltage Regulators
Performance Level
Sleep Modes
SleepWalking
Power Gating
Safety & Security Features
Overview
Peripheral Access Control
Tamper Detection
TrustRAM Secure Features
Data Flash Secure Features
Debug Access Level (DAL)
Peripherals
Peripheral Access Controller (PAC)
Device Service Unit (DSU)
Generic Clock Controller (GCLK)
Main Clock Controller (MCLK)
Frequency Meter (FREQM)
Reset Controller (RSTC)
Power Manager (PM)
Oscillators Controller (OSCCTRL)
32KHz Oscillators Controller (OSC32KCTRL)
Supply Controller (SUPC)
Watch Dog Timer (WDT)
Real Time Counter (RTC)
Direct Memory Access Controller (DMAC)
External Interrupt Controller (EIC)
NonVolatile Memory Controller (NVMCTRL)
Serial Communication Interface (SERCOM)
SERCOM Overview
SERCOM UART/USART
SERCOM SPI
SERCOM I2C
Timer Counter (TC)
Configurable Custom Logic (CCL)
Analog-to-Digital Converter (ADC)
Analog Comparator (AC)
Digital-to-Analog Converter (DAC)
Operational Amplifier Controller (OPAMP)
Peripheral Touch Controller (PTC)
EcoSystem
SAM L11 Family Training
SAM L11 MCU Overview
Processor Core
Memories
Embedded Memories
Overview
Flash Memory
Data Flash
Data Flash Scrambling
Internal SRAM
Boot ROM
NVM Rows
Serial Number
System Architecture
AHB Matrix
Clock System
Event System
DMA
Low Power Techniques
Overview
Power Supplies
Voltage Regulators
Performance Level
Sleep Modes
SleepWalking
Power Gating
Safety & Security Features
Overview
TrustZone® Implementation (TZ)
Debug Access Level (DAL)
Peripheral Access Control
Secure and Non-Secure Peripherals
Mix-Secure Peripherals
Secure Boot
Tamper Detection
TrustRAM Secure Features
Data Flash Secure Features
Cryptographic Accelerator (CRYA)
Secure PIN Mux
Peripherals
Peripheral Access Controller (PAC)
Device Service Unit (DSU)
Generic Clock Controller (GCLK)
Main Clock Controller (MCLK)
Frequency Meter (FREQM)
Reset Controller (RSTC)
Power Manager (PM)
Oscillators Controller (OSCCTRL)
32KHz Oscillators Controller (OSC32KCTRL)
Supply Controller (SUPC)
Watch Dog Timer (WDT)
Real Time Counter (RTC)
Direct Memory Access Controller (DMAC)
External Interrupt Controller (EIC)
NonVolatile Memory Controller (NVMCTRL)
Serial Communication Interface (SERCOM)
SERCOM Overview
SERCOM UART/USART
SERCOM SPI
SERCOM I2C
Timer Counter (TC)
Configurable Custom Logic (CCL)
Analog-to-Digital Converter (ADC)
Analog Comparator (AC)
Digital-to-Analog Converter (DAC)
Operational Amplifier Controller (OPAMP)
Peripheral Touch Controller (PTC)
EcoSystem
SAM L21 Family Training
SAM L21 Training with Hands-on Labs
ARM® Cortex®-M0+ Training
Instruction Set
Pipeline
Sleep Modes
Nested Vector Interrupt Controller (NVIC)
Debug Access Port (DAP)
Embedded Controllers
VCI Logic
32-bit Microprocessors (MPUs)
Boot Process
ATSAMA5D2
SAM9X60
Fast Boot Demonstration - SAM9X60-EK
at91bootstrap
Second Stage Bootloader
Customizing a Default Configuration
Create a Custom Board Configuration
Embedded Linux®
Boot Process - SAMA5D2 Series
Fast Boot Demonstration - SAM9X60-EK
Buildroot
Clone with Git
Create Project with Default Configuration
Create a Custom Project
Build
Ensemble Graphics Toolkit
Preparing the Host PC and Target
First Application with Eclipse IDE
Widget Positioning
Label and Font Classes
Static Grid
BoxSizer
Themes
Events
Dialog
Timers
Animation Part 1
Animation Part 2
Resources
Exercise Solutions
Exercise Solution 1
Applications
Pin Control and GPIO
ADC
Real-time Clock (RTC)
I2C
SPI
Watchdog Timer
PWM
UART
GPIO based IRQ
USB Mass Storage Device
Console UART
Flash Image with Etcher
MPLAB Harmony 3 Software Framework
Introduction
Differences Between MCU and MPU Development
Install the Launcher Plugin
Install the Software Framework
SAM9X60-EK
Running a CSP Application
Running a Core Application
Getting Started with MPLAB Harmony 3 Development
Building at91bootstrap for MPLAB Harmony 3 Development
Building at91boostrap to load from NAND Flash
Write harmony.bin and boot.bin to NAND Flash
Building at91boostrap to load from NOR Flash
Write harmony.bin and boot.bin to NOR Flash
Building at91boostrap to load from SD Memory Card
Copy harmony.bin and boot.bin to SD Memory Card
ATSAMA5D27-SOM1-EK1
Running a Core Application
SAM-BA In-System Programmer
Introduction
Supported Devices and Evaluation Kits
SAM-BA Monitor
Installing SAM-BA Host Application
SAM-BA Host Command Line Interface
SAM-BA Host to Monitor Serial Communications
Target Console Serial Communications
SAM-BA Monitor Commands
SAM-BA Applets
SAM-BA Applets
bootconfig
extram
internalrc
lowlevel
nandflash
pairingmode
qspiflash
readuniqueid
reset
sdmcc
serialflash
SAM-BA Host QML Scripts
MPU Evaluation Kits
MPU Debug Probes
ATSAMA5D27-SOM1-EK1
Introduction
Features
Booting a Linux Image
Booting from QSPI Flash Memory
Console Serial Communications
SAM9X60-EK
Introduction
Features
Booting a Linux Image
Fast Boot Demonstration
Booting from SD Memory Card Memory
Booting from NAND Flash Memory
Booting from QSPI Flash Memory
Console Serial Communications
Attaching TM5000 WVGA Display
Analog
Get Started Here
Analog and Interface Products Portfolio
Sensors Overview
RE46C317/18 Piezoelectric Horn Driver
Amplifiers
Get Started Here
Basic Amplifier Input Structure
Amplifiers and EMI Filtering
Analog Sensor Conditioning Circuits
Analog Sensor Conditioning Circuits
Voltage Sensors
Inverting Gain Amplifier
Non Inverting Gain Amplifier
Difference Amplifier
Current Sensors
Programmable Gain Amplifier
Resistive Detector
Transimpedance (Gm) Amplifier
Logarithmic Amplifier
Resistive Sensors
Voltage Divider
Wheatstone Bridge
Capacitive Sensors
RC Decay
Capacitive Wheatstone Bridge
Analog Signal Conditioning: Circuit & Firmware Concerns
Operational Amplifiers (op amps)
Get Started Here
Introduction to Operational Amplifiers
Zero Drift Amplifiers
High Side Current Sense Amplifiers
Low Side Current Sense Amplifiers
Thermocouple Junction Behavior
Preventing Large Thermoelectric Voltages
Curing Thermoelectric Voltage Effects
Measurement of Temperature Related Quantities
Leakage Currents
Other Tips
Design Example
Summary & References
PCB Parasitic Resistance
Additional content planned...
Instrumentation Amplifiers (In-Amps)
Get Started Here
Introduction to Instrumentation Amplifiers
Instrumentation Amplifier: Analog Sensor Conditioning
Additional content planned...
Comparators
Get Started Here
Introduction to Operational Amplifiers: Comparators
Data Converters
Get Started Here
Analog to Digital Converters (ADCs)
Get Started Here
Understanding ADC Specifications
Understanding ADC Specifications
A/D Converter (ADC) Basics
Code Width
Resolution and Accuracy
Acquisition Time
DC Specifications
DC Specifications
Offset Error
Gain Error
Differential Nonlinearity (DNL)
Integral Nonlinearity (INL)
Absolute Error
Monotonicity
AC Specifications
AC Specifications
Signal-to-Noise Ratio (SNR)
Quantization Error
Signal-to-Noise Ratio plus Distortion (SINAD)
Total Harmonic Distortion and Noise (THD+N)
Effective Number of Bits
Spurious Free Dynamic Range
Piplelined ADC
MCP37D31-200 16-bit Piplelined ADC - Microchip
Pipeline ADC Utility
User's Guide
Software Installation
Operations
Settings
Software Settings
Delta-sigma ADC
Delta-Sigma ADC - Microchip
Additional content planned...
Digital to Analog Converters (DACs)
Get Started Here
Digital-to-Analog Converters
MCP4728 Quad Channel 12 bit Voltage Output DAC
Additional content planned...
Power Management
Get Started Here
Power Supply Filtering
MCP19111 Digitally Enhanced Power Converter
Digitally Enhanced Power Analog (DEPA)
Motor and MOSFET Drivers
Introduction to the CIP Hybrid Power Kit
SMPS Design with the CIP Hybrid Power Starter Kit
Voltage Regulators
Get Started Here
Linear Regulators
Get Started Here
Precision Voltage Reference
Additional content planned...
Low Drop-Out Regulators
Get Started Here
Product Advisor Tool
LDO Regulators Features & Applications
MCP1755 Low Dropout Regulator (LDO)
Additional content planned...
Switching Regulators
Get Started Here
Non-Synchronous Buck Converter Application
Synchronous Buck Converter Application
MCP16331 Step-Down (buck) DC-DC Converter
MCP16331 Buck Converter Evaluation Board
Design Analyzer
Get Started Here
Buck Converter Design Analyzer Introduction
Synchronous Buck Converter Overview
MCP16311/2 Design Analyzer Overview
MCP16311/2 Overview
MCP16311/2 Design Analyzer Design Example
Bode Plot Parameters
Buck Power Supply Graphical User Interface (GUI)
Buck Power Supply Graphical User Interface Introduction
Buck Power Supply GUI System Components
Buck Power Supply GUI Environment
Buck Power Supply GUI Installation
Buck Power Supply GUI Hardware & Software Requirements
Buck Power Supply GUI Operation
Digital Compensator Design Tool
Get Started Here
Digital Compensator Design Tool Introduction
Digital Compensator Design Tool Getting Started
Digital Compensator Design Tool Single Loop System
Digital Compensator Design Tool Peak Current Mode Control
Import Existing Project
Single-Loop System Block Diagram
Peak Current Mode System Block Diagram
Defining the System Plant
Defining the Feedback
Selecting the Compensator
3P3Z Compensator
2P2Z Compensator
PID Compensator
Type III Analog Compensator
Type II Analog Compensator
What Compensator Type Should I Select?
How are the Coefficients Calculated?
KDC, KuC Gain
Bode, Nyquist, Root Locus Plots
Generate Summary Report
DCDT Default Values
Related Application Notes
Family Datasheets and Reference Manual Documents
Switching Regulator Circuits
MIC24045 Synchronous Step Down Regulator
Power Conversion Application Notes
Light Emitting Diodes
Get Started Here
LED Applications
Driving LEDs
LED Lighting SMPS Topologies
Driving LEDs with a Charge Pump
Driving LEDs with a Boost Regulator
Driving LEDs with a SEPIC Regulator
LED Applications with PIC® MCU
Driving LEDs with PIC® MCU
Control LEDs with PWM
MCP1630 Boost Mode LED Driver
LED Applications with Digital Control
Advanced Communication Solutions for Lighting
Wi-Fi Inteface
USB Interface
Ethernet Interface
CAN and LIN Protocols
MOSFET Drivers
Get Started Here
What Are MOSFET Drivers?
MCP14AXX Power MOSFET Drivers
Thermal Management
Get Started Here
Temperature Sensors
Get Started Here
Temperature Sensor Application Tips
Analog Temperature Sensor
MCP9600 Thermocouple EMF to Temperature Converter
MCP9700 Linear Active Thermistor IC
Thermocouples
Resistive Temperature Detector (RTD)
Thermistor
Voltage Output Temperature Sensor
MCP9600 Sensor conditioning ICs
MCP9601 Thermocouple EMF to Temperature Converter ICs
Remote Thermal Sensing Diode Selection Guide
Remote Diode Temp Sensor
Single Channel Digital Temperature Sensor
Multi-Channel Temperature Sensor
Power Monitoring
Get Started Here
Power Monitoring Applications
PAC1921 Current Power Sensor - Microchip
PAC1934 Quad DC Power Monitor
Measuring Power and Energy Consumption Using PAC1934 Monitor with Linux®
Objective and Overview
Step 1: Connect Hardware
Step 2: Set Up Build Environment
Step 3: Configure Buildroot
Step 4: Application-Specific Configuration
Step 5: Configure PAC193x Sample Application
Step 6: Test Application
Appendix
Measuring Power Consumption with PAC1934
Objective and Overview
Step 1: Connect Hardware
Step 2: Create Project
Step 3: Configure MCU with MCC
Step 4: Configure PAC193x with MCC
Step 5: Include C Directories, Build and Program
Step 6: Test Application
Energy Measurement
MCP39FXX Power Monitoring ICs
MCP39F501 Power Monitoring IC
MCP39F511N Power Monitoring IC
Utility Metering Development Systems - Microchip
Utility Metering Reference Designs- Microchip
Energy Management Utility Software Introduction
Get Started with Energy Management Utility Software
How to Use Energy Management Utility Software
Device Register Configuration
Energy Management Utility Software Chart Features
Troubleshooting Energy Management Utility Software
Digital Potentiometers
Digital Potentiometers
Digital Potentiometers Applications - Low Voltage
RF and Wireless Products
Get Started Here
Embedded Wi-Fi®
Get Started Here
ATWINC1500 Wi-Fi® Module
Overview
SoC Overview
Operating Modes
Development Tools
MCU Interfacing
Application Development
Overview
Application Examples
Firmware Update
Scan for and Connect to Available APs
RN Wi-Fi® Modules
RN1723
Overview
SOC Overview
Operating Modes
Command Mode
Development Tools
MCU Interfacing
Application Examples
Explore Command Mode
Bluetooth®
RN Bluetooth Modules
RN41
RN41 Overview
RN42
RN42 Overview
Bluetooth® Low Energy (BLE)
Get Started Here
RN BLE Modules
RN4020
Overview
Operating Modes
Development Tools
MCU Interface
Power States
Application Examples
Explore Command Mode
RN4020 Device Firmware Update (UART)
RN4020 Device Firmware Update (OTA)
RN4020 Smartphone Basic Demo
RN4870
Overview
Operating Modes
Command Groups
Development Tools
MCU Interface
Application Examples
Explore Command Mode
Firmware Update
Smartphone Basic Demo (Transparent UART)
Adding a Public Service
Updating Server Characteristics
Eddystone Beacon Example
BM BLE Modules
BM70
Overview
Operating Modes
BM70 PICtail/PICtail Plus Daughter Board
BM70 Compact Demo Board User's Guide
Overview
Interface Description
Using BM70 Firmware on BM-70-CDB
Using RN4870 Firmware on BM-70-CDB
RN4870 Sensor Board
Loading RN4870 Firmware
Loading BM70 Firmware
BM-70-CDB Example Configuration
Schematics and BOM
Bluetooth Low Energy Primer
Sensor Board Script Text
Transparent UART
MCU Interface
BLE Connection States
Security Features
Application Examples
Programming, Configuration and Evaluation
Firmware Update
Static Configuration (UI Configuration Tool)
Transparent UART Demos
Transparent UART Demo (Auto Pattern Tool)
Transparent UART Demo (Smartphone)
Generic BLE Demos
GAP Peripheral Demo (Making Connections)
GATT Server Demo (Public Service)
Stopwatch Demo (Private Service)
Connecting to a Peer BM70
BM71
Overview
Operating Modes
Development Tools
MCU Interface
BLE Connection States
Application Examples
Programming, Configuration and Evaluation
Firmware Update
Static Configuration (UI Configuration Tool)
Transparent UART Demos
Transparent UART Demo (Auto Pattern Tool)
Transparent UART Demo (CoolTerm)
Generic BLE Demos
GAP Peripheral Demo (Making Connections)
Stopwatch Demo (Private Service)
Clock and Timing
Get Started Here
Oscillators
Get Started Here
Clock Generators
Get Started Here
Clock and Data Distribution
Get Started Here
Additional content planned...
Field Programmable Gate Arrays (FPGA)
Get Started Here
Microchip FPGAs and SoCs
PolarFire FPGAs
PolarFire Architecture and Uses
PolarFire Power-Up and Reset Operation
IGLOO2 FPGAs
IGLOO2 Architecture and Uses
SmartFussion2 Soc FPGAs
SmartFussion2 SoC FPGAs
Libero Design Suite
Libero Design Suite Overview
Integrating Microchip RTG4 Board with MathWorks FIL Workflow
Programmable Logic Devices
Get Started Here
Additional content planned...
Data Center Solutions
Adaptec® Storage Adapters
Get Started Here
maxView Storage Manager
Using maxView to configure and manage an Adaptec RAID or HBA
Store
Help
About This Site
Site Feedback
Forums
24/7 Technical Support
Legal
Assignment Operators
Return to Top