Developer
Help

Create account or Sign
in

Toggle navigation

Search

02 Oct 2020
17:59

4970 active pages

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

Introduction to the MPLAB X Development Environment

Training
Outline

Generic
Embedded Development Environment Overview

Intro to
the MPLAB X Development Project Environment

Intro to
the MPLAB XC Compilers

Intro to
the MPLAB X Programmers/Debuggers

MPLAB X
Development Environment Installation

Launch
MPLAB X

Tour the
MPLAB X Features

Open an
MPLAB X Project

Build a
Project and Program a Device

Next
Steps

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

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

Remote USB Debugging

Remote
USB Debugging Plug-in Overview

Install
Remote USB Debugging Plug-in

Remote (Server-Side) Operation

Remote
(Server-Side) Operation Overview

Download
Remote Library

Server
Application Setup

Server
Application Operation

Hosts
File Editing

MPLAB X IDE (Host) Operation

MPLAB
X IDE (Host) Operation Overview

Add
and Enable/Disable a Remote USB Connection

Duplicate,
Edit, or Delete a Remote USB Connection

Select
a Remote USB Tool for an MPLAB X IDE Project

Precautions
& Limitations

Remote
USB Debugging Plug-in Functions

SEGGER J-Link Debug Probes

SEGGER
J-Link Debug Probes

SEGGER
J-Link Installation

J-Link
Microchip Adapter

SEGGER
J-Link Probe Debug Operation

SEGGER
J-Link Troubleshooting

SEGGER
J-Link Global DLL Error Codes

SEGGER
J-Link Support

Third Party Plug-ins

Install
a Third-Party Plug-in

Running
Plug-ins

User Interface

User
Interface

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

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

MPLAB X
IDE - Debugging with UPDI (AVR MCUs)

MPLAB
PICkit™ 4 In-Circuit Debugger - High Voltage Activation of
UPDI

MPLAB X
IDE - Debugging with debugWIRE (AVR MCUs)

Debugger/Programmer
Configuration

Debug
Startup Options

Debug
Toolbar

Start
a Debug Session

Viewing Memory and Variables

Viewing
Memory and Variables

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

Automation

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

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

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
(also HI-TECH compilers PICC, PICC18-STD, PIC18-PRO, dsPIC®,
PIC32)

XC16
(also C30, C24, dsPIC)

XC32
(also C32)

MPASM

C18

ASM30

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

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

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

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

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

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

Microstick

Microstick
II

Microstick 3
V K-Series

Microstick 5
V K-Series

Microstick
Support

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

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

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

SEGGER J-Link

Get
Started Here

Introduction to
the J-Link Debug Probe

Introduction to
JTAG

JTAG and
the PIC32

USB
Drivers and Utilities

MPLAB®
X Plugin for J-Link

J-Link
Microchip Adapter

JTAG
Communication Method

Manual
Memory Selection

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) [[li class="menu-extlink"]] chipKIT™ Embedded Platforms

Functions

Embedded Software Integration

Get Started Here

C Programming

Get Started Here

Articles

Bits,
Bools, and Bit-fields

To Cast,
or Not to Cast

Structure
Padding

Choosing an
Integer Data Type

Aligning
Variables

Configuration
Bits, EEPROM, and ID locations

Debug Only
Features Added to Source Code

Include
Processor Specific Header File

Persistent
Variable Setup

RAM
Placed in Fixed Location

Sleep
Mode Setup in XC Compilers

The C
Preprocessor’s Arithmetic World

The
Important But Restricted Role void Pointers Should Play in Your
Code

Avoid
Memory Allocation Catastrophe

Assert
Your Success

Make
Your Code Small for FREE

Using
Scaled Integers Instead of Larger Types

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® 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

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, Pins 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 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

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

Peripheral Libraries on SAM D5x/E5x

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

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 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

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

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

SEGGER
emWin Graphics Library

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)

Graphics
Library

TCP/IP Training

Creating
a TCPIP Project From Scratch using MHC

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

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

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

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®

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

Displays

Get
Started Here

Graphics Libraries

Graphics
Libraries for PIC™ Microcontrollers

Motor Control

Get
Started Here

Vocabulary
of Motor Control

Types of Electric Motors

Motors
controlled by Microchip

Brushed
DC

Stepper

Brushless DC
(BLDC)

Permanent Magnet
Synchronous Motor (PMSM)

AC Induction Motor
(ACIM)

Switched Reluctance
(SR)

Controlling Motors with Microchip

Control
Algorithms

motorBench™ Development Suite

motorBench™
Development Suite

Installing
motorBench™

Using
motorBench™

Application
Example

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

MiWi™
Protocol

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 Plugin

ML
Plugin User's Guide

Example Applications

Fan
Anomaly Detection With Cartesiam

Authentication

Get
Started Here

Trust Platform Design Suite

Installing
the Trust Platform Design Suite

Secure
Provisioning of TrustFLEX

CryptoAuth
Trust Platform Factory Reset

Trust Platform 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

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

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)

Embedded Linux®

Boot
Process - SAMA5D2 Series

Second
Stage Bootloader: at91bootstrap

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

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

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

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

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

MiWi™
Protocol

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

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

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

Home » 8-bit
AVR® Microcontrollers » Digital Input/Output Ports on AVR

Digital Input/Output Ports on AVR

AVR® 8-bit microcontrollers control applications through their digital Input
and Output (I/O) pins. These pins can monitor any voltage present as a high
impedance input and supply or sink current as a high or low voltage digital
output. These pins are usually organized in groups of eight and referred to as a
port. The AVR uses the alphabet to name these ports, for example: PortA, PortB,
etc. The pins of PortA are referred to as PA0 - PA7.

Overview

All AVR ports have true Read-Modify-Write functionality when used as general
digital I/O ports. This means that the direction of one port pin can be changed
without unintentionally changing the direction of any other. The same applies
when changing drive value (if configured as an output) or enabling/disabling of
pull-up resistors (if configured as an input). Each output buffer has
symmetrical drive characteristics with both high sink and source capability.

The pin driver is robust enough to drive LED displays directly. All port pins
have individually selectable pull-up resistors with a supply-voltage invariant
resistance. All I/O pins have protection diodes to both VCC and Ground as
indicated in the figure.

Brief AVR I/O Port Summary

Configuring the I/O Digital Pins

Each port consists of three registers:

DDRx – Data Direction Register

PORTx – Pin Output Register

PINx – Pin Input Register

where x = Port Name (A, B, C or D)

These registers determine the setup of the digital inputs and outputs. I/O
pins can also be shared with internal peripherals. For example, the Analog to
Digital (ADC) converter can be connected to the I/O pin instead of being a
digital pin. In this case the I/O pin registers set it up as a tri-state high
impedance input.

Register Bits

DDxn bits are accessed at the DDRx I/O address

PORTxn bits at the PORTx I/O address

PINxn bits at the PINx I/O address

Where n = pin bit number in the Port Register

DDxn

The DDxn bits in the DDRx Register select the direction of this pin. If DDxn
is written to '1', Pxn is configured as an output pin. If DDxn is written to
'0', Pxn is configured as an input pin.

PORTxn

The PORTxn bits in the PORTx register have two functions. They can control
the output state of a pin and the setup of an input pin.

As an Output:
If a '1' is written to the bit
when the pin is configured as an output pin, the port pin is driven high. If a
‘0’ is written to the bit when the pin is configured as an output pin, the port
pin is driven low.

As an Input:
If a '1' is written to the bit when
the pin is configured as an input pin, the pull-up resistor is activated. If a
‘0’ is written to the bit when the pin is configured as an input pin, the port
pin is tri-stated.

PINxn

The PINxn bits in the PINx register are used to read data from port pin. When
the pin is configured as a digital input (in the DDRx register), and the pull-up
is enabled (in the PORTx register) the bit will indicate the state of the signal
at the pin (high or low).
Note: If a port is made an output,
then reading the PINx register will give you data that has been written to the
port pins.

As a Tri-State Input:
When the PORTx register
disables the pull-up resistor the input will be tri-stated, leaving the pin left
floating. When left in this state, even a small static charge present on
surrounding objects can change the logic state of the pin. If you try to read
the corresponding bit in the pin register, its state cannot be predicted.

Examples

All PORTA pins set as inputs with pull-ups enabled and then read data from
PORTA:

DDRA = 0x00; //make PORTA all inputs
PORTA = 0xFF; //enable all pull-ups
data = PINA; //read PORTA pins into variable data

PORTB set to tri-state inputs:

DDRB = 0x00; //make PORTB all inputs
PORTB = 0x00; //disable pull-ups and make all pins tri-state

PORTA lower nybble set as outputs, higher nybble as inputs with pull-ups
enabled:

DDRA = 0x0F; //lower pins output, higher pins input
PORTA = 0xF0; //output pins set to 0, input pins enable pull-ups

Example Project controlling an I/O pin along with simple
debugging is available.

Digital I/O
Project on AVR Xplained 328PB

Example Project mentioned in the video

[|
Video Referenced I/O Example]]

Tips and Tricks

Switching Between Input and Output

When switching between tri-state ({DDxn, PORTxn} = 0b00) and
output high ({DDxn, PORTxn} = 0b11), an intermediate state with
either pull-up enabled {DDxn, PORTxn} = 0b01) or output low
({DDxn, PORTxn} = 0b10) must occur.

Normally, the pull-up enabled state is fully acceptable, as a high impedance
environment will not notice the difference between a strong high driver and a
pull-up. If this is not the case, the PUD bit in the MCUCR Register can be set
to disable all pull-ups in all ports.

Switching between input with pull-up and output low generates the same
problem. You must use either the tri-state
({DDxn, PORTxn} =
0b00) or the output high state ({DDxn, PORTxn} = 0b11)
as an intermediate step.

Disable Pull-Ups Over-ride

The PUD Pull-up Disable bit in the MCUCR
register can over-ride the DDRx and PORTx
pull-up settings.

When this bit is written to one, the pull-ups in the I/O ports are disabled
even if the DDxn and PORTxn Registers are
configured to enable the pull-ups ({DDxn, PORTxn} = 0b01).

Toggling an I/O Pin

Writing a '1' to PINxn toggles the value of PORTxn independent of the value
of DDRxn. The SBI assembly instruction can be used to toggle one single bit in a
port.

Unconnected Pins

If some pins are unused, we recommend that you ensure that these pins have a
defined level, even though most of the digital inputs are disabled in the deep
sleep modes. Floating inputs should be avoided to reduce current consumption in
all other modes where the digital inputs are enabled (Reset, Active Mode and
Idle Mode).

The simplest method to ensure a defined level of an unused pin is to enable
the internal pull-up. In this case, the pull-up will be disabled during reset.
If low power consumption during reset is important, we recommend you use an
external pull-up or pull-down. Connecting unused pins directly to VCC or GND is
NOT recommended, since this may cause excessive currents if the pin is
accidentally configured as an output.

Return to Top

Home » 8-bit
AVR® Microcontrollers » Digital Input/Output Ports on AVR

©
2020 Microchip Technology, Inc.

Main Site: microchip.com

Powered by: wikidot.com

Notice: ARM and Cortex are the registered trademarks of
ARM Limited in the EU and other countries.

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

Click here to edit contents of this page.

Click here to toggle editing of
individual sections of the page (if possible). Watch headings for an
"edit" link when available.

Append content without editing the
whole page source.

Check out how this page has evolved in
the past.

If you want to discuss contents of
this page - this is the easiest way to do it.

View and manage file attachments for
this page.

A few useful tools to manage this
Site.

See pages that link to and include
this page.

Change the name (also URL address,
possibly the category) of the page.

View wiki source for this page
without editing.

View/set parent page (used for
creating breadcrumbs and structured layout).