English
Language : 

PIC16F676-I Datasheet, PDF (71/132 Pages) Microchip Technology – 14-Pin, Flash-Based 8-Bit CMOS Microcontrollers
9.8 Code Protection
If the code protection bit(s) have not been
programmed, the on-chip program memory can be
read out for verification purposes.
Note:
The entire data EEPROM and Flash
program memory will be erased when the
code protection is turned off. The INTOSC
calibration data is also erased. See
PIC16F630/676 Programming Specifica-
tion for more information.
9.9 ID Locations
Four memory locations (2000h-2003h) are designated
as ID locations where the user can store checksum or
other code identification numbers. These locations are
not accessible during normal execution but are
readable and writable during Program/Verify. Only the
Least Significant 7 bits of the ID locations are used.
9.10 In-Circuit Serial Programming
The PIC16F630/676 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 micro-
controller 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
holding the RA0 and RA1 pins low, while raising the
MCLR (VPP) pin from VIL to VIHH (see Programming
Specification). 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 Programming/Ver-
ify 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 PIC16F630/676 Programming Specification.
A typical In-Circuit Serial Programming connection is
shown in Figure 9-14.
PIC16F630/676
FIGURE 9-14:
TYPICAL IN-CIRCUIT
SERIAL PROGRAMMING
CONNECTION
External
Connector
Signals
+5V
0V
VPP
CLK
Data I/O
To Normal
Connections
PIC16F630/676
VDD
VSS
RA3/MCLR/VPP
RA1
RA0
VDD
To Normal
Connections
9.11 In-Circuit Debugger
Since in-circuit debugging requires the loss of clock,
data and MCLR pins, MPLAB® ICD 2 development with
an 14-pin device is not practical. A special 20-pin
PIC16F676-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.
This special ICD device is mounted on the top of the
header and its signals are routed to the MPLAB ICD 2
connector. On the bottom of the header is an 14-pin
socket that plugs into the user’s target via the 14-pin
stand-off connector.
When the ICD pin on the PIC16F676-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 9-10
shows which features are consumed by the
background debugger:
TABLE 9-10: DEBUGGER RESOURCES
I/O pins
Stack
Program Memory
ICDCLK, ICDDATA
1 level
Address 0h must be NOP
300h-3FEh
For more information, see 14-Pin MPLAB ICD 2
Header Information Sheet (DS51292) available on
Microchip’s web site (www.microchip.com).
 2010 Microchip Technology Inc.
DS40039F-page 71