Frequently Asked Questions

How do I connect the ICD-S/U to my PIC® MCU hardware?

The ICD-S/U has a RJ-12 connector with a RJ-12 cable to connect to target devices. To add a RJ-12 connection to your hardware, use the pin-out below:

ICD to Target Connections

ICD-S/U to Target Connections
ICD Target Pin Description
1 6 Pin B3 on target PIC® MCU or PIC® DSC - C Aware Real-Time Debugging (Optional)
2 5 Pin B6 on target PIC® MCU or PIC® DSC - ICSP™ Clock
3 4 Pin B7 on target PIC® MCU or PIC® DSC - ICSP™ Data
4 3 Ground (GND)
5 2 Power (VDD)
  • The ICD-S is powered by this pin at +3.3V or +5.0V.
  • The ICD-U uses this pin to pull-up signals and power the target PIC® MCU or PIC® DSC if the proper jumpers are set.
6 1 MCLR
  • Connect to target PIC® MCU or PIC® DSC and pull up to +5.0V on target board with a 47K resistor. The ICD-S/U will drive this pin with +13V during programming, or +5.0V while programming a PIC18J® MCU, PIC24® MCU, or dsPIC® DSC. No capacitor should be used on MCLR or it will cause programming problems with the ICD-S/U.
  • For an ICD-S to function properly, it requires +3.3V or +5.0V of power and at least 50mA. If the ICD-S cannot draw power from the target device, the connection between pin 5 on the ICD-S and pin 2 on the target device can be cut, and the ICD-S can be powered with an external power supply. This same technique can be used to supply voltage to the target board as well as the ICD-S.

  • Unlike the ICD-S, the ICD-U draws its power directly from the USB port. However, the connection between pin 5 on the ICD-U and pin 2 on the target device should be left intact. One reason for this is because the ICD-U uses this connection to pull up voltage values. Another reason is because the ICD-U is capable of supplying +3.3V or +5.0V to the target board. This can be done by opening the case of the ICD-U and placing a jumper on the correct jumper pins next to the ICD connector.

Target ICD Circuit Schematic

Target ICD Circuit Schematic

  • In order to use in-circuit programming and debugging, the I/O pins B6 and B7 are reserved on the PIC® MCU or PIC® DSC. If debugging is not going to be used on the target device, pins B6 and B7 can be used in the target circuit. If pins B6 and B7 are used in the target circuit, ensure the circuit has high impedance during the programming process. However, some PIC® MCUs or PIC® DSCs do not use pins B6 and B7 for programming and debugging. Always check the datasheet to find the proper programming and debugging pins. The table below lists some of the PIC® MCUs that use different programming pins.
Programming/Debugging Pins
PIC® MCU Clock Pin Data Pin
PIC12F629 GP1 GP0
PIC12F675 GP1 GP0
PIC12F683 GP1 GP0
PIC16F630 RA1 RA0
PIC16F676 RA1 RA0
PIC16F684 RA1 RA0
PIC16F688 RA1 RA0
  • Pin B3 is an optional pin connected to the ICD-S/U that allows use of the monitor feature while debugging. If pin B3 is used in the target circuit or is not connected to the ICD-S/U, the target can still be programmed and debugged, except without use of the monitor feature. When debugging, disabling the userstream feature will ignore the connection between pin 1 on the ICD-S/U and pin 6 on the target device. Older versions of the debugger software require that if the monitor is not used, the pin connection on the ICD connector needs to be pulled high at all times. While pin B3 is recommended for the monitor feature, any pin on a PIC® MCU or PIC® DSC can support this feature.

  • The MCLR pin is used for both programming and debugging. While programming, the MCLR pin will have +13V supplied to it, or +5.0V while programming a PIC18J® MCU, PIC24® MCU, or dsPIC® DSC. The 47K resistor to +5.0V is sufficient isolation to protect the PIC® MCU or PIC® DSC from the +13V. However, if anything else is connected to the MCLR pin, be sure the +13V will not damage or interfere with the connected device.

  • The ICD-S/U is not capable of programming using the Low Voltage Programming mode. Programs being written to the target devices should have the NOLVP fuse set.

  • If using the ICD-S/U to debug a target device, the target device needs to have an active oscillator running. If the ICD-S/U is only being used to program a target device, the ICD-S/U generates a clock signal that is used to program the PIC® MCU or PIC® DSC without the need of a running oscillator.

  • Some PIC® MCUs are not capable of debugging with the standard version of the part. In order to debug, a specific ICD version of the chip will be needed. The table below lists some of the PIC® MCUs that require ICD Headers.
ICD Debugging Headers
PIC® MCU PIC® MCU-ICD
PIC10F200/2/4/6 PIC16F505-ICD
PIC10F220/2 PIC16F506-ICD
PIC12F508/509 PIC16F505-ICD
PIC12F510 PIC16F506-ICD
PIC12F519 PIC16F526-ICD
PIC12F609/HV609 PIC16F616-ICD
PIC12F615/HV615 PIC16F616-ICD
PIC12F629 PIC12F675-ICD
PIC12F635 PIC16F636-ICD
PIC12F675 PIC12F675-ICD
PIC12F683 PIC12F683-ICD
PIC16F505 PIC16F505-ICD
PIC16F506 PIC16F506-ICD
PIC16F526 PIC16F526-ICD
PIC16F610/HV610 PIC16F616-ICD
PIC16F616/HV616 PIC16F616-ICD
PIC16F627A/628A PIC16F648A-ICD
PIC16F630 PIC16F676-ICD
PIC16F631 PIC16F690-ICD
PIC16F636 PIC16F636-ICD
PIC16F639 PIC16F636-ICD
PIC16F648A PIC16F648A-ICD
PIC16F676 PIC16F676-ICD
PIC16F677 PIC16F690-ICD
PIC16F684 PIC16F684-ICD
PIC16F685/687 PIC16F690-ICD
PIC16F688 PIC16F688-ICD
PIC16F689/690 PIC16F690-ICD
PIC16F716 PIC16F716-ICD
PIC16F785/HV785 PIC16F785-ICD
PIC18F13K50 PIC18F14K50-ICE
PIC18F14K50 PIC18F14K50-ICE
PIC18LF13K50 PIC18LF14K50-ICE
PIC18LF14K50 PIC18LF14K50-ICE

For additional help connecting the ICD-S/U to your hardware, contact CCS Technical Support.


C-Aware IDE Demo
Embedded C Learners Kit
C Workshop Compiler