Microchip PICkit™ 3 In-Circuit Debugger Programmer - Review

Table of contents

RoadTest: Microchip PICkit™ 3 In-Circuit Debugger Programmer

Author: MARK2011

Creation date:

Evaluation Type: Development Boards & Tools

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?: Amateur PICKIT2 clone

What were the biggest problems encountered?: NO PROBLEM!

Detailed Review:

Introduction

 

 

 

At this point I'd like to express my gratitude to element 14 and Microchip for selecting me as the tester!

 

PICKIT3 is useful tool for many ventures related to Microchip's PIC microcontrollers.

As far I dispense with use of PICKIT3, working with the primitive home-made PICKIT2 clone, It was quite enough when programming simple, 8bit PICs

Now I'm ready to take on challenge of 16 as well as 32bit chips!

let's go now!

I hope you can forgive me the lack of classical "unpacking" paragraph. In my opinion the pickit set package is widely described and depicted in the web.

I seems to be the last roadtester publishing the report thus readers are familiar with that stage of roadtest, I supposed.

 

Pickit 3 Documentation

According to the Microchip, PICkit™ 3 is the in-Circuit Debugger/Programmer.

The PICkit 3 is a debugger system used for hardware and software development with Microchip PIC microcontrollers.

The PICkit 3 features include:
• Full-speed USB support using Windows standard drivers
• Real-time execution
• Processors running at maximum speeds
• Built-in over-voltage/short circuit monitor
• Low voltage to 5V (1.8-5V range)
• Diagnostic LEDs (power, active, status)
• Read/write program and data memory of microcontroller
• Erasing of all memory types (EEPROM, ID, configuration and program) with
verification
• Peripheral freeze at breakpoint

 

It is controlled by a PC running MPLAB X IDE software - that is the statement according to the latest Microchip papers.

Nevertheless in their archives you can find PICKIT3 standalone programmer

I didn't check the functionalities of that program - to be honest

 

Microchip warns that It should be used for development purposes only.

The PICkit 3 In-Circuit Debugger/Programmer is an integral part
of the development engineer’s tool suite (accompanied with software package).

PICKIT uses in-circuit debugging logic incorporated into each chip with flash memory.

 

The short manual in the big poster-like form is attached to the PICKIT3 set.

 

These few instructions are quite enough to start simple works with the tool

 

More details are available of course on Microchip's site:

http://www.microchip.com/Developmenttools/ProductDetails.aspx?PartNO=PG164130

http://ww1.microchip.com/downloads/en/DeviceDoc/52116A.pdf

PICKIT3 schematic diagrams:

PICkit 3 Help

Microchip provides very useful documentation, online manuals and help:

 

 

 

http://www.microchip.com/CiSAR/Home.aspx

 

 

PICkit 3 FAQs

Troubleshooting PICkit 3

 

Microchip software

MPLABX SUITE

and XC compilers

mplblgoMPLAB X Integrated Development Environment (IDE) is a software program that runs on a PC

to develop applications for Microchip microcontrollers and digital signal controllers.

It is called an Integrated Development Environment (IDE), because it provides a single integrated "environment"

to develop code for embedded microcontrollers.

compilers

 

... and many plugins ready to install and use:

MPLAB X IDE is based on the open source NetBeans IDE from Oracle.

Taking this path has allowed us to add many frequently requested features very quickly and easily,

while also providing us with a much more extensible architecture to bring you even more new features in the future.

 

 

MCC and HARMONY

http://www.microchip.com/mplab/mplab-code-configurator

MPLAB® Code Configurator (MCC) is a free, graphical programming environment that generates seamless,

easy-to-understand C code to be inserted into your project. Using an intuitive interface,

it enables and configures a rich set of peripherals and functions specific to your application.

 

MPLAB Code Configurator supports 8-bit, 16-bit and 32-bit PIC® microcontrollers.

MCC is incorporated into both the down-loadable MPLAB X IDE and the cloud based MPLAB Xpress IDE.

 

The easy access to MCC in the MPLABX is provided, one click and powerful plugin

starts to help you programming the chip.

MPLAB Xpress cloud version is fully compatible with theMCC.

 

 

MPLAB Harmony Integrated Software Framework  is a flexible, abstracted,

fully integrated firmware development platform for PIC32 microcontrollers.

MPLAB Harmony LogoIt takes key elements of modular and object oriented design,

adds in the flexibility to use a Real-Time Operating System (RTOS) or work without one,

and provides a framework of software modules that are easy to use, configurable for your specific needs, and that work together in complete harmony.

 

MPLAB Harmony includes a set of peripheral libraries, drivers and system services that are readily accessible for application development.

The code development format allows for maximum re-use and reduces time to market.

 

Microchip Developer Help

Microchip supports us giving the great help for MCC users:

http://microchip.wikidot.com/mcu1101:start

Developer Help

 

I found excellent examples of different functions available in PIC microcontrollers

 

MPLABX Online

https://mplabxpress.microchip.com/mplabcloud/ide

Without installing the huge and "heavy" MPLABX, you can program the PIC using its online version

Cloud based MPLAB Xpress IDE

 

with many many  examples from MICROCHIP and freelancers

Tests

I'm sorry for inserting above so much materials, I planned to make introduction stage as short as possible but well... I planned good it occurred as usual...

Now I hope, that use of pictures and video described my tests is better than pouring my report with words.

 

 

At the beginning I plugged the PICKIT (its cable) to computer's usb port.

The result was as follow:

 

smooth driver installation

without any problem on WIN7 (64)

I started with simple but modern 8bit PIC16

PIC16F1459

I didn't plan to build sophisticated program. I still had to remember that I was testing PICKIT only not the whole Microchip solution.

Thus I decided to use example from Microchip Developer HELP.

1459 chip is reach in many fine functions, but I decided to use only one of simplest

but on the other hand - the project was easy and quick to implement:

8-Bit Digital to Analog Convertor (for PIC16F1709 I don't remmember if any conversions were necessary)

http://microchipdeveloper.com/projects:mcu1101-project-11

MCC supports the 16F1459 chip - the programming is really pleasure!

only one block of functions need to be used:

then - setting the internal oscillator

and enabling  the output pin

results of MCC work: several files added

The compilation

 

 

Now I'm ready to use the PICKIT and program my chip

I took my old homemade ICSP board

plug the chip into the "20pin chips section"

 

 

Unfortunately I encountered problem with downloading the code. The PICKIT reported lack of communication.

And I realized that using old programming board I missed right ICSP pins of 1459 chip.

 

 

I had to change pin 18 to 15 and 19 onto 16 in my old board

moving to breadboard:

 

After starting the downloading process via MPLABX

the PICKIT reported recognition of the new PIC and reloaded the FIRMWARE:

 

The issue of supply voltage - prevention from burning the chip

SUCCESS!

 

Below you can see the results of the first TEST program

for PIC16F1459 uses simple example "Digital to Analog Convertor"

 

 

 

PIC18F45KXX

Here I want to present my attempt to prepare and use PICKIT3 DEMO DEVELOPMENT BOARD.

As this convenient tool wasn’t considered to bundled with Roadtest PICKIT3 I decided to build own clone of it.

The original 44pin Demo board looks like below:

It basis on PIC18F45KXX family (18F45K20 originally)

my demo board clone basis on PIC 18F45K50.

I decided to use example program from collection of PICKIT3 programs demo

 

*******************************************************************

// PIC18F45K20 PICkit 3 Debug Express Lesson 9 - Internal Oscillator

//

// This lesson demonstrates changing the speed of the microcontroller

// clock using the internal clock block from 250kHz to 64MHz.

//

// *******************************************************************

results below

 

 

PIC24FJ64GB002

Now I went to PICs 16bit family

 

"24FJ64_hello"

Adaptation of the project:

http://www.theengineertutor.com/tutorial-on-how-to-blink-a-led-using-mplab-x/

 

 

Testing using MPLABX simulator

 

 

 

 

PIC32MX130F256B

The last stage 32 bit chip

- no chance to run it using pickit2:

Select the right compiler:

 

Usage of MCC for PIC 32

 

 

programming the PIC32

 

 

Remarks and some issues

Vpp resistor issue

I feel confused a little when selecting Vdd-Vpp resistor

Look in the old manual:

we had "up to 10k"

Microchip forum and recommend value of pull-up resistor from the Vpp/MCLR line to Vdd

which value is correct at the end???

I see different advices

and finally, according to my poster the recommended value is raised to 50k:

http://www.microchip.com/forums/m1030385.aspx

 

I hope I found the answer here:

The reason for the 50k is that some parts have the capability of getting into programming mode via Vpp first.

This is on parts where you can have MCLR as an input.

But with a 10k resistor, and applying 12v to Vpp then through the 10k Vdd gets pulled up

and the part cannot be fully reset (by driving Vdd to gnd) so the 50k allows those parts to work correctly.

So 50k then became the default.  For most applications 10k will not be an issue

 

Other remarks:

The manual

as well as the short info in the "poster" warns form possible designing mistakes

 

Microchip PICkit 3 - powering issue.

 

lack of the PIC chip or error in ICPS / supply wiring

 

Watch out for Low Voltage programming (LVP)

 

There is the discussion about the advantages/ disadvantages of using the LVP option.

LVP seems to be safer solution (especially for new PISs) unfortunately sometimes it cause programming issues and even locking up the device.

ICSP

The PICkit 3 is used for hardware based on In-Circuit Serial Programming (ICSP).

ICSP is the ability of  microcontrollers (as well as PLD  and other embedded devices) to be programmed while installed in a complete system,

than requiring the chip to be programmed prior to installing it into the system.

It is useful method, simple, easy and safe - depending on programist care.

Besides programming skills, the PIC programmers must remember of several electronic principles related to connection of PICKIT with the programmed chip

The rules are provided by Microchip of course:

 

above schematic is available also on the mentioned above PICKIT3 poster.

 

The considerations regarding ICSP issues are included in the following manual:

In-Circuit Serial Programming™ (ICSP™) Considerations - Developer Help

ICSP problem - lack of uniformity

I know that my doubts concerning ICSP pins philosophy doesn't concern PICKIT3 directly

but I need to complain a little on the variety of connections. Generally speaking each PIC

controller family has different pins designated as ICSP

I decided to collect some examples of different schematic ot ICSP in PIC's chips families

here is my old instruction,

 

I was sure it's good enough until I started to deal with new PICs

Differences of ICSP pins used in my tests:

ICSP in PIC16F1459

 

and everything clear here:

ICSP in PIC18F45XXXX 40 pin families

 

ICSP PIC24FJ64GB002  and PIC32MX130F256B  (DIP 28pin):

 

 

Pickit2 - attempt to make basic comparison PK2 vs 3

 

Official comparison of programmers according to Microchip's PICKIT3 documentation:

documentation of the pickit2:

http://ww1.microchip.com/downloads/en/DeviceDoc/51553E.pdf

I must confirm that the PICKIT2 software user interface is quite handy

Simple, but good enough to deal with most of PIC chips I've programmed.

Supply Vdd:

Programming phase with the simple PICKIT2 programmer software seems to me simpler

and maybe easier than using complete MPLAX

I'm not sure if PICKIT3 has the function of Vdd detection with automatic

 

Hardware tests in PICKIT2

The rally convenient function if you have some doubts regarding PICKIT2 hardware

and worry about voltage levels.

 

Additional FUNCTIONS of PICKIT2

PICkit™ 2 UART TOOL WINDOW ASCII MODE

 

 

this one is not available in PICKIT3

My pickit2 clone

Here is place to show simplified version of PICKIT I made.

I used it for simple 8 bit PICs programming without any problem


 

Let's re-program my old PICKIT2 using the new PICKIT3

PICKIT3 re-produced its old brother clone without any problem!

 

Conclusions

My experiments and tests show, how powerful and interesting is PICKIT3.

It’s impossible to make assessment of it without considering of accompanied software.

Coupled together PICKIT3 and MPLBX make  powerful designing/ programming/ debugging tool.

The work with PICKIT is really pleasure indeed!

pros

Ability to program full range of Microchip uC families.

Support of outstanding software :MPLABX with MCC and Harmony plug-ins

free compilers for full range of above chips

Project examples for beginners

Microchip's sites full of documentation, FAQ and help

Good support on Microchip forum

cons

I must honestly declare, that I didn't find any serious issues regarding PICKIT3.

I think lack of some functionality in comparison with its old (still good) brother isn't significant.

We need to remember it is still amateur- developers equipment not production device.

 

 

Bibliography

Microchip papers                    Microchip Technology Inc.     Microchip Technology Inc.

Wikipedia                                                                         http://wikipedia.org

 

 

Thank you again for selecting me as the roadtester and give me the opportunity to deal with that useful and convenient tool.

Marek

Anonymous