6.1 How Does it Work?

What's in the silicon that allows it to communicate with the MPLAB ICD 4 In-Circuit Debugger?

MPLAB ICD 4 In-Circuit Debugger can communicate with Flash silicon via the ICSP interface. It uses the debug executive located in test memory. For legacy 8-bit devices, the debug executive resides in Program memory.

How is the throughput of the processor affected by having to run the debug executive?

The debug executive doesn't run while in Run mode, so there is no throughput reduction when running your code, i.e., the debugger doesn’t ‘steal’ any cycles from the target device.

How does MPLAB X IDE interface with the MPLAB ICD 4 In-Circuit Debugger to allow more features than older debuggers?

MPLAB ICD 4 In-Circuit Debugger communicates using the debug executive located in the test area. The debug executive is streamlined for more efficient communication. The debugger contains an FPGA, large SRAM Buffers (1Mx8), and a High-Speed USB interface. Program memory image is downloaded and is contained in the SRAM to allow faster programming. The FPGA in the debugger serves as an accelerator for interfacing with the device in-circuit debugger modules.

On traditional debuggers, the data must come out on the bus in order to perform a complex trigger on that data. Is this also required on the MPLAB ICD 4 In-Circuit Debugger? For example, could I halt, based on a flag going high?

Traditional debuggers use a special debugger chip (-ME) for monitoring. There is no -ME with the MPLAB ICD 4 In-Circuit Debugger, so there are no busses to monitor externally. With the MPLAB ICD 4 In-Circuit Debugger, rather than using external breakpoints, the built-in breakpoint circuitry of the debug engine is used – the busses and breakpoint logic are monitored inside the part.

Does the MPLAB ICD 4 In-Circuit Debugger have complex breakpoints?

Yes. You can break based on a value in a data memory location. You can also do sequenced breakpoints, where several events have to occur before it breaks. However, you can only do two sequences. You can also do the AND condition and do PASS counts.

What limitations are there with the standard cable?

The standard ICSP-RJ11 cable maximum clock frequency is approximately 15 MHz. Device interrogation during debugging occurs at frequencies below this rate regardless of the CPU clock rate.

However, some advanced functions are synchronous to the CPU bus cycle (like instrumented trace and data capture).

During data capture and when the CPU runs at its highest speed (40 MIPS for example), the actual clock rate through the cable would exceed 15 MHz. In these instances, trace and data capture cannot run reliably and the ICSP-RJ11 cable cannot be used.

Will this slow down the running of the program?

There is no cycle stealing with the MPLAB ICD 4 In-Circuit Debugger. The output of data is performed by the state machine in the silicon.

Is it possible to debug a dsPIC DSC device running at any speed?

The MPLAB ICD 4 In-Circuit Debugger is capable of debugging at any device speed as specified in the device’s data sheet.