Note the following details of the code protection feature on Microchip devices:
•Microchip products meet the specification contained in their particular Microchip Data Sheet.
•Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the
intended manner and under normal conditions.
•There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our
knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip’s Data
Sheets. Most likely, the person doing so is engaged in theft of intellectual property.
•Microchip is willing to work with the customer who is concerned about the integrity of their code.
•Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not
mean that we are guaranteeing the product as “unbreakable.”
Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our
products. Attempts to break Microchip’s code protection feature may be a violation of the Digital Millennium Copyright Act. If such acts
allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act.
Information contained in this publication 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.
Trademarks
The Microchip name and logo, the Microchip logo, Accuron,
dsPIC, K
EELOQ, KEELOQ logo, microID, MPLAB, PIC,
PICmicro, PICSTART, PRO MATE, rfPIC and SmartShunt are
registered trademarks of Microchip Technology Incorporated
in the U.S.A. and other countries.
AmpLab, FilterLab, Linear Active Thermistor, Migratable
Memory, MXDEV, MXLAB, SEEVAL, SmartSensor and The
Embedded Control Solutions Company are registered
trademarks of Microchip Technology Incorporated in the
U.S.A.
Analog-for-the-Digital Age, Application Maestro, CodeGuard,
dsPICDEM, dsPICDEM.net, dsPICworks, dsSPEAK, ECAN,
ECONOMONITOR, FanSense, FlexROM, fuzzyLAB,
In-Circuit Serial Programming, ICSP, ICEPIC, Mindi, MiWi,
MPASM, MPLAB Certified logo, MPLIB, MPLINK, PICkit,
PICDEM, PICDEM.net, PICLAB, PICtail, PowerCal,
PowerInfo, PowerMate, PowerTool, REAL ICE, rfLAB, Select
Mode, Smart Serial, SmartTel, Total Endurance, UNI/O,
WiperLock and ZENA are trademarks of Microchip
Technology Incorporated in the U.S.A. and other countries.
SQTP is a service mark of Microchip Technology Incorporated
in the U.S.A.
All other trademarks mentioned herein are property of their
respective companies.
Microchip received ISO/TS-16949:2002 certification for its worldwide
headquarters, design and wafer fabrication facilities in Chandler and
Tempe, Arizona; Gresham, Oregon and design centers in California
and India. The Company’s quality system processes and procedures
are for its PIC
devices, Serial EEPROMs, microperipherals, nonvolatile memory and
analog products. In addition, Microchip’s quality system for the design
and manufacture of development systems is ISO 9001:2000 certified.
All documentation becomes dated, and this manual is no exception. Microchip tools and
documentation are constantly evolving to meet customer needs, so some actual dialogs
and/or tool descriptions may differ from those in this document. Please refer to our web site
(www.microchip.com) to obtain the latest documentation available.
Documents are identified with a “DS” number. This number is located on the bottom of each
page, in front of the page number. The numbering convention for the DS number is
“DSXXXXXA”, where “XXXXX” is the document number and “A” is the revision level of the
document.
For the most up-to-date information on development tools, see the MPLAB
Select the Help menu, and then Topics to open a list of available online help files.
®
IDE online help.
INTRODUCTION
This chapter contains general information that will be useful to know before using the
PIC32MX. Items discussed in this chapter include:
• Document Layout
• Conventions Used in this Guide
• Recommended Reading
• The Microchip Web Site
• Development Systems Customer Change Notification Service
• Customer Support
• Document Revision History
DOCUMENT LAYOUT
This document describes how to use the PIC32MX Starter Kit as a development tool to
emulate and debug firmware on a target board. The manual is composed of the following chapters:
• Chapter 1. “Introducing the PIC32MX Starter Kit” provides a brief overview of
the PIC32MX Starter Kit, highlighting its features and uses.
This user’s guide describes how to use the PIC32MX Starter Kit.
The following Microchip documents are available and recommended as supplemental
reference resources.
Readme for the PIC32MX
For the latest information on using PIC32MX microcontrollers, read the
file (an ASCII text file) at the root level of the CD included in the PIC32MX Starter Kit.
The file generally contains the most current update information, as well as any issues
that may not have been available when this user’s guide was published.
Readme Files
For the latest information on using other tools, read the tool-specific readme files in the
Readmes subdirectory of the PIC32MX Starter Kit installation directory. The files contain
update information, as well as any issues that may not have been available when this
user’s guide was published.
PIC32MX Data Sheet (DS61143)
Consult this document for detailed information on the PIC32MX general purpose, 32-bit
devices. Reference information found in this data sheet includes:
• Device memory map
• Device pinout and packaging details
• Device electrical specifications
• List of peripherals included on the device
MPLAB
This document details the use of Microchip’s MPLAB C32 C Compiler for PIC32MX
devices to develop an application. MPLAB C32 is a GNU-based language tool, based
on source code from the Free Software Foundation (FSF). For more information about
FSF, see their web site at www.fsf.org.
MPLAB
Consult this document for more information pertaining to the installation and
implementation of the MPLAB IDE software, as well as the MPLAB Editor and MPLAB
SIM Simulator software that are included with it.
®
C32 C Compiler User’s Guide (DS51686)
®
IDE User’s Guide (DS51519)
Preface
PIC32MX.txt
THE MICROCHIP WEB SITE
Microchip provides online support via our web site at www.microchip.com. This web
site makes files and information easily available to customers. Accessible by most
Internet browsers, the web site contains the following information:
• Product Support – Data sheets and errata, application notes and sample
programs, design resources, user’s guides and hardware support documents,
latest software releases and archived software
• General Technical Support – Frequently Asked Questions (FAQs), technical
support requests, online discussion groups, Microchip consultant program
member listings
• Business of Microchip – Product selector and ordering guides, latest Microchip
press releases, listings of seminars and events; and listings of Microchip sales
offices, distributors and factory representatives
DEVELOPMENT SYSTEMS CUSTOMER CHANGE NOTIFICATION SERVICE
Microchip’s customer notification service helps keep customers current on Microchip
products. Subscribers will receive e-mail notification whenever there are changes,
updates, revisions or errata related to a specified product family or development tool of
interest.
To register, access the Microchip web site at
Change Notification and follow the registration instructions.
The Development Systems product group categories are:
• Compilers – The latest information on Microchip C compilers and other language
tools. These include the MPLAB C18, MPLAB C30, and MPLAB C32 C compilers;
ASM32, MPASM™ and MPLAB ASM30 assemblers; MPLINK™, and MPLAB
LINK30, MPLAB LINK32 object linkers; and MPLIB™ and MPLAB LIB30 object
librarians.
• Emulators – The latest information on Microchip in-circuit emulators. This
includes the MPLAB REAL ICE™ and MPLAB ICE 2000 in-circuit emulators.
• In-Circuit Debuggers – The latest information on the Microchip in-circuit
debuggers. This includes the MPLAB ICD 2 and PICkit™ 2.
• MPLAB
Integrated Development Environment for development systems tools. This list is
focused on the MPLAB IDE, MPLAB IDE Project Manager, MPLAB Editor and
MPLAB SIM simulator, as well as general editing and debugging features.
• Programmers – The latest information on Microchip programmers. These include
the MPLAB PM3 device programmer and the PICSTART
PICkit 2 development programmers.
®
IDE – The latest information on Microchip MPLAB IDE, the Windows®
www.microchip.com, click on Customer
®
Plus, PICkit™ 1 and
CUSTOMER SUPPORT
Several channels are available to assist the users of Microchip products:
• Distributor or Representative
• Local Sales Office
• Field Application Engineer (FAE)
• Technical Support
• Development Systems Information Line
Customers should contact their distributor, representative or FAE for support. Local
sales offices are also available to help customers. A list of sales offices and locations
is included in the back of this document.
Technical support is available through the web site
DOCUMENT REVISION HISTORY
Revision A (October 2007)
This is the initial release of the PIC32MX Starter Kit User’s Guide.
Thank you for purchasing the Microchip Technology PIC32MX Starter Kit. This kit
provides a low-cost, modular development system for Microchip’s new line of 32-bit
microcontrollers.
The Starter Kit comes pre-loaded with demonstration software for the user to explore
the new features of the PIC32MX. It is also expandable through a modular expansion
interface, which allows the user to extend its functionality. The PIC32MX Starter Kit also
supplies on-board circuitry for full debug and programming capabilities.
1.2HIGHLIGHTS
This chapter covers the following topics:
• Kit Contents
• PIC32MX Functionality and Features
• Using the PIC32MX Starter Kit Out of the Box
• PIC32MX Demonstration Program
The preprogrammed example code on the PIC32MX MCU has been included on the
PIC32MX Starter Kit CD-ROM for future reference. All project files have been included,
so that the code may be used directly to restore the PIC32MX MCU on the Starter Kit
to its original state (i.e., if the sample device has been reprogrammed with another program), or so you can use the tutorial code as a platform for further experimentation.
PIC32MX STARTER KIT
USER’S GUIDE
1.3KIT CONTENTS
The PIC32MX Starter Kit contains the following items:
The PIC32MX Starter Kit may be used directly from the box as a demonstration board
for the PIC32MX device. The PIC32MX is preprogrammed with the classic “Simon
Says” game in the PIC32MX360F512L device (i.e., simon_says_demo.hex) and is
ready for immediate use.
1.5.1How to Play the Game
When the USB cable is plugged into the Starter Kit, the three LEDs start blinking to indicate the start of a new game. Begin the game by pressing one of the switches to
choose the level of game difficulty, SW1-SW3 (SW3 is the eastest, SW1 is the hardest).
The goal is to imitate the light patterns as long as you can, without getting frazzled. Ultimately, you will make a mistake and all of the LEDs will light up to signal the end of a
game. After a brief pause, you can press a switch again to start a new game.
If the Starter Kit is connected to the MPLAB IDE, the game stops. It will be replaced by
the MPLAB IDE project that you select when the program button is pressed. The Simon
game can be reloaded onto the Starter kit by opening the simon_says_demo.mcw file
from the c:\Program Files\Microchip\pic32_solutions\simon_says_demo directory.
1.6INSTALLING THE PIC32MX STARTER KIT CD
The Starter Kit CD-ROM contains the MPLAB IDE, MPLAB C32 C Compiler tools, code
examples, sample projects, technical documentation, a getting started tutorial and this
PIC32MX Starter Kit User’s Guide. When the CD is placed into your CD drive, an automatic installation application will guide you to install the tools and necessary
documents.
1.7PIC32MX DEMONSTRATION PROGRAM
The preprogrammed example code on the PIC32MX has been included on the
PIC32MX Starter Kit CD-ROM for future reference. All project files have been included,
so that the code may be used directly to restore a PIC32MX to its original state (i.e., if
the sample device has been reprogrammed with another program), or so you can use
the tutorial code as a platform for further experimentation.
As a USB device, the Starter Kit board requires very little effort to install; most of the
work is done by the operating system. Begin by closing all applications.
2.4.1Install the Tools and Projects
1. Insert the PIC32 Starter Kit CD into your CD-ROM drive and click the install from
CD menu option. If the installation application does not automatically start,
navigate to the files on the CD and open
The following window is displayed:
FIGURE 2-1:INSTALLING THE PIC32 STARTER KIT BOARD
setup.exe.
2. Reboot your system when prompted to do so.
Note:The dialog also provides an option to check the Microchip web site for
newer versions of the Starter Kit software.
2.4.2View the Getting Started Tutorial
Perform the following steps to view the tutorial:
1. After your computer has rebooted, the Getting Started Tutorial menu opens.
2. View the tutorial instructions for connecting to the Starter Kit board and running
the tutorial project.
If you performed the installation steps as you followed along in the Getting Started
tutorial, skip to Section 2.5 “Starting the Tutorial Project” on page 14.
If you did not, continue to the next page for instructions about how to connect the board
and install the device driver.
Using the supplied USB cable, connect the board to an open USB port on your computer. (A USB hub that is not bus-powered can also be used.) Connect the other end
of the cable into the USB connector on the Starter Kit board.
Check the board: the green power LED D3 should be lit. If it is not, check the
connections at the port, hub, and board.
2.4.4Install the USB Device Driver
Note:The USB driver installation steps described here refer specifically to
installing the driver on a Microsoft Windows XP operating system.
Perform the following steps to install the USB device driver:
1. When the USB cable is connected, the “Found New Hardware Wizard” dialog
box opens, as shown in Figure 2-2. When asked whether to install the software
automatically or install from a list or specific location, select “Install software
automatically” and click Next.
2. As shown in Figure 2-3, the next dialog box tracks the wizard as it searches for
the device. (This activity may take several seconds.) When it is done, click Next.
FIGURE 2-3:HARDWARE WIZARD
3. When the wizard finds the driver, a dialog box regarding Windows Logo testing
opens, as shown in Figure 2-4. Click Continue Anyway.
Click the MPLAB IDE icon on your computer desktop. The MPLAB IDE opens with the
Starter Kit Tutorial project loaded, as shown in Figure 2-6. If the MPLAB IDE does not
have the Starter Kit tutorial project loaded, select F
menu bar and browse to the tutorial project file:
The pane on the left of the MPLAB IDE interface displays project files, the ‘
‘.
lib’ files that are used to build an application. The project files are organized by type
into folders.
“Starter Kit Found” should be displayed in the “Output” pane of the MPLAB IDE interface. If you do not see this message, select DKit from the menu bar. If that sequence fails to find the project, check the driver
installation, as well as the connections between the hardware and the PC.
(or browse to file path you used when you installed the
Either click Debugger>Run from the menu bar of the MPLAB IDE or click the Run icon
(the turquoise triangle) on the Debug Tool Bar (Figure 2-11) to run the new program.
FIGURE 2-11:DEBUG WINDOW
2.9TUTORIAL PROGRAM OPERATION
The Starter Kit tutorial demonstrates a simple application. The program responds
according to the user input menu. The program prints the available menu choices to
the Starter Kit Output window in the MPLAB IDE. The program flow is shown in
Figure 2-12.
The tutorial program includes the Debug Print Library, which facilitates print functionality. A peripheral library header file for flashing the LEDs is also included. The header
file for print functionality is
Depending on the macro definition given in the print header file, the debug print macros
will be expanded. The print functionality in the tutorial is routed to the Output window
on the MPLAB PIC32MX tab in the interface window. In order to achieve this, the
macro definition “PIC32_STARTER_KIT” is added to the C32 compiler options.
As the program runs, the Output window (Figure 2-13) tracks the progress.
FIGURE 2-13:OUTPUT WINDOW
db_utils.h.
After printing the menu, the application displays a prompt that requests your input, see
Figure 2-14.
FIGURE 2-14:TARGET IN WINDOW
Type your choice into the Enter Information to be Returned box, and click Send.
The program responds according to the menu entry. Watch the LEDs on the Starter Kit
board. If your entry is incorrect, the LEDs will toggle once.
This chapter explains how to create a new project.
3.2HIGHLIGHTS
Items discussed in this chapter include:
• Creating a New Project
• Building the Project
• Programming the Device
• Running the Program
After completing this chapter, you should be able to accomplish the following tasks:
• Create a project using the Project Wizard
• Assemble and link the code, and set the Configuration bits
• Set up the MPLAB IDE to use the PIC32MX Starter Kit
• Program the chip, and run the program
PIC32MX STARTER KIT
USER’S GUIDE
3.3CREATING A NEW PROJECT
The first step is to create a project and a workspace in the MPLAB IDE. Typically, there
is a single project per workspace.
A project contains the files needed to build an application (i.e., source code, header
files, library, etc.), and their corresponding build options.
A workspace contains one or more projects, information on the selected device,
debug/programmer tool, and MPLAB IDE configuration settings.
MPLAB IDE contains a Project Wizard to help create a new project. It is important,
before you start the tasks, to create a folder named “MyProject” as the intended
location for the project files (
You will perform the following tasks as you create a new project:
Task 1, Select a Device on page 22.
Task 2, Select the Language Toolsuite on page 23.
Task 3, Name Your Project on page 24.
Task 4, Add Files to Your Project on page 25.
Task 5, Confirm the Configuration Settings on page 27.
Task 6, Build the Project on page 28.
Task 7, Program the Device on page 29.
Task 8, Run the Program on page 30.
C:\MyProject is assumed in the following instructions).
2.1.From the “Active Toolsuite” drop-down list, click “Microchip PIC32 C Compiler Toolsuite”. The toolsuite includes the assembler and linker that will be
used. If the PIC32 compiler option is not available, check the “show all
installed toolsuites” box.
2.2.In the “Toolsuite Contents” box, select “MPLAB C32 C Compiler
(pic32-gcc.exe
2.3.In the “Location” box, click Browse... and navigate to:
“c:\Program Files\Microchip\MPLAB C32\bin\pic32-as.exe”.
2.4.With “MPLAB 32 LINK Object Linker (pic30-ld.exe)” selected in the “Toolsuite
Contents” box, click Browse... and navigate to:
“c:\Program Files\Microchip\MPLAB C32\bin\pic32-Id.exe”.
2.5.Click Next to continue.
The Project Wizard Step Three: dialog opens, as shown in Figure 3-3.
#include <plib.h> /* PIC32 peripheral library */
int main(void)
{
int i;
/* setup LED */
mPORTDClearBits(BIT_0);/* Turn off LED0 on startup */
mPORTDSetPinsDigitalOut(BIT_0);/* Make RD0 (LED0) as output */
mPORTDClearBits(BIT_1);/* Turn off LED1 on startup */
mPORTDSetPinsDigitalOut(BIT_1);/* Make RD0 (LED1) as output */
mPORTDClearBits(BIT_2);/* Turn off LED2 on startup */
mPORTDSetPinsDigitalOut(BIT_2);/* Make RD0 (LED2) as output */
while(1) // go for ever
{
for(i=0; i<200000; i++);// put a delay
mPORTDToggleBits(BIT_0);/* turn ON LED0 */
for(i=0; i<200000; i++);// put a delay
mPORTDToggleBits(BIT_1);/* turn ON LED1 */
for(i=0; i<200000; i++);// put a delay
mPORTDToggleBits(BIT_2);/* turn ON LED2 */
};
return 0;
}
8.1.Click Debugger>Run from the menu bar of the MPLAB IDE or click the Run
icon (the turquoise triangle) on the Debug Tool Bar, as indicated in
Figure 3-11, to run the new program.
FIGURE 3-11:RUN THE PROGRAM
The Starter Kit LEDs blink to indicate that the program is running successfully.
This chapter describes the hardware features of the PIC32MX Starter Kit.
4.2HARDWARE FEATURES
PIC32MX STARTER KIT
USER’S GUIDE
The key features of the PIC32MX
order given in
Figure 1-1 on page 6 for their locations on the board.
Section 1.4 “PIC32MX Functionality and Features”
Starter Kit
are listed below. They are presented in the
. You can refer to
4.2.1Processor Support
The PIC32MX Starter Kit is designed with a permanently mounted (i.e., soldered)
PIC32MX360F512L processor.
4.2.2Power Supply
There are two ways to supply power to the PIC32MX Starter Kit:
• USB bus power connected to J1.
• An external application board with a regulated DC power supply that provides +5V
can be connected to the J2 application board connector that is provided on the
bottom side of the board.
Note:The basic PIC32MX Starter Kit does not include an application board and
is intended to be USB-bus powered.
One green LED (D3) is provided to show that the PIC32 microcontroller is powered up.
4.2.3USB Connectivity
The PIC32MX Starter Kit includes a PIC18LF4550 USB microcontroller, which provides
both USB connectivity and support for protocol translation. The PIC18LF4550 is hardwired to the PIC32MX device to provide two types of connectivity:
• I/O pins of PIC18LF4550 to ICSP™ pins of PIC32MX
• I/O pins of PIC18LF4550 to JTAG pins of PIC32MX
The PIC32MX Starter Kit currently uses the JTAG pins of the PIC32MX device for
programming and debugging. At the time of initial release, the PIC18LF4550 is loaded
with USB bootloader firmware, which permits easy upgrades of connectivity firmware
over the USB connection.
Push-button switches provide the following functionality:
• SW1: Active-low switch connected to RD6
• SW2: Active-low switch connected to RD7
• SW3: Active-low switch connected to RD13
The switches do not have any debounce circuitry and require the use of internal pullup resistors; this allows you to investigate debounce techniques. When Idle, the
switches are pulled high (+3.3V). When pressed, they are grounded.
4.2.5LEDs
The LEDs, RD0 through RD2, are connected to PORTD of the processor. The PORTD
pins are set high to light the LEDs.
4.2.6Oscillator Options
The installed microcontroller has an oscillator circuit connected to it. The main oscillator
uses an 8 MHz crystal (Y2) and functions as the controller’s primary oscillator. Use of
an external crystal is not required for PIC32 designs. Your design may use the internal
oscillator, if desired.
The PIC18LF4550, at the heart of the USB subsystem, is independently clocked and
has its own 8 MHz crystal (Y1).
4.2.7120-Pin Modular Expansion Connector
The PIC32MX Starter Kit demo board has been designed with a 120-pin modular
expansion interface, which allows the board to provide basic generic functionality now,
as well as easy extendability to new technologies as they become available.