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’s products as critical components in
life support systems is not authorized except with express
written approval by Microchip. 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, microID, MPLAB, PIC, PICmicro, PICSTART,
PRO MATE, PowerSmart, rfPIC, and SmartShunt are
registered trademarks of Microchip Technology Incorporated
in the U.S.A. and other countries.
AmpLab, FilterLab, Migratable Memory, MXDEV, MXLAB,
PICMASTER, 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, dsPICDEM,
dsPICDEM.net, dsPICworks, ECAN, ECONOMONITOR,
FanSense, FlexROM, fuzzyLAB, In-Circuit Serial
Programming, ICSP, ICEPIC, Linear Active Thermistor,
MPASM, MPLIB, MPLINK, MPSIM, PICkit, PICDEM,
PICDEM.net, PICLAB, PICtail, PowerCal, PowerInfo,
PowerMate, PowerTool, rfLAB, rfPICDEM, Select Mode,
Smart Serial, SmartTel, Total Endurance and WiperLock 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 quality system certification for
its worldwide headquarters, design and wafer fabrication facilities in
Chandler and Tempe, Arizona and Mountain View, California in
October 2003. The Company’s quality system processes and
procedures are for its PICmicro
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 on-line help files.
INTRODUCTION
®
IDE on-line help.
This chapter contains general information that will be useful to know before using the
Explorer 16 Development Board. Items discussed in this chapter include:
• Document Layout
• Conventions Used in this Guide
• Warranty Registration
• 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 Explorer 16 Development Board as a
development tool to emulate and debug firmware on a target board. The manual layout
is as follows:
• Chapter 1. “Introducing the Explorer 16 Development Board” provides a brief
overview of the Explorer 16 Development Board, its features and its uses.
• Chapter 2. “Explorer 16 Programming Tutorial” provides step-by-step instructions
for using MBLAB
• Chapter 3. “Explorer 16 Tutorial Programs” describes the demonstration
program created in Chapter 2. “Explorer 16 Programming Tutorial”.
• Chapter 4. “Explorer 16 Development Hardware” provides a more detailed
description of the Explorer 16 board’s hardware features.
• Appendix A. “Explorer 16 Development Board Schematics” provides a block
diagram and detailed schematics of the Explorer 16 board.
• Appendix B. “Updating the USB Connectivity Firmware” describes how to
upgrade the Explorer 16 board’s USB connectivity subsystem.
®
IDE to create a project and program the Explorer 16 board.
Bit values0, 1
Constants (in source code)0xFF, ‘A’
Choice of mutually exclusive
arguments; an OR selection
Represents code supplied by
user
File>Save
any valid filename
[options]
errorlevel {0|1}
var_name...]
void main (void)
{ ...
}
only
compiler...
WARRANTY REGISTRATION
Please complete the enclosed Warranty Registration Card and mail it promptly.
Sending in the Warranty Registration Card entitles users to receive new product
updates. Interim software releases are available at the Microchip web site.
This user’s guide describes how to use the Explorer 16 Development Board. Other
useful documents are listed below. The following Microchip documents are available
and recommended as supplemental reference resources.
Readme for the Explorer 16 Development Board
For the latest information on using the Explorer 16 Development Board, read the
Readme for Explorer 16 Development Board.txt file (an ASCII text file) at
the root level of the Explorer 16 CD-ROM. The Readme file contains update information
and known issues that may not be included in this user’s guide.
Readme Files
For the latest information on using other tools, read the tool-specific Readme files in
the Readmes subdirectory of the MPLAB IDE installation directory. The Readme files
contain update information and known issues that may not be included in this user’s
guide.
PIC24FJ128GA010 PS Data Sheet (DS39756) and PIC24FJ128GA Family
Data Sheet (DS39747)
Consult this document for detailed information on the PIC24F general purpose, 16-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
Note that document, DS39756, is for use only with the initial prototype samples of the
PIC24F family. These devices are all marked with a “PS” suffix at the end of the device
number. For all other PIC24FJ128GA family devices, including those with an “ES”
suffix, use DS39747.
dsPIC33F Family Data Sheet (DS70165)
Consult this document for detailed information on the dsPIC33F Digital Signal
Controllers. 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
dsPIC30F Programmer’s Reference Manual (DS70030)
This manual is a software developer’s reference for all of Microchip’s 16-bit digital
signal controllers. It describes the instruction set in detail and also provides general
information to assist in developing software for PIC24 MCUs, dsPIC30F and dsPIC33F
DSCs.
PIC24H Family Overview (DS70166)
This document provides an overview of the functionality of the new PIC24H product
family. It helps determine how the PIC24H high-performance, 16-bit microcontrollers fit
a specific product application.
This document details the use of Microchip’s MPLAB C30 C Compiler for dsPIC
devices to develop an application. MPLAB C30 is a GNU-based language tool, based
on source code from the Free Software Foundation (FSF). For more information about
the FSF, see www.fsf.org.
Other GNU language tools available from Microchip are:
• MPLAB ASM30 Assembler
• MPLAB LINK30 Linker
• MPLAB LIB30 Librarian/Archiver
MPLAB
Consult this document for more information pertaining to the installation and
implementation of the MPLAB Integrated Development Environment (IDE) software.
®
IDE Simulator, Editor User’s Guide (DS51025)
THE MICROCHIP WEB SITE
Microchip provides online support via our web site at www.microchip.com. This web
site is used as a means to make files and information easily available to customers.
Accessible by using your favorite Internet browser, 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 listing
• Business of Microchip – Product selector and ordering guides, latest Microchip
press releases, listing of seminars and events, 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 www.microchip.com, click on Customer
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 and MPLAB C30 C compilers; MPASM™
and MPLAB ASM30 assemblers; MPLINK™ and MPLAB LINK30 object linkers;
and MPLIB™ and MPLAB LIB30 object librarians.
• Emulators – The latest information on Microchip in-circuit emulators.This
includes the MPLAB ICE 2000 and MPLAB ICE 4000.
• In-Circuit Debuggers – The latest information on the Microchip in-circuit
debugger, MPLAB ICD 2.
• MPLAB
Integrated Development Environment for development systems tools. This list is
focused on the MPLAB IDE, MPLAB SIM simulator, MPLAB IDE Project Manager
and general editing and debugging features.
• Programmers – The latest information on Microchip programmers. These
include the MPLAB PM3 and PRO MATE
PICSTART
®
IDE – The latest information on Microchip MPLAB IDE, the Windows®
®
®
Plus and PICkit™ 1 development programmers.
II device programmers and the
CUSTOMER SUPPORT
Users of Microchip products can receive assistance through several channels:
• Distributor or Representative
• Local Sales Office
• Field Application Engineer (FAE)
• Technical Support
• Development Systems Information Line
Customers should contact their distributor, representative or field application engineer
(FAE) for support. Local sales offices are also available to help customers. A listing of
sales offices and locations is included in the back of this document.
Technical support is available through the web site at: http://support.microchip.com
Chapter 1. Intr od ucin g the Explorer 16 Development Board
1.1INTRODUCTION
Thank you for purchasing Microchip Technology’s Explorer 16 Development Board Kit.
The development board provides a low-cost, modular development system for
Microchip’s new line of 16-bit microcontroller families, including the PIC24, PIC24H and
the 16-bit digital signal controller family, dsPIC33F.
As provided, the development board works as a demo board right from the box, and
also has the ability to extend its functionality through modular expansion interfaces.
The Explorer 16 board supports MPLAB ICD 2 for full emulation and debug capabilities,
and also allows 3V controllers to interface with 5V peripheral devices.
1.2HIGHLIGHTS
This chapter covers the following topics:
• What’s in the Kit
• Explorer 16 Development Board Functionality and Features
• Using the Explorer 16 Out of the Box
• Explorer 16 Development Board Demonstration Programs
• Reference Documents
1.3WHAT’S IN THE KIT
The Explorer 16 Development Board Kit contains the following:
• The Explorer 16 Development Board.
• A preprogrammed PIC24FJ128GA010 Processor Installation Module (PIM),
already installed to the board
• A preprogrammed dsPIC33FJ256GP710 PIM
• An RS-232 cable
• The Explorer 16 Development CD ROM, containing:
- This User’s Guide
- Data Sheets for the PIC24FJ128GA family and dsPIC33FJ256GP family
- Schematics and PCB drawing files for the PIM modules
- Example programs for use with the PIC24 and dsPIC33F devices
- Files detailing general purpose expansion boards that can be used with the
Explorer 16 board (provided in Gerber format)
If you are missing any part of the kit, please contact your nearest Microchip sales office,
listed on the last page of this manual, for further assistance.
Note:The Explorer 16 Development Board has been designed to function prima-
rily from a permanently mounted PIC24FJ128GA010 device at position U1.
Initial units will be shipped with U1 unpopulated and a PIC24FJ PIM of
equal functionality mounted on the U1A headers instead. When using the
PIC24FJ PIM or any other PIM, it is critical to verify that switch S2 always
remains in the “PIM” position. See Section 4.2.1 “Processor Support” for
more information.
1.4EXPLORER 16 DEVELOPMENT BOARD FUNCTIONALITY AND FEATURES
A layout of the Explorer 16 Development Board is shown in Figure 1-1. The board
includes these key features, as indicated in the diagram:
1. 100-pin PIM riser, compatible with the PIM versions of all Microchip
PIC24F/24H/dsPIC33F devices
2. Direct 9 VDC power input that provides +3.3V and +5V (regulated) to the entire
board
3. Power indicator LED
4. RS-232 serial port and associated hardware
5. On-board analog thermal sensor
6. USB connectivity for communications and device programming/debugging
7. Standard 6-wire In-Circuit Debugger (ICD) connector for connections to an
MPLAB ICD 2 programmer/debugger module
8. Hardware selection of PIM or soldered on-board microcontroller
(in future versions)
9. 2-line by 16-character LCD
10. Provisioning on PCB for add on graphic LCD
11. Push button switches for device Reset and user-defined inputs
12. Potentiometer for analog input
13. Eight indicator LEDs
14. 74HCT4053 multiplexers for selectable crossover configuration on serial com-
munication lines
15. Serial EEPROM
16. Independent crystals for precision microcontroller clocking (8 MHz) and RTCC
operation (32.768 kHz)
17. Prototype area for developing custom applications
18. Socket and edge connector for PICtail™ Plus card compatibility
19. Six-pin interface for PICkit 2 Programmer
20. JTAG connector pad for optional boundary scan functionality
For additional details on these features, refer to Chapter 4. “Explorer 16 Development
Hardware”.
1.4.1Sample Devices Included with the Development Kit
Each Explorer 16 Development Board Kit contains two preprogrammed 16-bit devices:
a PIC24FJ128GA010 and a dsPIC33FJ256GP710. These are provided as 100-pin
PIMs on riser sockets, which can be quickly installed on pin header U1A and
exchanged as needed.
Note:As Microchip’s 16-bit portfolio develops, alternate devices may be included
with the Explorer 16 Development Board Kit. It is anticipated that one
device each of the PIC24 and dsPIC33F families will always be included.
Also in the future, the included PIC24 device will be soldered onto the board
and only the dsPIC33F device will be provided as a PIM.
Although intended as a development platform, the Explorer 16 board may also be used
directly from the box as a demonstration board for PIC24 and dsPIC33F devices. The
programs discussed in Chapter 3. “Explorer 16 Tutorial Programs” are
preprogrammed into the sample device PIMs (i.e., PIC24ExplDemo.hex for the
PIC24 device and dsPIC33ExplDemo.hex for the dsPIC33F device) and are ready
for immediate use.
To get started with the board:
1. For Explorer 16 boards without a permanently mounted PIC24FJ device: verify
that the PIC24FJ128GA010 PIM is correctly installed onto the board. If you want
to use the dsPIC
dsPIC33F PIM in its place. For all PIMs, be certain to align the PIM so the
notched corner marking is oriented in the upper left corner.
2. For Explorer 16 boards without a permanently mounted PIC24FJ device: verify
that switch S2 is set in the “PIM” position.
For Explorer 16 boards with a permanently mounted PIC24FJ device: verify that
switch S2 is set in the “PIC” position.
3. Verify that the jumper on JP2 is installed (to enable the LEDs).
4. Apply power to the board (9 VDC) at power input J2. For information on acceptable power sources, see Appendix A. “Explorer 16 Development Board Schematics”.
Refer to Chapter 3. “Explorer 16 Tutorial Programs” for details on the demonstration
code operation.
®
device PIM, carefully remove the PIC24 PIM and install the
1.6EXPLORER 16 DEVELOPMENT BOARD DEMONSTRATION PROGRAMS
The preprogrammed example code on the PIMs has been included on the Explorer 16
CD-ROM for future reference. All project files have been included, so that the code may
be used directly to restore a PIM to its original state (i.e., if the sample device has been
reprogrammed with another program), or so the user may use the tutorial code as a
platform for further experimentation.
In addition, the CD-ROM contains sample demonstration programs for both PIC24 and
dsPIC33F family devices. Separate demo source code (as files in C) and compiled
code files (in Hex) are provided for each family. These may be used with the included
PIC24 and dsPIC33F PIMs by reprogramming the devices using MPLAB ICD 2.
1.7REFERENCE DOCUMENTS
In addition to the documents listed in the “Recommended Reading” section, these
documents are also available from Microchip to support the use of the Explorer 16
Development Board:
You can obtain these reference documents from your nearest Microchip sales office
(listed in the back of this document) or by downloading them from the Microchip web
site (www.microchip.com).
This chapter is a self-paced tutorial to get you started using the Explorer 16 Development
Board.
2.2HIGHLIGHTS
Items discussed in this chapter include:
• Tutorial Overview
• Creating the Project
• Building the Code
• Programming the Device
2.3TUTORIAL OVERVIEW
The tutorial in this chapter demonstrates the main features of the MPLAB IDE and
MPLAB ICD 2 as they are used with the Explorer 16 Development Board. As presented, it is designed for use with the PIC24FJ128GA010 specifically. However, the
same procedures and toolsuites can also be used with PIC24H or dsPIC33F devices.
The PIC24 tutorial project demonstrated here, PIC24ExplDemo.mcp, is written in C
for MPLAB C30. The program displays PIC24 features on the alphanumeric LCD, and
also displays voltage, temperature and date/time as the various buttons are pressed.
Described with the PIC24 project is the dsPIC device tutorial,
Example1_RTC_LED_ADC.mcp. It is also written in C for MPLAB C30. The program
displays voltage and current time, updating the display on command. Both programs
are described in more detail in Chapter 3. “Explorer 16 Tutorial Programs”.
For either project, the source file (PIC24ExplDemo.c or main_rtc.c for PIC24 or
dsPIC33F, respectively) is used with a linker script file (p24fj128ga010.gld or
p33fj256gp710ps.gld) and header file (p24fj128ga010.h or
p33fj256gp710ps.h) to form a complete project. While these simple projects use a
single source code file, more complex projects might use multiple assembler and
compiler source files, as well as library files and precompiled object files.
Upon completing this tutorial, you should be able to:
• Create a project using the Project Wizard
• Assemble and link the code and set the Configuration bits
The first step is to create a project and a workspace in MPLAB IDE. Typically, there is
one project in one workspace.
Note:These instructions presume the use of MPLAB IDE 7.22 or newer.
A project contains the files needed to build an application (source code, linker script
files, etc.) along with their associations to various build tools and build options.
A workspace contains one or more projects and information on the selected device,
debug tool and/or programmer, open windows and their location and other MPLAB IDE
configuration settings.
MPLAB IDE contains a Project Wizard to help create new projects. Before starting,
create a folder named Tutorial for the project files for this tutorial (C:\Tutorial is
assumed in the instructions that follow). From the Example Code\Tutorial Code
directory on the Explorer 16 Development Kit Software CD-ROM, copy all of the source
files into this folder.
Note:The screen shots in the following sections show the PIC24 tutorial. Except for
displayed file names, the screens for the dsPIC33F tutorial will be identical.
2.4.1Select a Device
Explorer 16 Programming Tutorial
1. Start MPLAB IDE.
2. Close any workspace that might be open (
3. From the
4. From the Welcome screen, click Next > to display the Project Wizard Step One
dialog (Figure 2-1).
FIGURE 2-1:SELECTING THE DEVICE
Project
menu, select
Project Wizard.
File > Close Workspace
).
5. From the Device drop-down list, select “PIC24FJ128GA010” or
“dsPIC33FJ256GP710PS”, depending on the PIM being used. Click Next >. The
Project Wizard Step Two dialog will be displayed (see Figure 2-2).
1. From the Active Toolsuite drop-down list, select Microchip C30 Toolsuite. This
toolsuite includes the assembler and linker that will be used.
2. In the Toolsuite Contents combo box, select MPLAB C30 Compiler
(pic30-gcc.exe).
3. In the Location box, click Browse... and navigate to
C:\Program Files\Microchip\MPLAB C30\bin\pic30-as.exe.
4. With MPLAB LINK 30 Object Linker (pic30-ld.exe) selected in Toolsuite Contents, click Browse... and navigate to
C:\Program Files\Microchip\MPLAB C30\bin\pic30-Id.exe.
5. Click Next > to continue. The Project Wizard Step Three dialog displays
(Figure 2-3).
1. From the list of folders on the PC, locate the C:\Tutorial folder.
2. Select the source (.c) and header (.h) files. Click Add >> to include the file in
the project.
3. Expand the C:\Program Files\Microchip\MPLAB 30\support\gld
folder and select the p24fj128ga010.gld or p33fj256gp710ps.gld file,
as appropriate.
4. Click Add >> to include this file in the project. There should now be two files in
the project.
5. Click Next > to continue.
6. When the summary screen displays, click Finish.
After the Project Wizard completes, the MPLAB Project window shows the source files
in the Source Files folder and the appropriate linker script in the Linker Scripts folder
(Figure 2-5).
FIGURE 2-5:PROJECT WINDOW
A project and workspace has now been created in MPLAB IDE. MyProject.mcw is
the workspace file and MyProject.mcp is the project file. Double-click the
PIC24ExplDemo.c file (for PIC24) or main_rtc.c file (for dsPIC33F) in the Project
window to open the file. MPLAB IDE should now look similar to Figure 2-6.
In this project, building the code consists of compiling the source files to create an
object file, MyProject.o, then linking the object file to create the MyProject.hex
and MyProject.cof output files. (For dsPIC33F projects, the files would be
Example1_RTC_LED_ADC.o, Example1_RTC_LED_ADC.hex and
Example1_RTC_LED_ADC.cof.)The Hex file contains the data necessary to program
the device, and the .cof file contains additional information that lets you debug the
code at the source code level.
Before building, there are settings required to tell MPLAB IDE where to find the include
files and to reserve space for the extra debug code when the MPLAB ICD 2 is used.
For PIC24 projects, the following line in the system.h file is:
#include “p24fj128ga010.h”
For dsPIC33 projects, the line is:
#include “p33fj256gp710ps.h”
This line causes a standard include file to be used. Microchip provides these files with
all the Special Function Register (SFR) labels already defined for convenience.
To build the code, select
Options dialog displays (Figure 2-7).
The MPLAB ICD 2 In-Circuit Debugger is used to program and debug the
microcontroller in-circuit on the Explorer 16 Development Board.
Note:Before proceeding, make sure that the USB driver for the MPLAB ICD 2 has
been installed on the PC (see the
User’s Guide
MPLAB ICD 2).
(DS51331) for more details regarding the installation of the
2.6.1Set Up the Device Configuration
The device configuration for the target microcontroller can be set by two methods:
using configuration macros in the source code, or using the Configuration Bits window
in MPLAB IDE.
The PIC24 Explorer 16 tutorial code already includes configuration macros in the
source code itself. It is only necessary to confirm that the following macros are in place
near the top of the PIC24ExplDemo.c file:
For the dsPIC33F tutorial code, confirm that the following macros are in place near the
top of the main_rtc.c file:
_FGS(CODE_WRITE_PROT_OFF);
_FOSCSEL(FRC_PLL);
_FOSC(CSW_FSCM_OFF & OSC2_IO & XT);
_FWDT(WDT_OFF);
If configuration macros are not used in the source code, it is also possible to set device
configuration with the Configuration Bits window. For the PIC24 code, the process is as
follows:
1. From the main window’s menu bar, select
display the configuration settings (Figure 2-10).
2. Set the Configuration bits by clicking on a particular line item and selecting an
option from the drop-down menu that appears. The Configuration bits should be
set as shown in Figure 2-10.
The settings that will most likely need to change are:
a) Primary Oscillator Select: HS Oscillator Enabled
b) Oscillator Select: Primary Oscillator (XT, HS, ES)
c) Clock Switching and Monitor: SW Disabled, Mon Disabled
d) Watchdog Timer Enable: Disable
Note:Do not use the Configuration Bits window to set device configuration if
configuration macros are already used in the source code. In cases where
both methods are used, configuration macros may override settings from
the Configuration Bits window. Refer to the
User’s Guide
(DS51025) for additional information.
2.6.2Connect and Enable MPLAB ICD 2
1. Connect the MPLAB ICD 2 module to the PC with the USB cable.
2. Connect the MPLAB ICD 2 to the Explorer 16 Development Board with the short
RJ-11 cable.
3. Apply power to the Explorer 16 board.
4. From the
ICD 2 as the debug tool in MPLAB IDE.
5. From the
MPLAB IDE should report that it found the PIC24FJ128GA010 device, as shown
in Figure 2-11.
Debugger
Debugger
menu, click
menu, select
Select Tool > MPLAB ICD 2
Connect
to connect the debugger to the device.
MPLAB IDE Simulator, Editor
to set the MPLAB
Note:MPLAB IDE may need to download new firmware if this is the first time the
MPLAB ICD 2 is being used with a PIC24FJ device. Allow it to do so. If any
errors are shown, double-click the error message to get more information.
This chapter provides a high-level overview of the PIC24 and dsPIC33F firmware
programmed during the tutorial exercise in the previous chapter.
3.2PIC24 TUTORIAL PROGRAM OPERATION
The PIC24 tutorial program is made up of three components which are individually
displayed on the LCD. The program is used to demonstrate the new Parallel Master
Port (PMP) module which is used to drive the LCD, as well as the new Real-Time
Clock/Calendar module (RTCC). The program flow is shown in Figure 3-1.
3.2.1PIC24 Features
Features mode displays a continuous description of the PIC24FJ128GA010 device
feature set. To exit the display and continue to the next mode, press S4.
3.2.2Voltmeter/Temperature
BOARD USER’S GUIDE
Voltmeter/Temperature mode uses the code modules, vbanner.c and ADC.c, and
the A/D module to measure analog signals from the board and convert them for display
on the LCD. The voltage is taken from the potentiometer (R6) and displays a voltage
between 0.00V and 3.29V on line 1 of the LCD. Temperature is from a TC1074A analog
thermal sensor (U5). The temperature is displayed on line 2 of the LCD and automatically alternates between Celsius and Fahrenheit values. The voltage and
temperature are updated continuously.
This mode also lets users store the current temperature in the on-board serial
EEPROM by pressing S5. Pressing S6 switches the display between current and
stored temperature values. An ‘M’ on the right side of the LCD indicates that a stored
temperature value is being displayed.
To exit and continue to the next mode, press S4.
3.2.3Clock/Calendar
Clock/Calendar mode uses code in the modules, rtcc.c and tbanner.c. Once this
mode is entered from the main menu, a Real-Time Clock will start counting from
10:00:00, and display the date and day for Oct. 10, 2005. The new RTCC module and
a 32 kHz clock crystal are used to provide the Real-Time Clock with day/date calendar.
In Clock/Calendar mode, the user-defined push buttons do the following:
• S3 toggles the Clock Set mode, which allows the user to set the date and time.
Setup mode starts with the tens digit of the hour in the time display.
• S4 accepts the value of the current item and moves cursor to the next item.
• S5 decrements the currently selected item.
• S6 increments the currently selected item.
Pressing S3 once superimposes a flashing cursor over the tens digit of the hour in the
time display. Each press of S4 moves the cursor sequentially through the digits of the
time display, then the month, day and year. Pressing S3 at any time in the process
returns to the regular clock/calendar display.
Pressing S4 at this point exits Clock/Calendar mode and returns the device to the
PIC24 Features mode.
The data that is sent to the LCD is also sent to the RS-232 serial port using the UART.
A terminal emulator, such as HyperTerminal (installed by default on most Microsoft
Windows systems), will be able to display the same information. To do this, set the
terminal emulator for 19200 baud, 8-bit data, 1 Stop bit and no parity check.
The dsPIC33F tutorial program is made up of five simple processes which continuously
execute on the dsPIC33FJ256GP710 device:
• Real-Time Clock (RTC) using Timer1
• A/D conversion of Potentiometer (R6)
• A/D volts to Hex conversion
• Hex to Decimal conversion (for LCD display)
• LCD Update
The time of day and A/D conversion values are continually updated and displayed on
the LCD. The program demonstrates the basic code to initialize Timer1, enable the
Timer1 oscillator for RTC operation, and initialize the A/D for single channel conversion
of potentiometer, RP5. The LCD is driven via the port pins. The program flow is shown
in Figure 3-2.
In addition to the tutorial, the Explorer 16 CD also provides code examples to demonstrate higher level processing requirements, such as DMA, digital filters and Fast
Fourier Transforms (FFT). See Code Example 2 on the CD for more information.
3.3.1Voltmeter
The simple tutorial program initializes the A/D module for 12-bit mode with
auto-sampling and conversion of the potentiometer connected to pin AN5 and initializes the respective interrupt. The A/D module continually samples and converts the
potentiometer signal (0 to 3.3 VDC) on analog channel, AN5. When a conversion is
complete, an interrupt is generated and the result in the ADCBUF0 register is copied
into a temporary variable, temp1. The adc_lcd_update flag is then asserted and the
A/D Interrupt Flag, AD1IF (IFS0<13>), is cleared.
The program exits the Interrupt Service Routine and re-enters the main program loop.
The variable, adc_lcd_update
a new A/D conversion value which can be converted and displayed on the LCD.
The primary code modules associated with the operation of the ADC module and
display are:
• init_ADC.c
• isr_ADC.c
• advolts.c
• hexdec.c
,
is evaluated in the main loop to determine if there is
3.3.2Real-Time Clock
The tutorial program also supports a Real-Time Clock demo. Timer1 is initialized with
interrupts enabled and the external 32.768 kHz oscillator is enabled. Within the Timer1
Interrupt Service Routine (once every second), the variables, hours, minutes and
seconds, are updated, the flag variable, rtc_lcd_update, is asserted and the
Timer1 Interrupt Flag, T1IF (IFS0<3>), is cleared.
The program exits the Interrupt Service Routine and re-enters the main program loop.
The variable, rtc_lcd_update, is evaluated in the main loop to determine if there is
a new time of day value which can be converted and displayed on the LCD.
The primary code modules associated with the operation of the Timer1 module and
display are:
This chapter provides a more detailed description of the hardware features of the
Explorer 16 Development Board.
4.2HARDWARE FEATURES
The key features of the Explorer 16 board are listed below. They are presented in the order
given in
Figure 1-1.
4.2.1Processor Support
The Explorer 16 board has been designed to accommodate both permanently mounted
(i.e., soldered on) and detachable PIM processors. Slider switch, S2, allows the user
to choose which processor to use. This makes it possible for the Explorer 16 board to
support most 3V, 16-bit, pin compatible microcontrollers with appropriate PIMs.
PIMs are visually indexed for proper installation. The PIM is always installed with the
notched corner mark on the corner of the PIM board oriented to the upper left corner.
Current revisions of the board do not have a permanently mounted microcontroller in
U1. In order for the board to work, therefore, S2 must always be left in the “PIM” position. In future versions with a permanently mounted PIC24 device at U1, setting S2 in
the “PIC” position will enable the on-board device and disable the PIM socket.
Section 1.4 “Explorer 16 Development Board Functionality and Features”
EXPLORER 16 DEVELOPMENT
BOARD USER’S GUIDE
,
4.2.2Power Supply
There are two ways to supply power to the Explorer 16 board:
• An unregulated DC supply of 9V to 15V (preferably 9V) supplied to J12.
For default functionality, a power supply with a current capability of 250 mA is
sufficient. Since the board can serve as a modular development platform that can
connect to multiple expansion boards, voltage regulators (Q1 and Q2) with a
maximum current capability of 800 mA are used. This may require a larger power
supply of up to 1.6A. Because the regulators do not have heat sinks, long-term
operation at such loads is not recommended.
Note:The Explorer 16 kit does not include a power supply. If an external supply
is needed, use Microchip part number AC162039.
• An external, regulated DC power supply that provides both +5V and +3.3V can be
connected to the terminals provided (at the bottom left side of the board, near S3).
Note:Do not attempt to power the Explorer 16 board using the MPLAB ICD 2
module. It is not designed to be a USB bus power source.
One green LED (D1) is provided to show when the Explorer 16 board is powered up.
The power-on LED indicates the presence of +3.3V.
An RS-232 level shifter (U3) has been provided with all necessary hardware to support
RS-232 connection with hardware flow control through the DB9 connector. The port is
configured as a DCE device, and can be connected to a PC using a straight-through
cable.
The PIC24/dsPIC33F RX and TX pins are tied to the RX and TX lines of U3. The
PIC24/dsPIC33F RTS and CTS pins are tied to the RX2 (DIN2) and TX2 (DOUT2) lines
of the MAX3232 for hardware flow control.
4.2.4Temperature Sensor
An analog output thermal sensor (Microchip TC1074A, U4) is connected to one of the
controller’s A/D channels.
4.2.5USB Connectivity
The Explorer 16 board includes a PIC18LF4550 USB microcontroller, which provides
both USB connectivity and support for protocol translation. The PIC18LF4550 is
hard-wired to the PIC24/dsPIC33F devices to provide three types of connectivity:
• SPI™ of PIC18LF4550 to SPI1 of PIC24/dsPIC33F
• I/O pins of PIC18LF4550 to ICSP™ pins of PIC24/dsPIC33F
• I/O pins of PIC18LF4550 to JTAG pins of PIC24/dsPIC33F
The type of connectivity depends on the firmware installed on the PIC18LF4550. At the
time of initial release, the PIC18LF4550 is loaded with USB bootloader firmware, which
permits easy upgrades of connectivity firmware over the USB. Installing this firmware
is described in Appendix B. “Updating the USB Connectivity Firmware”.
PIC24 and dsPIC33F devices both have some 5V tolerant input pins. If a 5V tolerant
input is connected to the PIC18LF4550, protection diodes on the PIC18LF4550
device’s port pins will limit inputs to V
16-bit devices are 5V tolerant, refer to the appropriate device data sheet.
DD. For more information on which pins of the
4.2.6ICD Connector
An MPLAB ICD 2 module can be connected by way of the modular connector (JP1) for
low-cost debugging. The ICD connector utilizes port pins, RB6 and RB7 of the
microcontroller, for in-circuit debugging.
Jumper J7 decides the terminus of the ICD 2 connector. If the jumper is set to the
“PIC24” side, JP1 communicates directly with RB6/RB7 of the PIM or on-board device
(determined by S2). If the jumper is set to the “F4450” side, JP1 communicates with the
on-board PIC18LF4550 USB device.
4.2.7LCD
The Explorer 16 board includes an alphanumeric LCD display with two lines of 16 characters each. The display is driven with three control lines (RD4, RD5 and RD15) and
eight data lines (RE7:RE0). On PIC24 devices, the LCD is driven by the PMP module,
not the I/O port.
The Explorer 16 board has multiple LCD footprints and support options, although only
one footprint is ever populated at one time. The Lumex LCM-SO1062 (populated at
LCD4) is a 5V LCD with TTL input, and is used in the initial version of the Explorer 16
board. The Tianma TM162JCAWG1 (populated at LCD1) is a 3V LCD; it is anticipated
to be used in future versions of the board.
An alternate configuration option allows the use of RD3:RD0 as four of the data lines,
instead of RE7:RE4. To do this, the user must cut the trace jumpers at R60/62/64/66
and create solder bridges from the pads for R61/63/65/67 (see Figure 4-1).
FIGURE 4-1:MODIFICATIONS TO R60-R67 FOR LCD CONFIGURATION
(SCALE ENHANCED FOR VISIBILITY)
Add
Solder
Bridges
Here
Cut Traces
Here
R62
R60
R63
R61
R66
R64
R67
R65
4.2.8Graphic LCD
The Explorer 16 also has a footprint and layout support for the Optrex 128 x 64 dot-matrix
graphic LCD (part number F-51320GNB-LW-AB) and associated circuitry. This is the
same display used in Microchip’s MPLAB PM3 programmer.
4.2.9Switches
Five push button switches provide the following functions:
• S1: Active-low MCLR
• S3: Active-low switch connected to RD6 (user-defined)
• S4: Active-low switch connected to RD13 (user-defined)
• S5: Active-low switch connected to RA7 (user-defined)
• S6: Active-low switch connected to RD7 (user-defined)
Switch S1 has a debounce capacitor, whereas S3 through S6 do not; this allows the
user to investigate debounce techniques. When Idle, the switches are pulled high
(+3.3V). When pressed, they are grounded.
switch to hard reset the processor
4.2.10Analog Input (Potentiometer)
A 10 kΩ potentiometer is connected through a series resistor to AN5. It can be adjusted
from V
DD to GND to provide an analog input to one of the controller’s A/D channels.
4.2.11LEDs
Eight red LEDs (D2 through D9) are connected to PORTA of the PIM socket. The
PORTA pins are set high to light the LEDs. These LEDs may be disabled by removing
jumper JP2.
4.2.12Oscillator Options
The installed microcontroller has two separate oscillator circuits connected.The main
oscillator uses an 8 MHz crystal (Y3) and functions as the controller’s primary oscillator.
A second circuit, using a 32.768 kHz (watch type) crystal (Y2), functions as the Timer1
oscillator and serves as the source for the RTCC and secondary oscillator.
The PIC18LF4550, at the heart of the USB subsystem, is independently clocked and
has its own 20 MHz crystal (Y1).
4.2.13Serial EEPROM
A 25LC256 256K (32K x 8) serial EEPROM (U5) is included for nonvolatile firmware
storage. It is also used to demonstrate SPI bus operation.
Connector J14 provides the footprint for a 6-pin PICkit 2 programmer interface. This will
provide a third low-cost programming option, besides MPLAB ICD 2 and the JTAG
interface, when PICkit 2 support for larger devices become available in the future.
4.2.15JTAG Connector
Connector J13 provides a standard JTAG interface, allowing users to connect to and
program the controller via JTAG.
4.2.16PICtail™ Plus Card Edge Modular Expansion Connectors
The Explorer 16 board has been designed with the PICtail™ Plus modular expansion
interface, allowing the board to provide basic generic functionality and still be easily
extendable to new technologies as they become available.
PICtail Plus is based on a 120-pin connection divided into three sections of 30 pins,
30 pins and 56 pins. The two 30-pin connections have parallel functionality; for example, pins 1, 3, 5 and 7 have SPI1 functionality on the top 30-pin segment, with similar
SPI2 functionality on the corresponding pins in the middle 30-pin segment.
Each 30-pin section provides connections to all of the serial communications
peripherals, as well as many I/O ports, external interrupts and A/D channels. This provides enough signals to develop many different expansion interfaces, such as
Ethernet, Zigbee™, IrDA
used in either the top or middle 30-pin sections.
The Explorer 16 board provides footprints for two edge connectors for daughter cards,
one populated (J5, Samtec # MEC1-160-02-S-D-A) and one unpopulated (J6). The
board also has a matching male edge connection (J9), allowing it to be used as an
expansion card itself.
®
and so on. The 30-pin PICtail Plus expansion boards can be
4.2.16.1CROSSOVER CONNECTIONS FOR SPI AND UART
The PICtail Plus interface allows two Explorer 16 boards to be connected directly to
each other without any external connector. This provides 1-to-1 connection between
the microcontrollers on the two boards, an interface that works well for many types of
peripherals (I
and UARTs, require cross-wire connections; that is, the TX (or SDO) pin of one
controller must be connected to the RX (or SDI) of the other and vice versa.
The Explorer 16 board uses two 74HCT4053 analog multiplexers to simplify the connections between itself and any daughter boards. U6 and U7 provide active control of
the cross-wire capability on SPI1 and UART1, with a hardware flow control signal
provided by three I/O pins.
The multiplexers are controlled by the state of pins RB12, RB13 and RB14. When a
control pin is high (the default state), the corresponding SPI1 or UART1 pin pairs are
connected to their default pins on the PICtail Plus interface. When a control pin is
asserted low, the corresponding pin pair functions are swapped. Table 4-1 details the
relationship between the control pins and SPI1/UART1 functions on the interface.
2
C, PMP, etc.). However, certain serial peripheral modules, such as SPIs
Appendix B. Updating the USB Connectivity Firmware
B.1INTRODUCTION
The USB subsystem of the Explorer 16 Development Board is preprogrammed with
USB bootloader firmware. This provides an easy method for upgrading the
PIC18LF4550 firmware to support ICSP, JTAG and SPI connectivity to PIC24 and
dsPIC33F devices.
This chapter describes how to upgrade the PIC18LF4550 device’s firmware with the
PICkit 2 software. The same process can be used to upgrade the PIC18LF4550
device’s firmware when updates and new firmware packages become available.
B.2UPDATING THE PICkit 2 MICROCONTROLLER PROGRAMMER
Before beginning, it will be necessary to obtain and install the PICkit 2 programmer
software. Complete instructions for installing and using the programmer software
application is provided in the
(DS51553). The programmer and user’s guide, as well as the latest version of the
PICkit 2 operating system firmware, are available from the Microchip corporate
web site, www.microchip.com.
To update the USB firmware:
1. If not done already, download the latest PICkit 2 operating system software from
the Microchip web site.
2. On the Explorer 16 board, install a jumper between pins 9 and 10 of the JTAG
connector (J13).
3. Press and release MCLR
mode and makes it ready to accept new code.
4. Connect the Explorer 16 board to the PC via a standard USB cable.
5. Launch the PICkit 2 programmer software. From the menu bar, select
6. Browse to the directory where the latest operating system firmware was saved
(Figure B-2).
FIGURE B-2:SELECT PICkit™ 2 OPERATING SYSTEM
7. Select the PK2_Explorer16_*.hex file and click the Open button.
The progress of the update is displayed in the status bar of the programming software.
When the update completes successfully, the status bar displays “Operating System
Verified”. The update is now complete.
B.3OTHER USB FIRMWARE UPDATES
It is anticipated that various USB connectivity firmwares will be made available in the
future. Users are encouraged to periodically check the Microchip web site
(www.microchip.com) for new and revised code.