
2007-2012 Microchip Technology Inc.
DS39778E-page 69
PIC18F87J11 FAMILY
6.1.3
PIC18F8XJ11/8XJ16 PROGRAM
MEMORY MODES
The 80-pin devices in this family can address up to a
total of 2 Mbytes of program memory. This is achieved
through the External Memory Bus (EMB). There are two
distinct operating modes available to the controllers:
Microcontroller (MC)
Extended Microcontroller (EMC)
The program memory mode is determined by setting
the EMBx Configuration bits (CONFIG3L<5:4>), as
for additional details on the
device Configuration bits.)
The program memory modes operate as follows:
The Microcontroller Mode accesses only on-chip
Flash memory. Attempts to read above the top of
on-chip memory causes a read of all ‘0’s (a NOP
instruction).
The Microcontroller mode is also the only operating
mode available to 64-pin devices.
The Extended Microcontroller Mode allows
access to both internal and external program
memories as a single block. The device can
access its entire on-chip program memory; above
this, the device accesses external program
memory up to the 2-Mbyte program space limit.
Execution automatically switches between the
two memories as required.
The setting of the EMBx Configuration bits also con-
trols the address bus width of the External Memory
In all modes, the microcontroller has complete access
to data RAM.
Figure 6-3 compares the memory maps of the different
program memory modes. The differences between
on-chip and external memory access limitations are
REGISTER 6-1:
CONFIG3L: CONFIGURATION REGISTER 3 LOW
R/WO-1
U-0
—
bit 7
bit 0
Legend:
WO = Write-Once bit
R = Readable bit
W = Writable bit
U = Unimplemented bit, read as ‘0’
-n = Value at POR
‘1’ = Bit is set
‘0’ = Bit is cleared
x = Bit is unknown
bit 7
WAIT:
External Bus Wait Enable bit(1) 1
= Wait states on the external bus are disabled
0
= Wait states on the external bus are enabled and selected by MEMCON<5:4>
bit 6
BW:
Data Bus Width Select bit(1) 1
= 16-Bit Data Width modes
0
= 8-Bit Data Width modes
bit 5-4
EMB1:EMB0:
External Memory Bus Configuration bits(1) 11
= Microcontroller mode, external bus disabled
10
= Extended Microcontroller mode, 12-bit address width for external bus
01
= Extended Microcontroller mode, 16-bit address width for external bus
00
= Extended Microcontroller mode, 20-bit address width for external bus
bit 3
EASHFT:
External Address Bus Shift Enable bit(1) 1
= Address shifting is enabled – external address bus is shifted to start at 000000h
0
= Address shifting is disabled – external address bus reflects the PC value
bit 2-0
Unimplemented:
Read as ‘0’
Note 1:
These bits are implemented only on 80-pin devices.