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:
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.
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:
Microchip provides very useful documentation, online manuals and help:
http://www.microchip.com/CiSAR/Home.aspx
and XC compilers
MPLAB 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.
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.
It 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 supports us giving the great help for MCC users:
http://microchip.wikidot.com/mcu1101:start
I found excellent examples of different functions available in PIC microcontrollers
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
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
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"
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
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
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
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
The manual
as well as the short info in the "poster" warns form possible designing mistakes
lack of the PIC chip or error in ICPS / supply wiring
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.
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):
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
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!
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!
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
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.
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
Top Comments
Nice road test! Very well documented.
Thank you, honestly, It was a pleasure to conduct that roadtest