Release Notes for PICkit™ 3
Development (Nonproduction) Programmer &
Debug Express
MPLAB® IDE v8.80
DLL and Firmware versions:
MPPICkit3.dll | v1.0.1.61 | |
PICkit 3 Suite (OS, FW) | v1.26.81 | (PK3FW_012681.jam) |
October 17, 2011
Table of Contents
5 Repairs and Enhancements Made in v8.80
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”.
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:
32-Bit: Windows® 2000* SP4, Windows XP SP2, Windows Vista™ and Windows 7 OSs
64-Bit: Windows XP 64, Windows Vista 64, Windows 7 64 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
None.
None.
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.
PK3-90: |
The power on/off button will always start in on state when opening the workspace. |
PK3-91: |
MPLAB automatically applies power when switching between PICkit 3 and MPLAB ICD 3, if power from PICkit 3 was selected at the time of the switch. |
PK3-104: |
Preserve EEPROM option will not be available for devices with greater than 8k of EEPROM memory. |
PK3-116: |
Upper unimplemented bits in the configuration word are being programmed to a '0' for the PIC24FJ64GA004 family devices. |
PK3-130: |
Cannot debug a PIC16F721 device using PICkit 3 as debugger in EC OSC mode at 16MHz. |
PK3-173: |
PICkit 3 take a long time to connect to the target. |
PK3-237: |
PICkit 3 as a debugger fails to debug the AC244026, AC244027 header. |
PK3-245: |
If a PICkit 3 is not connected, selecting "reconnect" will incorrectly indicate in the output window that a PICkit 3 was detected. |
PK3-254: |
PICkit 3 stand-alone GUI does not scale correctly if the user has "increased font size" settings in Windows. |
PK3-282: |
Program memory breakpoints ignoring the passcount field for the AC244043 header. |
ICD3-286: |
When powering the target using the MPLAB ICD 3 (and PICkit 3), power is applied to the part before the voltage warning message pops up. |
SPI001-113: |
SPI misses SDI input when single-stepping with freeze in debug enabled. |
· On PIC16F88X devices it is necessary to pull the RB3/PGM pin low for ICSP programming. This is due to a silicon issue.
· If you cannot enter debug mode with one of the devices listed below, set the PWRTE (Power-Up Timer Enable bit) to DISABLED.
PIC16F1937 / PIC16LF1937
PIC16F1936 / PIC16LF1936
PIC16F1934 / PIC16LF1934
· For the following Processor Extension Pak products:
AC244026 - PIC16F727-ICE Processor Extension Pak
AC244027 - PIC16LF727-ICE Processor Extension Pak
Physically isolate the Processor Extension Pak’s target /MCLR signal from any connection(s) to the board being debugged. (For example, if a simple pull-up resistor reset circuit is connected between /MCLR and Vdd, completely isolate it by removing the pull-up resistor.)
ICD2-109(Modified): PIC16F648A Family: If AC162049 is being used, remove the R1 pull-up resistor. Some devices require that a .1uF bypass capacitor be placed from the Vdd pin to the Vss pin of the device to successfully program the device. If programming failures still arise, try increasing this value incrementally to a maximum of 10uF.
ICD3-179: Headers AC162059, AC162070, and AC162096: You cannot simply switch between MPLAB ICD 2 and another debug tool when using these headers. For a workaround, see the PICkit 3 on-line help file, Limitations section, for the PIC16F505/506/526 device families.
ICD3-290: Freeze on halt is not working for the PIC16F1937 devices.
The 'Timer 0' (TMR0) peripheral does not freeze in debug halt mode for the following production silicon enhanced midrange parts:
Device |
Workaround |
PIC12F1822 |
Note 1 |
PIC16F1823 |
Note 1 |
PIC16F1824 |
Note 1 |
PIC16F1826 |
Note 1 |
PIC16F1827 |
Note 1 |
PIC16F1828 |
Note 1 |
PIC16F1933 |
Note 3 |
PIC16F1934 |
Note 3 |
PIC16F1936 |
Note 3 |
PIC16F1937 |
Note 3 |
PIC12F1840 |
Note 1 |
PIC12LF1840T48A |
TBD |
Note 1: Emulate using AC244043: PIC16F1829-ICE
Processor Extension Pak |
PK3-255: PICkit 3 halts with errors for the PIC12F1822 devices using highest frequency oscillator and lowest voltage combination.
PK3-260: PICkit 3 fails to communicate with the PIC16F616 device when powering the device from PICkit 3.
PK3-280: PICkit 3 standalone GUI does not detect a PIC16F1933 device.
RI-454: The PIC16F72X family of devices may not get into a debug mode on the PICkit 3 at minimum Vdd operating voltage.
At 1.8V, 20MHz, the REAL ICE, ICD 3, PICkit 3 will have issues getting into debug mode.
SSR 26344: Below 4.5 V, PICkit will not overprogram User ID's on these devices:
PIC12F635 |
PIC16F684 |
PIC16F689 |
PIC16F914 |
PIC12F683 |
PIC16F685 |
PIC16F690 |
PIC16F916 |
PIC16F636 |
PIC16F687 |
PIC16F785 |
PIC16F917 |
PIC16F639 |
PIC16F688 |
PIC16F913 |
PIC16F946 |
PK3-234: On reset, Vpp drops to 5V for 3.6 ms, then drops to ground for the PIC18F25K22 family of devices.
PK3-279: PICkit 3 erases the configuration bits even when the 'Erase all before programming' option is unchecked under programmer settings for the 18F1627 device family.
RI-400: If you are not able to enter debug mode when power-up timer is enabled for the following devices, please disable power-up timer during the debugging session. (If the final application firmware requires power-up timer enabled, please enable it after the debugging session is complete and program the part with the final application firmware.)
PIC18F4620/4610/2620/2610
PIC18F4680/2680/4681/2681
PIC18F4520/4420/2520/2420
PIC18F4550/2550/4455/2455
PIC18F8490/8410/6490/6410/8390/8310/6390/6310
PIC18F8722/8627/8622/8527/6722/6627/6622/6527
PIC18F2525/4525
PIC18F87K90/PIC18F86K90/PIC18F85K90/PIC18F67K90/PIC18F66K90/PIC18F65K90
PIC18F87K22/PIC18F86K22/PIC18F85K22/PIC18F67K22/PIC18F66K22/PIC18F65K22
· 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.
· PIC18F2520 MCUs: Table Read Protect (EBTRx) will not work unless Code Protect (CPx) is enabled. Also, once Table Read Protect is enabled, you cannot perform a Verify on the protected block.
· For PIC18F8720, MEMCON cannot be read if in a microcontroller mode. This is a silicon issue.
· PIC18F45K20/46K20 MCU family: There is a silicon issue that prevents some device revisions from being programmed with "power from programmer". The workaround is to use "power from target" OR increase the capacitance across VDD, VSS (for example to 47uF.)
RI-465: PICkit 3 is unable to get the Device IDs for certain PIC18FJ devices. The tool incorrectly reads the Device ID as “00000000”. This issue happens intermittently.
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-78: PICkit 3 cannot program a PIC24F16KA102 device at 2.0 v using PICkit 3 as debugger.
PK3-116: Upper unimplemented bits in the configuration word are being programmed to a '0'. [PIC24FJ64GA004 device].
PK3-251: MPLAB loads 0's in the EE memory when the PreserveEE options is checked for the PIC24FXXKV3xx family of devices.
RI-412: PIC24FJ256DA210 Family: Data Memory not functional unless 96 MHz PLL is enabled. This is a silicon issue that is being worked on.
PICkit 3 does not support preserve EEPROM memory during programming.
PK3-115: |
PICkit 3 is unable to erase the debug executive programmed by MPLAB ICD 2. The symptom of this problem is “Failed to program debug”. The workaround is to erase the device using MPLAB ICD 2. Power cycle the device and then program with PICkit 3. |
PK3-171: PICkit 3 will fail programming on a dsPIC33FJ256GP710 if a very specific address range is used.
PK3-216: For the dsPIC33 devices blank check fails for configuration memory.
· Checksum only takes into account Auxiliary memory and the reset vector.
· Stopwatches don’t work on PICkit 3.
· The breakpoint dialog doesn’t accept Auxiliary memory addresses. The only way to set breakpoints in Auxiliary memory is via double clicking.
· If there is a Software breakpoint on a function that is in Auxiliary memory, single stepping over that breakpoint will not work properly.
· Verifying Auxiliary memory sometimes will proceed even when verifying Program Memory has failed.
· When programming in Debugger mode, a message may come up that protection bits need to be turned off even though they show as being turned off in the Configuration Bits window.
PK3-271: MPLAB is unable to set the PICkit3-on-the-go mode for the dsPIC33EP256MU810 device.
TBAA0-199: When reading a device with a programmer, code or write protection applied to either the General or Auxiliary Segment is being applied to both; therefore all flash memory will read back as zero. Only devices with no code or write protection applied can be successfully read using a programmer. This limitation applies to revision B1 (0x4002) of the following devices:
PIC24EP512GU814
PIC24EP512GU810
PIC24EP256GU814
PIC24EP256GU810
dsPIC33EP512MU814
dsPIC33EP512MU810
dsPIC33EP256MU814
dsPIC33EP256MU810
dsPIC33EP256MU806
PIC24EP512GP806
dsPIC33EP512GP806
dsPIC33EP512MC806
PK3-101: |
PK3 programming-to-go does not support the PIC32MX devices at this time. |
PK3-172 |
*Full Range* button under programming options for PICkit 3 is not functional for the PIC32MX devices. |
PK3-179: |
Preserve program memory is non-functional for PK3 for certain PIC32MX devices. |
PK3-270: |
PICkit 3 stand-alone GUI with PICkit3-on-the-go does not program the boot Flash memory for the PIC32MX7xx family of devices. |
PK3-278: |
Only the first break point functions correctly for the PIC24EP64GP204 devices. |
PK3-208: In the PICkit 3 Programmer Application (standalone GUI), when providing power through the board, the "Target Power" area checkbox cannot be cleared (found with PIC24HJ32GP202 device).
PK3-209: The output window isn't long enough to display the entire contents of messages.
PK3-214: When editing Program Memory areas, the text edit cursor allows data entry beyond the memory size in the PIC16F1823 device.
PK3-258: In the PICkit 3 Programmer Application (standalone GUI), selecting different memory regions does not always ensure safe/restore functionality for the PIC16F18xx family.
For the following Processor Extension Pak products:
AC244026 PIC16F727-ICE Processor Extension Pak
AC244027 PIC16LF727-ICE Processor Extension Pak
Full debugging support is not available for the PICkit 3 at this time when using the above Processor Extension Paks. Full PICkit 3 support is planned for a future MPLAB release.
Workaround: use either the MPLAB ICD 3 or MPLAB REAL ICE tool if debugging support is needed for these products.
The following ETNs are related to the PICkit 3 in-circuit debugger. Please see the product webpage for details.
· ETN-32: Applies to Assembly #10-00424-R4 or below.
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.
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.