PIC16F8X
8.12.3
WAKE-UP USING INTERRUPTS
8.15
In-Circuit Serial Programming
When global interrupts are disabled (GIE cleared) and
any interrupt source has both its interrupt enable bit
and interrupt 铿俛g bit set, one of the following will occur:
鈥?If the interrupt occurs
before
the execution of a
SLEEP
instruction, the
SLEEP
instruction will com-
plete as a NOP. Therefore, the WDT and WDT
postscaler will not be cleared, the TO bit will not
be set and PD bits will not be cleared.
鈥?If the interrupt occurs
during or after
the execu-
tion of a
SLEEP
instruction, the device will immedi-
ately wake up from sleep. The
SLEEP
instruction
will be completely executed before the wake-up.
Therefore, the WDT and WDT postscaler will be
cleared, the TO bit will be set and the PD bit will
be cleared.
Even if the 铿俛g bits were checked before executing a
SLEEP
instruction, it may be possible for flag bits to
become set before the
SLEEP
instruction completes. To
determine whether a
SLEEP
instruction executed, test
the PD bit. If the PD bit is set, the
SLEEP
instruction was
executed as a NOP.
To ensure that the WDT is cleared, a
CLRWDT
instruc-
tion should be executed before a
SLEEP
instruction.
PIC16F8X
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, and the programming
voltage. Customers can manufacture boards with
unprogrammed devices, and then program the
microcontroller just before shipping the product,
allowing the most recent 铿乺mware or custom 铿乺mware
to be programmed.
The device is placed into a program/verify mode by
holding the RB6 and RB7 pins low, while raising the
MCLR pin from V
IL
to V
IHH
(see programming
speci铿乧ation). RB6 becomes the programming clock
and RB7 becomes the programming data. Both RB6
and RB7 are Schmitt Trigger inputs in this mode.
After reset, to place the device into programming/verify
mode, the program counter (PC) points to location 00h.
A 6-bit command is then supplied to the device, 14-bits
of program data is then supplied to or from the device,
using load or read-type instructions. For complete
details of serial programming, please refer to the
PIC16CXX Programming Speci铿乧ations (Literature
#DS30189).
8.13
Program Veri铿乧ation/Code Protection
If the code protection bit(s) have not been
programmed, the on-chip program memory can be
read out for veri铿乧ation purposes.
Note:
Microchip does not recommend code pro-
tecting widowed devices.
FIGURE 8-20: TYPICAL IN-SYSTEM SERIAL
PROGRAMMING
CONNECTION
To Normal
Connections
PIC16FXX
V
DD
V
SS
MCLR/V
PP
RB6
RB7
External
Connector
Signals
+5V
0V
V
PP
CLK
Data I/O
8.14
ID Locations
Four memory locations (2000h - 2003h) are designated
as ID locations to store checksum or other code
identi铿乧ation numbers. These locations are not
accessible during normal execution but are readable
and writable only during program/verify. Only the
4 least signi铿乧ant bits of ID location are usable.
For ROM devices, these values are submitted along
with the ROM code.
V
DD
To Normal
Connections
For ROM devices, both the program memory and Data
EEPROM memory may be read, but only the Data
EEPROM memory may be programmed.
DS30430C-page 52
漏
1998 Microchip Technology Inc.