MPLAB ICD 3 Release Notes

Release Notes for MPLAB® ICD 3
In-Circuit Debugger & Device (Production) Programmer

MPLAB® IDE v8.92

DLL and Firmware versions:

MPICD3.dll | v1.0.3.78 |
MPLAB ICD 3 Suite (OS, FW) | v1.28.90 | (ICD3FW_012890.jam)

July 8, 2013

Table of Contents

1 Device Support

2 Operating System Support

3 Reference Documents

4 What's New in v8.92

5 Repairs and Enhancements Made in v8.92

6 USB Port Setup

7 Powering the Debugger and Target Board

8 Setting Up the Debugger and Target Board

9 Device Programming Considerations

10 Known Problems

11 Important Notes

12 Reserved Resources

13 Number of Hardware Breakpoints per Device

# 1 Device Support

Click the link below to see device support for “ICD 3 Debugging” (IC3D) and “ICD 3 Programming” (IC3P).

· Device Support List

## 1.1 Programming Considerations

See "Device Programming Considerations" for special device programming :

PIC24F/H | dsPIC33F

## 1.2 Debugging Considerations

For low pin-count devices (8 to 28 pinsa Processor Extension Pak or Header is usually required. See the Processor Extension Pak and Header 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 Processor Extension Pak or Header may be available, but is not required. See the Processor Extension Pak and Header Specification (DS51292) or Header help file (hlpHeader.chm) for a list of available headers by device.

# 2 Operating System Support

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 and Windows 7 64 OSs

NOTE: Windows NT® and Windows 98/ME OSs are NOT supported.

# 3 Reference Documents

The following documents may be found on our website or MPLAB IDE CD-ROM:

· MPLAB ICD 3 In-Circuit Debugger User's Guide (DS51766)

· Multi-Tool Design Advisory (DS51764)

· Using MPLAB ICD 3 In-Circuit Debugger poster (DS51765)

· Header Specification (DS51292)

· Transition Socket Specification (DS51194)

On-line help (Help>Topics) is also available for this tool:

· Debuggers>MPLAB ICD 3

The default location of the Help file is:

· C:\Program Files\Microchip\MPLAB IDE\ICD 3\hlpMPLABICD3.chm

# 4 What's New in v8.92

None.

# 5 Repairs and Enhancements Made in v8.92

None.

# 6 USB Port Setup

Installation and setup instructions are dependent on your operating system. Open the appropriate file for your OS in a web browser and follow the instructions to install the driver(s).

Notes:

- USB 2.0 is recommended for use with these drivers. USB 1.1 may be used but may result in reduced performance.
- If you change debugger units or PC USB ports, you will need to reinstall the drivers.
- If you use a USB hub, it needs to be powered.

Win 2000/Win XP/Win Vista/Win 7

Find detailed instructions at:
C:\Program Files\Microchip\MPLAB IDE\ICD3\Drivers\ddicd3.htm

Basic instructions are as follows:

1. Install MPLAB IDE v8.40 or higher.
2. Insert a communication board (standard or high-speed) into the MPLAB ICD 3 pod.
3. Connect the MPLAB ICD 3 pod to a PC USB port using a USB cable.
4. Follow the “Found New Hardware Wizard” to install the drivers (software):

a. automatically for Win 2000/XP.

b. manually for Win Vista and Win 7. The drivers are located in:
C:\Program Files\Microchip\MPLAB IDE\ICD3\Drivers

Win XP 64/Win Vista 64/Win 7 64

Find detailed instructions for Win XP 64 at:
C:\Program Files (x86)\Microchip\MPLAB IDE\Drivers64\XP64\ddxp64.htm

For Win Vista 64:
C:\Program Files (x86)\Microchip\MPLAB IDE\Drivers64\Vista64\
ddvista64.htm

For Win 7 64:
C:\Program Files (x86)\Microchip\MPLAB IDE\Drivers64\Win7_64\
ddwin764.htm

Basic instructions are as follows:

1. Install MPLAB IDE v 8.14 or higher (for Win XP/Vista 64) or v8.43 or higher (for Win 7 64).

2. Insert a communication board (standard or high-speed) into the MPLAB ICD 3 pod.
3. Connect the MPLAB ICD 3 pod to a PC USB port using a USB cable.

4. Follow the “Found New Hardware Wizard” to install the drivers (software) manually.
C:\Program Files (x86)\Microchip\MPLAB IDE\Drivers64

# 7 Powering the Debugger and Target Board

The MPLAB ICD 3 debugger is powered through its USB connection to the PC.

The target board is powered from its own supply. With some devices, the debugger can provide power to the target board, but is limited to a voltage range of 3-5v and current of 100 mA.

# 8 Setting Up the Debugger and Target Board

1. Install the USB drivers on your PC, as discussed above (USB Port Setup). When this is complete, MPLAB ICD 3 debugger should be plugged into a USB port of the PC.

2. If you have not already done so, connect to a target, either directly or through a header board. See on-line help or the user’s guide for ways to connect the debugger to a target board.

3. Power the target.

4. Start MPLAB IDE.

5. In MPLAB IDE, select either Debugger>Select Tool>MPLAB ICD 3 or Programmer>Select Programmer> MPLAB ICD. The debugger will automatically connect. Also, the debugger can automatically detect if it has been disconnected/reconnected and if the target has been disconnected/reconnected.

6. The debugger will now be ready for use.

# 9 Device Programming Considerations

For CodeGuard™ Security Devices

Several 16-bit devices allow customers to define up to 3 programming segments: Boot, Secure and General. The purpose is to allow a customer to place proprietary data (libraries, IP address, etc.) into a protected boot or secure segment. That customer may then transfer these preprogrammed devices to another customer who would use the unprotected general segments.

For more details on CodeGuard Security functionality, please refer to the CodeGuard Security reference manual for 16-bit devices (DS70180) and dsPIC33F/PIC24H and dsPIC30F device programming specifications found on our website.

To program the preprogrammed devices, MPLAB IDE v8.00 and above provides a Secure Segment tab on the Settings dialog, accessed under either the Programmer or Debugger menu. This tab contains the following options:

· Full Chip Erase/Program

· Segment Programming

· Boot, Secure & General Segments

· Secure, General Segments

· General Segment.

The programming function of this tool is now capable of identifying various device segments and their sizes upon connecting the device. Hence, these options allow you to selectively program the program memory segments and thus avoid accidental eraser of preprogrammed proprietary data (Libraries, IP, etc.)

For Non-CodeGuard Security Devices

When programming these devices, bulk erase commands should be issued between successive programming operations, i.e., erase, then program, then erase, then program, etc. Therefore, Microchip advises against multiple-stage programming sessions which may fail to verify. For example, you should NOT do the following sequence with these devices:

1. load and program a particular hex file
2. load a second hex file
3. disable erase-all-before-programming
4. specify an address sub-range
5. program the device

# 10 Known Problems

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 MPLAB ICD 3 debugger (hlpMPLABICD3.chm). Bolded prefix represents internal tracking numbers.

· Communications

· General Issues

· SSRs (System Service Requests)

· Engineering Technical Notes (ETNs)

## 10.1 Communications

Do not connect to more than one MPLAB ICD 3 unit at a time or attempt to connect two MPLAB IDE sessions to the MPLAB ICD 3 debugger.

If you do not use the included cables, make sure the cables you do use are: (1) not longer than 6 inches for standard communications or errors could result and (2) USB 2.0 compliant if you will be using USB 2.0 communications.

## 10.2 General Issues

See Section 10.3 SSRs (System Service Requests).

Using the USB connection on a laptop PC with hibernate mode enabled will lock up the debugger if hibernate mode is entered. Unplug the USB cable from the MPLAB ICD 3 debugger and then plug the cable back in to resume debugging. You may want to disable hibernate mode while using the debugger. From Control Panel, select “Power Options” and disable hibernate mode.

Virus protection software can interfere with USB driver installation. If your development tool is not operational and you have tried reinstalling the USB drivers, consider disabling your virus protection software and reinstalling the USB drivers again.

### 10.2.1 PIC10F/12F/16F Devices

See Section 10.3 SSRs (System Service Requests).

### 10.2.2 PIC18F Devices

See Section 10.3 SSRs (System Service Requests).

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.

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.)

For PIC18F8720, MEMCON cannot be read if in a microcontroller mode. This is a silicon issue.

### 10.2.3 PIC24F/H Devices

See Section 10.3 SSRs (System Service Requests).

### 10.2.4 dsPIC33EP/PIC24EP Devices

· 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.

### 10.2.5 dsPIC30 Devices

See Section 10.3 SSRs (System Service Requests).

### 10.2.6 PIC32 Devices

See Section 10.3 SSRs (System Service Requests).

## 10.3 SSRs (System Service Requests)

Key | Summary | Device Affected
ICD3-349 | When debugging Enhanced Midrange devices, TOSL/TOSH registers are incorrectly displayed in watch window. | PIC16F1937 family
ICD3-346 | Verify with preserve PM checked causes communications failure with MPLAB ICD 3 for the dsPIC33FJ256GP710 device | dsPIC33FJ256GP710
ICD3-345 | Unable to connect to dsPIC33FJ32GS606 (and possibly others) with MPLAB ICD 3 when supplying power from ICD3. | dsPIC33FJ32GS606
ICD3-342 | Setting a run time break point occasionally causes communication problems with MPLAB ICD 3 and a PIC18F4553 (possibly others). | PIC18F4553
ICD3-338 | PICkit 3, REAL ICE and MPLAB ICD 3 will not program a PIC24EP512GU810 below 3.1 v | PIC24EP512GU810
ICD3-337 | Trace is a MPLAB REAL ICE in-circuit emulator feature. Trace statements in code are compiled by the compiler when MPLAB ICD 3 is enabled, but ICD 3 does not have trace. | dsPIC33FJ16MC104, PIC24FJ16MC101
ICD3-332 | A connection error may when programming with power coming from the MPLAB ICD 3 when using Windows 7, 64-bit machines. |
ICD3-330 | Getting error "ICD3Err0018: NMMR register read failed" when debugging dsPIC33EP256GP502 with certain ECAN Shadow registers being added to Watch window or being viewed in the SFR window. | dsPIC33EP256GP502. Other devices in the EP family might be affected too.
ICD3-325 | Self-writing the EEPROM in user code, the value being read back by the ICD 3 may not be correct if the ICD 3 is loaded as a programmer. Note, this is only seen under the PICDEM 2. | PIC16F877
ICD3-324 | ICD3CMD cannot program a PIC24EP64GP204 device in MPLAB IDE 8.84. | PIC24EP64GP204
ICD3-323 | Unable to initialize MPLAB ICD 3 or REAL ICE when PICDEM FS USB is connected to USB port on a Windows 7, 64-bit machine. | All
ICD3-321 | User ID is not programmed when using debug mode. | 18F87K22
ICD3-320 | ICD3CMD does not exit to the command prompt after encountering an error on Win 7-64 bit systems. |
ICD3-315 | On a MPLAB 8 IDE, Windows 7 64-bit machine, if a PIC32 Starter kit is plugged in (even if not selected), and you try to select the MPLAB ICD 3 as a programmer, you receive the message "Cannot connect to USB device. Unrecognized endpoint." Work-around: Only plug in the tool that is being used. | Other Demo Boards that use MCHPUSB drivers. These are custom Microchip drivers (non-HID).
ICD3-301 | Two reserved locations 0xEF4 - 0xEF5 are not being reserved in RAM during a debug session for the PIC18F8722. | 18F8722
ICD3-299 | MPLAB 8 only - MPLAB ICD 3 has problems reading the first word written to EEPROM in release mode. This is only a display issue. | PIC24FKA series
ICD3-280 | ICD3CMD fails to release the target PIC32MX devices from reset after the programming cycle is complete. | PIC32MX795F512H
ICD3-277 | MPLAB ICD 3 may fail programming when a user switches the device to the PIC24F64GA002 from PIC24F16KA102 device. | PIC24F64GA002
ICD3-267 | MPLAB IDE may occasionally display a dialog box with no text assigned to the control buttons when connecting to a PIC16LF727. | PIC16LF727
ICD3-243 | RealICECMD, ICD3CMD and PK3CMD do not always work for 64-bit Operating Systems. You might see failures connecting to the device when switching firmware using the command line utility. Workaround: Connect to the device, switch the firmware using MPLAB IDE and then use the command line utility to connect to the device. | PIC18F, 24H/F, 33F
ICD3-216 | For the PIC32 family of devices, MPLAB ICD 3 may be unable to reset or single step correctly after a Soft Reset is performed. | PIC32MX360F512L FAMILY
ICD3-166 | ICD3CMD fails to connect to the device if an older version of MPLAB is active. Workaround - Launch the MPLAB IDE version that the command line tool is taken from. |
ICD3-125 | MPLAB ICD 3 does not erase the PIC16F616 device at 2.8V. | PIC16F616
ICD3-65 | The breakpoint doesn't halt after breaking the first time for the AC162059 (PIC12F683) header. | PIC12F683 header

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

: : :

}

PIC24F

RI-513 | Intermittent read failures are seen on dsPIC33EP and PIC24EP devices in debug mode. | dsPIC33EP/PIC24EP
RI-537 | Trace is a MPLAB REAL ICE in-circuit emulator feature. Trace statements in code are compiled by the compiler when MPLAB ICD 3 is enabled, but ICD 3 does not have trace. | dsPIC33FJ16MC104, PIC24FJ16MC101
RI-449 | Step-over will cause code to run if the following statement is part of a sequenced-breakpoint. Stepping over a function works by setting a breakpoint right after the function and issuing a Run. However if the next statement has a breakpoint already, the IDE will not set a breakpoint assuming that the existing breakpoint will suffice. If that existing breakpoint however is part of a sequence, MPLAB IDE will still not issue a breakpoint even though that execution isn't guaranteed to stop at the following statement (since the whole sequence has to be followed first before program halts). | General
RI-412 | PIC24FJ256DA210 Family: Data Memory not functional unless 96 MHz PLL is enabled. This is a silicon issue that is being worked on. | PIC24

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/86K90/85K90/67K90/66K90/65K90

PIC18F87K22/86K22/85K22/67K22/66K22/65K22

PIC18

SPI001-113 | SPI misses SDI input when single-stepping with freeze in debug enabled. | General
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. | PIC24

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

dsPIC33EP/PIC24EP

UART002-175 | Don't read the FIFO when single stepping in debug mode. The FIFO should get set back to the user mode pointer when exiting debug, but instead it just keeps incrementing on its own. Work-around: Always reads the full FIFO. | dsPIC33EP512MC20x, dsPIC33EP512MC50x, dsPIC33EP512GP50x

## 10.4 Engineering Technical Notes (ETNs)

The following ETNs are related to the MPLAB ICD 3 in-circuit debugger. Please see the product webpage for details.

ETN-29: Applies to Assembly #10-00421-RC or below.

# 11 Important Notes

When running in debug mode, selecting Debugger>Reset resets the program, goes to the zero location, and halts. The program does not automatically re-run.

If porting an existing project using MPLAB ICD 2 to the MPLAB ICD 3 debugger, you must do the following:

Select Project>Build Options>Project. When the dialog opens, click OK. This is necessary to save new Build Options in the project. Previously there had been a checkbox option for "Link for ICD2" on the MPLAB LINK30 tab. This is now gone and has been replaced by a Build Configurations selection (see below.)

On the Project Manager toolbar select "Debug" from the Build Configurations drop-down list, or from the Project menu select “Build Configurations” and then “Debug”.

Rebuild the project (Build All).

Make sure that table reads/writes are not code protected.

At low Vdd, bulk erase will not erase code protect bits.

## 11.1 PIC18 Devices

Before setting the Stopwatch between any 2 Software breakpoints, ensure that the total number of Hardware breakpoints being used is always 2 less than the maximum number of Hardware breakpoints available for the device.

## 11.2 16-Bit Devices

1. RB0 and RB1 pins:
If the MPLAB ICD 3 debugger 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.

1. If you have selected a pair of "debug pins" (EMUD/EMUC, EMUD1/EMUC1, EMUD2/EMUC2 or EMUD3/EMUC3) that are multiplexed with A/D input pin functions on the particular dsPIC30f device being used, then you must never clear the bits in the ADPCFG register that correspond to those A/D pins.

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.

2. If your application needs to use certain A/D pins as analog input pins, then your code must clear the corresponding bits in the ADPCFG register during A/D module initialization.

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 MPLAB ICD 3 debugger will wake up the device and halt execution on the instruction immediately following the PWRSAV instruction.

4. Interrupts:

1. In general, single-stepping an instruction will not generate an interrupt or trap, because the corresponding interrupt/trap status flag bit would not get set. Essentially, the interrupt or trap condition would be ignored.
2. However, if the user has explicitly set an interrupt/trap flag bit, either in the user program or by modifying the status flag values in the MPLAB Watch, SFR or File Registers window, then the interrupt/trap would get generated, and the user would be able to single-step into the Interrupt or Trap Service Routine.

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 ICD operation.

10. SPLIM register:
When using the MPLAB ICD 3 debugger 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 MPLAB ICD 3 debugger 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.

# 12 Reserved Resources

Due to the built-in in-circuit debugging capability of ICE devices, and the ICSP function offered by the debugger, the MPLAB ICD 3 in-circuit 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.

# 13 Number of Hardware Breakpoints per Device

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.

Breakpoint support per device family is as follows:

Devices | Number of Breakpoints
PIC12F/16F | 1
PIC16F1xxx enhanced | 3
PIC18F | 1
PIC18F enhanced | 3
PIC18FxxJ | 3 or 5 (Note 1)
dsPIC30F | 2
dsPIC33F/PIC24H/F | 4
dsPIC33EP/PIC24EP | 2
PIC32MX | 6

Note 1: There is a limitation for these devices that only 1 data capture is available.