Release Notes for MPLAB® ICD 2 In-Circuit Debugger

MPLAB® IDE v7.62

MPLAB ICD 2 DLL v7.60

Operating System (Firmware) Files

PIC12F/16F

v2.07.02

(ICD01020702.hex)

PIC12F61X/16F61X

v1.01.00

(ICD15010100.hex)

PIC18F

v2.07.05

(ICD04020705.hex)

PIC18F Extended

v1.03.09

(ICD05010401.hex)

PIC18C601/801

v1.02.02

(ICD06010202.hex)

PIC10F2XX,PIC16F54/57

v1.04.03

(ICD07010403.hex)

PIC16F68X

v1.05.00

(ICD08010500.hex)

PIC12F629/675; PIC16F630/676

v1.00.00

(ICD09010000.hex)

dsPIC30F Rev B1

v1.06.02

(ICD10010602.hex)

dsPIC30F SMPS Rev 1

v1.00.06

(ICD18010006.hex)

PIC18F67J/87J

v1.00.05

(ICD11020004.hex)

PIC16F72, PIC16F8X,

  PIC16F627/628

v1.02.00

(ICD12010200.hex)

dsPIC33F, PIC24F

v3.03.02

(ICD14030302.hex)

 

August 8, 2007

IMPORTANT: Do not allow Windows® OS to pick a default USB driver; MPLAB ICD 2 will not work with this driver. You must follow the procedure specified at MPLAB IDE software installation for USB driver set-up. If you did not set up the port during MPLAB IDE installation, see the section in this readme file on USB Port Setup.

Table of Contents

1      Device Support List

2      Operating System Support List

3      Reference Documents

4      What's New/Updated

5      USB Port Setup

6      Powering the MPLAB ICD 2 and Target Board

7      Setting Up the MPLAB ICD 2 and Target Board

8      PIC18C601/801 Users

9      PIC18FXXJ, PIC24F, dsPIC33F Device Programming Considerations

10     Device Programming Considerations

11     Known Problems

12     Important Notes

13     Universal Programming Module (AC162049)

14     Reserved Resources

1         Device Support List

1.1        Debugger - Full Support

dsPIC30F2010

dsPIC30F4011

dsPIC30F6011A

dsPIC30F2011

dsPIC30F4012

dsPIC30F6012

dsPIC30F2012

dsPIC30F4013

dsPIC30F6012A

dsPIC30F2020

dsPIC30F5011

dsPIC30F6013

dsPIC30F2023

dsPIC30F5013

dsPIC30F6013A

dsPIC30F3010

dsPIC30F5015

dsPIC30F6014

dsPIC30F3011

dsPIC30F5016

dsPIC30F6014A

dsPIC30F3012

dsPIC30F6010

dsPIC30F6015

dsPIC30F3013

dsPIC30F6010A

 

dsPIC30F3014

dsPIC30F6011

 

 

 

 

dsPIC33FJ128GP206(4)

dsPIC33FJ12MC201(4)

dsPIC33FJ64GP206(4)

dsPIC33FJ128GP306(4)

dsPIC33FJ12MC202(4)

dsPIC33FJ64GP306(4)

dsPIC33FJ128GP310(4)

dsPIC33FJ16GP304(4)

dsPIC33FJ64GP310(4)

dsPIC33FJ128GP706(4)

dsPIC33FJ16MC304(4)

dsPIC33FJ64GP706(4)

dsPIC33FJ128GP708(4)

dsPIC33FJ256GP506(4)

dsPIC33FJ64GP708(4)

dsPIC33FJ128GP710(4)

dsPIC33FJ256GP510(4)

dsPIC33FJ64GP710(4)

dsPIC33FJ128MC506(4)

dsPIC33FJ256GP710(4)

dsPIC33FJ64MC506(4)

dsPIC33FJ128MC510(4)

dsPIC33FJ256MC510(4)

dsPIC33FJ64MC508(4)

dsPIC33FJ128MC706(4)

dsPIC33FJ256MC710(4)

dsPIC33FJ64MC510(4)

dsPIC33FJ128MC708(4)

dsPIC33FJ32GP202(4)

dsPIC33FJ64MC706(4)

dsPIC33FJ128MC710(4)

dsPIC33FJ32GP204(4)

dsPIC33FJ64MC710(4)

dsPIC33FJ12GP201(4)

dsPIC33FJ32MC202(4)

 

dsPIC33FJ12GP202(4)

dsPIC33FJ32MC204(4)

 

 

 

 

PIC10F200(1)

PIC10F204(1)

PIC10F220(1)

PIC10F202(1)

PIC10F206(1)

PIC10F222(1)

 

 

 

PIC12F508(1)

PIC12F615(1)

PIC12F683(1)

PIC12F509(1)

PIC12F629(1)

PIC12HV609

PIC12F510(1)

PIC12F635(1)

PIC12HV615

PIC12F609(1)

PIC12F675(1)

 

 

 

 

PIC16F505(1)

PIC16F690(1)

PIC16F876A

PIC16F506(1)

PIC16F716(1)

PIC16F877

PIC16F610(1)

PIC16F737

PIC16F877A

PIC16F616(1)

PIC16F747

PIC16F88

PIC16F627A(1)

PIC16F767

PIC16F882

PIC16F628A(1)

PIC16F777

PIC16F883

PIC16F630(1)

PIC16F785(1)

PIC16F884

PIC16F631(1)

PIC16F818

PIC16F886

PIC16F636(1)

PIC16F819

PIC16F887

PIC16F639(1)

PIC16F87

PIC16F913

PIC16F648A(1)

PIC16F870

PIC16F914

PIC16F676(1)

PIC16F871

PIC16F916

PIC16F677(1)

PIC16F872

PIC16F917

PIC16F684(1)

PIC16F873

PIC16F946

PIC16F685(1)

PIC16F873A

PIC16HV616

PIC16F687(1)

PIC16F874

PIC16HV785

PIC16F688(1)

PIC16F874A

 

PIC16F689(1)

PIC16F876

 

 

 

 

PIC18C601

PIC18F4455

PIC18F66J65(4)

PIC18C801

PIC18F4458

PIC18F6720

PIC18F1220

PIC18F448

PIC18F6722

PIC18F1230

PIC18F4480

PIC18F6723

PIC18F1320

PIC18F44J10(2)(4)

PIC18F67J10(2)(4)

PIC18F1330

PIC18F4510

PIC18F67J11(4)

PIC18F2220

PIC18F4515

PIC18F67J50(4)

PIC18F2221

PIC18F452

PIC18F67J60(4)

PIC18F2320

PIC18F4520

PIC18F8310

PIC18F2321

PIC18F4523

PIC18F8390

PIC18F2331

PIC18F4525

PIC18F83J11(4)

PIC18F2410

PIC18F4539

PIC18F83J90(4)

PIC18F242

PIC18F4550

PIC18F8410

PIC18F2420

PIC18F4553

PIC18F8490

PIC18F2423

PIC18F458

PIC18F84J11(4)

PIC18F2431

PIC18F4580

PIC18F84J90(4)

PIC18F2439

PIC18F4585

PIC18F8520

PIC18F2450

PIC18F45J10(2)(4)

PIC18F8525

PIC18F2455

PIC18F4610

PIC18F8527

PIC18F2458

PIC18F4620

PIC18F8585

PIC18F248

PIC18F4680

PIC18F85J10(2)(4)

PIC18F2480

PIC18F4682

PIC18F85J11(4)

PIC18F24J10(2)(4)

PIC18F4685

PIC18F85J15(2)(4)

PIC18F2510

PIC18F6310

PIC18F85J50(4)

PIC18F2515

PIC18F6390

PIC18F85J90(4)

PIC18F252

PIC18F63J11(4)

PIC18F8620

PIC18F2520

PIC18F63J90(4)

PIC18F8621

PIC18F2523

PIC18F6410

PIC18F8622

PIC18F2525

PIC18F6490

PIC18F8627

PIC18F2539

PIC18F64J11(4)

PIC18F8628

PIC18F2550

PIC18F64J90(4)

PIC18F8680

PIC18F2553

PIC18F6520

PIC18F86J10(2)(4)

PIC18F258

PIC18F6525

PIC18F86J11(4)

PIC18F2580

PIC18F6527

PIC18F86J15(2)(4)

PIC18F2585

PIC18F6585

PIC18F86J16(4)

PIC18F25J10(2)(4)

PIC18F65J10(2)(4)

PIC18F86J50(4)

PIC18F2610

PIC18F65J11(4)

PIC18F86J55(4)

PIC18F2620

PIC18F65J15(2)(4)

PIC18F86J60(4)

PIC18F2680

PIC18F65J50(4)

PIC18F86J65(4)

PIC18F2682

PIC18F65J90(4)

PIC18F8720

PIC18F2685

PIC18F6620

PIC18F8722

PIC18F4220

PIC18F6621

PIC18F8723

PIC18F4221

PIC18F6622

PIC18F87J10(2)(4)

PIC18F4320

PIC18F6627

PIC18F87J11(4)

PIC18F4321

PIC18F6628

PIC18F87J50(4)

PIC18F4331

PIC18F6680

PIC18F87J60(4)

PIC18F4410

PIC18F66J10(2)(4)

PIC18F96J60(4)

PIC18F442

PIC18F66J11(4)

PIC18F96J65(4)

PIC18F4420

PIC18F66J15(2)(4)

PIC18F97J60(4)

PIC18F4423

PIC18F66J16(4)

PIC18LF24J10(2)(4)

PIC18F4431

PIC18F66J50(4)

PIC18LF25J10(2)(4)

PIC18F4439

PIC18F66J55(4)

PIC18LF44J10(2)(4)

PIC18F4450

PIC18F66J60(4)

PIC18LF45J10(2)(4)

 

 

 

PIC24FJ128GA006(4)

PIC24FJ32GA004(4)

PIC24FJ64GA008(4)

PIC24FJ128GA008(4)

PIC24FJ48GA002(4)

PIC24FJ64GA010(4)

PIC24FJ128GA010(4)

PIC24FJ48GA004(4)

PIC24FJ96GA006(4)

PIC24FJ16GA002(4)

PIC24FJ64GA002(4)

PIC24FJ96GA008(4)

PIC24FJ16GA004(4)

PIC24FJ64GA004(4)

PIC24FJ96GA010(4)

PIC24FJ32GA002(4)

PIC24FJ64GA006(4)

 

 

 

 

PIC24HJ128GP206(4)

PIC24HJ128GP510(4)

PIC24HJ256GP610(4)

PIC24HJ128GP210(4)

PIC24HJ12GP201(4)

PIC24HJ64GP206(4)

PIC24HJ128GP306(4)

PIC24HJ12GP202(4)

PIC24HJ64GP210(4)

PIC24HJ128GP310(4)

PIC24HJ256GP206(4)

PIC24HJ64GP506(4)

PIC24HJ128GP506(4)

PIC24HJ256GP210(4)

PIC24HJ64GP510(4)

1.2        Debugger - Beta Support

dsPIC30F1010

 

 

 

 

 

PIC16HV610

 

 

 

 

 

PIC18F24K20

PIC18F45K20

PIC18F8493

PIC18F25K20

PIC18F46K20

 

PIC18F44K20

PIC18F6493

 

 

 

 

PIC24HJ16GP304(4)

 

 

PIC24HJ32GP202(4)

 

 

PIC24HJ32GP204(4)

 

 

1.3        Programmer - Full Support

dsPIC30F1010

dsPIC30F3014

dsPIC30F6011

dsPIC30F2010

dsPIC30F4011

dsPIC30F6011A

dsPIC30F2011

dsPIC30F4012

dsPIC30F6012

dsPIC30F2012

dsPIC30F4013

dsPIC30F6012A

dsPIC30F2020

dsPIC30F5011

dsPIC30F6013

dsPIC30F2023

dsPIC30F5013

dsPIC30F6013A

dsPIC30F3010

dsPIC30F5015

dsPIC30F6014

dsPIC30F3011

dsPIC30F5016

dsPIC30F6014A

dsPIC30F3012

dsPIC30F6010

dsPIC30F6015

dsPIC30F3013

dsPIC30F6010A

 

 

 

 

dsPIC33FJ128GP206(4)

dsPIC33FJ12MC201(4)

dsPIC33FJ64GP206(4)

dsPIC33FJ128GP306(4)

dsPIC33FJ12MC202(4)

dsPIC33FJ64GP306(4)

dsPIC33FJ128GP310(4)

dsPIC33FJ16GP304(4)

dsPIC33FJ64GP310(4)

dsPIC33FJ128GP706(4)

dsPIC33FJ16MC304(4)

dsPIC33FJ64GP706(4)

dsPIC33FJ128GP708(4)

dsPIC33FJ256GP506(4)

dsPIC33FJ64GP708(4)

dsPIC33FJ128GP710(4)

dsPIC33FJ256GP510(4)

dsPIC33FJ64GP710(4)

dsPIC33FJ128MC506(4)

dsPIC33FJ256GP710(4)

dsPIC33FJ64MC506(4)

dsPIC33FJ128MC510(4)

dsPIC33FJ256MC510(4)

dsPIC33FJ64MC508(4)

dsPIC33FJ128MC706(4)

dsPIC33FJ256MC710(4)

dsPIC33FJ64MC510(4)

dsPIC33FJ128MC708(4)

dsPIC33FJ32GP202(4)

dsPIC33FJ64MC706(4)

dsPIC33FJ128MC710(4)

dsPIC33FJ32GP204(4)

dsPIC33FJ64MC710(4)

dsPIC33FJ12GP201(4)

dsPIC33FJ32MC202(4)

 

dsPIC33FJ12GP202(4)

dsPIC33FJ32MC204(4)

 

 

 

 

PIC10F200(3)

PIC10F204(3)

PIC10F220(3)

PIC10F202(3)

PIC10F206(3)

PIC10F222(3)

 

 

 

PIC12F508

PIC12F615

PIC12F683

PIC12F509

PIC12F629

PIC12HV609

PIC12F510

PIC12F635

PIC12HV615

PIC12F609

PIC12F675

 

 

 

 

PIC16F505

PIC16F689

PIC16F873

PIC16F506

PIC16F690

PIC16F873A

PIC16F54

PIC16F716

PIC16F874

PIC16F57

PIC16F72

PIC16F874A

PIC16F59

PIC16F73

PIC16F876

PIC16F610

PIC16F737

PIC16F876A

PIC16F616

PIC16F74

PIC16F877

PIC16F627

PIC16F747

PIC16F877A

PIC16F627A

PIC16F76

PIC16F88

PIC16F628

PIC16F767

PIC16F882

PIC16F628A

PIC16F77

PIC16F883

PIC16F630

PIC16F777

PIC16F884

PIC16F631

PIC16F785

PIC16F886

PIC16F636

PIC16F818

PIC16F887

PIC16F639

PIC16F819

PIC16F913

PIC16F648A

PIC16F83

PIC16F914

PIC16F676

PIC16F84

PIC16F916

PIC16F677

PIC16F84A

PIC16F917

PIC16F684

PIC16F87

PIC16F946

PIC16F685

PIC16F870

PIC16HV610

PIC16F687

PIC16F871

PIC16HV616

PIC16F688

PIC16F872

PIC16HV785

 

 

 

PIC18C601

PIC18F4455

PIC18F6720

PIC18C801

PIC18F4458

PIC18F6722

PIC18F1220

PIC18F448

PIC18F6723

PIC18F1230

PIC18F4480

PIC18F67J10(4)

PIC18F1320

PIC18F44J10(4)

PIC18F67J11(4)

PIC18F1330

PIC18F4510

PIC18F67J50(4)

PIC18F2220

PIC18F4515

PIC18F67J60(4)

PIC18F2221

PIC18F452

PIC18F8310

PIC18F2320

PIC18F4520

PIC18F8390

PIC18F2321

PIC18F4523

PIC18F83J11(4)

PIC18F2331

PIC18F4525

PIC18F83J90(4)

PIC18F2410

PIC18F4539

PIC18F8410

PIC18F242

PIC18F4550

PIC18F8490

PIC18F2420

PIC18F4553

PIC18F84J11(4)

PIC18F2423

PIC18F458

PIC18F84J90(4)

PIC18F2431

PIC18F4580

PIC18F8520

PIC18F2439

PIC18F4585

PIC18F8525

PIC18F2450

PIC18F45J10(4)

PIC18F8527

PIC18F2455

PIC18F4610

PIC18F8585

PIC18F2458

PIC18F4620

PIC18F85J10(4)

PIC18F248

PIC18F4680

PIC18F85J11(4)

PIC18F2480

PIC18F4685

PIC18F85J15(4)

PIC18F24J10(4)

PIC18F6310

PIC18F85J50(4)

PIC18F2510

PIC18F6390

PIC18F85J90(4)

PIC18F2515

PIC18F63J11(4)

PIC18F8620

PIC18F252

PIC18F63J90(4)

PIC18F8621

PIC18F2520

PIC18F6410

PIC18F8622

PIC18F2523

PIC18F6490

PIC18F8627

PIC18F2525

PIC18F64J11(4)

PIC18F8628

PIC18F2539

PIC18F64J90(4)

PIC18F8680

PIC18F2550

PIC18F6520

PIC18F86J10(4)

PIC18F2553

PIC18F6525

PIC18F86J11(4)

PIC18F258

PIC18F6527

PIC18F86J15(4)

PIC18F2580

PIC18F6585

PIC18F86J16(4)

PIC18F2585

PIC18F65J10(4)

PIC18F86J50(4)

PIC18F25J10(4)

PIC18F65J11(4)

PIC18F86J55(4)

PIC18F2610

PIC18F65J15(4)

PIC18F86J60(4)

PIC18F2620

PIC18F65J50(4)

PIC18F86J65(4)

PIC18F2680

PIC18F65J90(4)

PIC18F8720

PIC18F2682

PIC18F6620

PIC18F8722

PIC18F2685

PIC18F6621

PIC18F8723

PIC18F4220

PIC18F6622

PIC18F87J10(4)

PIC18F4221

PIC18F6627

PIC18F87J11(4)

PIC18F4320

PIC18F6628

PIC18F87J50(4)

PIC18F4321

PIC18F6680

PIC18F87J60(4)

PIC18F4331

PIC18F66J10(4)

PIC18F96J60(4)

PIC18F4410

PIC18F66J11(4)

PIC18F96J65(4)

PIC18F442

PIC18F66J15(4)

PIC18F97J60(4)

PIC18F4420

PIC18F66J16(4)

PIC18LF24J10(4)

PIC18F4423

PIC18F66J50(4)

PIC18LF25J10(4)

PIC18F4431

PIC18F66J55(4)

PIC18LF44J10(4)

PIC18F4439

PIC18F66J60(4)

PIC18LF45J10(4)

PIC18F4450

PIC18F66J65(4)

 

 

 

 

PIC24FJ128GA006(4)

PIC24FJ32GA004(4)

PIC24FJ64GA008(4)

PIC24FJ128GA008(4)

PIC24FJ48GA002(4)

PIC24FJ64GA010(4)

PIC24FJ128GA010(4)

PIC24FJ48GA004(4)

PIC24FJ96GA006(4)

PIC24FJ16GA002(4)

PIC24FJ64GA002(4)

PIC24FJ96GA008(4)

PIC24FJ16GA004(4)

PIC24FJ64GA004(4)

PIC24FJ96GA010(4)

PIC24FJ32GA002(4)

PIC24FJ64GA006(4)

 

 

 

 

PIC24HJ128GP206(4)

PIC24HJ128GP510(4)

PIC24HJ256GP610(4)

PIC24HJ128GP210(4)

PIC24HJ12GP201(4)

PIC24HJ64GP206(4)

PIC24HJ128GP306(4)

PIC24HJ12GP202(4)

PIC24HJ64GP210(4)

PIC24HJ128GP310(4)

PIC24HJ256GP206(4)

PIC24HJ64GP506(4)

PIC24HJ128GP506(4)

PIC24HJ256GP210(4)

PIC24HJ64GP510(4)

1.4        Programmer - Beta Support

PIC12F519

 

 

rfPIC12F675F

 

 

rfPIC12F675H

 

 

rfPIC12F675K

 

 

 

 

 

PIC18F24K20

PIC18F45K20

PIC18F6493

PIC18F25K20

PIC18F4682

PIC18F8493

PIC18F44K20

PIC18F46K20

 

 

 

 

PIC24HJ16GP304(4)

 

 

PIC24HJ32GP202(4)

 

 

PIC24HJ32GP204(4)

 

 

 (1) Header interface board required. See MPLAB ICD 2 Header Specification (DS51292), for a list of available headers by device number.

(2) Header interface board available, but not required. See MPLAB ICD 2 Header Specification (DS51292) for a list of available headers by device number.

(3) PIC10F2XX Universal programmer adapter required (AC163020).

(4) Special device programming considerations apply to avoid damage to device. See section 9.

2         Operating System Support List

This tool has been tested using the following operating systems:

Windows® 2000 SP4, Windows XP SP2, and Windows Vista™ (32-Bit)* OSs

* Only initial testing has been performed on 32-bit Vista for this release. 64-bit Vista is not supported at this time.

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 2 Design Advisory (DS51566)

·         Using MPLAB ICD 2 Poster (DS51265)

·         MPLAB ICD 2 User's Guide (DS51331)

·         Header Specification (DS51292)

·         Universal Programming Module Instruction Sheet (DS51280)

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

·         Debuggers>MPLAB ICD 2 - hlpMPLABICD2.chm

4         What's New/Updated

  • Bug fixes.

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

Note: If you have accidentally installed the Windows OS default driver, these instructions will direct you to how to "clean" your system first before installing the correct driver(s).

Note: If you change USB ports/hubs, you will need to reinstall the drivers.

Win 98
C:\Program Files\Microchip\MPLAB IDE\ICD2\Drivers\ddicd298.htm

Win ME
C:\Program Files\Microchip\MPLAB IDE\ICD2\Drivers\ddicd2me.htm

Win 2000/XP
C:\Program Files\Microchip\MPLAB IDE\ICD2\Drivers\ddicd2.htm

Win Vista

Follow these instructions to install USB device drivers for Windows Vista:

  1. Install MPLAB IDE v7.60. This is the first version of MPLAB IDE with limited 32-bit Windows Vista support.
  2. Connect the MPLAB ICD 2 to the PC with a USB cable.
  3. The "Found New Hardware" wizard will open. Follow the wizard dialogs as instructed below to install the drivers. Note: If you encounter a Windows Vista Security dialog asking you for permission or to continue, click "Yes" or "Continue".
  4. In the first dialog, select "Locate and Install Driver Software". Click "Next".
  5. In the next dialog, select "Don't Search On-Line". Click "Next".
  6. In the next dialog, select "Browse My Computer". Click "Next".
  7. In the next dialog, browse to the location of the drivers. By default, this would be: "C:\Program Files\Microchip\MPLAB IDE\ICD2\Drivers". Click "Next".
  8. The drivers should start installing. You will be notified when this is finished.
  9. You may need to repeat Steps 3-8 to install the Client.

If you have any problems getting these drivers to work with the MPLAB ICD 2, do the following:

1.       Go to Start>Control Panel>System>Device Manager.

2.       In the Device Manager window, click on the "+" next to "Microchip Tools".

3.       Right-click on the "Microchip MPLAB ICD 2" entry and select "Uninstall".

4.       On the Uninstall dialog, check the "Delete the driver software for this device" checkbox.

5.       Unplug the MPLAB ICD 2 USB connector, and then reconnect it.

6.       Once the drivers are uninstalled, follow the driver installation instructions in the first part of this section to install the correct drivers.

6         Powering the MPLAB ICD 2 and Target Board

NOTE: MPLAB ICD 2 must be powered BEFORE power is applied to the target application.

6.1        MPLAB ICD 2 Power

Serial (RS-232) connection to the PC:

Power supply required.

USB connection to the PC, target not powered from MPLAB ICD 2 or no target connected:

No power supply needed.

USB connection to the PC, target powered from MPLAB ICD 2:

Power supply required. (USB cannot power both.)
Note: Plug in USB first, then power supply.

The MPLAB ICD 2 cannot be powered from the target board.

6.2        Target Board Power

The MPLAB ICD 2 can provide 5 V and up to 200 mA to a target if the ICD itself is powered by a power supply. (USB cannot power both.) This is enabled by checking "Power target circuit from MPLAB ICD 2" (Debugger>Settings, Power tab).
Note: Plug in USB first, then power supply.

7         Setting Up the MPLAB ICD 2 and Target Board

Note: The ICD headers need to be connected to a target board or else they may receive the ICD00083 debug error.

7.1        Powering the Target Board from the MPLAB ICD 2

1.       Power the MPLAB ICD 2. DO NOT power the target.

2.       Start MPLAB IDE.

3.       Under the Debugger menu of MPLAB IDE, click "Connect".

4.       After establishing communications with the MPLAB ICD 2, select Debugger>Settings.

5.       In the Settings dialog, click the Power tab and ensure that the check box for "Power target circuit from MPLAB ICD 2" is checked. Click OK.

6.       Now you should be able to erase and program components with the MPLAB ICD 2.

7.2        Powering the Target Board from its own power supply

1.       Power the MPLAB ICD 2. DO NOT power the target.

2.       Start MPLAB IDE.

3.       Under the Debugger menu of MPLAB IDE, click "Connect".

4.       After establishing communications with the MPLAB ICD 2, select Debugger>Settings.

5.       In the Settings dialog, click the Power tab and ensure that the check box for "Power target circuit from MPLAB ICD 2" is NOT checked. Click OK.

6.       Power the target system and then select Debugger>Connect.

7.       Now you should be able to erase and program components with the MPLAB ICD 2.

7.3        Self Tests

If any of the self tests on the Status tab of the Settings dialog do not say pass, you will not be able to erase and program your device. Exception: if Vpp says low, you may still be able to program if the voltage is more than the low value for the device programming range listed in the device programming spec.

Generally, failed self tests will require further troubleshooting.

See on-line help for more information.

8         PIC18C601/801 Users

There is a folder called \ICD2 that was copied into the MPLAB IDE installation directory. This folder has two files which can be used with the PICDEM 18R demo board (DM163006):

SRAM16.HEX - allows program download to the static RAM

29F16016.HEX - allows program download to the flash memory

When using PICDEM 18R, you must use one of the files above in the "Location of WriteProgramWord and EraseProgramMemory" dialog on the MPLAB ICD 2 Advanced Dialog. Also, you must remember to do an erase before programming as this is not done automatically.

For your own design, which probably has different programming algorithms for the memory on your target, you must substitute your own memory read/write routine in order for the MPLAB ICD 2 to download code.  See the PICDEM 18R documentation for information on writing your custom routines. These code routines will be used to program your memory and care must be taken to ensure they are relocatable and comply with the format used in the included source files.

9         PIC18FXXJ, PIC24F, dsPIC33F Device Programming Considerations

The Programming Specifications for PIC18FXXJ MCUs, PIC24F MCUs, and dsPIC33F DSCs indicate that 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 damage the device. For example, you should NOT do the following with these parts:

·         load and program a particular hex file

·         load a second hex file

·         disable erase-all-before-programming

·         specify an address sub-range

·         program the device

10    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 v7.50 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

11    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 MPLAB ICD 2 (hlpMPLABICD2.chm).

11.1    Communications

·         If you are using MPLAB ICD 2 with USB communications AND a power supply, plug in the USB first, then the power supply.

·         If you have problems with serial communications, see the Troubleshooting section in the help file.

NOTE: You should have the FIFO disabled and hardware handshaking enabled on the PC COM port properties.

·         Select Start>Settings>Control Panel

·         Double-click on System to open "System Properties"

·         Open the Device Manager and find your COM port under Ports

·         Open the Communications Port Properties dialog for this port

·         Under Port Settings, choose "Flow Control: Hardware" for hardware handshaking

·         Open the Advanced Settings dialog and deselect Use FIFO buffers

·         When first connecting to MPLAB ICD 2 using serial communications, the default COM port is COM1. If you are using the MPLAB ICD 2 on another COM port, Select Debugger>Settings, Communication tab to set the appropriate COM port. Subsequent connections should be established quickly.

·         If you are having problems with ICD operation, please check the revision of your pod, found on the back of the unit. If the part number is 10-00319 R15 through R21 without an “ECO 3013” sticker, please contact your local Microchip FAE or sales office to return the unit for replacement.

·         If you do not use the included USB or RS-232 cable, make sure the cable you do use is not longer than 6 feet or communication errors could result. For modular cable lengths, see on-line help.

·         Do not plug both the USB cable and RS-232 cable into the MPLAB ICD 2 pod. This will cause errors. Choose one form of ICD-to-PC communication.

11.2    General Issues

·         For baseline devices, TRISIO and OPTION_REG appear in the watch window drop down list but are not available on the MPLAB ICD 2. No information will be displayed if either is selected.

·         For dsPIC30F devices, you must provide power on your own board and not to use power from the ICD. The power (Vdd) provided from MPLAB ICD 2 to the target device is not sufficient for all programming operations of the dsPIC30F device family.

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

·         Care should be taken when programming the PLL.  The PLL only changes when power is first applied to the chip. If you are programming the PLL for the first time, remove power from the PIC18Fxxxx part after programming and reapply for the PLL to be enabled.  If you are reprogramming the device from PLL mode to another mode, first reprogram with PLL off, then remove power and reapply.

·         If you have trouble when low voltage programming, add a pull-down 10k ohm resistor to RB5.

·         Numbers in the start and end address boxes (Debugger>Settings, Program tab) must use the hex numbering convention (0x....).

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

·         You may not be able to enter debug mode if power-up timer is enabled for the following devices:

·         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

·         For dsPIC30F device programming, the Universal Programming Module cannot be used due to the limited number of Vdd and Vss connections.

·         MPLAB ICD 2 may not operate on a dual processor platform in dual processor mode. It is recommend that you change the application properties for MPLAB ICD 2 to single processor mode.

·         Code Example CE020 for 16-bit controllers: During the programming sequence, PIC24F devices may be put into a run condition using MPLAB ICD 2. This can result in a verification failure if the code performs self write to either program memory or Data EE.

·         On PIC16F88X devices it is necessary to pull the RB3/PGM pin low for ICSP programming. This is due to a silicon issue.

·         When connecting the PIC16F818/819 to the latest MPLAB ICD2's (r3), the device may latch resulting in ICD2Warn0020: Invalid target device id (expected=0x27, read=0x0). A work around is to use a .1 uF capacitator on VPP to GND.

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

PIC18F63J90

PIC18F64J90

PIC18F64J95

PIC18F65J95

PIC18F83J90

PIC18F84J90

PIC18F84J95

PIC18F85J90

PIC18F63J11

PIC18F64J11

PIC18F64J16

PIC18F65J11

PIC18F83J11

PIC18F84J11

PIC18F84J16

PIC18F85J11

11.3    System Service Requests (SSRs)

SSR 20230: Programming or reading a code-protected EEPROM memory generates no messages by MPLAB IDE for MPLAB ICD 2 for a PIC12F675 device.

SSR 21163: Programmer function: Cannot program PIC16F87x devices in individual or in combinations of the memory areas without the entire device being automatically erased.

SSR 24354: Freeze peripherals on Halt is checked and grayed, but some peripherals do not freeze. This is a silicon issue.

SSR 26344: Below 4.5 V, MPLAB ICD 2 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

SSR 28323: dsPIC33FJ128MC706 - Getting ICD0083: Debug:  Unable to enter debug mode when running under LPRC mode.

SSR 29399: MPLAB ICD2 fail to program/verify the PIC24FJ128GA010 device when user code does run time flash erase /write operation.It appears the device is executing code before the full programming cycle is complete.

SSRs ICD2-37, ICD2-72, ICD2-81, ICD2-82: As a general comment on these issues, some devices may not be able to enter debug mode at 32 kHz speed.

SSR ICD2-109: When connecting the PIC16F818/819 to the latest MPLAB ICD2’s (r3), the device may latch resulting in ICD2Warn0020: Invalid target device id (expected=0x27, read=0x0). To work around the issue, reduce the cable length to less than 6 inches. Also, 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.

SSR ICD2-140: When the command to erase EEPROM in the device at 3.1V, the EEPROM in the device gets reprogrammed in the same voltage. Also, the value displayed in Settings> Power>Target Vdd. when 3.0V or 3.10 V is supplied is incorrect. Please note that below 3.0V, EEPROM will not be erased.

SSR MPLAB-814: PWM Peripheral not found in the Freeze dialog under Debugger>Settings for the dsPIC33FGP parts that have PWM support.

Important Notes

·         If you modify Program Memory, you must reprogram the device.

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

·         The following applies to all devices except for Extended PIC18F Devices V2:

            - While single stepping, the MPLAB ICD 2 will not respond to interrupts.

            - The SLEEP instruction cannot be used when debugging.

            - The WDT cannot be used when debugging.

·         An exception to the single step SLEEP and WDT in the above notes:

·         Extended PIC18F Devices V2 will allow the user to interrupt while single stepping, use SLEEP, use WDT. Please see MPLAB ICD2 help for details.

·         USB hubs must be powered.

·         When working with PIC18XXXX parts, debugging speed is improved (breakpoints, single-step, etc.) if the General Purpose File Register Window is closed.  You can put any registers that need to be monitored into a Watch Window, or view Special Function Registers in the SFR Window. MPLAB IDE updates information in visible sections of windows only, unless otherwise specified. Therefore, the smaller the visible area, the faster the updates and debugging speed.

·         For PIC18Fxx20 devices, you must connect the AVDD and AVSS pins for the devices to program.

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

·         In low voltage mode, bulk erase will not erase code protect bits.

·         MPLAB ICD 2, by design, has limited debug capabilities when compared with an emulator. This is a price/feature trade-off. If you need more complex debugging capabilities, the MPLAB ICE 2000 for PIC MCU device emulation and the MPLAB ICE 4000 for PIC18 MCU and dsPIC DSC device emulation are suggested.

·         When using a 32 kHz crystal, you may receive the message "Target not in debug mode". Perform a reconnect to enter debug mode.

11.4    Firmware

·         MPLAB ICD 2 has different OS's for different part families. The ICD will, by default, automatically download the correct OS as necessary.

·         It is possible to turn off the automatic download feature in Settings>Status. You will then be asked in a dialog if you wish to download the OS. Disabling the automatic download feature is NOT RECOMMENDED. Serious errors may occur if your OS is not correct for your selected device. It is recommended that you download the MPLAB ICD 2 firmware that was packaged with the version of MPLAB IDE being used on your system.

11.5    dsPIC30F, dsPIC33F and PIC24H Devices

1.       Analog pins:
If MPLAB ICD 2 is selected as a debugger, it initializes all the A/D input pins - AN0 through AN31 pins - as "digital" pins, by setting all bits in the ADPCFG register (dsPIC30F) or AD1PCFGL and AD2PCFGL registers (dsPIC33F/PIC24H).

  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 (or AD1PCFGL and AD2PCFGL registers) 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.

  1. 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 (or AD1PCFGL and AD2PCFGL registers) 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.       After programming a device, you must perform a Processor Reset. This can be done either by selecting the Debugger>Reset>Processor Reset command, pressing the <F6> hotkey or clicking on the Processor Reset button. This ensures that the device oscillator is active before the program is run or debugging operations are performed.

3.       User RAM Usage:
You must not use the following memory region while using MPLAB ICD 2; 0x800 - 0x84F (i.e., the first 80 bytes of RAM). If the ICD is to be used for a particular project, on the Project Manager toolbar select "Debug" from the Build Configurations drop-down list.

4.       File Registers / Special Function Registers / Watch window:

  1. It is recommended not to scroll the File Registers window up or down. This may generate a Warning message. The busy message that occurs at the output window indicates the MPLAB ICD 2 is yet to complete the previous data fill request and is thus not ready to execute the current scroll request. To avoid this message, either keep the window small, or use the Go To dialog, which can be accessed by right-clicking on the File Registers window or pressing Ctrl+G.
  2. For viewing a small number of variables or Special Function Registers, it is recommended to use the Watch window rather than the File Registers, in order to avoid data transfer delays (especially during single-step).

5.       Programming Range:
On enabling MPLAB ICD 2, the Program End Address (Debugger>Settings) is automatically set as low as possible based on the Program Memory usage of each MPLAB IDE project. This helps minimize the programming time.

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

7.       Debug during SLEEP or IDLE Mode:
When the device is in SLEEP and IDLE mode and a Halt command is issued, MPLAB ICD 2 will wake up the device and halt execution on the instruction immediately following the PWRSAV instruction.

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

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

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

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

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

13.   ADC Module Disable bit in PMD1 register:
The user application must not set the ADCMD bit (dsPIC30F) or AD1MD bit (dsPIC33F/PIC24H) in the PMD1 register. This would lead to incorrect ICD2 operation..

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

15.   Number of Breakpoints:

Number of Breakpoints Supported

Devices

1

dsPIC30F2010, 2011, 2012, 3010, 3011, 3012, 3013, 3014, 4013

2

dsPIC30F1010, 2020, 2023, 4011, 4012, 5011, 5013, 5015, 5016, 6010, 6010A, 6011, 6011A, 6012, 6012A, 6013, 6013A, 6014, 6014A, 6015

6

All dsPIC33F and PIC24H.

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

17.   If you need to use the Fail-Safe Clock Monitor feature on a dsPIC device when using the MPLAB ICD 2 for debugging your application, a Watchdog Timer Device Reset will occur, even if the Watchdog Timer has not been explicitly enabled in the application. This will also occur with any invocation of the LPRC clock source whether by configuration bytes or clock switching to the LPRC at run time will enable the Watchdog Timer. Any action that causes the LPRC clock source to become and/or remain active after the PWRT (Power-up Timer) expires will enable and cause a WDT countdown. 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    Universal Programming Module (AC162049)

12.1    Jumper Select for Programmer Function

The Universal Programming Module (UPM) allows the MPLAB ICD 2 to be used as a device programmer for supported product DIP packages.

In-Circuit Serial Programming (ICSP) signals from the MPLAB ICD 2 are routed to seven wires soldered to the UPM at J3.

12.2    J3 Connector

Vpp - Program Power

Vdd - Power

Vdd - Power

GND - Ground

GND - Ground

PGD - Program Data

PGC - Program Clock

You then jumper these wires to the appropriate pins of the 40-pin header, comprised of pins 1-20 and pins 21-40, which correspond to the pins of the ZIF socket (U1). For information onwhich pins to jumper, please refer to the programming specification for the device you will be programming.

Devices should be aligned to the top of the ZIF socket (pin 1 of all devices should be aligned to pin 1 of the ZIF socket). Refer to the device's data sheet for pinouts.

Both programming specifications and data sheets may be found on our website or on the MPLAB IDE CD-ROM.

12.3    Setting up the UPM in MPLAB IDE

Make sure that the programmer options are correct for your target device.

·         Make sure the MPLAB ICD 2 is connected (Programmer>Connect).

·         Select Programmer>Settings and select the Power tab.

·         Check the "Power target circuit from MPLAB ICD 2" box, and press the Apply button. Ensure that Target Vdd is at least 4.5v (press the Update button if necessary)

·         Select the Program tab of the ICD Programmer Properties dialog box. Configure your target device as desired. Press OK when done.

Programmer operations are now available. Insert the device to be programmed into the UPM ZIF socket and connect the signals wires per the previous section.

13    Reserved Resources

Due to the built-in in-circuit debugging capability of ICD devices, and the ICSP function offered by the Debugger, the MPLAB ICD 2 uses on-chip resources when debugging, i.e., some device resources are reserved for use by MPLAB ICD 2.

Refer to the on-line help for the most up-to-date list of resources used by the MPLAB ICD 2.