电子工程世界电子工程世界电子工程世界

型号

产品描述

搜索
 

PIC184XK50

器件型号:PIC184XK50
文件大小:6077.43KB,共0页
厂商名称:MICROCHIP [Microchip Technology]
厂商官网:http://www.microchip.com/
下载文档

PIC184XK50器件文档内容

                                    PIC18(L)F2X/4XK50

               Flash Memory Programming Specification

1.0 DEVICE OVERVIEW

This document includes the programming                         Note 1: The High-Voltage ICSP mode is always
specifications for the following devices:                                  available, regardless of the state of the
                                                                           LVP bit, by applying VIHH to the MCLR/
PIC18F24K50   PIC18LF24K50                                              VPP/RE3 pin.
PIC18F25K50   PIC18LF25K50
PIC18F26K50   PIC18LF26K50                                         2: While in Low-Voltage ICSP mode, MCLR
PIC18F45K50   PIC18LF45K50                                              is always enabled, regardless of the
PIC18F46K50   PIC18LF46K50                                              MCLRE bit, and the RE3 pin can no
                                                                           longer be used as a general purpose
2.0 PROGRAMMING OVERVIEW                                                   input.

The PIC18(L)F2X/4XK50 devices can be programmed            2.2 Dedicated ICSP/ICD Port (44-Pin
using either the high-voltage In-Circuit Serial                     TQFP Only)
ProgrammingTM (ICSPTM) method or the low-voltage
ICSP method. Both methods can be done with the             The PIC18F45K50/46K50 44-pin TQFP devices are
device in the users' system. The low-voltage ICSP          designed to support an alternate programming input:
method is slightly different than the high-voltage         the dedicated ICSP/ICD port. The primary purpose of
method and these differences are noted where               this port is to provide an alternate In-Circuit Debugging
applicable. This programming specification applies to      (ICD) option and free the pins (RB6, RB7 and MCLR)
the PIC18(L)F2X/4XK50 devices in all package types.        that would normally be used for debugging the
                                                           application. In conjunction with ICD capability,
2.1 Hardware Requirements                                  however, the dedicated ICSP/ICD port also provides an
                                                           alternate port for ICSP. Setting the ICPRT
In High-Voltage ICSP mode, the PIC18(L)F2X/4XK50           Configuration bit enables the dedicated ICSP/ICD port.
devices require two programmable power supplies:           The dedicated ICSP/ICD port functions the same as
one for VDD and one for MCLR/VPP/RE3. Both supplies        the default ICSP/ICD port; however, alternate pins are
should have a minimum resolution of 0.25V. Refer to        used instead. Table 2-2 identifies the functionally
Section 6.0 "AC/DC Characteristics Timing                  equivalent pins for ICSP purposes: The dedicated
Requirements for Program/Verify Test Mode" for             ICSP/ICD port is an alternate port. Thus, ICSP is still
additional information.                                    available through the default port even though the
                                                           ICPRT Configuration bit is set.

2.1.1  LOW-VOLTAGE ICSP
       PROGRAMMING
                                                           Note:  The ICPRT Configuration bit can only be
                                                                  programmed through the default ICSP port.
In Low-Voltage ICSP mode, the PIC18(L)F2X/4XK50                   By default the ICPORT Configuration bit is
devices can be programmed using a single VDD source               enabled. When the ICPRT Configuration bit
in the operating range. The MCLR/VPP/RE3 does not                 is cleared (dedicated ICSP/ICD port is
have to be brought to a different voltage, but can                disabled), the ICDPORTS pin should be
instead be left at the normal operating voltage. Refer to         tied to either VDD or VSS on 44 TQFP
Section 2.7 "Entering and Exiting Low-Voltage                     packages only. The ICPRT Configuration
ICSP Program/Verify Mode" for additional hardware                 bit must be maintained clear for all 28-pin
parameters.                                                       and 40-pin devices; otherwise, unexpected
                                                                  operation may occur.

2012 Microchip Technology Inc.                                   DS41630B-page 1
PIC18(L)F2X/4XK50

2.2.1 ICPORT DISABLED                                      2.3 Pin Diagrams

Clearing the ICPRT bit in CONFIG4L disables the use        The pin diagrams for the PIC18(L)F2X/4XK50 family
of the dedicated port function and leaves the dedicated    are shown in Figures 2-1 through 2-4.
pins floating. High-voltage and low-voltage
programming are performed using the MCLR/VPP,
PGC and PGD pins as normal. This is otherwise known
as the legacy interface mode, using the standard
interface pins.

2.2.2 ICPORT ENABLED

Setting the ICPRT bit in CONFIG4L enables the use of
the dedicated port function through the dedicated pins.
This is the default setting for the ICPRT bit upon start-
up or Reset. When using devices in packages other
than the 44-pin TQFP, the ICPRT bit must be cleared.

The standard interface pins will remain operational,
even after the dedicated pins are enabled, unless the
user assigns another function to them in firmware. If
another function is not assigned to the standard pins
and both sets of pins remain operable for program-
ming, whichever high-voltage entry pin (the standard
VPP pin or the dedicated ICDVPP pin) is activated first
will take priority.

For high-voltage programming, if high-voltage is
detected on the ICDVPP pin first, the standard MCLR/
VPP pin will be ignored and programming must be
performed using the ICDPGC and ICDPGD pins. If
high-voltage is detected on the MCLR/VPP pin first, the
dedicated ICDVPP pin will be ignored and programming
must be performed using the PGC and PGD pins.
These same rules apply to the low-voltage
programming sequence.

TABLE 2-1: PIN DESCRIPTIONS (DURING PROGRAMMING): PIC18(L)F2X/4XK50

                                                           During Programming

     Pin Name

                  Pin                     Pin Type                       Pin Description

MCLR/VPP/RE3      VPP                     P                Programming Enable
VDD(1)
VSS(1)            VDD                     P                Power Supply

                  VSS                     P                Ground

RB6               PGC                     I                Serial Clock

RB7               PGD                     I/O              Serial Data
ICDRST/ICDVPP(2)  VPP
                                          P                Programming Enable

ICDCLK/ICDPGC     PGC                     I                Serial Clock
ICDDAT/ICDPGD(2)  PGD
                                          I/O              Serial Data

Legend: I = Input, O = Output, P = Power

Note 1: All power supply (VDD) and ground (VSS) pins must be connected.

     2: Dedicated ICSP/ICD Port available on 44-pin TQFP only when the ICPRT bit in CONFIG4L is enabled.

DS41630B-page 2                                                                 2012 Microchip Technology Inc.
                                                          PIC18(L)F2X/4XK50

FIGURE 2-1:       28-PIN SDIP, SSOP AND SOIC PIN DIAGRAMS

SDIP, SSOP, SOIC

                 MCLR/VPP/RE3         1                   28                  RB7/PGD

                  RA0                 2                   27                  RB6/PGC

                  RA1                 3                   26                  RB5

                  RA2                 4                   25                  RB4

                  RA3                 5      PIC18F2XK50  24                  RB3

                  RA4                 6                   23                  RB2

                  RA5                 7                   22                  RB1

                  VSS                 8                   21                  RB0

                  RA7                 9                   20                  VDD

                  RA6                 10                  19                  VSS

                  RC0                 11                  18                  RC7

                  RC1                 12                  17                  RC6

                  RC2                 13                  16                  RC5

                  VUSB3V3             14                  15                  RC4

Note:  The following devices are included in 28-pin SDIP, SSOP and SOIC parts: PIC18F24K50, PIC18LF24K50,
       PIC18F25K50, PIC18LF25K50, PIC18F26K50, PIC18LF26K50.

FIGURE 2-2:       28-PIN QFN PIN DIAGRAMS
     28-Pin QFN
                                             RA1
                                                RA0
                                                     MCLR/VPP/RE3
                                                         RB7/PGD
                                                             RB6/PGC
                                                                 RB5
                                                                     RB4

                                             28 27 26 25 24 23 22

                                 RA2      1                               21  RB3

                                 RA3      2                               20  RB2

                                 RA4      3 PIC18F2XK50 19                    RB1
                                 RA5      4                               18  RB0

                                 VSS      5                               17  VDD

                                 RA7      6                               16  VSS

                                 RA6      7                               15  RC7

                                             8 9 10 11 12 13 14

                                             RC0
                                                RC1
                                                    RC2
                                                        VUSB3V3
                                                            RC4
                                                                RC5
                                                                    RC6

Note 1: The following devices are included in 28-pin QFN parts: PIC18F24K50, PIC18LF24K50, PIC18F25K50,
              PIC18LF25K50, PIC18F26K50, PIC18LF26K50.

2012 Microchip Technology Inc.                                                        DS41630B-page 3
PIC18(L)F2X/4XK50

FIGURE 2-3:      40-PIN PDIP PIN DIAGRAMS

40-PIN PDIP (600 MIL)

                 MCLR/VPP/RE3            1                                              40       RB7/PGD

                       RA0               2                                              39       RB6/PGC

                       RA1               3                                              38       RB5

                       RA2               4                                              37       RB4

                       RA3               5                                              36       RB3

                       RA4               6                                              35       RB2

                       RA5               7                   PIC18F4XK50                34       RB1

                       RE0               8                                              33       RB0

                       RE1               9                                              32       VDD

                       RE2               10                                             31       VSS

                       VDD               11                                             30       RD7

                       VSS               12                                             29       RD6

                       RA7               13                                             28       RD5

                       RA6               14                                             27       RD4

                       RC0               15                                             26       RC7

                       RC1               16                                             25       RC6

                       RC2               17                                             24       RC5

                       VUSB3V3           18                                             23       RC4

                       RD0               19                                             22       RD3

                       RD1               20                                             21       RD2

Note:  The following devices are included in 40-pin PDIP parts: PIC18F45K50, PIC18LF45K50, PIC18F46K50,
       PIC18LF46K50.

FIGURE 2-4:      40-PIN UQFN PIN DIAGRAM

40-PIN UQFN                                                               VUSB3V3

                                    RC6  RC5  RC4  RD3  RD2  RD1  RD0              RC2  RC1

                                    40   39   38  37    36   35   34      33       32   31

                       RC7      1                                                            30  RC0

                       RD4      2                                                            29  RA6

                       RD5      3                                                            28  RA7

                       RD6      4                                                            27  VSS

                       RD7      5 PIC18(L)F4XK50 26                                              VDD

                       VSS      6                                                            25  RE2

                       VDD      7                                                            24  RE1

                       RB0      8                                                            23  RE0

                       RB1      9                                                            22  RA5

                       RB2      10                                                           21  RA4

                                                                 20
                                                              19

                                                          18

                                                       17
                                                    16
                                                15
                                             14
                                          13

                                       12
                                    11

                                   RB3
                                      RB4
                                          RB5
                                            RB6/PGC
                                                RB7/PGD
                                                   MCLR/VPP/RE3
                                                       RA0
                                                          RA1
                                                             RA2
                                                                RA3

       Note:     The following devices are included in 40-pin UQFN parts: PIC18F45K50, PIC18LF45K50,
                 PIC18F46K50, PIC18LF46K50.

DS41630B-page 4                                                                                            2012 Microchip Technology Inc.
                                                                                                                                    PIC18(L)F2X/4XK50

FIGURE 2-5:     44-PIN TQFP PIN DIAGRAM

44-PIN TQFP(1)                                                                                              VUSB3V3

                                    RC6               RC5  RC4           RD3  RD2      RD1    RD0                    RC2  RC1  NC

                                 1  44              43  42            41  40  39              38  37        36       35     34      ICDRST/ICDVPP(2)
                RC7                                                                                                            33   RC0
                RD4                                                                                                                 RA6
                RD5              2                                                                                             32   RA7
                RD6                                                                                                                 VSS
                                 3                                                                                             31   VDD
                RD7
                VSS              4                                                                                             30   RE2
                VDD                                                                                                                 RE1
                                 5                    PIC18F4XK50                                                              29   RE0
                RB0              6                                                                                             28   RA5
                RB1                                                                                                                 RA4
                RB2              7                                                                                             27
                RB3
                                 8                                                                                             26

                                 9                                                                                             25

                                 10                                                                                            24
                                                                                                                               23
                                 11 12              13  14            15  16  17              18  19                 20   2122

                                    ICDCLK/ICDPGC(2)ICDDAT/ICDPGD(2)RB4  RB5  RB6/PGCRB7/PGD  MCLR/VPP/RE3  RA0      RA1  RA2  RA3

Note 1: The following devices are included in 44-pin TQFP parts: PIC18F45K50, PIC18LF45K50,
            PIC18F46K50, PIC18LF46K50.

       2: These pins are NC (No Connect) for all devices listed above with the exception of the
            PIC18F45K50 and the PIC18F46K50 devices (see Section 2.2 "Dedicated ICSP/ICD Port
            (44-Pin TQFP Only)" for more information on programming these pins in these devices).

2012 Microchip Technology Inc.                                                                                                                       DS41630B-page 5
PIC18(L)F2X/4XK50

2.4 Memory Maps                                           TABLE 2-2: IMPLEMENTATION OF CODE
                                                                               MEMORY
For PIC18(L)F24K50 devices, the code memory space
extends from 000000h to 003FFFh (16 Kbytes) in two        Device         Code Memory Size (Bytes)
4-Kbyte blocks. Addresses 000000h through 0007FFh,
however, define a "Boot Block" region that is treated     PIC18F24K50    000000h-003FFFh (16K)
separately from Block 0. All of these blocks define code  PIC18LF24K50
protection boundaries within the code memory space.

FIGURE 2-6:      MEMORY MAP AND THE CODE MEMORY SPACE FOR PIC18(L)F24K50
                 DEVICES

000000h                                                   MEMORY SIZE/DEVICE

                Code Memory
01FFFFh

                 Unimplemented                            16 Kbytes       Address
                    Read as `0'                           Boot Block       Range
                                                                         000000h
                                                            Block 0      0007FFh
                                                            Block 1      000800h

                                                                         001FFFh
                                                                         002000h

                                                                         003FFFh

200000h

                 Configuration                            Unimplemented
                     and ID                                   Read `0's
                     Space

3FFFFFh                                                                  01FFFFh
Note: Sizes of memory areas not to scale.

DS41630B-page 6                                                           2012 Microchip Technology Inc.
                                                          PIC18(L)F2X/4XK50

For PIC18(L)FX5K50 devices, the code memory space         TABLE 2-3: IMPLEMENTATION OF CODE
extends from 000000h to 007FFFh (32 Kbytes) in four                            MEMORY
8-Kbyte blocks. Addresses 000000h through 0007FFh,
however, define a "Boot Block" region that is treated     Device         Code Memory Size (Bytes)
separately from Block 0. All of these blocks define code
protection boundaries within the code memory space.       PIC18F25K50
                                                          PIC18LF25K50
                                                          PIC18F45K50    000000h-007FFFh (32K)
                                                          PIC18LF45K50

FIGURE 2-7:  MEMORY MAP AND THE CODE MEMORY SPACE FOR PIC18(L)FX5K50
             DEVICES

000000h                                                   MEMORY SIZE/DEVICE

                Code Memory
01FFFFh

               Unimplemented                              32 Kbytes       Address
                  Read as `0'                             Boot Block       Range
                                                                         000000h
200000h                                                     Block 0      0007FFh
                                                            Block 1      000800h
                                                            Block 2
                                                            Block 3      001FFFh
                                                                         002000h

                                                                         003FFFh
                                                                         004000h

                                                                         005FFFh
                                                                         006000h

                                                                         007FFFh

             Configuration                                Unimplemented
                 and ID                                       Read `0's
                 Space

                                                                         01FFFFh

3FFFFFh
Note: Sizes of memory areas not to scale.

2012 Microchip Technology Inc.                                                    DS41630B-page 7
PIC18(L)F2X/4XK50

For PIC18(L)FX6K50 devices, the code memory space       TABLE 2-4: IMPLEMENTATION OF CODE
extends from 000000h to 00FFFFh (64 Kbytes) in four                          MEMORY
16-Kbyte blocks. Addresses 000000h through
0007FFh, however, define a "Boot Block" region that is  Device         Code Memory Size (Bytes)
treated separately from Block 0. All of these blocks
define code protection boundaries within the code       PIC18F26K50    000000h-00FFFFh (64K)
memory space.                                           PIC18LF26K50
                                                        PIC18F46K50
                                                        PIC18LF46K50

FIGURE 2-8:      MEMORY MAP AND THE CODE MEMORY SPACE FOR PIC18(L)FX6K50
                 DEVICES

000000h                                                 MEMORY SIZE/DEVICE

                Code Memory
01FFFFh

               Unimplemented                            64 Kbytes       Address
                  Read as `0'                           Boot Block       Range
                                                                       000000h
200000h                                                   Block 0      0007FFh
                                                          Block 1      000800h
                                                          Block 2
                                                          Block 3      003FFFh
                                                                       004000h

                                                                       007FFFh
                                                                       008000h

                                                                       00BFFFh
                                                                       00C000h

                                                                       0FFFFh

                 Configuration                          Unimplemented
                     and ID                                 Read `0's
                     Space

                                                                       01FFFFh

3FFFFFh
Note: Sizes of memory areas not to scale.

DS41630B-page 8                                                         2012 Microchip Technology Inc.
                                                           PIC18(L)F2X/4XK50

In addition to the code memory space, there are three      2.4.1 MEMORY ADDRESS POINTER
blocks in the configuration and ID space that are
accessible to the user through table reads and table       Memory in the address space, 0000000h to 3FFFFFh,
writes. Their locations in the memory map are shown in     is addressed via the Table Pointer register, which is
Figure 2-9.                                                comprised of three Pointer registers:

Users may store identification information (ID) in eight    TBLPTRU, at RAM address 0FF8h
ID registers. These ID registers are mapped in             TBLPTRH, at RAM address 0FF7h
addresses 200000h through 200007h. The ID locations         TBLPTRL, at RAM address 0FF6h
read out normally, even after code protection is applied.
                                                           TBLPTRU      TBLPTRH        TBLPTRL
Locations 300000h through 30000Dh are reserved for         Addr[21:16]  Addr[15:8]     Addr[7:0]
the Configuration bits. These bits select various device
options and are described in Section 5.0 "Configura-       The 4-bit command, `0000' (core instruction), is used to
tion Word". These Configuration bits read out              load the Table Pointer prior to using any read or write
normally, even after code protection.                      operations.

Locations 3FFFFEh and 3FFFFFh are reserved for the
device ID bits. These bits may be used by the
programmer to identify what device type is being
programmed and are described in Section 5.0
"Configuration Word". These device ID bits read out
normally, even after code protection.

FIGURE 2-9:  CONFIGURATION AND ID LOCATIONS FOR PIC18(L)F2X/4XK50 DEVICES

000000h      Code Memory
01FFFFh
                                                                        ID Location 1  200000h
             Unimplemented                                              ID Location 2  200001h
                Read as `0'                                             ID Location 3  200002h
                                                                        ID Location 4  200003h
                                                                        ID Location 5  200004h
                                                                        ID Location 6  200005h
                                                                        ID Location 7  200006h
                                                                        ID Location 8  200007h

1FFFFFh                                                                 CONFIG1L       300000h
                                                                        CONFIG1H       300001h
                 Configuration                                          CONFIG2L       300002h
                      and ID                                            CONFIG2H       300003h
                      Space                                             CONFIG3L       300004h
                                                                        CONFIG3H       300005h
2FFFFFh                                                                 CONFIG4L       300006h
                                                                        CONFIG4H       300007h
                                                                        CONFIG5L       300008h
                                                                        CONFIG5H       300009h
                                                                        CONFIG6L       30000Ah
                                                                        CONFIG6H       30000Bh
                                                                        CONFIG7L       30000Ch
                                                                        CONFIG7H       30000Dh

                                                                        Device ID1     3FFFFEh
                                                                        Device ID2     3FFFFFh

3FFFFFh
Note: Sizes of memory areas are not to scale.

2012 Microchip Technology Inc.                                                        DS41630B-page 9
PIC18(L)F2X/4XK50

2.5 High-Level Overview of the                           2.6 Entering and Exiting High-Voltage
         Programming Process                                      ICSP Program/Verify Mode

Figure 2-10 shows the high-level overview of the         As shown in Figure 2-11, the High-Voltage ICSP
programming process. First, a Bulk Erase is performed.   Program/Verify mode is entered by holding PGC and
Next, the code memory, ID locations and data             PGD low and then raising MCLR/VPP/RE3 to VIHH
EEPROM are programmed. These memories are then           (high voltage). Once in this mode, the code memory,
verified to ensure that programming was successful. If   data EEPROM, ID locations and Configuration bits can
no errors are detected, the Configuration bits are then  be accessed and programmed in serial fashion.
programmed and verified.                                 Figure 2-12 shows the exit sequence.

FIGURE 2-10:      HIGH-LEVEL                             The sequence that enters the device into the Program/
                  PROGRAMMING FLOW                       Verify mode places all unused I/Os in the high-impedance
                                                         state.

                  Start                                  FIGURE 2-11:  ENTERING HIGH-VOLTAGE
                                                                       PROGRAM/VERIFY MODE

                  Perform Bulk                                         P13                  P12
                      Erase

                  Program Memory                                                   P1
                                                               D110

                                                         MCLR/VPP/RE3

                  Program IDs                            VDD

                                                         PGD

                  Program Data EE

                                                         PGC

                                                                       PGD = Input

                  Verify Program

                                                         FIGURE 2-12:  EXITING HIGH-VOLTAGE
                                                                       PROGRAM/VERIFY MODE
                  Verify IDs

                                                                                       P16       P17

                      Verify Data                                                        P1
                                                         MCLR/VPP/RE3
                        Program                          D110
                  Configuration Bits
                                                         VDD
                          Verify
                  Configuration Bits                     PGD

                          Done                           PGC

                                                                       PGD = Input

DS41630B-page 10                                                        2012 Microchip Technology Inc.
                                                                 PIC18(L)F2X/4XK50

2.7 Entering and Exiting Low-Voltage                             Once the key sequence is complete, VIH must be
         ICSP Program/Verify Mode                                applied to MCLR and held at that level for as long as
                                                                 Program/Verify mode is to be maintained. An interval of
As shown in Figure 2-13, entering ICSP Program/                  at least time P20 and P15 must elapse before present-
Verify mode requires three steps:                                ing data on PGD. Signals appearing on PGD before
                                                                 P15 has elapsed may not be interpreted as valid.
1. Voltage is briefly applied to the MCLR pin.
2. A 32-bit key sequence is presented on PGD.                    On successful entry, the program memory can be
3. Voltage is reapplied to MCLR.                                 accessed and programmed in serial fashion. While in
                                                                 the Program/Verify mode, all unused I/Os are placed in
The programming voltage applied to MCLR is VIH, or               the high-impedance state.
usually, VDD. There is no minimum time requirement for
holding at VIH. After VIH is removed, an interval of at          Exiting Program/Verify mode is done by removing VIH
least P18 must elapse before presenting the key                  from MCLR, as shown in Figure 2-14. The only
sequence on PGD.                                                 requirement for exit is that an interval, P16, should
                                                                 elapse between the last clock and the program signals
The key sequence is a specific 32-bit pattern,                   on PGC and PGD before removing VIH.
`0100 1101 0100 0011 0100 1000 0101 0000'
(more easily remembered as 4D434850h in hexa-                    When VIH is reapplied to MCLR, the device will enter
decimal). The device will enter Program/Verify mode              the ordinary operational mode and begin executing the
only if the sequence is valid. The Most Significant bit of       application instructions.
the Most Significant nibble must be shifted in first.

FIGURE 2-13:  ENTERING LOW-VOLTAGE PROGRAM/VERIFY MODE

        MCLR  P13                                                                      P20 P15

                                      VIH                                         VIH

VDD                                        Program/Verify Entry Code = 4D434850h
PGD
PGC                                   0 1 0 0 1 ... 0 0 0 0

                                      b31 b30 b29 b28 b27        b3 b2 b1 b0

                                 P18                        P2B

                                                            P2A

FIGURE 2-14:  EXITING LOW-VOLTAGE
              PROGRAM/VERIFY MODE
       MCLR
                     P16
                                 VIH

VDD                VIH
PGD           PGD = Input
PGC

2012 Microchip Technology Inc.                                                        DS41630B-page 11
PIC18(L)F2X/4XK50

2.8 Serial Program/Verify Operation                             2.8.2 CORE INSTRUCTION

The PGC pin is used as a clock input pin and the PGD            The core instruction passes a 16-bit instruction to the
pin is used for entering command bits and data input/           CPU core for execution. This is needed to set up
output during serial operation. Commands and data are           registers as appropriate for use with other commands.
transmitted on the rising edge of PGC, latched on the
falling edge of PGC and are Least Significant bit (LSb)         TABLE 2-5: COMMANDS FOR               4-Bit
first.                                                                               PROGRAMMING  Command

2.8.1 4-BIT COMMANDS                                                              Description        0000

All instructions are 20 bits, consisting of a leading 4-bit     Core Instruction                     0010
command followed by a 16-bit operand, which depends             (Shift in 16-bit instruction)        1000
on the type of command being executed. To input a               Shift out TABLAT register            1001
command, PGC is cycled four times. The commands                 Table Read                           1010
needed for programming and verification are shown in            Table Read, post-increment           1011
Table 2-5.                                                      Table Read, post-decrement           1100
                                                                Table Read, pre-increment            1101
Depending on the 4-bit command, the 16-bit operand              Table Write                          1110
represents 16 bits of input data or 8 bits of input data        Table Write, post-increment by 2
and 8 bits of output data.                                      Table Write, start programming,      1111
                                                                post-increment by 2
Throughout this specification, commands and data are            Table Write, start programming
presented as illustrated in Table 2-6. The 4-bit
command is shown Most Significant bit (MSb) first. The          TABLE 2-6: SAMPLE COMMAND
command operand, or "Data Payload", is shown                                         SEQUENCE
. Figure 2-15 demonstrates how to
serially present a 20-bit command/operand to the
device.

                                                                4-Bit             Data  Core Instruction

                                                                Command Payload

                                                                1101              3C 40 Table Write,
                                                                                               post-increment by 2

FIGURE 2-15:      TABLE WRITE, POST-INCREMENT TIMING DIAGRAM (1101)

              P2             P2A

              1234           P2B                                                             1234
                                 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

PGC                          P5                                                         P5A
PGD
                  P4

     P3

              1011                0 00 000 10 001 1110 0                                     nnnn

                                  0                          4  C                       3
                                                                                                     Fetch Next 4-bit Command
              4-bit Command                                  16-bit Data Payload

                                     PGD = Input

DS41630B-page 12                                                                         2012 Microchip Technology Inc.
                                                           PIC18(L)F2X/4XK50

3.0 DEVICE PROGRAMMING                                     The code sequence to erase the entire device is shown
                                                           in Table 3-2 and the flowchart is shown in Figure 3-1.
Programming includes the ability to erase or write the
various memory regions within the device.                  Note:  A Bulk Erase is the only way to reprogram
                                                                  code-protect bits from an "on" state to an
In all cases, except high-voltage ICSP Bulk Erase, the            "off" state.
EECON1 register must be configured in order to
operate on a particular memory region.                     TABLE 3-2: BULK ERASE COMMAND
                                                                                SEQUENCE
When using the EECON1 register to act on code
memory, the EEPGD bit must be set (EECON1<7> = 1)          4-Bit        Data         Core Instruction
and the CFGS bit must be cleared (EECON1<6> = 0).
The WREN bit must be set (EECON1<2> = 1) to                Command Payload
enable writes of any sort (e.g., erases) and this must be
done prior to initiating a write sequence. The FREE bit    0000         0E 3C MOVLW 3Ch
must be set (EECON1<4> = 1) in order to erase the
program space being pointed to by the Table Pointer.       0000         6E F8 MOVWF TBLPTRU
The erase or write sequence is initiated by setting the
WR bit (EECON1<1> = 1). It is strongly recommended         0000         0E 00 MOVLW 00h
that the WREN bit only be set immediately prior to a
program or erase.                                          0000         6E F7 MOVWF TBLPTRH

                                                           0000         0E 05 MOVLW 05h

                                                           0000         6E F6 MOVWF TBLPTRL

3.1 ICSP Erase                                             1100         0F 0F Write 0Fh to 3C0005h

3.1.1 HIGH-VOLTAGE ICSP BULK ERASE                         0000         0E 3C MOVLW 3Ch

Erasing code or data EEPROM is accomplished by             0000         6E F8 MOVWF TBLPTRU
configuring two Bulk Erase Control registers located at
3C0004h and 3C0005h. Code memory may be erased             0000         0E 00 MOVLW 00h
portions at a time, or the user may erase the entire
device in one action. Bulk Erase operations will also      0000         6E F7 MOVWF TBLPTRH
clear any code-protect settings associated with the
memory block erased. Erase options are detailed in         0000         0E 04 MOVLW 04h
Table 3-1. When any one or more blocks of code space
are code protected, then all code blocks will be erased    0000         6E F6 MOVWF TBLPTRL
by default. If data EEPROM is code-protected
(CPD = 0), the user must request an erase of data          1100         8F 8F  Write 8F8Fh TO 3C0004h
EEPROM (e.g., 0084h as shown in Table 3-1).                0000         00 00  to erase entire device.

                                                                               NOP

                                                           0000         00 00 Hold PGD low until erase
                                                                                     completes.

TABLE 3-1: BULK ERASE OPTIONS

Description                                Data            FIGURE 3-1:         BULK ERASE FLOW
                                 (3C0005h:3C0004h)
                                                                               Start

Chip Erase                       0F8Fh                                  Write 0F0Fh
Erase User ID                    0088h                                  to 3C0005h
Erase Data EEPROM                0084h

Erase Boot Block                 0081h                                    Write 8F8Fh to
Erase Config Bits                0082h                                  3C0004h to Erase
Erase Code EEPROM Block 0        0180h
Erase Code EEPROM Block 1        0280h                                     Entire Device
Erase Code EEPROM Block 2        0480h
Erase Code EEPROM Block 3        0880h                                  Delay P11 + P10
                                                                                Time
The actual Bulk Erase function is a self-timed
operation. Once the erase has started (falling edge of                         Done
the 4th PGC after the NOP command), serial execution
will cease until the erase completes (parameter P11).
During this time, PGC may continue to toggle but PGD
must be held low.

2012 Microchip Technology Inc.                                                           DS41630B-page 13
PIC18(L)F2X/4XK50

FIGURE 3-2:            BULK ERASE TIMING DIAGRAM

     12 3 4                12  15 16          1234               12  15 16          1234                        P10
                                                                                                                       12
PGC
                                                                                              P11
                       P5                P5A                 P5                P5A

PGD 0 0 1 1                11 00              00 00              00 00              0000                       nn
        4-bit Command
                               16-bit         4-bit Command           16-bit   4-bit Command  Erase Time       16-bit
                           Data Payload                          Data Payload                             Data Payload

                                              PGD = Input

3.1.2 LOW-VOLTAGE ICSP BULK ERASE                                    3.1.3 ICSP ROW ERASE

When using low-voltage ICSP, the part must be                        Regardless of whether high or low-voltage ICSP is
supplied by the voltage specified in parameter D111 if a             used, it is possible to erase one row (64 bytes of data),
Bulk Erase is to be executed. All other Bulk Erase                   provided the block is not code or write-protected. Rows
details apply as described above.                                    are located at static boundaries beginning at program
                                                                     memory address 000000h, extending to the internal
If it is determined that a program memory erase must                 program memory limit (see Section 2.4 "Memory
be performed at a supply voltage below the Bulk Erase                Maps").
limit, refer to the erase methodology described in
Section 3.1.3 "ICSP Row Erase" and Section 3.2.1                     The Row Erase duration is self-timed. After the WR bit
"Modifying Code Memory".                                             in EECON1 is set, two NOPs are issued. Erase starts
                                                                     upon the 4th PGC of the second NOP. It ends when the
If it is determined that a data EEPROM erase must be                 WR bit is cleared by hardware.
performed at a supply voltage below the Bulk Erase
limit, follow the methodology described in Section 3.3               The code sequence to Row Erase is shown in Table 3-3.
"Data EEPROM Programming" and write `1's to the                      The flowchart shown in Figure 3-3 depicts the logic
array.                                                               necessary to completely erase the device. The timing
                                                                     diagram for Row Erase is identical to the data EEPROM
                                                                     write timing shown in Figure 3-7.

                                                                        Note: The TBLPTR register can point at any
                                                                                    byte within the row intended for erase.

DS41630B-page 14                                                                               2012 Microchip Technology Inc.
                                                              PIC18(L)F2X/4XK50

TABLE 3-3: ERASE CODE MEMORY CODE SEQUENCE

    4-bit  Data Payload                                       Core Instruction
Command

Step 1: Direct access to code memory and enable writes.

0000                     8E A6      BSF EECON1, EEPGD
0000                     9C A6      BCF EECON1, CFGS
0000                     84 A6      BSF EECON1, WREN

Step 2: Point to first row in code memory.

0000                     6A F8      CLRF         TBLPTRU
0000                     6A F7      CLRF         TBLPTRH
0000                     6A F6      CLRF         TBLPTRL

Step 3: Enable erase and erase single row.

0000                     88 A6      BSF EECON1, FREE
0000                     82 A6      BSF EECON1, WR
0000                     00 00      NOP
0000                     00 00      NOP Erase starts on the 4th clock of this instruction

Step 4: Poll WR bit. Repeat until bit is clear.

0000            50 A6               MOVF EECON1, W, 0
0000            6E F5
0000            00 00               MOVWF TABLAT
0010      
                                    NOP
                                    Shift out data(1)

Step 5: Hold PGC low for time P10.

Step 6: Repeat Step 3 with Address Pointer incremented by 64 until all rows are erased.

Step 7: Disable writes.

0000                     94 A6      BCF EECON1, WREN

Note 1: See Figure 4-4 for details on shift out data timing.

2012 Microchip Technology Inc.                                                          DS41630B-page 15
PIC18(L)F2X/4XK50

FIGURE 3-3:       SINGLE ROW ERASE CODE MEMORY FLOW

                                                                                   Start

                                                                                        Addr = 0
                                                                               Configure
                                                                               Device for
                                                                              Row Erases

                                        Perform Erase
                                           Sequence

                  Addr = Addr + 64

                                        WR Bit                                                    No

                                        Clear?

                                        Yes

                                    No    All
                                        Rows

                                        done?

                                            Yes
                                        Done

DS41630B-page 16                                                                                       2012 Microchip Technology Inc.
                                                                   PIC18(L)F2X/4XK50

3.2 Code Memory Programming                                        After PGC is brought low, the programming sequence
                                                                   is terminated. PGC must be held low for the time
Programming code memory is accomplished by first                   specified by parameter P10 to allow high-voltage
loading data into the write buffer and then initiating a           discharge of the memory array.
programming sequence. The write and erase buffer
sizes shown in Table 3-4 can be mapped to any                      The code sequence to program a device is shown in
location of the same size beginning at 000000h. The                Table 3-5. The flowchart shown in Figure 3-4 depicts
actual memory write sequence takes the contents of                 the logic necessary to completely write the device. The
this buffer and programs the proper amount of code                 timing diagram that details the Start Programming
memory that contains the Table Pointer.                            command and parameters P9 and P10 is shown in
                                                                   Figure 3-5.
The programming duration is externally timed and is
controlled by PGC. After a Start Programming                       Note:  The TBLPTR register must point to the
command is issued (4-bit command, `1111'), a NOP is                       same region when initiating the
issued, where the 4th PGC is held high for the duration                   programming sequence as it did when the
of the programming time, P9.                                              write buffers were loaded.

TABLE 3-4:    WRITE AND ERASE BUFFER SIZES

PIC18F24K50                     Devices                                  Write Buffer Size  Erase Size
PIC18F25K50                                                                     (bytes)       (bytes)
PIC18F26K50  PIC18F45K50              PIC18LF24K50       PIC18LF45K50
              PIC18F46K50              PIC18LF25K50       PIC18LF46K50              64            64
                                       PIC18LF26K50

TABLE 3-5: WRITE CODE MEMORY CODE SEQUENCE

    4-bit     Data Payload                                           Core Instruction
Command

Step 1: Direct access to code memory.

0000          8E A6              BSF EECON1, EEPGD
0000          9C A6              BCF EECON1, CFGS
0000          84 A6              BSF EECON1, WREN

Step 2: Point to row to write.

0000          0E    MOVLW
0000                 6E F8       MOVWF TBLPTRU
0000                             MOVLW
0000          0E     MOVWF TBLPTRH
0000                 6E F7       MOVLW
0000                             MOVWF TBLPTRL
               0E
                     6E F6

Step 3: Load write buffer. Repeat for all but the last two bytes.

1101          Write 2 bytes and post-increment address by 2.

Step 4: Load write buffer for last two bytes and start programming.

1111          Write 2 bytes and start programming.
0000
              00 00              NOP - hold PGC high for time P9 and low for time P10.

To continue writing data, repeat Steps 2 through 4, where the Address Pointer is incremented by two at each iteration
of the loop.

2012 Microchip Technology Inc.                                                              DS41630B-page 17
PIC18(L)F2X/4XK50

FIGURE 3-4:       PROGRAM CODE MEMORY FLOW

                                                                                          Start

                                                                                               N=1
                                                                                               LoopCount = 0

                                                                                       Configure
                                                                                      Device for

                                                                                         Writes

                                                          N=N+1               Load 2 Bytes

                                                                                 to Write
                                                                            Buffer at

                                                                 No          All
                                                                            bytes

                                                                            written?

                                                 N=1                                       Yes

                                            LoopCount =                     Start Write Sequence
                                           LoopCount + 1                        and Hold PGC
                                                                                High until Done
                                                                                  and Wait P9

                                                                            Hold PGC Low
                                                                             for Time P10

                                                                        No  All

                                                                            locations

                                                                            done?

                                                                            Yes

                                                                            Done

FIGURE 3-5:       TABLE WRITE AND START PROGRAMMING INSTRUCTION
                  TIMING DIAGRAM (1111)

                                                                                                                             P10

     12 34                                 1 2 34 56             15 16      123                                           4       123

PGC                                                                                                                P9(1)
                                       P5                               P5A

PGD  1111                                  nn nn nn              nn         0000                                                     000
     4-bit Command
                                           16-bit Data Payload              4-bit Command Programming Time                             16-bit
                                                               PGD = Input                                                        Data Payload

Note 1: Use P9A for User ID and Configuration Word programming.

DS41630B-page 18                                                                                               2012 Microchip Technology Inc.
                                                                         PIC18(L)F2X/4XK50

3.2.1 MODIFYING CODE MEMORY                                        The appropriate number of bytes required for the erase
                                                                   buffer must be read out of code memory (as described
The previous programming example assumed that the                  in Section 4.2 "Verify Code Memory and ID
device has been Bulk Erased prior to programming                   Locations") and buffered. Modifications can be made
(see Section 3.1.1 "High-Voltage ICSP Bulk Erase").                on this buffer. Then, the block of code memory that was
It may be the case, however, that the user wishes to               read out must be erased and rewritten with the
modify only a section of an already programmed                     modified data.
device.
                                                                   The WREN bit must be set if the WR bit in EECON1 is
                                                                   used to initiate a write sequence.

TABLE 3-6: MODIFYING CODE MEMORY

    4-bit                Data Payload                                     Core Instruction
Command

Step 1: Direct access to code memory.

0000                     8E A6                   BSF EECON1, EEPGD
0000                     9C A6                   BCF EECON1, CFGS

Step 2: Read code memory into buffer (Section 4.1 "Read Code Memory, ID Locations and Configuration Bits").

Step 3: Set the Table Pointer for the block to be erased.

0000                     0E         MOVLW     
0000                            6E F8            MOVWF     TBLPTRU
0000                                             MOVLW     
0000                     0E          MOVWF     TBLPTRH
0000                            6E F7            MOVLW     
0000                                             MOVWF     TBLPTRL
                          0E
                                6E F6

Step 4: Enable memory writes and setup an erase.

0000                     84 A6                   BSF EECON1, WREN
0000                     88 A6                   BSF EECON1, FREE

Step 5: Initiate erase.

0000                     88 A6                   BSF       EECON1, FREE
0000                     82 A6
0000                     00 00                   BSF       EECON1, WR
0000                     00 00
                                                 NOP

                                                 NOP       Erase starts on the 4th clock of this instruction

Step 6: Poll WR bit. Repeat until bit is clear.

0000                          50 A6              MOVF EECON1, W, 0
0000                          6E F5
0000                          00 00              MOVWF TABLAT
0000                                   NOP
                                                 Shift out data(1)

Step 7: Load write buffer. The correct bytes will be selected based on the Table Pointer.

0000                     0E         MOVLW
0000                            6E F8            MOVWF TBLPTRU
0000                                             MOVLW
0000                     0E          MOVWF TBLPTRH
0000                            6E F7            MOVLW
0000                                             MOVWF TBLPTRL
1101                      0E          Write 2 bytes and post-increment address by 2.
                                6E F6
                                                Repeat as many times as necessary to fill the write buffer
                                      Write 2 bytes and start programming.
                                               NOP - hold PGC high for time P9 and low for time P10.
1111                                
0000                                

                           
                                 00 00

To continue modifying data, repeat Steps 2 through 6, where the Address Pointer is incremented by the appropriate number of bytes
(see Table 3-4) at each iteration of the loop. The write cycle must be repeated enough times to completely rewrite the contents of the
erase buffer.

Step 8: Disable writes.

0000                     94 A6                   BCF EECON1, WREN

2012 Microchip Technology Inc.                                                             DS41630B-page 19
PIC18(L)F2X/4XK50                                                FIGURE 3-6:        PROGRAM DATA FLOW

3.3 Data EEPROM Programming                                                              Start
                                                                                     Set Address
Data EEPROM is accessed one byte at a time via an                                     Set Data
Address Pointer (register pair EEADRH:EEADR) and a
data latch (EEDATA). Data EEPROM is written by                                      Enable Write
loading EEADRH:EEADR with the desired memory
location, EEDATA, with the data to be written and initi-                            Start Write
ating a memory write by appropriately configuring the                               Sequence
EECON1 register. A byte write automatically erases the
location and writes the new data (erase-before-write).                              WR bit            No

When using the EECON1 register to perform a data                                    clear?
EEPROM write, both the EEPGD and CFGS bits must
be cleared (EECON1<7:6> = 00). The WREN bit must                                                Yes
be set (EECON1<2> = 1) to enable writes of any sort
and this must be done prior to initiating a write                             No    done?
sequence. The write sequence is initiated by setting the
WR bit (EECON1<1> = 1).                                                                 Yes

The write begins on the falling edge of the 24th PGC                                    Done
after the WR bit is set. It ends when the WR bit is
cleared by hardware.

After the programming sequence terminates, PGC
must be held low for the time specified by parameter
P10 to allow high-voltage discharge of the memory
array.

FIGURE 3-7:       DATA EEPROM WRITE TIMING DIAGRAM

     12 3 4            1 2 15 16                                                                          P10
                                                                                                                12
PGC
                                                                                                                 nn
                  P5                   P5A                  P5A               P11A                          16-bit Data

PGD 0 0 0 0                                 2 NOP commands           Poll WR bit, Repeat until Clear          Payload
         4-bit Command BSF EECON1, WR                                            (see below)

                                                PGD = Input

                       12 34                12  15 16          1234       12      15 16
                                                                                           P5A
                  PGC

                                       P5                 P5A         P5

Poll WR bit

                  PGD  0000                                    0000

                       4-bit Command MOVF EECON1, W, 0 4-bit Command      MOVWF TABLAT                 Shift Out Data
                                                                                                      (see Figure 4-4)
                                                PGD = Input
                                                                                                      PGD = Output

DS41630B-page 20                                                                     2012 Microchip Technology Inc.
                                                              PIC18(L)F2X/4XK50

TABLE 3-7:    PROGRAMMING DATA MEMORY                         Core Instruction
                   Data Payload
       4-bit
   Command

Step 1: Direct access to data EEPROM.

0000                     9E A6         BCF EECON1, EEPGD
0000                     9C A6         BCF EECON1, CFGS

Step 2: Set the data EEPROM Address Pointer.

0000                      0E     MOVLW
0000                         6E A9     MOVWF EEADR
0000                                   MOVLW
0000                     OE     MOVWF EEADRH
                             6E AA

Step 3: Load the data to be written.

0000                     0E      MOVLW
0000                        6E A8      MOVWF EEDATA

Step 4: Enable memory writes.

0000                     84 A6         BSF EECON1, WREN

Step 5: Initiate write.

0000                     82 A6         BSF EECON1, WR
0000                     00 00         NOP
0000                     00 00         NOP ;write starts on 4th clock of this instruction

Step 6: Poll WR bit, repeat until the bit is clear.

0000                          50 A6    MOVF EECON1, W, 0
0000                          6E F5
0000                          00 00    MOVWF TABLAT
0010                     
                                       NOP
                                       Shift out data(1)

Step 7: Hold PGC low for time P10.

Step 8: Disable writes.

0000                     94 A6         BCF EECON1, WREN

Repeat steps 2 through 8 to write more data.

Note 1: See Figure 4-4 for details on shift out data timing.

2012 Microchip Technology Inc.                                                 DS41630B-page 21
PIC18(L)F2X/4XK50

3.4 ID Location Programming                           In order to modify the ID locations, refer to the
                                                      methodology described in Section 3.2.1 "Modifying
The ID locations are programmed much like the code    Code Memory". As with code memory, the ID
memory. The ID registers are mapped in addresses      locations must be erased before being modified.
200000h through 200007h. These locations read out
normally even after code protection.                  When VDD is below the minimum for Bulk Erase
                                                      operation, ID locations can be cleared with the Row
Note:  The user only needs to fill the first 8 bytes  Erase method described in Section 3.1.3 "ICSP Row
       of the write buffer in order to write the ID   Erase".
       locations.

Table 3-8 demonstrates the code sequence required to
write the ID locations.

TABLE 3-8: WRITE ID SEQUENCE

    4-bit         Data Payload                            Core Instruction
Command

Step 1: Direct access to code memory.

0000              8E A6                BSF EECON1, EEPGD
0000              9C A6                BCF EECON1, CFGS
0000              84 A6                BSF EECON1, WREN

Step 2: Set Table Pointer to ID. Load write buffer with 8 bytes and write.

0000                   0E 20           MOVLW 20h
0000                   6E F8           MOVWF TBLPTRU
0000                   0E 00           MOVLW 00h
0000                   6E F7           MOVWF TBLPTRH
0000                   0E 00           MOVLW 00h
0000                   6E F6           MOVWF TBLPTRL
1101                         Write 2 bytes and post-increment address by 2.
1101                         Write 2 bytes and post-increment address by 2.
1101                         Write 2 bytes and post-increment address by 2.
1111                         Write 2 bytes and start programming.
0000                   00 00           NOP - hold PGC high for time P9 and low for time P10.

DS41630B-page 22                                                             2012 Microchip Technology Inc.
                                                            PIC18(L)F2X/4XK50

3.5 Boot Block Programming                                 3.6 Configuration Bits Programming

The code sequence detailed in Table 3-5 should be          Unlike code memory, the Configuration bits are
used, except that the address used in "Step 2" will be in  programmed a byte at a time. The Table Write, Begin
the range of 000000h to 0007FFh.                           Programming 4-bit command (`1111') is used, but only
                                                           8 bits of the following 16-bit payload will be written. The
                                                           LSB of the payload will be written to even addresses
                                                           and the MSB will be written to odd addresses. The
                                                           code sequence to program two consecutive configura-
                                                           tion locations is shown in Table 3-9. See Figure 3-5 for
                                                           the timing diagram.

                                                            Note:  The address must be explicitly written for
                                                                   each byte programmed. The addresses
                                                                   cannot be incremented in this mode.

TABLE 3-9: SET ADDRESS POINTER TO CONFIGURATION LOCATION

    4-bit    Data Payload                                   Core Instruction
Command

Step 1: Direct access to config memory.

0000         8E A6                       BSF EECON1, EEPGD

0000         8C A6                       BSF EECON1, CFGS

0000         84 A6                       BSF EECON1, WREN

Step 2(1): Set Table Pointer for config byte to be written. Write even/odd addresses.

0000         0E 30                       MOVLW 30h
0000
0000         6E F8                       MOVWF TBLPTRU
0000
0000         0E 00                       MOVLW 00h
0000
1111         6E F7                       MOVWF TBLPRTH
0000
0000         0E 00                       MOVLW 00h
0000
1111         6E F6                       MOVWF TBLPTRL
0000
             Load 2 bytes and start programming.

             00 00                       NOP - hold PGC high for time P9 and low for time P10.

             0E 01                       MOVLW 01h

             6E F6                       MOVWF TBLPTRL

             Load 2 bytes and start programming.

             00 00                       NOP - hold PGC high for time P9A and low for time P10.

Note 1: Enabling the write protection of Configuration bits (WRTC = 0 in CONFIG6H) will prevent further writing of
              Configuration bits. Always write all the Configuration bits before enabling the write protection for
              Configuration bits.

FIGURE 3-8:  CONFIGURATION PROGRAMMING FLOW

             Start                                                 Start

              Load Even                                              Load Odd

             Configuration                                         Configuration
                Address                                               Address

                   Program                                               Program
                      LSB                                                  MSB

             Delay P9 and P10                                      Delay P9 and P10
               Time for Write                                        Time for Write

                      Done                                                  Done

2012 Microchip Technology Inc.                                                        DS41630B-page 23
PIC18(L)F2X/4XK50

4.0 READING THE DEVICE                                       input to an output. During this time, PGC must be held
                                                             low (see Figure 4-1). This operation also increments
4.1 Read Code Memory, ID Locations                           the Table Pointer by one, pointing to the next byte in
         and Configuration Bits                              code memory for the next read.

Code memory is accessed one byte at a time via the           This technique will work to read any memory in the
4-bit command, `1001' (table read, post-increment).          000000h to 3FFFFFh address space, so it also applies
The contents of memory pointed to by the Table Pointer       to the reading of the ID and Configuration registers.
(TBLPTRU:TBLPTRH:TBLPTRL) are serially output on
PGD.                                                         Note:  When table read protection is enabled, the
                                                                    first read access to a protected block
The 4-bit command is shifted in LSb first. The read is              should be discarded and the read
executed during the next 8 clocks, then shifted out on              repeated to retrieve valid data.
PGD during the last 8 clocks, LSb to MSb. A delay of                Subsequent reads of the same block can
P6 must be introduced after the falling edge of the 8th             be performed normally.
PGC of the operand to allow PGD to transition from an

TABLE 4-1: READ CODE MEMORY SEQUENCE

    4-bit         Data Payload                                    Core Instruction
Command

Step 1: Set Table Pointer.

0000              0E        MOVLW Addr[21:16]
0000                     6E F8           MOVWF TBLPTRU
0000                                     MOVLW
0000              0E         MOVWF TBLPTRH
0000                     6E F7           MOVLW
0000                                     MOVWF TBLPTRL
                   0E
                         6E F6

Step 2: Read memory and then shift out on PGD, LSb to MSb.

1001              00 00                  TBLRD *+

FIGURE 4-1:       TABLE READ POST-INCREMENT INSTRUCTION TIMING DIAGRAM (1001)

           1234                 12 3 45 6 78                 9 10 11 12 13 14 15 16            12 34

PGC                         P5                           P6                           P5A
PGD
                                                             P14

             1001                                            LSb 1 2 3 4 5 6             (Note 1)
                                                                                      MSb n n n n

                            PGD = Input                               Shift Data Out           Fetch Next 4-bit Command
                                                                    PGD = Output                   PGD = Input

Note 1: Magnification of the high-impedance delay between PGC and PGD is shown in Figure 4-6.

DS41630B-page 24                                                                       2012 Microchip Technology Inc.
                                                       PIC18(L)F2X/4XK50

4.2 Verify Code Memory and ID                          The Table Pointer must be manually set to 200000h
         Locations                                     (base address of the ID locations) once the code
                                                       memory has been verified. The post-increment feature
The verify step involves reading back the code memory  of the table read 4-bit command cannot be used to
space and comparing it against the copy held in the    increment the Table Pointer beyond the code memory
programmer's buffer. Memory reads occur a single byte  space. In a 64-Kbyte device, for example, a post-
at a time, so two bytes must be read to compare        increment read of address FFFFh will wrap the Table
against the word in the programmer's buffer. Refer to  Pointer back to 000000h, rather than point to
Section 4.1 "Read Code Memory, ID Locations and        unimplemented address 010000h.
Configuration Bits" for implementation details of
reading code memory.

FIGURE 4-2:  VERIFY CODE MEMORY FLOW

             Start

             Set TBLPTR = 0                                           Set TBLPTR = 200000h

                Read Low Byte                          Increment         Read Low Byte
             with Post-increment                        Pointer       with Post-Increment

               Read High Byte                                           Read High byte
             with Post-increment                                      with Post-Increment

                   Does           No Failure,                               Does            Failure,
             Word = Expect                Report                      Word = Expect No      Report
                                           Error                                            Error
                   data?                                                    data?

                        Yes                                                      Yes

                    All                                               All
             code memory
No                                                                No  ID locations

             verified?                                                verified?

             Yes                                                          Yes
                                                                      Done

2012 Microchip Technology Inc.                                                             DS41630B-page 25
PIC18(L)F2X/4XK50

4.3 Verify Configuration Bits                                      FIGURE 4-3:      READ DATA EEPROM
                                                                                    FLOW
A configuration address may be read and output on
PGD via the 4-bit command, `1001'. Configuration data                                    Start
is read and written in a byte-wise fashion, so it is not
necessary to merge two bytes into a word prior to a                                       Set
compare. The result may then be immediately                                           Address
compared to the appropriate configuration data in the
programmer's memory for verification. Refer to                                          Read
Section 4.1 "Read Code Memory, ID Locations and                                          Byte
Configuration Bits" for implementation details of
reading configuration data.                                                         Move to TABLAT

4.4 Read Data EEPROM Memory                                                         Shift Out Data

Data EEPROM is accessed one byte at a time via an                               No   done?
Address Pointer (register pair EEADRH:EEADR) and a
data latch (EEDATA). Data EEPROM is read by loading                                     Yes
EEADRH:EEADR with the desired memory location                                        Done
and initiating a memory read by appropriately configur-
ing the EECON1 register. The data will be loaded into
EEDATA, where it may be serially output on PGD via
the 4-bit command, `0010' (Shift Out Data Holding
register). A delay of P6 must be introduced after the
falling edge of the 8th PGC of the operand to allow
PGD to transition from an input to an output. During this
time, PGC must be held low (see Figure 4-4).

The command sequence to read a single byte of data
is shown in Table 4-2.

TABLE 4-2: READ DATA EEPROM MEMORY

    4-bit         Data Payload                                     Core Instruction
Command

Step 1: Direct access to data EEPROM.

0000              9E A6                BCF EECON1, EEPGD
0000              9C A6                BCF EECON1, CFGS

Step 2: Set the data EEPROM Address Pointer.

0000               0E            MOVLW              
0000                  6E A9            MOVWF              EEADR
0000                                   MOVLW              
0000              OE            MOVWF              EEADRH
                      6E AA

Step 3: Initiate a memory read.

0000              80 A6                BSF EECON1, RD

Step 4: Load data into the Serial Data Holding register.

0000                   50 A8           MOVF EEDATA, W, 0
0000                   6E F5
0000                   00 00           MOVWF TABLAT
0010              
                                       NOP
                                       Shift Out Data(1)

Note 1: The is undefined. The is the data.

DS41630B-page 26                                                                     2012 Microchip Technology Inc.
                                                                PIC18(L)F2X/4XK50

FIGURE 4-4:   SHIFT OUT DATA HOLDING REGISTER TIMING DIAGRAM (0010)

                                                                                                    (Note 1)

     1234         12 3 45 6 78                             9 10 11 12 13 14 15 16                        1 234

PGC

              P5                                       P6                                           P5A

                                                           P14

PGD  0100                                                  LSb 1 2 3 4 5 6                              (Note 1)
                                                                                                    MSb n n n n

              PGD = Input                                         Shift Data Out                    Fetch Next 4-bit Command
                                                                PGD = Output                                PGD = Input

     Note 1: Magnification of the High-Impedance delay between PGC and PGD is shown in Figure 4-5.

FIGURE 4-5:   HIGH-IMPEDANCE DELAY                         4.6 Blank Check
       PGC
                                 P3                        The term "Blank Check" means to verify that the device
                                                           has no programmed memory cells. All memories must
              1                      2                     be verified: code memory, data EEPROM, ID locations
                                                           and Configuration bits. The device ID registers
     PGD MSb      n                     n                  (3FFFFEh:3FFFFFh) should be ignored.

                  P19                                      A "blank" or "erased" memory cell will read as a `1'.
                                                           Therefore, Blank Checking a device merely means to
4.5 Verify Data EEPROM                                     verify that all bytes read as FFh except the Configura-
                                                           tion bits. Unused (reserved) Configuration bits will read
A data EEPROM address may be read via a sequence           `0' (programmed). Refer to Table 5-1 for blank configu-
of core instructions (4-bit command, `0000') and then      ration expect data for the various PIC18(L)F2X/4XK50
output on PGD via the 4-bit command, `0010' (TABLAT        devices.
register). The result may then be immediately
compared to the appropriate data in the programmer's       Given that Blank Checking is merely code and data
memory for verification. Refer to Section 4.4 "Read        EEPROM verification with FFh expect data, refer to
Data EEPROM Memory" for implementation details of          Section 4.4 "Read Data EEPROM Memory" and
reading data EEPROM.                                       Section 4.2 "Verify Code Memory and ID Locations"
                                                           for implementation details.

                                                           FIGURE 4-6:                              BLANK CHECK FLOW

                                                                        Start

                                                                Blank Check Device

                                                                           Is                            Yes
                                                                        device                                       Continue
                                                                        blank?

                                                                              No

                                                                        Abort

2012 Microchip Technology Inc.                                                                               DS41630B-page 27
PIC18(L)F2X/4XK50

5.0 CONFIGURATION WORD                                       5.2 Device ID Word

The PIC18(L)F2X/4XK50 devices have several                   The device ID word for the PIC18(L)F2X/4XK50
Configuration Words. These bits can be set or cleared        devices is located at 3FFFFEh:3FFFFFh. These bits
to select various device configurations. All other mem-      may be used by the programmer to identify what device
ory areas should be programmed and verified prior to         type is being programmed and read out normally, even
setting Configuration Words. These bits may be read          after code or read protection. See Table 5-2 for a
out normally, even after read or code protection. See        complete list of device ID values.
Table 5-1 for a list of Configuration bits and device IDs,
and Table 5-3 for the Configuration bit descriptions.        FIGURE 5-1:         READ DEVICE ID WORD
                                                                                 FLOW
5.1 User ID Locations
                                                                                    Start
A user may store identification information (ID) in eight
ID locations mapped in 200000h:200007h. It is                                Set TBLPTR = 3FFFFE
recommended that the Most Significant nibble of each
ID be Fh. In doing so, if the user code inadvertently tries                     Read Low Byte
to execute from the ID space, the ID data will execute                       with Post-Increment
as a NOP.

                                                                               Read High Byte
                                                                             with Post-Increment

                                                                                      Done

TABLE 5-1: CONFIGURATION BITS AND DEVICE IDs

File Name          Bit 7 Bit 6   Bit 5  Bit 4                Bit 3   Bit 2   Bit 1    Bit 0            Default/
                                                                                                  Unprogrammed

                                                                                                         Value

300000h CONFIG1L --       --     USBLSDIV CPUDIV1 CPUDIV0            --      PLLEN(3) PLLMULT(3) --00 0-00

300001h CONFIG1H IESO FCMEN PCLKEN      --                   FOSC3 FOSC2 FOSC1        FOSC0       001- 0101

300002h CONFIG2L -- LPBOR        --     BORV1 BORV0 BOREN1 BOREN0 PWRTEN -1-1 1111

300003h CONFIG2H --       --     WDTPS3 WDTPS2 WDTPS1 WDTPS0 WDTEN1 WDTEN0 --11 1111

300005h CONFIG3H MCLRE SDOMX     --     T3CMX                --      --      PBADEN CCP2MX        11-1 --11

300006h CONFIG4L DEBUG XINST     ICPRT  --                   --      LVP     --       STVREN      101- -1-1
                                    --
300008h CONFIG5L --       --            --                   CP3(1)  CP2(1)  CP1      CP0         ---- 1111

300009h CONFIG5H CPD CPB         --     --                   --      --      --       --          11-- ----

30000Ah CONFIG6L --       --     --     --                   WRT3(1) WRT2(1) WRT1     WRT0        ---- 1111

30000Bh CONFIG6H WRTD WRTB       WRTC   --                   --      --      --       --          111- ----
                                    --
30000Ch CONFIG7L --       --            --                   EBTR3(1) EBTR2(1) EBTR1  EBTR0       ---- 1111

30000Dh CONFIG7H      --  EBTRB    --     --                   --      --      --       --        -1-- ----
3FFFFEh DEVID1(2)  DEV2    DEV1  DEV0   REV4                 REV3    REV2    REV1     REV0        See Table 5-2
3FFFFFh DEVID2(2)  DEV10   DEV9  DEV8   DEV7                 DEV6    DEV5    DEV4     DEV3        See Table 5-2

Legend:       x = unknown, u = unchanged, = unimplemented. Shaded cells are unimplemented, read as `0'.
Note 1:       These bits are only implemented on specific devices. Refer to Section 2.4 "Memory Maps" to determine which bits apply based
              on available memory.
          2:  DEVID registers are read-only and cannot be programmed by the user.
          3:  When the 3x Multiplier mode is selected, the input frequency has to be 16 MHz. When the 4x Multiplier mode is selected, the
              input frequency has to be between 8 MHz and 16 MHz.

DS41630B-page 28                                                                     2012 Microchip Technology Inc.
                                                            PIC18(L)F2X/4XK50

TABLE 5-2: DEVICE ID VALUE

                                                            Device ID Value

             Device

                                 DEVID2                                        DEVID1
                                                                             000x xxxx
PIC18F45K50                      5Ch                                         100x xxxx
                                                                             001x xxxx
PIC18LF45K50                     5Ch                                         101x xxxx
                                                                             011x xxxx
PIC18F25K50                      5Ch                                         111x xxxx
                                                                             001x xxxx
PIC18LF25K50                     5Ch                                         011x xxxx
                                                                             000x xxxx
PIC18F24K50                      5Ch                                         010x xxxx

PIC18LF24K50                     5Ch

PIC18F26K50                      5Dh

PIC18LF26K50                     5Dh

PIC18F46K50                      5Dh

PIC18LF46K50                     5Dh

Note: The `x's in DEVID1 contain the device revision code.

2012 Microchip Technology Inc.                                              DS41630B-page 29
PIC18(L)F2X/4XK50

TABLE 5-3: PIC18(L)F2X/4XK50 BIT DESCRIPTIONS

Bit Name          Configuration                                Description
                       Words

USBLSDIV          CONFIG1L       USB Low-Speed Clock Selection bit
                                 Selects the clock source for Low-speed USB operation
                                 1 = USB clock source comes from the 48 MHz system clock divided by 8
                                 0 = USB clock source comes from the 24 MHz system clock divided by 4

CPUDIV<1:0> CONFIG1L CPU System Clock Selection bits

PLLEN             CONFIG1L       11 = CPU system clock divided by 6
PLLMULT           CONFIG1L       10 = CPU system clock divided by 3
                                 01 = CPU system clock divided by 2
                                 00 = No CPU system clock divide
                                 PLL Enable bit(2)

                                 1 = Oscillator multiplied by 3 or 4, depending on the PLLMULT bit
                                 0 = Oscillator used directly
                                 PLL Multiplier Selection bit(2)

                                 1 = Output frequency is 3x the input frequency
                                 0 = Output frequency is 4x the input frequency

IESO              CONFIG1H       Internal External Switchover bit

                                 1 = Internal External Switchover mode enabled
                                 0 = Internal External Switchover mode disabled

FCMEN             CONFIG1H Fail-Safe Clock Monitor Enable bit

                                 1 = Fail-Safe Clock Monitor enabled
                                 0 = Fail-Safe Clock Monitor disabled

PCLKEN            CONFIG1H       Primary Clock Enable bit
                                 1 = Primary clock enabled
                                 0 = Primary clock disabled

FOSC<3:0>         CONFIG1H Oscillator Selection bits

                                 1111 = External RC oscillator, CLKOUT function on OSC2
                                 1110 = External RC oscillator, CLKOUT function on OSC2
                                 1101 = EC oscillator (low power)
                                 1100 = EC oscillator, CLKOUT function on OSC2 (low power)
                                 1011 = EC oscillator (medium power, 4 MHz-16 MHz)
                                 1010 = EC oscillator, CLKOUT function on OSC2 (medium power, 4 MHz-16 MHz)
                                 1001 = Internal RC oscillator, CLKOUT function on OSC2
                                 1000 = Internal RC oscillator
                                 0111 = External RC oscillator
                                 0110 = External RC oscillator, CLKOUT function on OSC2
                                 0101 = EC oscillator (high power, >16 MHz)
                                 0100 = EC oscillator, CLKOUT function on OSC2 (high power, >16 MHz)
                                 0011 = HS oscillator (medium power, 4 MHz-16 MHz)
                                 0010 = HS oscillator (high power, >16 MHz)
                                 0001 = XT oscillator
                                 0000 = LP oscillator

LPBOR             CONFIG2L Low-Power Brown-out Reset Enable bits

                                 1 = Low-Power Brown-out Reset disabled
                                 0 = Low-Power Brown-out Reset enabled

Note 1: Minimum VDD for F devices is 2.3V.

      2: When the 3x Multiplier mode is selected, the input frequency has to be 16 MHz. When the 4x Multiplier
            mode is selected, the input frequency has to be between 8 MHz and 16 MHz.

      3: The dedicated In-Circuit Port is available only on the 44-pin TQFP packaged devices. This bit should be
            programmed to a `0' in all other devices. See Section 2.2 "Dedicated ICSP/ICD Port (44-Pin TQFP
            Only)" for more information.

DS41630B-page 30                                                                  2012 Microchip Technology Inc.
                                                               PIC18(L)F2X/4XK50

TABLE 5-3: PIC18(L)F2X/4XK50 BIT DESCRIPTIONS (CONTINUED)

Bit Name    Configuration                                      Description
                 Words

BORV<1:0>   CONFIG2L             Brown-out Reset Voltage bits
                                 11 = VBOR set to 1.9V(1)
                                 10 = VBOR set to 2.2V(1)

                                 01 = VBOR set to 2.5V

                                 00 = VBOR set to 2.85V

BOREN<1:0>  CONFIG2L             Brown-out Reset Enable bits

                                 11 = Brown-out Reset enabled in hardware only (SBOREN is disabled)
                                 10 = Brown-out Reset enabled in hardware only and disabled in Sleep mode

                                        (SBOREN is disabled)
                                 01 = Brown-out Reset enabled and controlled by software (SBOREN is enabled)
                                 00 = Brown-out Reset disabled in hardware and software

PWRTEN      CONFIG2L             Power-up Timer Enable bit

                                 1 = PWRT disabled
                                 0 = PWRT enabled

WDTPS<3:0>  CONFIG2H             Watchdog Timer Postscaler Select bits

                                 1111 = 1:32,768
                                 1110 = 1:16,384
                                 1101 = 1:8,192
                                 1100 = 1:4,096
                                 1011 = 1:2,048
                                 1010 = 1:1,024
                                 1001 = 1:512
                                 1000 = 1:256
                                 0111 = 1:128
                                 0110 = 1:64
                                 0101 = 1:32
                                 0100 = 1:16
                                 0011 = 1:8
                                 0010 = 1:4
                                 0001 = 1:2
                                 0000 = 1:1

WDTEN<1:0> CONFIG2H Watchdog Timer Enable bits

                                 11 = WDT enabled in hardware; SWDTEN bit is disabled
                                 10 = WDT controlled by the SWDTEN bit
                                 01 = WDT enabled when device is active, disabled when device is in Sleep;

                                        SWDTEN bit is disabled
                                 00 = WDT disabled in hardware; SWDTEN bit is disabled

MCLRE       CONFIG3H             MCLR Pin Enable bit

                                 1 = MCLR pin enabled, RE3 input pin disabled
                                 0 = RE3 input pin enabled, MCLR pin disabled

SDOMX       CONFIG3H             SDO Output MUX bit

                                 1 = SDO is on RB3
                                 0 = SDO is on RC7

T3CMX       CONFIG3H             Timer3 Clock Input MUX bit
                                 1 = T3CKI is on RC0
                                 0 = T3CKI is on RB5

Note 1:     Minimum VDD for F devices is 2.3V.
        2:
            When the 3x Multiplier mode is selected, the input frequency has to be 16 MHz. When the 4x Multiplier
        3:  mode is selected, the input frequency has to be between 8 MHz and 16 MHz.

            The dedicated In-Circuit Port is available only on the 44-pin TQFP packaged devices. This bit should be
            programmed to a `0' in all other devices. See Section 2.2 "Dedicated ICSP/ICD Port (44-Pin TQFP
            Only)" for more information.

2012 Microchip Technology Inc.                                                DS41630B-page 31
PIC18(L)F2X/4XK50

TABLE 5-3: PIC18(L)F2X/4XK50 BIT DESCRIPTIONS (CONTINUED)

Bit Name          Configuration                       Description
                       Words

PBADEN            CONFIG3H PORTB A/D Enable bit

                                 1 = PORTB A/D<5:0> pins are configured as analog input channels on Reset
                                 0 = PORTB A/D<5:0> pins are configured as digital I/O on Reset

CCP2MX            CONFIG3H       CCP2 MUX bit

                                 1 = CCP2 input/output is multiplexed with RC1
                                 0 = CCP2 input/output is multiplexed with RB3

DEBUG             CONFIG4L       Background Debugger Enable bit

                                 1 = Background debugger disabled, RB6 and RB7 configured as general
                                      purpose I/O pins

                                 0 = Background debugger enabled, RB6 and RB7 are dedicated to In-Circuit
                                       Debug

XINST             CONFIG4L Extended Instruction Set Enable bit

ICPRT             CONFIG4L       1 = Instruction set extension and Indexed Addressing mode enabled
                                 0 = Instruction set extension and Indexed Addressing mode disabled

                                       (Legacy mode)
                                 Dedicated In-Circuit (ICD/ICSP) Port Enable bit(3)

                                 1 = ICPORT enabled
                                 0 = ICPORT disabled

LVP               CONFIG4L Low-Voltage Programming Enable bit

                                 If MCLRE = 1, then:
                                 1 = Low-voltage programming enabled
                                 0 = Low-voltage programming disabled
                                 If MCLRE = 0, then:
                                 LVP is disabled

STVREN            CONFIG4L Stack Overflow/Underflow Reset Enable bit

                                 1 = Reset on Stack Overflow/Underflow enabled
                                 0 = Reset on Stack Overflow/Underflow disabled

Note 1: Minimum VDD for F devices is 2.3V.

     2: When the 3x Multiplier mode is selected, the input frequency has to be 16 MHz. When the 4x Multiplier
           mode is selected, the input frequency has to be between 8 MHz and 16 MHz.

     3: The dedicated In-Circuit Port is available only on the 44-pin TQFP packaged devices. This bit should be
           programmed to a `0' in all other devices. See Section 2.2 "Dedicated ICSP/ICD Port (44-Pin TQFP
           Only)" for more information.

DS41630B-page 32                                                                  2012 Microchip Technology Inc.
                                            PIC18(L)F2X/4XK50

TABLE 5-3: PIC18(L)F2X/4XK50 BIT DESCRIPTIONS (CONTINUED)

Bit Name  Configuration                                              Description
               Words

CP3       CONFIG5L Code Protection bits (Block 3 code memory area)

                                 1 = Block 3 is not code-protected
                                 0 = Block 3 is code-protected

CP2       CONFIG5L Code Protection bits (Block 2 code memory area)

                                 1 = Block 2 is not code-protected
                                 0 = Block 2 is code-protected

CP1       CONFIG5L Code Protection bits (Block 1 code memory area)

                                 1 = Block 1 is not code-protected
                                 0 = Block 1 is code-protected

CP0       CONFIG5L Code Protection bits (Block 0 code memory area)

                                 1 = Block 0 is not code-protected
                                 0 = Block 0 is code-protected

CPD       CONFIG5H Code Protection bits (Data EEPROM)

                                 1 = Data EEPROM is not code-protected
                                 0 = Data EEPROM is code-protected

CPB       CONFIG5H Code Protection bits (Boot Block memory area)

                                 1 = Boot Block is not code-protected
                                 0 = Boot Block is code-protected

WRT3      CONFIG6L               Write Protection bits (Block 3 code memory area)

                                 1 = Block 3 is not write-protected
                                 0 = Block 3 is write-protected

WRT2      CONFIG6L Write Protection bits (Block 2 code memory area)

                                 1 = Block 2 is not write-protected
                                 0 = Block 2 is write-protected

WRT1      CONFIG6L Write Protection bits (Block 1 code memory area)

                                 1 = Block 1 is not write-protected
                                 0 = Block 1 is write-protected

WRT0      CONFIG6L Write Protection bits (Block 0 code memory area)

                                 1 = Block 0 is not write-protected
                                 0 = Block 0 is write-protected

WRTD      CONFIG6H Write Protection bit (Data EEPROM)

                                 1 = Data EEPROM is not write-protected
                                 0 = Data EEPROM is write-protected

WRTB      CONFIG6H               Write Protection bit (Boot Block memory area)
                                 1 = Boot Block is not write-protected
                                 0 = Boot Block is write-protected

WRTC      CONFIG6H Write Protection bit (Configuration registers)

                                 1 = Configuration registers are not write-protected
                                 0 = Configuration registers are write-protected

Note 1: Minimum VDD for F devices is 2.3V.

     2: When the 3x Multiplier mode is selected, the input frequency has to be 16 MHz. When the 4x Multiplier
           mode is selected, the input frequency has to be between 8 MHz and 16 MHz.

     3: The dedicated In-Circuit Port is available only on the 44-pin TQFP packaged devices. This bit should be
           programmed to a `0' in all other devices. See Section 2.2 "Dedicated ICSP/ICD Port (44-Pin TQFP
           Only)" for more information.

2012 Microchip Technology Inc.                                                       DS41630B-page 33
PIC18(L)F2X/4XK50

TABLE 5-3: PIC18(L)F2X/4XK50 BIT DESCRIPTIONS (CONTINUED)

Bit Name          Configuration             Description
                       Words

EBTR3             CONFIG7L Table Read Protection bit (Block 3 code memory area)

                                 1 = Block 3 is not protected from table reads executed in other blocks
                                 0 = Block 3 is protected from table reads executed in other blocks

EBTR2             CONFIG7L Table Read Protection bit (Block 2 code memory area)

                                 1 = Block 2 is not protected from table reads executed in other blocks
                                 0 = Block 2 is protected from table reads executed in other blocks

EBTR1             CONFIG7L Table Read Protection bit (Block 1 code memory area)

                                 1 = Block 1 is not protected from table reads executed in other blocks
                                 0 = Block 1 is protected from table reads executed in other blocks

EBTR0             CONFIG7L Table Read Protection bit (Block 0 code memory area)

                                 1 = Block 0 is not protected from table reads executed in other blocks
                                 0 = Block 0 is protected from table reads executed in other blocks

EBTRB             CONFIG7H Table Read Protection bit (Boot Block memory area)

                                 1 = Boot Block is not protected from table reads executed in other blocks
                                 0 = Boot Block is protected from table reads executed in other blocks

DEV<10:3>         DEVID2 Device ID bits

                                 These bits are used with the DEV<2:0> bits in the DEVID1 register to
                                 identify part number.

DEV<2:0>          DEVID1 Device ID bits

                                 These bits are used with the DEV<10:3> bits in the DEVID2 register to
                                 identify part number.

REV<4:0>          DEVID1 Revision ID bits

                                 These bits are used to indicate the revision of the device.

Note 1: Minimum VDD for F devices is 2.3V.

2: When the 3x Multiplier mode is selected, the input frequency has to be 16 MHz. When the 4x Multiplier
      mode is selected, the input frequency has to be between 8 MHz and 16 MHz.

3: The dedicated In-Circuit Port is available only on the 44-pin TQFP packaged devices. This bit should be
      programmed to a `0' in all other devices. See Section 2.2 "Dedicated ICSP/ICD Port (44-Pin TQFP
      Only)" for more information.

DS41630B-page 34                                                                2012 Microchip Technology Inc.
                                                           PIC18(L)F2X/4XK50

5.3 Single-Supply ICSP Programming                         5.6 Checksum Computation

The LVP bit in Configuration register, CONFIG4L,           The checksum is calculated by summing the following:
enables Single-Supply (Low-Voltage) ICSP
Programming. The LVP bit defaults to a `1' (enabled)       The contents of all code memory locations
from the factory.                                           The Configuration Word, appropriately masked
                                                            ID locations (Only if any portion of program
If Single-Supply Programming mode is not used, the
LVP bit can be programmed to a `0'. However, the LVP          memory is code-protected)
bit may only be programmed by entering the High-
Voltage ICSP mode, where MCLR/VPP/RE3 is raised            The Least Significant 16 bits of this sum are the
to VIHH. Once the LVP bit is programmed to a `0', only     checksum.
the High-Voltage ICSP mode is available and only the
High-Voltage ICSP mode can be used to program the          Code protection limits access to program memory by
device.                                                    both external programmer (code-protect) and code
                                                           execution (table read protect). The ID locations, when
    Note 1: The High-Voltage ICSP mode is always           included in a code-protected checksum, contain the
                available, regardless of the state of the  checksum of an unprotected part. The unprotected
                LVP bit, by applying VIHH to the MCLR/     checksum is distributed: one nibble per ID location.
                VPP/RE3 pin.                               Each nibble is right justified.

5.4 Embedding Configuration Word                           Table 5-4 describes how to calculate the checksum for
         Information in the HEX File                       each device.

To allow portability of code, a programmer is required     Note:  The checksum calculation differs
to read the Configuration Word locations from the hex             depending on the code-protect setting.
file. If Configuration Word information is not present in         Since the code memory locations read out
the hex file, then a simple warning message should be             differently depending on the code-protect
issued. Similarly, while saving a hex file, all                   setting, the table describes how to
Configuration Word information must be included. An               manipulate the actual code memory
option to not include the Configuration Word                      values to simulate the values that would
information may be provided. When embedding                       be read from a protected device. When
Configuration Word information in the hex file, it should         calculating a checksum by reading a
start at address 300000h.                                         device, the entire code memory can
                                                                  simply be read and summed. The
Microchip Technology Inc. feels strongly that this                Configuration Word and ID locations can
feature is important for the benefit of the end customer.         always be read.

5.5 Embedding Data EEPROM
         Information In the HEX File

To allow portability of code, a programmer is required
to read the data EEPROM information from the hex file.
If data EEPROM information is not present, a simple
warning message should be issued. Similarly, when
saving a hex file, all data EEPROM information must be
included. An option to not include the data EEPROM
information may be provided. When embedding data
EEPROM information in the hex file, it should start at
address F00000h.

Microchip Technology Inc. believes that this feature is
important for the benefit of the end customer.

2012 Microchip Technology Inc.                                   DS41630B-page 35
PIC18(L)F2X/4XK50

TABLE 5-4: CHECKSUM COMPUTATION

Device         Code-                   Checksum                                  Blank  0xAA at 0
               Protect                                                           Value
                                                                                         and Max
                                                                                        Address(1)

                  None   SUM[0000:07FF]+SUM[0800:1FFF]+SUM[2000:3FFF]+           C404   C35A
                         (CONFIG1L & 3Bh)+
                         (CONFIG1H & EFh)+(CONFIG2L & 5Fh)+(CONFIG2H & 3Fh)+
                         (CONFIG3L & 00h)+(CONFIG3H & D3h)+(CONFIG4L & E5h)+
                         (CONFIG4H & 00h)+(CONFIG5L & 03h)+(CONFIG5H & C0h)+
                         (CONFIG6L & 03h)+(CONFIG6H & E0h)+(CONFIG7L & 03h)+
                         (CONFIG7H & 40h)

                  Boot   SUM[0800:1FFF]+SUM[2000:3FFF]+                          CBD8   CB8D
                  Block  (CONFIG1L & 3Bh)+(CONFIG1H & EFh)+(CONFIG2L & 5Fh)+
                         (CONFIG2H & 3Fh)+(CONFIG3L & 00h)+(CONFIG3H & D3h)+
PIC18FX4K50              (CONFIG4L & E5h)+(CONFIG4H & 00h)+(CONFIG5L & 03h)+
PIC18LFX4K50             (CONFIG5H & C0h)+(CONFIG6L & 03h)+(CONFIG6H & E0h)+
                         (CONFIG7L & 03h)+(CONFIG7H & 40h)+SUM_ID

                Boot/ SUM[2000:3FFF]+(CONFIG1L & 3Bh)+                           E3D7   E38C
               Block 0 (CONFIG1H & EFh)+(CONFIG2L & 5Fh)+(CONFIG2H & 3Fh)+

                           (CONFIG3L & 00h)+(CONFIG3H & D3h)+(CONFIG4L & E5h)+
                           (CONFIG4H & 00h)+(CONFIG5L & 03h)+(CONFIG5H & C0h)+
                           (CONFIG6L & 03h)+(CONFIG6H & E0h)+(CONFIG7L & 03h)+
                           (CONFIG7H & 40h)+SUM_ID

                  All (CONFIG1L & 3Bh)+(CONFIG1H & EFh)+(CONFIG2L & 5Fh)+        03D5   03DF
                           (CONFIG2H & 3Fh)+(CONFIG3L & 00h)+(CONFIG3H & D3h)+
                           (CONFIG4L & E5h)+(CONFIG4H & 00h)+(CONFIG5L & 03h)+
                           (CONFIG5H & C0h)+(CONFIG6L & 03h)+(CONFIG6H & E0h)+
                           (CONFIG7L & 03h)+(CONFIG7H & 40h)+SUM_ID

Legend:  Item            Description

         CONFIGx = Configuration Word

         SUM[a:b] = Sum of locations, a to b inclusive

         SUM_ID = Byte-wise sum of lower four bits of all customer ID locations

         +        = Addition

         &        = Bit-wise AND

Note 1: 0xAA at address 0 and 0xFF at address 1 for the beginning of program memory; 0xAA at Max address
              and 0xFF at Max address -1 for the end of program memory.

DS41630B-page 36                                                                  2012 Microchip Technology Inc.
                                                        PIC18(L)F2X/4XK50

TABLE 5-4: CHECKSUM COMPUTATION (CONTINUED)

Device         Code-                   Checksum                                  Blank  0xAA at 0
               Protect                                                           Value
                                                                                         and Max
                                                                                        Address(1)

               None     SUM[0000:07FF]+SUM[0800:1FFF]+SUM[2000:3FFF]+            8428   837E
                        SUM[4000:5FFF]+SUM[6000:7FFF]+(CONFIG1L & 3Bh)+
                        (CONFIG1H & EFh)+(CONFIG2L & 5Fh)+(CONFIG2H & 3Fh)+
                        (CONFIG3L & 00h)+(CONFIG3H & D3h)+(CONFIG4L & E5h)+
                        (CONFIG4H & 00h)+(CONFIG5L & 0Fh)+(CONFIG5H & C0h)+
                        (CONFIG6L & 0Fh)+(CONFIG6H & E0h)+(CONFIG7L & 0Fh)+
                        (CONFIG7H & 40h)

               Boot     SUM[0800:1FFF]+SUM[2000:3FFF]+SUM[4000:5FFF]+SUM[6000:7  8BFE   8BB3
               Block    FFF]+
                        (CONFIG1L & 3Bh)+(CONFIG1H & EFh)+(CONFIG2L & 5Fh)+
PIC18FX5K50             (CONFIG2H & 3Fh)+(CONFIG3L & 00h)+(CONFIG3H & D3h)+
PIC18LFX5K50            (CONFIG4L & E5h)+(CONFIG4H & 00h)+(CONFIG5L & 0Fh)+
                        (CONFIG5H & C0h)+(CONFIG6L & 0Fh)+(CONFIG6H & E0h)+
                        (CONFIG7L & 0Fh)+(CONFIG7H & 40h)+SUM_ID

                Boot/ SUM[4000:5FFF]+SUM[6000:7FFF]+(CONFIG1L & 3Bh)+            C3FB   C3B0
               Block 0/ (CONFIG1H & EFh)+(CONFIG2L & 5Fh)+(CONFIG2H & 3Fh)+
               Block 1 (CONFIG3L & 00h)+(CONFIG3H & D3h)+(CONFIG4L & E5h)+

                            (CONFIG4H & 00h)+(CONFIG5L & 0Fh)+(CONFIG5H & C0h)+
                            (CONFIG6L & 0Fh)+(CONFIG6H & E0h)+(CONFIG7L & 0Fh)+
                            (CONFIG7H & 40h)+SUM_ID

               All (CONFIG1L & 3Bh)+(CONFIG1H & EFh)+(CONFIG2L & 5Fh)+           03EF   03F9
                        (CONFIG2H & 3Fh)+(CONFIG3L & 00h)+(CONFIG3H & D3h)+
                        (CONFIG4L & E5h)+(CONFIG4H & 00h)+(CONFIG5L & 0Fh)+
                        (CONFIG5H & C0h)+(CONFIG6L & 0Fh)+(CONFIG6H & E0h)+
                        (CONFIG7L & 0Fh)+(CONFIG7H & 40h)+SUM_ID

Legend:  Item           Description

         CONFIGx = Configuration Word

         SUM[a:b] = Sum of locations, a to b inclusive

         SUM_ID = Byte-wise sum of lower four bits of all customer ID locations

         +     = Addition

         &     = Bit-wise AND

Note 1: 0xAA at address 0 and 0xFF at address 1 for the beginning of program memory; 0xAA at Max address
              and 0xFF at Max address -1 for the end of program memory.

2012 Microchip Technology Inc.                                                  DS41630B-page 37
PIC18(L)F2X/4XK50

TABLE 5-4: CHECKSUM COMPUTATION (CONTINUED)

Device         Code-                   Checksum                                  Blank  0xAA at 0
               Protect                                                           Value
                                                                                         and Max
                                                                                        Address(1)

                  None   SUM[0000:07FF]+SUM[0800:3FFF]+SUM[4000:7FFF]+           0428   037E
                         SUM[8000:BFFF]+SUM[C000:FFFF]+(CONFIG1L & 3Bh)+
                         (CONFIG1H & EFh)+(CONFIG2L & 5Fh)+(CONFIG2H & 3Fh)+
                         (CONFIG3L & 00h)+(CONFIG3H & D3h)+(CONFIG4L & E5h)+
                         (CONFIG4H & 00h)+(CONFIG5L & 0Fh)+(CONFIG5H & C0h)+
                         (CONFIG6L & 0Fh)+(CONFIG6H & E0h)+(CONFIG7L & 0Fh)+
                         (CONFIG7H & 40h)

                  Boot   SUM[0800:3FFF]+SUM[4000:7FFF]+SUM[8000:BFFF]+SUM[C000:  0BF6   0BAB
                  Block  FFFF]+
                         (CONFIG1L & 3Bh)+(CONFIG1H & EFh)+(CONFIG2L & 5Fh)+
PIC18FX6K50              (CONFIG2H & 3Fh)+(CONFIG3L & 00h)+(CONFIG3H & D3h)+
PIC18LFX6K50             (CONFIG4L & E5h)+(CONFIG4H & 00h)+(CONFIG5L & 0Fh)+
                         (CONFIG5H & C0h)+(CONFIG6L & 0Fh)+(CONFIG6H & E0h)+
                         (CONFIG7L & 0Fh)+(CONFIG7H & 40h)+SUM_ID

                Boot/ SUM[8000:BFFF]+SUM[C000:FFFF]+(CONFIG1L & 3Bh)+            83F3   83A8
               Block 0/ (CONFIG1H & EFh)+(CONFIG2L & 5Fh)+(CONFIG2H & 3Fh)+
               Block 1 (CONFIG3L & 00h)+(CONFIG3H & D3h)+(CONFIG4L & E5h)+

                            (CONFIG4H & 00h)+(CONFIG5L & 0Fh)+(CONFIG5H & C0h)+
                            (CONFIG6L & 0Fh)+(CONFIG6H & E0h)+(CONFIG7L & 0Fh)+
                            (CONFIG7H & 40h)+SUM_ID

                  All (CONFIG1L & 3Bh)+(CONFIG1H & EFh)+(CONFIG2L & 5Fh)+        03E7   03F1
                           (CONFIG2H & 3Fh)+(CONFIG3L & 00h)+(CONFIG3H & D3h)+
                           (CONFIG4L & E5h)+(CONFIG4H & 00h)+(CONFIG5L & 0Fh)+
                           (CONFIG5H & C0h)+(CONFIG6L & 0Fh)+(CONFIG6H & E0h)+
                           (CONFIG7L & 0Fh)+(CONFIG7H & 40h)+SUM_ID

Legend:  Item            Description

         CONFIGx = Configuration Word

         SUM[a:b] = Sum of locations, a to b inclusive

         SUM_ID = Byte-wise sum of lower four bits of all customer ID locations

         +        = Addition

         &        = Bit-wise AND

Note 1: 0xAA at address 0 and 0xFF at address 1 for the beginning of program memory; 0xAA at Max address
              and 0xFF at Max address -1 for the end of program memory.

DS41630B-page 38                                                                  2012 Microchip Technology Inc.
                                                                 PIC18(L)F2X/4XK50

6.0 AC/DC CHARACTERISTICS TIMING REQUIREMENTS FOR PROGRAM/
         VERIFY TEST MODE

Standard Operating Conditions
Operating Temperature: 25C is recommended

Param    Sym.                       Characteristic                     Min.  Max. Units   Conditions
  No.

D110 VIHH      High-Voltage Programming Voltage on MCLR/VPP/RE3        8     9        V
D111 VDD
               Supply Voltage (VDDMIN, VDDMAX)         PIC18LF         1.8   3.6      V
D111A VPEW
                                                       PIC18F          2.3   5.5      V
D111B VBULK
D112 IPP       Voltage during Write or Erase Operations PIC18LF        2.2V VDDMAX V Row Erase/Write
D113 IDDP
D031 VIL                                               PIC18F          VDDMIN VDDMAX
D041 VIH
D080 VOL       Voltage during Bulk Erase Operations                    2.7 VDDMAX V Bulk Erase operations
D090 VOH
D012 CIO       Programming Current on MCLR/VPP/RE3                     --    300 A

               Supply Current During Programming                       --    10       mA

               Input Low Voltage                                       VSS 0.2 VDD V

               Input High Voltage                                      0.8 VDD VDD    V

               Output Low Voltage                                      --    0.6      V IOL = 8.5 mA @ 3.0V

               Output High Voltage                                     VDD 0.7 --   V IOH = 3.0 mA @ 3.0V

               Capacitive Loading on I/O pin (PGD)                     --    50       pF To meet AC

                                                                                          specifications

P1     TR      MCLR/VPP/RE3 Rise Time to enter Program/Verify mode     --    1.0      s (Note 1)

P2     TPGC Serial Clock (PGC) Period                                  100   --       ns VDD = 3.6V

                                                                       1     --       s VDD = 1.8V

P2A TPGCL Serial Clock (PGC) Low Time                                  40    --       ns VDD = 3.6V

                                                                       400   --       ns VDD = 1.8V

P2B TPGCH Serial Clock (PGC) High Time                                 40    --       ns VDD = 3.6V

                                                                       400   --       ns VDD = 1.8V

P3     TSET1 Input Data Setup Time to Serial Clock                     15    --       ns

P4     THLD1 Input Data Hold Time from PGC                             15    --       ns

P5     TDLY1 Delay between 4-bit Command and Command Operand           40    --       ns

P5A TDLY1A Delay between 4-bit Command Operand                         40    --       ns
                        and next 4-bit Command

P6     TDLY2 Delay between Last PGC  of Command Byte to First PGC      20    --       ns

                of Read of Data Word

P9     TDLY5 PGC High Time (minimum programming                        1     --       ms Externally Timed

               time)

P9A TDLY5A PGC High Time                                               5              ms Configuration Word

                                                                                          programming time

P10 TDLY6 PGC Low Time after Programming                               200   --       s
                        (high-voltage discharge time)

P11 TDLY7 Delay to allow Self-Timed Bulk Erase to PIC18(L)FX5K50 15          --       ms

               occur                                   PIC18(L)FX6K50

                                                       PIC18(L)F24K50  12    --       ms

P11A TDRWT Data Write Polling Time                                     4     --       ms

Note 1:    Do not allow excess time when transitioning MCLR between VIL and VIHH; this can cause spurious program executions
           to occur. The maximum transition time is:
           1 TCY + TPWRT (if enabled) + 1024 TOSC (for LP, HS, HS/PLL and XT modes only) + 2 ms (for HS/PLL mode only) + 1.5
           s (for EC mode only) where TCY is the instruction cycle time, TPWRT is the Power-up Timer period and TOSC is the
           oscillator period. For specific values, refer to the Electrical Characteristics section of the device data sheet for the
           particular device.

2012 Microchip Technology Inc.                                                           DS41630B-page 39
PIC18(L)F2X/4XK50

6.0 AC/DC CHARACTERISTICS TIMING REQUIREMENTS FOR PROGRAM/
         VERIFY TEST MODE (CONTINUED)

Standard Operating Conditions
Operating Temperature: 25C is recommended

Param    Sym.       Characteristic                                Min.  Max. Units  Conditions
  No.

P11B   TDLY7B Delay for Self-Timed Memory Write                   2     --  ms
P12
       THLD2 Input Data Hold Time from MCLR/VPP/                  2     --  s
                    RE3

P13 TSET2 VDD Setup Time to MCLR/VPP/RE3                          100   --  ns

P14 TVALID Data Out Valid from PGC                                10    --  ns

P15 THLD4 Input data hold time from MCLR                          400   --  s

P16 TDLY8 Delay between Last PGC  and MCLR/VPP/RE3                0     --  s

P17 THLD3 MCLR/VPP/RE3 to VDD                                     --    100 ns

P18 TKEY1 Delay from First MCLR to first PGC for Key Sequence on  1     --  ms

               PGD

P19 THIZ Delay from PGC to PGD High-Z                             3     10  ns

P20 TKEY2 Delay from Last PGC for Key Sequence on PGD to          40    --  ns
                        Second MCLR

Note 1:  Do not allow excess time when transitioning MCLR between VIL and VIHH; this can cause spurious program executions
         to occur. The maximum transition time is:
         1 TCY + TPWRT (if enabled) + 1024 TOSC (for LP, HS, HS/PLL and XT modes only) + 2 ms (for HS/PLL mode only) + 1.5
         s (for EC mode only) where TCY is the instruction cycle time, TPWRT is the Power-up Timer period and TOSC is the
         oscillator period. For specific values, refer to the Electrical Characteristics section of the device data sheet for the
         particular device.

DS41630B-page 40                                                         2012 Microchip Technology Inc.
                                                  PIC18(L)F2X/4XK50

APPENDIX A: REVISION HISTORY

Revision A (06/2012)

Initial release of this document.

Revision B (08/2012)

Inserted Note 1 and updated the values in the
   "Blank Value" and "0xAA at 0 and Max Address"
   columns of Table 5-4.

2012 Microchip Technology Inc.                   DS41630B-page 41
PIC18(L)F2X/4XK50

NOTES:

DS41630B-page 42    2012 Microchip Technology Inc.
Note the following details of the code protection feature on Microchip devices:
Microchip products meet the specification contained in their particular Microchip Data Sheet.

Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the
      intended manner and under normal conditions.

There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our
      knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip's Data
      Sheets. Most likely, the person doing so is engaged in theft of intellectual property.

Microchip is willing to work with the customer who is concerned about the integrity of their code.

Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not
      mean that we are guaranteeing the product as "unbreakable."

Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our
products. Attempts to break Microchip's code protection feature may be a violation of the Digital Millennium Copyright Act. If such acts
allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act.

Information contained in this publication regarding device         Trademarks
applications and the like is provided only for your convenience
and may be superseded by updates. It is your responsibility to     The Microchip name and logo, the Microchip logo, dsPIC,
ensure that your application meets with your specifications.       KEELOQ, KEELOQ logo, MPLAB, PIC, PICmicro, PICSTART,
MICROCHIP MAKES NO REPRESENTATIONS OR                              PIC32 logo, rfPIC and UNI/O are registered trademarks of
WARRANTIES OF ANY KIND WHETHER EXPRESS OR                          Microchip Technology Incorporated in the U.S.A. and other
IMPLIED, WRITTEN OR ORAL, STATUTORY OR                             countries.
OTHERWISE, RELATED TO THE INFORMATION,
INCLUDING BUT NOT LIMITED TO ITS CONDITION,                        FilterLab, Hampshire, HI-TECH C, Linear Active Thermistor,
QUALITY, PERFORMANCE, MERCHANTABILITY OR                           MXDEV, MXLAB, SEEVAL and The Embedded Control
FITNESS FOR PURPOSE. Microchip disclaims all liability             Solutions Company are registered trademarks of Microchip
arising from this information and its use. Use of Microchip        Technology Incorporated in the U.S.A.
devices in life support and/or safety applications is entirely at
the buyer's risk, and the buyer agrees to defend, indemnify and    Analog-for-the-Digital Age, Application Maestro, BodyCom,
hold harmless Microchip from any and all damages, claims,          chipKIT, chipKIT logo, CodeGuard, dsPICDEM,
suits, or expenses resulting from such use. No licenses are        dsPICDEM.net, dsPICworks, dsSPEAK, ECAN,
conveyed, implicitly or otherwise, under any Microchip             ECONOMONITOR, FanSense, HI-TIDE, In-Circuit Serial
intellectual property rights.                                      Programming, ICSP, Mindi, MiWi, MPASM, MPLAB Certified
                                                                   logo, MPLIB, MPLINK, mTouch, Omniscient Code
QUALITY MANAGEMENT SYSTEM                                          Generation, PICC, PICC-18, PICDEM, PICDEM.net, PICkit,
          CERTIFIED BY DNV                                         PICtail, REAL ICE, rfLAB, Select Mode, Total Endurance,
                                                                   TSHARC, UniWinDriver, WiperLock and ZENA are
     == ISO/TS 16949 ==                                            trademarks of Microchip Technology Incorporated in the
                                                                   U.S.A. and other countries.
2012 Microchip Technology Inc.
                                                                   SQTP is a service mark of Microchip Technology Incorporated
                                                                   in the U.S.A.

                                                                   All other trademarks mentioned herein are property of their
                                                                   respective companies.

                                                                   2012, Microchip Technology Incorporated, Printed in the
                                                                   U.S.A., All Rights Reserved.

                                                                        Printed on recycled paper.

                                                                   ISBN: 978-1-62076-511-1

                                                                   Microchip received ISO/TS-16949:2009 certification for its worldwide
                                                                   headquarters, design and wafer fabrication facilities in Chandler and
                                                                   Tempe, Arizona; Gresham, Oregon and design centers in California
                                                                   and India. The Company's quality system processes and procedures
                                                                   are for its PIC MCUs and dsPIC DSCs, KEELOQ code hopping
                                                                   devices, Serial EEPROMs, microperipherals, nonvolatile memory and
                                                                   analog products. In addition, Microchip's quality system for the design
                                                                   and manufacture of development systems is ISO 9001:2000 certified.

                                                                                                                          DS41630B-page 43
                           Worldwide Sales and Service

AMERICAS                   ASIA/PACIFIC                ASIA/PACIFIC             EUROPE

Corporate Office           Asia Pacific Office         India - Bangalore        Austria - Wels
2355 West Chandler Blvd.   Suites 3707-14, 37th Floor  Tel: 91-80-3090-4444     Tel: 43-7242-2244-39
Chandler, AZ 85224-6199    Tower 6, The Gateway        Fax: 91-80-3090-4123     Fax: 43-7242-2244-393
Tel: 480-792-7200          Harbour City, Kowloon                                Denmark - Copenhagen
Fax: 480-792-7277          Hong Kong                   India - New Delhi        Tel: 45-4450-2828
Technical Support:         Tel: 852-2401-1200          Tel: 91-11-4160-8631     Fax: 45-4485-2829
http://www.microchip.com/  Fax: 852-2401-3431          Fax: 91-11-4160-8632     France - Paris
support                                                                         Tel: 33-1-69-53-63-20
Web Address:               Australia - Sydney          India - Pune             Fax: 33-1-69-30-90-79
www.microchip.com          Tel: 61-2-9868-6733         Tel: 91-20-2566-1512     Germany - Munich
                           Fax: 61-2-9868-6755         Fax: 91-20-2566-1513     Tel: 49-89-627-144-0
Atlanta                                                                         Fax: 49-89-627-144-44
Duluth, GA                 China - Beijing             Japan - Osaka            Italy - Milan
Tel: 678-957-9614          Tel: 86-10-8569-7000        Tel: 81-66-152-7160      Tel: 39-0331-742611
Fax: 678-957-1455          Fax: 86-10-8528-2104        Fax: 81-66-152-9310      Fax: 39-0331-466781
                                                                                Netherlands - Drunen
Boston                     China - Chengdu             Japan - Yokohama         Tel: 31-416-690399
Westborough, MA            Tel: 86-28-8665-5511        Tel: 81-45-471- 6166     Fax: 31-416-690340
Tel: 774-760-0087          Fax: 86-28-8665-7889        Fax: 81-45-471-6122      Spain - Madrid
Fax: 774-760-0088                                                               Tel: 34-91-708-08-90
                           China - Chongqing           Korea - Daegu            Fax: 34-91-708-08-91
Chicago                    Tel: 86-23-8980-9588        Tel: 82-53-744-4301      UK - Wokingham
Itasca, IL                 Fax: 86-23-8980-9500        Fax: 82-53-744-4302      Tel: 44-118-921-5869
Tel: 630-285-0071                                                               Fax: 44-118-921-5820
Fax: 630-285-0075          China - Hangzhou            Korea - Seoul
                           Tel: 86-571-2819-3187       Tel: 82-2-554-7200                                   11/29/11
Cleveland                  Fax: 86-571-2819-3189       Fax: 82-2-558-5932 or
Independence, OH                                       82-2-558-5934
Tel: 216-447-0464          China - Hong Kong SAR
Fax: 216-447-0643          Tel: 852-2401-1200          Malaysia - Kuala Lumpur
                           Fax: 852-2401-3431          Tel: 60-3-6201-9857
Dallas                                                 Fax: 60-3-6201-9859
Addison, TX                China - Nanjing
Tel: 972-818-7423          Tel: 86-25-8473-2460        Malaysia - Penang
Fax: 972-818-2924          Fax: 86-25-8473-2470        Tel: 60-4-227-8870
                                                       Fax: 60-4-227-4068
Detroit                    China - Qingdao
Farmington Hills, MI       Tel: 86-532-8502-7355       Philippines - Manila
Tel: 248-538-2250          Fax: 86-532-8502-7205       Tel: 63-2-634-9065
Fax: 248-538-2260                                      Fax: 63-2-634-9069
                           China - Shanghai
Indianapolis               Tel: 86-21-5407-5533        Singapore
Noblesville, IN            Fax: 86-21-5407-5066        Tel: 65-6334-8870
Tel: 317-773-8323                                      Fax: 65-6334-8850
Fax: 317-773-5453          China - Shenyang
                           Tel: 86-24-2334-2829        Taiwan - Hsin Chu
Los Angeles                Fax: 86-24-2334-2393        Tel: 886-3-5778-366
Mission Viejo, CA                                      Fax: 886-3-5770-955
Tel: 949-462-9523          China - Shenzhen
Fax: 949-462-9608          Tel: 86-755-8203-2660       Taiwan - Kaohsiung
                           Fax: 86-755-8203-1760       Tel: 886-7-536-4818
Santa Clara                                            Fax: 886-7-330-9305
Santa Clara, CA            China - Wuhan
Tel: 408-961-6444          Tel: 86-27-5980-5300        Taiwan - Taipei
Fax: 408-961-6445          Fax: 86-27-5980-5118        Tel: 886-2-2500-6610
                                                       Fax: 886-2-2508-0102
Toronto                    China - Xian
Mississauga, Ontario,      Tel: 86-29-8833-7252        Thailand - Bangkok
Canada                     Fax: 86-29-8833-7256        Tel: 66-2-694-1351
Tel: 905-673-0699                                      Fax: 66-2-694-1350
Fax: 905-673-6509          China - Xiamen
                           Tel: 86-592-2388138
                           Fax: 86-592-2388130

                           China - Zhuhai
                           Tel: 86-756-3210040
                           Fax: 86-756-3210049

DS41630B-page 44                                                                 2012 Microchip Technology Inc.
This datasheet has been downloaded from:
            datasheet.eeworld.com.cn

                 Free Download
           Daily Updated Database
      100% Free Datasheet Search Site
  100% Free IC Replacement Search Site
     Convenient Electronic Dictionary

               Fast Search System
             www.EEworld.com.cn

                                                 All Datasheets Cannot Be Modified Without Permission
                                                                Copyright Each Manufacturing Company

PIC184XK50器件购买:

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 大学堂 TI培训 Datasheet

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2017 EEWORLD.com.cn, Inc. All rights reserved