Release Notes for MPLAB® REAL ICE™ In-Circuit Emulator &
Device (Production) Programmer

MPLAB® IDE v8.56

DLL and Firmware versions:

 MPRealICE.dll   v6.0.3.58  
 MPLAB REAL ICE Suite (OS, FW)   v1.26.26  (RIFW_012626.jam)

 

August 13, 2010

 

Table of Contents

1      Device Support

2      Operating System Support

3      Reference Documents

4      What's New in v8.56

5      Repairs and Enhancements Made in v8.56

6      USB Port Setup

7      Powering the Emulator and Target Board

8      Setting Up the Emulator and Target Board

9      Device Programming Considerations

10     Command-Line Programming

11     Known Problems

12     Important Notes

13     Reserved Resources

14     Number of Hardware Breakpoints Per Device

15     Durability/Insertion Life Cycle of the Card Guide

1         Device Support

Click the link below to see device support for “REAL ICE Debugging” (RID) and “REAL ICE Programming” (RIP).

·         Device Support List

For feature support by device family, see the emulator on-line help file, “Device and Feature Support”.

1.1        Programming Considerations

See section 9 for special device programming considerations to avoid damage these devices:

PIC24F/H

dsPIC33F

1.2        Trace Considerations

No Native trace available for these devices:

PIC10F/12F/16F

dsPIC30F (2)

PIC18F (1)

PIC32MX (3)

(1) Except for PIC18FXXJXX devices
(2) Except for dsPIC30F SMPS devices (dsPIC30F1010/2020/2023)
(3) These devices use PIC32 instruction trace, if available (see below)

No real-time data capture available for these devices:

PIC10F/12F/16F

dsPIC30F (2)

PIC18F (1)

 

(1) Except for PIC18FXXJXX devices
(2) Except for dsPIC30F SMPS devices (dsPIC30F1010/2020/2023)

No SPI trace is available for these devices:

dsPIC30F1010

dsPIC30F3010

dsPIC30F4012

dsPIC30F2010

dsPIC30F3011

dsPIC30F4013

dsPIC30F2011

dsPIC30F3012

dsPIC33F

dsPIC30F2012

dsPIC30F3013

PIC24F/H

dsPIC30F2020

dsPIC30F3014

PIC32MX

dsPIC30F2023

dsPIC30F4011

 

No I/O Port trace is available for these devices:

dsPIC30F1010

dsPIC30F3010

dsPIC30F5015

dsPIC30F2010

dsPIC30F3011

dsPIC30F6010

dsPIC30F2011

dsPIC30F3012

dsPIC33F

dsPIC30F2012

dsPIC30F3013

PIC24F/H

dsPIC30F2020

dsPIC30F4011

PIC32MX

dsPIC30F2023

dsPIC30F4012

 

The following devices cannot perform data capture, runtime watches, and Native trace at 40 MIPS, or use trace on Ports C and D:

dsPIC33F RevA1 DSCs

PIC32 instruction trace is available for these devices:

PIC32MX360F256L

PIC32MX460F256L

PIC32MX360F512L

PIC32MX460F512L

1.3        Debugging Considerations

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.

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 REAL ICE In-Circuit Emulator Setup (DS51615)

·         MPLAB REAL ICE In-Circuit Emulator User's Guide (DS51616)

·         Header Board Specification (DS51292)

·         Transition Socket Specification (DS51194)

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

·         Debuggers>MPLAB REAL ICE

The default location of the Help file is:

·         C:\Program Files\Microchip\MPLAB IDE\REAL ICE\hlpMPLABREALICE.chm

4         What's New in v8.56

·         New device support.

5         Repairs and Enhancements Made in v8.56

RI-446: Cannot debug PIC16F819.

ICD3-254: PC values do not change when single stepping with PIC12F617.

ICD-249: Unable to enter debug mode using the emulation header for PIC18F/LF13K22, PIC18F/LF14K22, PIC18F/LF13K50 and PIC18F/LF14K50.

ICD3-255: ICD debug reserved resource information in the help file is inconsistent and incorrect across ICD2, ICD3, REAL ICE for PIC16F1xxx devices

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 emulator 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\REAL ICE\Drivers\ddri.htm

Basic instructions are as follows:

1.       Install MPLAB IDE v7.43 or higher (for Win 2000/XP/Vista) or v8.40 or higher (for Win 7).

2.       Insert a communication board (standard or high-speed) into the MPLAB REAL ICE pod.

3.       Connect the MPLAB REAL ICE pod to a PC USB port using a USB cable.

4.       Follow the “Found New Hardware Wizard” to install the drivers (software):

  1. Automatically for Win 2000/XP.
  2. Manually for Win Vista and Win 7. The drivers are located in:
    C:\Program Files\Microchip\MPLAB IDE\REAL ICE\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
or for Win Vista 64:
C:\Program Files (x86)\Microchip\MPLAB IDE\Drivers64\Vista64\ddvista64.htm
or 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 REAL ICE pod.

3.       Connect the MPLAB REAL ICE pod to a PC USB port using a USB cable.

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

7         Powering the Emulator and Target Board

The MPLAB REAL ICE emulator is powered through its USB connection to the PC.

The target board is powered from its own supply. The emulator cannot provide power to the target board.

8         Setting Up the Emulator and Target Board

1.       Install the USB drivers on your PC, as discussed above (USB Port Setup). When this is complete, MPLAB REAL ICE emulator 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 emulator to a target board.

3.       Power the target.

4.       Start MPLAB IDE.

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

6.       The emulator will now be ready for use.

9         Device Programming Considerations

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

9.2        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    Command-Line Programming

You may use the emulator as a production programmer controlled via the command line by using RealICECMD found in the “Programmer Utilities” directory of the MPLAB IDE installation directory. The Readme for this tool is “Readme for RealICECMD_ICD3CMD.txt”.

See also “Known Problems” for RealICECMD support.

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 the MPLAB REAL ICE emulator (hlpMPLABREALICE.chm). Bolded prefix represents internal tracking numbers.

11.1    Communication Issues

·         Do not connect to more than one MPLAB REAL ICE unit at a time or attempt to connect two MPLAB IDE sessions to the MPLAB REAL ICE emulator.

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

11.2    General Issues

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

·         Running a data capture at greater than 16 MIPS may result in a bad header error. At higher speeds decrease the number of data capture points or the frequency of the capture. For example create a trigger on a temporary variable that gets changed ever nth cycle.

SSR 29271: Sometimes the source code is not being updated with the id values from the __LOG and/or __TRACE.  The work-around is to close and reopen the source file.

RI-438: "Watchdog timer is enabled" message is displayed while programming with Run-time watch enabled even though WDT is disabled in code.

RI-38: If the target voltage is changed while the MPLAB REAL ICE emulator is connected, the emulator’s Vdd may be out of range.

ICD3-243: RealICECMD does not work on 64-bit Operating Systems. The issue is that if the command line tool has to switch firmware versions, it will not be able to do that as it times out early.

Workaround: Download the correct firmware for the device using MPLAB IDE. Once that is done the command line utility will detect the device.

11.2.1 PIC12F/16F Devices

ICD3-225: Upper unimplemented bits in the configuration word for the PIC24FJ64GA004 are being programmed to a '0' instead of a ‘1’.

ICD3-55: Above 16MHz, in EC mode, a Reset executes the first few instructions instead of only 1 instruction. Workaround is to add 3 NOPs at the reset vector.

RI-403: Timer 1 does not freeze when Freeze peripherals is checked for the PIC16F683 device.

11.2.2 PIC18F Devices

RI-431: Unable to halt at a SW breakpoint on PIC18F/LFK22 and PIC18F/LFK90 using REALICE as a debugger.

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

RI-373: PIC18FxxJ devices only have one breakpoint/data capture. See "Number of Hardware Breakpoints Per Device".

RI-354: Using REAL ICE as a debugger for the PIC18F46J50 (of PIC18F46J11) the SPI Trace is not functioning as expected.

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

11.2.3 PIC24F/H Devices

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

        :       :       :

}

RI-412: PIC24FJ256DA210 Family: Data Memory not functional unless 96 MHz PLL is enabled. This is a silicon issue that is being worked on.

11.2.4 PIC32MX Devices

RI-409: For PIC32 devices, single stepping becomes very slow and apparently code runs if single stepping is started from within the middle of the instructions required to do a variable update.

RI-391: Performing Build All on some PIC32 devices will disable runtime watch for some of the array elements. This happens when array elements manually enabled for run time watch.

RI-350: Instructions in the trace window have incorrect addresses when compared with the actual memory contents for PIC32 devices

RI-348: [PIC32 Trace] PIC32 instruction trace does not match disassembly when instruction in branch delay slot is other than NOP.

12    Important Notes

·         When using real-time data capture trigger or Capture trace, standard communication can only provide a data rate of 15 MIPS. For speeds up to 40 MIPS, high-speed communication will be required, via the Performance Pak.

·         When using I/O Port trace, make sure multiplexed device port pins are set as I/O pins.

·         When adding/removing Capture or I/O Port trace points, you must rebuild the project (Build All) and reprogram the device. When switching the Build Configuration (Debug/Release), you must rebuild the project and 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.

·         If porting an existing project using MPLAB ICD 2 to the MPLAB REAL ICE emulator, 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.

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

12.2    16-Bit Devices

1.       RB0 and RB1 pins:
If the MPLAB REAL ICE emulator 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.

  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 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 REAL ICE emulator 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 ICE operation.

10.   SPLIM register:
When using the MPLAB REAL ICE emulator 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 REAL ICE emulator 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.3    32-Bit Devices

·         Instruction Trace:  When using the trace functionality ensure TROEN bit on DDPCON register is not modified in your code. Refer to the data sheet for more information.

13    Reserved Resources

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

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

14    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 is as follows:

Devices

Number of Breakpoints

PIC12F/16F/16F1xxx devices

1

PIC16F1xxx enhanced devices

3

PIC18F devices

1

PIC18F enhanced devices

3

PIC18FxxJ devices

3 or 5 (Note 1)

dsPIC30F devices

2

dsPIC33F/PIC24 devices

4

PIC32MX devices

6

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

15    Durability/Insertion Life Cycle of the Card Guide

The card guide is the part of the emulator pod where the communications board (either standard or high-speed) is inserted into the pod.

SAMTEC

Durability Summary Report

PART DESCRIPTION

MB1-130-01-S-S-02-A1-N

&

MB1-130-01-H-S-02-A1-N

( The “-H” 50u” thick Au Plating is currently non-standard.)

 

SCOPE: To perform the following tests: Durability up to 10,000 cycles.

For the complete report, see:

http://www.samtec.com/technical_specifications/test.asp?series=MB1&menu=STANDARD_PRODUCTS