Datasheet

© 2007 Microchip Technology Inc. DS41232D-page 147
PIC12F635/PIC16F636/639
12.15 In-Circuit Serial Programming
The PIC12F635/PIC16F636/639 microcontrollers can
be serially programmed while in the end application
circuit. This is simply done with two lines for clock and
data and three other lines for:
•Power
•Ground
Programming Voltage
This allows customers to manufacture boards with
unprogrammed devices and then program the
microcontroller just before shipping the product. This
also allows the most recent firmware or a custom
firmware to be programmed.
The device is placed into a Program/Verify mode by hold-
ing the RA0 and RA1 pins low, while raising the MCLR
(VPP) pin from VIL to VIHH. See the PIC12F6XX/16F6XX
Memory Programming Specification” (DS41204) for
more information. RA0 becomes the programming data
and RA1 becomes the programming clock. Both RA0
and RA1 are Schmitt Trigger inputs in this mode.
After Reset, to place the device into Program/Verify
mode, the Program Counter (PC) is at location 00h. A
6-bit command is then supplied to the device.
Depending on the command, 14 bits of program data
are then supplied to or from the device, depending on
whether the command was a load or a read. For
complete details of serial programming, please refer to
the PIC12F6XX/16F6XX Memory Programming
Specification (DS41204).
A typical In-Circuit Serial Programming connection is
shown in Figure 12-11.
FIGURE 12-11: TYPICAL IN-CIRCUIT
SERIAL PROGRAMMING
CONNECTION
12.16 In-Circuit Debugger
Since in-circuit debugging requires the loss of clock,
data and MCLR
pins, MPLAB
®
ICD 2 development with
a 14-pin device is not practical. A special 20-pin
PIC16F636 ICD device is used with MPLAB ICD 2 to
provide separate clock, data and MCLR
pins and frees
all normally available pins to the user.
Use of the ICD device requires the purchase of a
special header. On the top of the header is an
MPLAB ICD 2 connector. On the bottom of the
header is a 14-pin socket that plugs into the user’s
target via the 14-pin stand-off connector.
When the ICD
pin on the PIC16F636 ICD device is held
low, the In-Circuit Debugger functionality is enabled.
This function allows simple debugging functions when
used with MPLAB ICD 2. When the microcontroller has
this feature enabled, some of the resources are not
available for general use. Table 12-9 shows which
features are consumed by the background debugger:
TABLE 12-9: DEBUGGER RESOURCES
For more information, see the “MPLAB
®
ICD 2 In-Circuit
Debugger User’s Guide (DS51331), available on
Microchip’s web site (www.microchip.com).
FIGURE 12-12: 20-PIN ICD PINOUT
External
Connector
Signals
To Normal
Connections
To Normal
Connections
PIC16F636
V
DD
VSS
MCLR/VPP/RA3
RA1
RA0
+5V
0V
V
PP
CLK
Data I/O
* * *
*
*Isolation devices (as required).
Resource Description
I/O pins ICDCLK, ICDDATA
Stack 1 level
Program Memory Address 0h must be NOP
700h-7FFh
20-Pin PDIP
PIC16F636-ICD
In-Circuit Debug Device
NC
ICDMCLR
/VPP
VDD
RA5
RA4
RA3
ICDCLK
ICDDATA
V
SS
RA0
ICD
RA1
RA2
RC5
RC4
RC3
RC0
RC1
RC2
1
2
3
4
5
6
7
8
9
10
20
19
18
17
16
15
14
13
12
11
ENPORT