Release Notes for PICkit™ 3 Programmer/Debugger
MPLAB® IDE v8.30
PICkit 3 DLL v1.00.00.29
PICkit 3 Suite (OS, FW) v1.22
March 24, 2009
Table of Contents
5 Repairs and Enhancements Made in v8.30
9 Number of Hardware Breakpoints Per Device
Click the link below to see device support for “PICkit 3 Debugging” (PK3D) and “PICkit 3 Programming” (PK3P).
For device family feature support, see the debugger on-line help file, “Device and Feature Support”.
The following devices use a Programming Executive to improve programming speed:
|
dsPIC33FJ128GP202 |
|
dsPIC33FJ128GP204 |
|
dsPIC33FJ128GP802 |
|
dsPIC33FJ128GP804 |
|
dsPIC33FJ128MC202 |
|
dsPIC33FJ128MC204 |
|
dsPIC33FJ128MC802 |
|
dsPIC33FJ128MC804 |
|
dsPIC33FJ64GP202 |
|
dsPIC33FJ64GP204 |
|
dsPIC33FJ64GP802 |
|
dsPIC33FJ64GP804 |
|
dsPIC33FJ64MC202 |
|
dsPIC33FJ64MC204 |
|
dsPIC33FJ64MC802 |
|
dsPIC33FJ64MC804 |
|
dsPIC33FJ32GP302 |
|
dsPIC33FJ32GP304 |
|
dsPIC33FJ32MC302 |
|
dsPIC33FJ32MC304 |
|
PIC24HJ128GP202 |
|
PIC24HJ128GP204 |
|
PIC24HJ128GP502 |
|
PIC24HJ128GP504 |
|
PIC24HJ32GP302 |
|
PIC24HJ32GP304 |
|
PIC24HJ64GP202 |
|
PIC24HJ64GP204 |
|
PIC24HJ64GP502 |
|
PIC24HJ64GP504 |
|
dspic33fj06gs101 |
|
dspic33fj06gs102 |
|
dspic33fj06gs202 |
|
dspic33fj16gs402 |
|
dspic33fj16gs404 |
|
dspic33fj16gs502 |
|
dspic33fj16gs504 |
For low pin-count devices (8 to 28 pins), a Header board is usually required. See the Header Board Specification (DS51292) or Header help file (hlpHeader.chm) for a list of available headers by device.
For high pin-count devices (40 to 100 pins), a Header board may be available, but is not required. See the Header Board Specification (DS51292) or Header help file (hlpHeader.chm) for a list of available headers by device.
This tool has been tested using the following operating systems:
Windows 2000*, Windows XP SP2, and Windows Vista™ OSs
NOTE: Windows NT® and Windows 98/ME OSs are NOT supported.
* Some communication bandwidth issues may occur if this operating system is used. Resolution of these issues is in progress. If the bandwidth issue happens the operating system shows a dialog specifying that the USB HID controller does not have enough bandwidth. If this dialog does appear, the communications with PICkit 3 will not work until the PC is restarted.
The following documents may be found on our website or MPLAB IDE CD-ROM:
· PICkit 3 Programmer/Debugger User's Guide (DS51795)
· Header Board Specification (DS51292)
· Transition Socket Specification (DS51194)
On-line help (Help>Topics) is also available for this tool:
· Debuggers>PICkit 3
The default location of the Help file is:
· C:\Program Files\Microchip\MPLAB IDE\PICkit3\hlpPICkit3.chm
New device support.
Added complete programming and debugging support for PIC32MX devices.
The PICkit 3 programmer/debugger is a simple, low-cost in-circuit debugger that is controlled by a PC running MPLAB IDE (v8.20 or greater) software on a Windows platform. The PICkit 3 programmer/debugger is a debugger system used for hardware and software development of Microchip PIC® microcontrollers (MCUs) and dsPIC® Digital Signal Controllers (DSCs) that are based on In-Circuit Serial Programming™ (ICSP™) and Enhanced In-Circuit Serial Programming 2-wire serial interfaces. In addition to debugger functions, the PICkit 3 programmer/debugger system also may be used as a development programmer.
The debugger system executes code like an actual device because it uses a device with built-in emulation circuitry, instead of a special debugger chip, for emulation. All available features of a given device are accessible interactively, and can be set and modified by the MPLAB IDE interface.
The PICkit 3 debugger was developed for emulating embedded processors with debug facilities. The PICkit 3 features include:
· Full-speed USB support using Windows standard drivers
· Real-time execution
· Processors run 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
· Erase of all memory types (EEPROM, ID, configuration and program) with verification
· Peripheral freeze at breakpoint
Note: The PICkit 3 is intended for development programming. For production programming, please consider the MPLAB PM3 device programmer or other third party programmers designed for a production environment.
Peripherals not starting after a halt – A firmware issue was found where certain peripherals were not restarting after a halt had occurred during a debug session. This affected 16-bit devices (PIC24 MCUs/dsPIC DSCs).
Intermittent programming for PIC24FGA/GB devices – A firmware issue was corrected where some members of the PIC24FGA/GB families were reporting programming failures.
The following is a list of known problems. For information on common problems, error messages and limitations, please see Troubleshooting in the online help file for the PICkit 3 (hlpPICkit3.chm). Bolded prefix represents internal tracking numbers.
· Freeze Peripherals for PIC16F devices are not supported at this time.
· Watch window – It will take 1 cycle for the watch window to update properly for PORTx registers. Use an instruction that reads the port such as ‘MOVFF PORTx, PORTx_copy’ before the breakpoint is reached. This affects the following devices:
|
PIC18F4620 |
PIC18F84J90 |
PIC18F65J11 |
|
PIC18F63J90 |
PIC18F84J95 |
PIC18F83J11 |
|
PIC18F64J90 |
PIC18F85J90 |
PIC18F84J11 |
|
PIC18F64J95 |
PIC18F63J11 |
PIC18F84J16 |
|
PIC18F65J95 |
PIC18F64J11 |
PIC18F85J11 |
|
PIC18F83J90 |
PIC18F64J16 |
PIC18F8722 |
· For the PIC18F14K22 family, MPLAB IDE debug/programming tools will not work below 1.9v. The work-around is to run the device above 1.9v.
SSR 29399: PIC24F devices can start to run after programming but before verification. This can result in a verification failure if the code performs self-write to either program memory or Data EE.
ICD2-81: For PIC24F devices during a programming/verify operation (or subsequent verification operation) of user code that performs self-writes and/or self-erases to program space, a verify sequence may fail if the code execution occurs within the first execution cycles following reset.
Workaround:
Place a delay in your code before the code section that performs the self-write and/or self-erase. The specific delay value may need to be adjusted, but 100 ms would be a conservative value to start out with. Here is a C language example that illustrates the workaround:
int main (void)
{
// Place 100 ms delay here before any self-write/self-erase code
: : :
}
PK3-27: Using PICkit 3 with a PIC24HJ256GP610, if the osc setting is not correct and the user selects run, the error received is PK3Err0019: Failed while reading emulation registers.
PK3-627: MPLAB IDE crashes when PICkit3 is selected as programmer with PIC16F54.
1.
RB0 and RB1 pins:
If the PICkit 3 is selected as a debugger, it initializes all the A/D input
pins - AN0 (RB0) through AN15 (RB15) pins - as "digital" pins, by setting
all 16 bits in the ADPCFG register.
For example, if EMUD3 and EMUC3 are used as the debug pins on a dsPIC30F2010 device, then bits 0 and 1 of the ADPCFG register must remain set at all times. Similarly, if EMUD and EMUC are used as the debug pins on a dsPIC30F5011 device, then bits 6 and 7 of the ADPCFG register must remain set at all times. In such cases, you must also take proper precaution to isolate the application circuitry from the corresponding A/D pins during debugging.
For example, if AN4 and AN5 are required as analog input pins, then bits 4 and 5 of the ADPCFG register must be cleared.
2.
SLEEP, IDLE, WDT, Clock Switching:
For dsPIC devices, debug operations can be executed on programs which use SLEEP
or IDLE mode, Watchdog Timer, and/or Clock Switching.
3.
Debug during SLEEP or IDLE Mode:
When the device is in SLEEP and IDLE mode and a Halt command is issued, the
PICkit 3 debugger will wake up the device and halt execution on the instruction
immediately following the PWRSAV instruction.
4. Interrupts:
5.
Break Point Behavior:
If a break point is set on an instruction that follows a taken branch, the
Breakpoint will be triggered even though the branch went elsewhere.
6.
Break Point Behavior and Skidding:
It is possible that a breakpoint halt will exhibit program memory skidding in
that the execution stops N instructions after reaching the breakpoint. The
following definitions are provided and referred to:
· One skid - A breakpoint occurs AFTER the instructions is executed (PC+2)
· Two skid - A break point occurs AFTER the NEXT instruction (PC+4)
Break Point Behavior:
· If a Non-Program-Flow, modifying, Single-Word, Two-Cycle instruction (such as Table or PSV) precedes a break point instruction, then the breakpoint occurs BEFORE the instruction at the breakpoint address is executed (ONE SKID).
· All other instructions have a "TWO SKID", which means the break occurs AFTER the NEXT instruction is executed.
7. The CAN module, unlike the other peripherals, does not get frozen in the following situations:
· during a Halt
· during a stop on a Breakpoint
· after a Single-Step
For example, if you set a Breakpoint and run to it, the CAN module continues to run in the background, and it may seem that data transmissions and receptions have completed immediately.
8.
DISICNT register:
In five dsPIC30F devices (dsPIC30F6010, dsPIC30F6011, dsPIC30F6012,
dsPIC30F6013 and dsPIC30F6014), since the DISICNT register continues to
decrement even when the device is halted by the debugger, the DISICNT value
will always be seen as 0x0000 in the Watch, SFR and File Registers windows. To
monitor the DISICNT value, add code to copy the DISICNT register contents to a
W register or memory location and monitor the value of the corresponding W
register or memory location in the Watch, SFR or File Registers window.
9.
ADCMD bit in PMD1 register:
The user application must not set the ADCMD bit (bit 0 of PMD1 register). This
would lead to incorrect ICE operation.
10.
SPLIM register:
When using the PICkit 3 as a Debugger, your software must initialize the Stack
Pointer Limit register (SPLIM) before using the stack (device errata).
11.
Single-stepping a DO loop:
In five dsPIC30F devices (dsPIC30F6010, dsPIC30F6011, dsPIC30F6012,
dsPIC30F6013 and dsPIC30F6014), single-stepping through a DO loop in dsPIC30F
assembly code results in the loop getting executed one less time than expected.
12.
Pass Counter feature in Advanced Breakpoints:
For a specified Pass count of 'N', the code will break after 'N+1' occurrences
of the breakpoint instead of 'N' occurrences.
13. If you need to use the Fail-Safe Clock Monitor feature on a dsPIC device when using the PICkit 3 for debugging your application, a Watchdog Timer Device Reset will occur, even if the Watchdog Timer has not been explicitly enabled in the application. To work around this issue, use the "CLRWDT" instruction in the main loop of your application code. This will ensure that the Watchdog Timer gets cleared before it causes the device to reset.
Not supported at this time.
Due to the built-in in-circuit debugging capability of ICE devices, and the ICSP function offered by the debugger, the PICkit 3 programmer/debugger uses on-chip resources when debugging, i.e., some device resources are reserved for use by the debugger.
Refer to the on-line help for the most up-to-date list of resources used by the debugger.
To see the number of breakpoints supported for your device and the number of breakpoints used in your project, use the Device Debug Resource toolbar. For more on this toolbar, see MPLAB IDE on-line help.