5

In a recent question on which PIC to use, one answer mentioned that a particular PIC had the feature that of debug hardware being built in, so that a special debug header was not needed. What is a debug header?

Anthony K
  • 153
  • 1
  • 5

2 Answers2

7

MPLAB ICD 3 In-Circuit Debugger

Header Specification

WHY DO I NEED A HEADER TO DEBUG?

Some PIC® microcontrollers, particularly low pin count devices (with 20 pins or less), generally must use a header for debugging. This is done to free up I/O lines for your application and to make production parts more affordable. Optional headers are also available for high pin count devices (with 64 pins or higher).

Debugging requires a two-line connection (plus VDD, VSS and VPP) to communicate with the device. In a high pin count device, losing a few I/O lines is generally not a problem for most designs. But in a low pin count device, it can be a critical problem. Imagine having to do an 8-pin design where there are only 5 I/Os, having used up 2 I/Os just for debugging!

Notes about Headers

Some 8-, 14- and 18-pin devices use small header boards with a special MCU for debugging. This special MCU has extra pins for MPLAB ICD 3 communication and therefore allows the use of all pins on the part for the application. The header board is not used or needed for programming. However, when debugging these devices the header must be used.

alt text

Figure 1

Figure 2

OIO
  • 643
  • 3
  • 6
1

I think it's the same as an ICD header.

Because on some low pin count chips the extra wires needed for debugging (two of them) can be significant compared to the total pin count of the chip, a bigger chip with more or less the same CPU core is produced for debugging alone.

For example here is a PIC header for a PIC16F648A.

alt text

It's bigger than the actual chip and has extra pins for debugging support. Note the -ICD suffix on the part number.

Thomas O
  • 31,546
  • 57
  • 182
  • 320