PIC17C4X
7.1.1
TERMINATING LONG WRITES
7.1
Table Writes to Internal Memory
An interrupt source or reset are the only events that
terminate a long write operation. Terminating the long
write from an interrupt source requires that the inter-
rupt enable and flag bits are set. The GLINTD bit only
enables the vectoring to the interrupt address.
A table write operation to internal memory causes a
long write operation. The long write is necessary for
programming the internal EPROM. Instruction execu-
tion is halted while in a long write cycle. The long write
will be terminated by any enabled interrupt. To ensure
that the EPROM location has been well programmed,
a minimum programming time is required (see specifi-
cation #D114 ). Having only one interrupt enabled to
terminate the long write ensures that no unintentional
interrupts will prematurely terminate the long write.
If the T0CKI, RA0/INT, or TMR0 interrupt source is
used to terminate the long write; the interrupt flag, of
the highest priority enabled interrupt, will terminate the
long write and automatically be cleared.
The sequence of events for programming an internal
program memory location should be:
Note 1: If an interrupt is pending, the TABLWT is
aborted (an NOP is executed). The
highest priority pending interrupt, from
the T0CKI, RA0/INT, or TMR0 sources
that is enabled, has its flag cleared.
1. Disable all interrupt sources, except the source
to terminate EPROM program write.
2. Raise MCLR/VPP pin to the programming volt-
age.
Note 2: If the interrupt is not being used for the
program write timing, the interrupt
should be disabled. This will ensure that
the interrupt is not lost, nor will it termi-
nate the long write prematurely.
3. Clear the WDT.
4. Do the table write. The interrupt will terminate
the long write.
5. Verify the memory location (table read).
If a peripheral interrupt source is used to terminate the
long write, the interrupt enable and flag bits must be
set. The interrupt flag will not be automatically cleared
upon the vectoring to the interrupt vector address.
Note: Programming requirements must be met.
See timing specification in electrical spec-
ifications for the desired device. Violating
these specifications (including tempera-
ture) may result in EPROM locations that
are not fully programmed and may lose
their state over time.
If the GLINTD bit is cleared prior to the long write,
when the long write is terminated, the program will
branch to the interrupt vector.
If the GLINTD bit is set prior to the long write, when
the long write is terminated, the program will not vector
to the interrupt address.
TABLE 7-1:
INTERRUPT - TABLE WRITE INTERACTION
Interrupt
Source
Enable
Bit
Flag
Bit
GLINTD
Action
RA0/INT, TMR0,
T0CKI
0
1
1
Terminate long table write (to internal program
memory), branch to interrupt vector (branch clears
flag bit).
0
1
1
1
0
1
0
x
1
None
None
Terminate table write, do not branch to interrupt
vector (flag is automatically cleared).
Peripheral
0
0
1
1
1
1
0
1
1
0
x
1
Terminate table write, branch to interrupt vector.
None
None
Terminate table write, do not branch to interrupt
vector (flag is set).
1996 Microchip Technology Inc.
DS30412C-page 45