
PIC16F946
DS41265A-page 210
Preliminary
2005 Microchip Technology Inc.
16.8
Code Protection
If
the
code
protection
bit(s)
have
not
been
programmed, the on-chip program memory can be
read out using ICSP for verification purposes.
16.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 mode.
Only the Least Significant 7 bits of the ID locations are
used.
16.10 In-Circuit Serial Programming
The PIC16F946 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
RB7/ICSPDAT/ICDDAT/SEG13
and
RB6/ICSPCLK/ICDCK/SEG14 pins low, while raising
the
MCLR
(VPP)
pin
from
VIL
to
VIHH.
See
“PIC16F91X/946 Memory Programming Specification”
(DS41244) for more information. RB7/ICSPDAT/ICD-
DAT/SEG13 becomes the programming data and
RB6/ICSPCLK/ICDCK/SEG14 becomes the program-
ming clock. Both RB7/ICSPDAT/ICDDAT/SEG13 and
RB6/ICSPCLK/ICDCK/SEG14 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
“PIC16F91X/946
Memory
Programming
Specification” (DS41244).
A typical In-Circuit Serial Programming connection is
FIGURE 16-11:
TYPICAL IN-CIRCUIT
SERIAL PROGRAMMING
CONNECTION
Note:
The entire data EEPROM and Flash
program memory will be erased when the
code protection is turned off. See the
“PIC16F91X/946 Memory Programming
Specification” (DS41244) for more infor-
mation.
External
Connector
Signals
To Normal
Connections
To Normal
Connections
PIC16F946
VDD
VSS
RE3/MCLR/VPP
RB6/ICSPCLK/
RB7/ICSPDATA/
+5V
0V
VPP
CLK
Data I/O
*
* Isolation devices (as required)
ICDCK/SEG14
ICDDAT/SEG13