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

型号

产品描述

搜索
 

PIC18F4580T-E/SP

器件型号:PIC18F4580T-E/SP
器件类别:半导体    嵌入式处理器和控制器   
厂商名称:Microchip
厂商官网:https://www.microchip.com
下载文档

器件描述

8-BIT, FLASH, 40 MHz, MICROCONTROLLER, PQCC28

8位, FLASH, 40 MHz, 单片机, PQCC28

参数

PIC18F4580T-E/SP外部数据总线宽度 0.0
PIC18F4580T-E/SP输入输出总线数量 25
PIC18F4580T-E/SP端子数量 28
PIC18F4580T-E/SP最小工作温度 -40 Cel
PIC18F4580T-E/SP最大工作温度 125 Cel
PIC18F4580T-E/SP线速度 40 MHz
PIC18F4580T-E/SP加工封装描述 6 X 6 MM, 0.55 MM HEIGHT, LEAD FREE, PLASTIC, QFN-28
PIC18F4580T-E/SPreach_compliant Yes
PIC18F4580T-E/SP欧盟RoHS规范 Yes
PIC18F4580T-E/SP中国RoHS规范 Yes
PIC18F4580T-E/SP状态 Active
PIC18F4580T-E/SPmicroprocessor_microcontroller_peripheral_ic_type MICROCONTROLLER
PIC18F4580T-E/SPADC通道 YES
PIC18F4580T-E/SP地址总线宽度 0.0
PIC18F4580T-E/SP位数 8
PIC18F4580T-E/SPclock_frequency_max 40 MHz
PIC18F4580T-E/SPcpu_family PIC
PIC18F4580T-E/SPDAC通道 NO
PIC18F4580T-E/SPDMA通道 NO
PIC18F4580T-E/SPjesd_30_code S-PQCC-N28
PIC18F4580T-E/SPjesd_609_code e3
PIC18F4580T-E/SPmoisture_sensitivity_level 1
PIC18F4580T-E/SP包装材料 PLASTIC/EPOXY
PIC18F4580T-E/SPpackage_code HVQCCN
PIC18F4580T-E/SPpackage_equivalence_code LCC28,.24SQ,25
PIC18F4580T-E/SP包装形状 SQUARE
PIC18F4580T-E/SP包装尺寸 CHIP CARRIER, HEAT SINK/SLUG, VERY THIN PROFILE
PIC18F4580T-E/SPpeak_reflow_temperature__cel_ 260
PIC18F4580T-E/SPpower_supplies 5
PIC18F4580T-E/SPPWM通道 YES
PIC18F4580T-E/SPqualification_status COMMERCIAL
PIC18F4580T-E/SPram__bytes_ 768
PIC18F4580T-E/SPROM编程 FLASH
PIC18F4580T-E/SProm__words_ 16384
PIC18F4580T-E/SPseated_height_max 1 mm
PIC18F4580T-E/SPsub_category Microcontrollers
PIC18F4580T-E/SP额定供电电压 4.5 V
PIC18F4580T-E/SP最小供电电压 4.2 V
PIC18F4580T-E/SP最大供电电压 5.5 V
PIC18F4580T-E/SP表面贴装 YES
PIC18F4580T-E/SP工艺 CMOS
PIC18F4580T-E/SP温度等级 AUTOMOTIVE
PIC18F4580T-E/SP端子涂层 MATTE TIN
PIC18F4580T-E/SP端子形式 NO LEAD
PIC18F4580T-E/SP端子间距 0.6500 mm
PIC18F4580T-E/SP端子位置 QUAD
PIC18F4580T-E/SPtime_peak_reflow_temperature_max__s_ NOT SPECIFIED
PIC18F4580T-E/SPlength 6 mm
PIC18F4580T-E/SPwidth 6 mm

PIC18F4580T-E/SP器件文档内容

PIC18F2480/2580/4480/4580
                       Data Sheet

                               28/40/44-Pin
       Enhanced Flash Microcontrollers
with ECANTM Technology, 10-Bit A/D

               and nanoWatt Technology

2009 Microchip Technology Inc.  DS39637D
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                              rfPIC and UNI/O are registered trademarks of Microchip
WARRANTIES OF ANY KIND WHETHER EXPRESS OR                          Technology Incorporated in the U.S.A. and other countries.
IMPLIED, WRITTEN OR ORAL, STATUTORY OR
OTHERWISE, RELATED TO THE INFORMATION,                             FilterLab, Hampshire, HI-TECH C, Linear Active Thermistor,
INCLUDING BUT NOT LIMITED TO ITS CONDITION,                        MXDEV, MXLAB, SEEVAL and The Embedded Control
QUALITY, PERFORMANCE, MERCHANTABILITY OR                           Solutions Company are registered trademarks of Microchip
FITNESS FOR PURPOSE. Microchip disclaims all liability             Technology Incorporated in the U.S.A.
arising from this information and its use. Use of Microchip
devices in life support and/or safety applications is entirely at  Analog-for-the-Digital Age, Application Maestro, CodeGuard,
the buyer's risk, and the buyer agrees to defend, indemnify and    dsPICDEM, dsPICDEM.net, dsPICworks, dsSPEAK, ECAN,
hold harmless Microchip from any and all damages, claims,          ECONOMONITOR, FanSense, HI-TIDE, In-Circuit Serial
suits, or expenses resulting from such use. No licenses are        Programming, ICSP, Mindi, MiWi, MPASM, MPLAB Certified
conveyed, implicitly or otherwise, under any Microchip             logo, MPLIB, MPLINK, mTouch, Octopus, Omniscient Code
intellectual property rights.                                      Generation, PICC, PICC-18, PICDEM, PICDEM.net, PICkit,
                                                                   PICtail, PIC32 logo, REAL ICE, rfLAB, Select Mode, Total
                                                                   Endurance, TSHARC, UniWinDriver, WiperLock and ZENA
                                                                   are trademarks of Microchip Technology Incorporated in the
                                                                   U.S.A. and other countries.

                                                                   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.

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

                                                                        Printed on recycled paper.

DS39637D-page 2                                                    Microchip received ISO/TS-16949:2002 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.

                                                                                                       2009 Microchip Technology Inc.
                  PIC18F2480/2580/4480/4580

     28/40/44-Pin Enhanced Flash Microcontrollers with
ECANTM Technology, 10-Bit A/D and nanoWatt Technology

Power-Managed Modes:                                           Peripheral Highlights:

Run: CPU on, Peripherals on                                  High-Current Sink/Source 25 mA/25 mA
Idle: CPU off, Peripherals on                                 Three External Interrupts
Sleep: CPU off, Peripherals off                               One Capture/Compare/PWM (CCP) module
Idle mode Currents Down to 6.1 A Typical                      Enhanced Capture/Compare/PWM (ECCP) module
Sleep mode Current Down to 0.2 A Typical
Timer1 Oscillator: 1 A, 32 kHz, 2V                              (40/44-pin devices only):
Watchdog Timer: 1.7 A                                           - One, two or four PWM outputs
Two-Speed Oscillator Start-up                                   - Selectable polarity
                                                                  - Programmable dead time
Flexible Oscillator Structure:                                    - Auto-shutdown and auto-restart
                                                                Master Synchronous Serial Port (MSSP) module
Four Crystal modes, up to 40 MHz                                Supporting 3-Wire SPI (all 4 modes) and I2CTM
4x Phase Lock Loop (PLL) Available for Crystal                Master and Slave modes
                                                                Enhanced Addressable USART module
   and Internal Oscillators)                                      - Supports RS-485, RS-232 and LIN/J2602
Two External RC modes, up to 4 MHz                              - RS-232 operation using internal oscillator
Two External Clock modes, up to 40 MHz
Internal Oscillator Block:                                         block
                                                                  - Auto-wake-up on Start bit
   - Fast wake from Sleep and Idle, 1 s typical                   - Auto-Baud Detect
   - 8 user-selectable frequencies, from 31 kHz to 8 MHz       10-Bit, up to 11-Channel Analog-to-Digital
   - Provides a complete range of clock speeds,                   Converter (A/D) module, up to 100 ksps
                                                                  - Auto-acquisition capability
      from 31 kHz to 32 MHz when used with PLL                    - Conversion available during Sleep
   - User-tunable to compensate for frequency drift             Dual Analog Comparators with Input Multiplexing
Secondary Oscillator using Timer1 @ 32 kHz
Fail-Safe Clock Monitor                                      ECAN Technology Module Features:
   - Allows for safe shutdown if peripheral clock stops
                                                                Message Bit Rates up to 1 Mbps
Special Microcontroller Features:                               Conforms to CAN 2.0B Active Specification
                                                                Fully Backward Compatible with PIC18XXX8 CAN
C Compiler Optimized Architecture with Optional
   Extended Instruction Set                                       modules
                                                                Three Modes of Operation:
100,000 Erase/Write Cycle Enhanced Flash
   Program Memory Typical                                         - Legacy, Enhanced Legacy, FIFO
                                                                Three Dedicated Transmit Buffers with Prioritization
1,000,000 Erase/Write Cycle Data EEPROM                      Two Dedicated Receive Buffers
   Memory Typical                                              Six Programmable Receive/Transmit Buffers
                                                                Three Full 29-Bit Acceptance Masks
Flash/Data EEPROM Retention: > 40 Years                      16 Full 29-Bit Acceptance Filters w/Dynamic
Self-Programmable under Software Control
Priority Levels for Interrupts                                  Association
8 x 8 Single-Cycle Hardware Multiplier                        DeviceNetTM Data Byte Filter Support
Extended Watchdog Timer (WDT):                               Automatic Remote Frame Handling
                                                                Advanced Error Management Features
   - Programmable period from 41 ms to 131s
Single-Supply 5V In-Circuit Serial

   ProgrammingTM (ICSPTM) via Two Pins
In-Circuit Debug (ICD) via Two Pins
Wide Operating Voltage Range: 2.0V to 5.5V

        Program Memory            Data Memory                   10-Bit    CCP/     MSSP      EUSART         Timers
                                                               A/D (ch)  ECCP                               8/16-bit
Device  Flash # Single-Word SRAM EEPROM                   I/O            (PWM)  SPI  Master          Comp.
        (bytes) Instructions (bytes) (bytes)                                          I2CTM

PIC18F2480 16K  8192              768  256                25   8         1/0    Y        Y   1       0      1/3

PIC18F2580 32K  16384             1536 256                25   8         1/0    Y        Y   1       0      1/3

PIC18F4480 16K  8192              768  256                36   11        1/1    Y        Y   1       2      1/3

PIC18F4580 32K  16384             1536 256                36   11        1/1    Y        Y   1       2      1/3

2009 Microchip Technology Inc.                                                                     DS39637D-page 3
PIC18F2480/2580/4480/4580

Pin Diagrams

28-Pin SPDIP, SOIC                                           1                                          28  RB7/KBI3/PGD

                                               MCLR/VPP/RE3

                 RA0/AN0                                     2                                          27  RB6/KBI2/PGC

                 RA1/AN1                                     3                                          26  RB5/KBI1/PGM

                 RA2/AN2/VREF-                               4                                          25  RB4/KBI0/AN9

                 RA3/AN3/VREF+                               5      PIC18F2480                          24  RB3/CANRX
                                                                       PIC18F2580
                 RA4/T0CKI                                   6                                          23  RB2/INT2/CANTX

                 RA5/AN4/SS/HLVDIN                           7                                          22  RB1/INT1/AN8

                 VSS                                         8                                          21  RB0/INT0/AN10

                 OSC1/CLKI/RA7                               9                                          20  VDD

                 OSC2/CLKO/RA6                               10                                         19  VSS

                 RC0/T1OSO/T13CKI                            11                                         18  RC7/RX/DT

                 RC1/T1OSI                                   12                                         17  RC6/TX/CK

                 RC2/CCP1                                    13                                         16  RC5/SDO

                 RC3/SCK/SCL                                 14                                         15  RC4/SDI/SDA

28-Pin QFN                                                          RA1/AN1
                                                                       RA0/AN0
                                                                           MCLR/VPP/RE3
                                                                               RB7/KBI3/PGD
                                                                                   RB6/KBI2/PGC
                                                                                       RB5/KBI1/PGM
                                                                                          RB4/KBI0/AN9

                                                                    28 27 26 25 24 23 22

                         RA2/AN2/VREF-                       1                                          21  RB3/CANRX
                        RA3/AN3/VREF+                                                                       RB2/INT2/CANTX
                                                             2                                          20  RB1/INT1/AN8
                               RA4/T0CKI                                                                    RB0/INT0/AN10
                 RA5/AN4/SS/HLVDIN                           3      PIC18F2480 19                           VDD
                                                             4                                          18  VSS
                                         VSS                 5      PIC18F2580                          17  RC7/RX/DT
                       OSC1/CLKI/RA7
                      OSC2/CLKO/RA6                          6                                          16

                                                             7                                          15

                                                                    8 9 10 11 12 13 14

                                                                    RC0/T1OSO/T13CKI
                                                                       RC1/T1OSI
                                                                           RC2/CCP1

                                                                               RC3/SCK/SCL
                                                                                   RC4/SDI/SDA

                                                                                      RC5/SDO
                                                                                          RC6/TX/CK

40-Pin PDIP      MCLR/VPP/RE3                                   1                  40                       RB7/KBI3/PGD

                 RA0/AN0/CVREF                                  2                  39                       RB6/KBI2/PGC

                 RA1/AN1                                        3                  38                       RB5/KBI1/PGM

                 RA2/AN2/VREF-                                  4                  37                       RB4/KBI0/AN9

                 RA3/AN3/VREF+                                  5                  36                       RB3/CANRX

                 RA4/T0CKI                                      6                  35                       RB2/INT2/CANTX

                 RA5/AN4/SS/HLVDIN                              7                  34                       RB1/INT1/AN8

                 RE0/RD/AN5                                     8   PIC18F4480     33                       RB0/INT0/FLT0/AN10
                                                                       PIC18F4580
                 RE1/WR/AN6/C1OUT                               9                  32                       VDD

                 RE2/CS/AN7/C2OUT                               10                 31                       VSS

                 VDD                                            11                 30                       RD7/PSP7/P1D

                 VSS                                            12                 29                       RD6/PSP6/P1C

                 OSC1/CLKI/RA7                                  13                 28                       RD5/PSP5/P1B

                 OSC2/CLKO/RA6                                  14                 27                       RD4/PSP4/ECCP1/P1A

                 RC0/T1OSO/T13CKI                               15                 26                       RC7/RX/DT

                 RC1/T1OSI                                      16                 25                       RC6/TX/CK

                 RC2/CCP1                                       17                 24                       RC5/SDO

                 RC3/SCK/SCL                                    18                 23                       RC4/SDI/SDA

                 RD0/PSP0/C1IN+                                 19                 22                       RD3/PSP3/C2IN-

                 RD1/PSP1/C1IN-                                 20                 21                       RD2/PSP2/C2IN+

DS39637D-page 4                                                                                                       2009 Microchip Technology Inc.
                                  PIC18F2480/2580/4480/4580

Pin Diagrams (Continued)                                                RD3/PSP3/C2IN-  RD2/PSP2/C2IN+  RD1/PSP1/C1IN-  RD0/PSP0/C1IN+
             44-Pin TQFP

                                      RC6/TX/CK  RC5/SDO  RC4/SDI/SDA                                                                   RC3/SCK/SCL    RC2/CCP1  RC1/T1OSI      NC

                                      44         43       42            41              40              39              38              37             36        35             34

                RC7/RX/DT         1                                                                                                                                                               33     NC
RD4/PSP4/ECCP1/P1A                                                                                                                                                                                    RC0/T1OSO/T13CKI
                                  2                                                                                                                                                               32  OSC2/CLKO/RA6
           RD5/PSP5/P1B                                                                                                                                                                               OSC1/CLKI/RA7
          RD6/PSP6/P1C            3                                                                                                                                                               31
                                                                                                                                                                                                         VSS
           RD7/PSP7/P1D           4                                                                                                                                                               30     VDD
                                                                                                                                                                                                      RE2/CS/AN7/C2OUT
                          VSS     5 PIC18F4480                                                                                                                                                    29  RE1/WR/AN6/C1OUT
                          VDD     6                                                                                                                                                               28  RE0/RD/AN5
  RB0/INT0/FLT0/AN10              7                       PIC18F4580                                                                                                                              27  RA5/AN4/SS/HLVDIN
           RB1/INT1/AN8                                                                                                                                                                               RA4/T0CKI
       RB2/INT2/CANTX             8                                                                                                                                                               26
              RB3/CANRX
                                  9                                                                                                                                                               25

                                  10                                                                                                                                                              24

                                  11  12         13       14            15              16              17              18              19             20        21             22                23

                                      NC         NC       RB4/KBI0/AN9  RB5/KBI1/PGM    RB6/KBI2/PGC    RB7/KBI3/PGD    MCLR/VPP/RE3    RA0/AN0/CVREF  RA1/AN1   RA2/AN2/VREF-  RA3/AN3/VREF+

44-Pin QFN(1)

                                      RC6/TX/CK  RC5/SDO  RC4/SDI/SDA   RD3/PSP3/C2IN-  RD2/PSP2/C2IN+  RD1/PSP1/C1IN-  RD0/PSP0/C1IN+  RC3/SCK/SCL    RC2/CCP1  RC1/T1OSI      RC0/T1OSO/T13CKI

                                      44         43       42            41              40              39              38              37             36        35             34

                RC7/RX/DT         1                                                                                                                                                            33     OSC2/CLKO/RA6
RD4/PSP4/ECCP1/P1A                                                                                                                                                                                    OSC1/CLKI/RA7
                                  2                                                                                                                                                            32     VSS
          RD5/PSP5/P1B                                                                                                                                                                                AVSS
          RD6/PSP6/P1C            3                                                                                                                                                            31
                                                                                                                                                                                                      VDD
          RD7/PSP7/P1D            4                                                                                                                                                            30     AVDD
                           VSS                                                                                                                                                                        RE2/CS/AN7/C2OUT
                                  5                       PIC18F4480                                                                                                                           29     RE1/WR/AN6/C1OUT
                        AVDD      6                       PIC18F4580                                                                                                                           28     RE0/RD/AN5
                          VDD     7                                                                                                                                                            27     RA5/AN4/SS/HLVDIN
                                                                                                                                                                                                      RA4/T0CKI
  RB0/INT0/FLT0/AN10              8                                                                                                                                                            26
            RB1/INT1/AN8
                                  9                                                                                                                                                            25
       RB2/INT2/CANTX
                                  10                                                                                                                                                           24
                                                                                                                                                                                               23
                                  11  12         13       14            15              16              17              18              19             20        21             22

                                      RB3/CANRX  NC       RB4/KBI0/AN9  RB5/KBI1/PGM    RB6/KBI2/PGC    RB7/KBI3/PGD    MCLR/VPP/RE3    RA0/AN0/CVREF  RA1/AN1   RA2/AN2/VREF-  RA3/AN3/VREF+

Note 1: For the QFN package, it is recommended that the bottom pad be connected to VSS.

2009 Microchip Technology Inc.                                                                                                                                                                                         DS39637D-page 5
PIC18F2480/2580/4480/4580

Table of Contents

1.0 Device Overview .......................................................................................................................................................................... 9
2.0 Guidelines for Getting Started with PIC18F Microcontrollers ..................................................................................................... 25
3.0 Oscillator Configurations ............................................................................................................................................................ 29
4.0 Power-Managed Modes ............................................................................................................................................................. 39
5.0 Reset .......................................................................................................................................................................................... 47
6.0 Memory Organization ................................................................................................................................................................. 67
7.0 Flash Program Memory ............................................................................................................................................................ 101
8.0 Data EEPROM Memory ........................................................................................................................................................... 111
9.0 8 x 8 Hardware Multiplier.......................................................................................................................................................... 117
10.0 Interrupts .................................................................................................................................................................................. 119
11.0 I/O Ports ................................................................................................................................................................................... 135
12.0 Timer0 Module ......................................................................................................................................................................... 151
13.0 Timer1 Module ......................................................................................................................................................................... 155
14.0 Timer2 Module ......................................................................................................................................................................... 161
15.0 Timer3 Module ......................................................................................................................................................................... 163
16.0 Capture/Compare/PWM (CCP) Modules ................................................................................................................................. 167
17.0 Enhanced Capture/Compare/PWM (ECCP) Module................................................................................................................ 177
18.0 Master Synchronous Serial Port (MSSP) Module .................................................................................................................... 191
19.0 Enhanced Universal Synchronous Receiver Transmitter (EUSART) ....................................................................................... 231
20.0 10-Bit Analog-to-Digital Converter (A/D) Module ..................................................................................................................... 253
21.0 Comparator Module.................................................................................................................................................................. 263
22.0 Comparator Voltage Reference Module ................................................................................................................................... 269
23.0 High/Low-Voltage Detect (HLVD)............................................................................................................................................. 273
24.0 ECAN Module........................................................................................................................................................................... 279
25.0 Special Features of the CPU .................................................................................................................................................... 349
26.0 Instruction Set Summary .......................................................................................................................................................... 367
27.0 Development Support............................................................................................................................................................... 417
28.0 Electrical Characteristics .......................................................................................................................................................... 421
29.0 Packaging Information.............................................................................................................................................................. 459
Appendix A: Revision History............................................................................................................................................................. 471
Appendix B: Device Differences......................................................................................................................................................... 471
Appendix C: Conversion Considerations ........................................................................................................................................... 472
Appendix D: Migration from Baseline to Enhanced Devices.............................................................................................................. 472
Appendix E: Migration From Mid-Range to Enhanced Devices ......................................................................................................... 473
Appendix F: Migration From High-End to Enhanced Devices............................................................................................................ 473
The Microchip Web Site ..................................................................................................................................................................... 487
Customer Change Notification Service .............................................................................................................................................. 487
Customer Support .............................................................................................................................................................................. 487
Reader Response .............................................................................................................................................................................. 488
PIC18F2480/2580/4480/4580 Product Identification System ............................................................................................................ 489

DS39637D-page 6   2009 Microchip Technology Inc.
                       PIC18F2480/2580/4480/4580

                                   TO OUR VALUED CUSTOMERS

It is our intention to provide our valued customers with the best documentation possible to ensure successful use of your Microchip
products. To this end, we will continue to improve our publications to better suit your needs. Our publications will be refined and
enhanced as new volumes and updates are introduced.
If you have any questions or comments regarding this publication, please contact the Marketing Communications Department via
E-mail at docerrors@mail.microchip.com or fax the Reader Response Form in the back of this data sheet to (480) 792-4150.
We welcome your feedback.

Most Current Data Sheet

To obtain the most up-to-date version of this data sheet, please register at our Worldwide Web site at:
      http://www.microchip.com

You can determine the version of a data sheet by examining its literature number found on the bottom outside corner of any page.
The last character of the literature number is the version number, (e.g., DS30000A is version A of document DS30000).

Errata

An errata sheet, describing minor operational differences from the data sheet and recommended workarounds, may exist for current
devices. As device/documentation issues become known to us, we will publish an errata sheet. The errata will specify the revision
of silicon and revision of document to which it applies.
To determine if an errata sheet exists for a particular device, please check with one of the following:
Microchip's Worldwide Web site; http://www.microchip.com
Your local Microchip sales office (see last page)
The Microchip Corporate Literature Center; U.S. FAX: (480) 792-7277
When contacting a sales office or the literature center, please specify which device, revision of silicon and data sheet (include
literature number) you are using.

Customer Notification System

Register on our web site at www.microchip.com/cn to receive the most current information on all of our products.

2009 Microchip Technology Inc.  DS39637D-page 7
PIC18F2480/2580/4480/4580

NOTES:

DS39637D-page 8             2009 Microchip Technology Inc.
                                  PIC18F2480/2580/4480/4580

1.0 DEVICE OVERVIEW                                       1.1.2  MULTIPLE OSCILLATOR OPTIONS
                                                                 AND FEATURES
This document contains device specific information for
the following devices:                                    All of the devices in the PIC18F2480/2580/4480/4580
                                                          family offer ten different oscillator options, allowing
PIC18F2480                                              users a wide range of choices in developing application
PIC18F2580                                              hardware. These include:
PIC18F4480
PIC18F4580                                              Four Crystal modes, using crystals or ceramic
                                                             resonators
This family of devices offers the advantages of all
PIC18 microcontrollers namely, high computational       Two External Clock modes, offering the option of
performance at an economical price with the addition       using two pins (oscillator input and a divide-by-4
of high-endurance, Enhanced Flash program                    clock output) or one pin (oscillator input, with the
memory. In addition to these features, the                   second pin reassigned as general I/O)
PIC18F2480/2580/4480/4580 family introduces design
enhancements that make these microcontrollers a            Two External RC Oscillator modes with the same
logical choice for many high-performance,                    pin options as the External Clock modes
power-sensitive applications.
                                                          An internal oscillator block which provides an
1.1 New Core Features                                        8 MHz clock (2% accuracy) and an INTRC
                                                             source (approximately 31 kHz, stable over
1.1.1 nanoWatt TECHNOLOGY                                    temperature and VDD), as well as a range of
                                                             6 user-selectable clock frequencies, between
All of the devices in the PIC18F2480/2580/4480/4580          125 kHz to 4 MHz, for a total of 8 clock
family incorporate a range of features that can signifi-     frequencies. This option frees the two oscillator
cantly reduce power consumption during operation.            pins for use as additional general purpose I/O.
Key items include:
                                                          A Phase Lock Loop (PLL) frequency multiplier,
Alternate Run Modes: By clocking the controller            available to both the high-speed crystal and
   from the Timer1 source or the internal oscillator         internal oscillator modes, which allows clock
   block, power consumption during code execution            speeds of up to 40 MHz. Used with the internal
   can be reduced by as much as 90%.                         oscillator, the PLL gives users a complete
                                                             selection of clock speeds, from 31 kHz to
Multiple Idle Modes: The controller can also run           32 MHz all without using an external crystal or
   with its CPU core disabled but the peripherals still      clock circuit.
   active. In these states, power consumption can be
   reduced even further, to as little as 4% of normal     Besides its availability as a clock source, the internal
   operation requirements.                                oscillator block provides a stable reference source that
                                                          gives the family additional features for robust
On-the-Fly Mode Switching: The                          operation:
   power-managed modes are invoked by user code
   during operation, allowing the user to incorporate      Fail-Safe Clock Monitor: This option constantly
   power-saving ideas into their application's               monitors the main clock source against a refer-
   software design.                                          ence signal provided by the internal oscillator. If a
                                                             clock failure occurs, the controller is switched to
Lower Consumption in Key Modules: The                      the internal oscillator block, allowing for continued
   power requirements for both Timer1 and the                low-speed operation or a safe application
   Watchdog Timer have been reduced by up to                 shutdown.
   80%, with typical values of 1.1 and 2.1 A,
   respectively.                                           Two-Speed Start-up: This option allows the
                                                             internal oscillator to serve as the clock source
Extended Instruction Set: In addition to the               from Power-on Reset, or wake-up from Sleep
   standard 75 instructions of the PIC18 instruction         mode, until the primary clock source is available.
   set, PIC18F2480/2580/4480/4580 devices also
   provide an optional extension to the core CPU
   functionality. The added features include eight
   additional instructions that augment indirect and
   indexed addressing operations and the
   implementation of Indexed Literal Offset
   Addressing mode for many of the standard PIC18
   instructions.

2009 Microchip Technology Inc.                                 DS39637D-page 9
PIC18F2480/2580/4480/4580

1.2 Other Special Features                              1.3 Details on Individual Family
                                                                 Members
Memory Endurance: The Enhanced Flash cells
   for both program memory and data EEPROM are          Devices in the PIC18F2480/2580/4480/4580 family are
   rated to last for many thousands of erase/write      available in 28-pin (PIC18F2X80) and 40/44-pin
   cycles up to 100,000 for program memory and        (PIC18F4X80) packages. Block diagrams for the two
   1,000,000 for EEPROM. Data retention without         groups are shown in Figure 1-1 and Figure 1-2.
   refresh is conservatively estimated to be greater
   than 40 years.                                       The devices are differentiated from each other in six
                                                        ways:
Self-Programmability: These devices can write
   to their own program memory spaces under inter-      1. Flash program memory (16 Kbytes for
   nal software control. By using a bootloader routine        PIC18FX480 devices; 32 Kbytes for
   located in the protected Boot Block at the top of          PIC18FX580 devices).
   program memory, it becomes possible to create
   an application that can update itself in the field.  2. A/D channels (8 for PIC18F2X80 devices; 11 for
                                                              PIC18F4X80 devices).
Extended Instruction Set: The
   PIC18F2480/2580/4480/4580 family introduces          3. I/O ports (3 bidirectional ports and 1 input only
   an optional extension to the PIC18 instruction set,        port on PIC18F2X80 devices; 5 bidirectional
   which adds 8 new instructions and an Indexed               ports on PIC18F4X80 devices).
   Addressing mode. This extension, enabled as a
   device configuration option, has been specifically   4. CCP and Enhanced CCP implementation
   designed to optimize re-entrant application code           (PIC18F2X80 devices have 1 standard CCP
   originally developed in high-level languages, such         module; PIC18F4X80 devices have one
   as C.                                                      standard CCP module and one ECCP module).

Enhanced CCP Module: In PWM mode, this                5. Parallel Slave Port (present only on
   module provides 1, 2 or 4 modulated outputs for            PIC18F4X80 devices).
   controlling half-bridge and full-bridge drivers.
   Other features include auto-shutdown, for            6. PIC18F4X80 devices provide two comparators.
   disabling PWM outputs on interrupt or other select
   conditions and auto-restart, to reactivate outputs   All other features for devices in this family are identical.
   once the condition has cleared.                      These are summarized in Table 1-1.

Enhanced Addressable USART: This serial               The pinouts for all devices are listed in Table 1-2 and
   communication module is capable of standard          Table 1-3.
   RS-232 operation and provides support for the
   LIN/J2602 bus protocol. Other enhancements           Like all Microchip PIC18 devices, members of the
   include automatic baud rate detection and a 16-bit   PIC18F2480/2580/4480/4580 family are available as
   Baud Rate Generator for improved resolution.         both standard and low-voltage devices. Standard
   When the microcontroller is using the internal       devices with Enhanced Flash memory, designated with
   oscillator block, the EUSART provides stable         an "F" in the part number (such as PIC18F2580),
   operation for applications that talk to the outside  accommodate an operating VDD range of 4.2V to 5.5V.
   world without using an external crystal (or its      Low-voltage parts, designated by "LF" (such as
   accompanying power requirement).                     PIC18LF2580), function over an extended VDD range
                                                        of 2.0V to 5.5V.
10-Bit A/D Converter: This module incorporates
   programmable acquisition time, allowing for a
   channel to be selected and a conversion to be
   initiated without waiting for a sampling period and
   thus, reduce code overhead.

Extended Watchdog Timer (WDT): This
   enhanced version incorporates a 16-bit prescaler,
   allowing a time-out range from 4 ms to over
   131 seconds, that is stable across operating
   voltage and temperature.

DS39637D-page 10                                        2009 Microchip Technology Inc.
                                  PIC18F2480/2580/4480/4580

TABLE 1-1: DEVICE FEATURES

Features                          PIC18F2480          PIC18F2580          PIC18F4480           PIC18F4580

Operating Frequency               DC 40 MHz         DC 40 MHz         DC 40 MHz          DC 40 MHz
Program Memory (Bytes)                16384               32768               16384                32768
Program Memory (Instructions)          8192               16384                8192                16384
Data Memory (Bytes)                     768                1536                 768                 1536
Data EEPROM Memory (Bytes)              256                 256                 256                  256
Interrupt Sources                        19                  19                  20                   20

I/O Ports                         Ports A, B, C, (E)  Ports A, B, C, (E)  Ports A, B, C, D, E  Ports A, B, C, D, E
Timers                                      4                   4                    4                    4
Capture/Compare/PWM Modules                 1                   1                    1                    1
Enhanced Capture/                           0                   0                    1                    1
Compare/PWM Modules
ECAN Module                                 1         1                   1                    1

Serial Communications                    MSSP,               MSSP,               MSSP,                MSSP,
Parallel Communications (PSP)     Enhanced USART      Enhanced USART      Enhanced USART       Enhanced USART
10-Bit Analog-to-Digital Module
Comparators                                 No                  No                 Yes                  Yes
Resets (and Delays)
                                  8 Input Channels    8 Input Channels    11 Input Channels    11 Input Channels
Programmable High/
Low-Voltage Detect                           0                   0                   2                    2
Programmable Brown-out Reset
Instruction Set                       POR, BOR,           POR, BOR,           POR, BOR,            POR, BOR,
                                  RESET Instruction,  RESET Instruction,  RESET Instruction,   RESET Instruction,
Packages
                                       Stack Full,         Stack Full,         Stack Full,          Stack Full,
                                   Stack Underflow     Stack Underflow     Stack Underflow      Stack Underflow
                                    (PWRT, OST),        (PWRT, OST),        (PWRT, OST),         (PWRT, OST),
                                  MCLR (optional),    MCLR (optional),    MCLR (optional),     MCLR (optional),

                                          WDT                 WDT                 WDT                  WDT

                                           Yes                 Yes                 Yes                  Yes

                                           Yes                 Yes                 Yes                  Yes

                                   75 Instructions;    75 Instructions;    75 Instructions;     75 Instructions;
                                  83 with Extended    83 with Extended    83 with Extended     83 with Extended

                                   Instruction Set     Instruction Set     Instruction Set      Instruction Set
                                        Enabled             Enabled             Enabled              Enabled

                                    28-pin SPDIP        28-pin SPDIP         40-pin PDIP          40-pin PDIP
                                     28-pin SOIC         28-pin SOIC         44-pin QFN           44-pin QFN
                                     28-pin QFN          28-pin QFN         44-pin TQFP          44-pin TQFP

2009 Microchip Technology Inc.                                                               DS39637D-page 11
PIC18F2480/2580/4480/4580

FIGURE 1-1:       PIC18F2480/2580 (28-PIN) BLOCK DIAGRAM

                                                  Data Bus<8>

Table Pointer<21>                          88                                   Data Latch                   PORTA  RA0/AN0
   inc/dec logic                                                                                             PORTB  RA1/AN1
         21                PCLATU PCLATH                                       Data Memory                   PORTC  RA2/AN2/VREF-
                       20                                                     (.7, 1.5 Kbytes)               PORTE  RA3/AN3/VREF+
                           PCU PCH PCL                                        Address Latch                         RA4/T0CKI
Address Latch              Program Counter                                                                         RA5/AN4/SS/HLVDIN
Program Memory                                                                           12                         OSC2/CLKO/RA6
                              31 Level Stack                               Data Address<12>                         OSC1/CLKI/RA7
  (16/32 Kbytes)                 STKPTR
   Data Latch                                                          4          12          4                     RB0/INT0/AN10
                                                                   BSR                   Access                     RB1/INT1/AN8
                                                                             FSR0         Bank                      RB2/INT2/CANTX
                                                                             FSR1                                   RB3/CANRX
                                                                             FSR2               12                  RB4/KBI0/AN9
                                                                                                                    RB5/KBI1/PGM
                  8                                                          inc/dec                                RB6/KBI2/PGC
                            Table Latch                                       logic                                 RB7/KBI3/PGD

                                       ROM Latch                             Address                                 RC0/T1OSO/T13CKI
Instruction Bus <16>                                                         Decode                                  RC1/T1OSI
                                                                                                                     RC2/CCP1
                                       IR                                                                            RC3/SCK/SCL
                                                                                                                     RC4/SDI/SDA
                           Instruction            State Machine                                 8                    RC5/SDO
                           Decode &               Control Signals            PRODH PRODL                             RC6/TX/CK
                                                                                                                     RC7/RX/DT
                             Control
                                                                                                                    MCLR/VPP/RE3(1)
                                                                         3   8 x 8 Multiply
                                                                                                   8
                                                                   BITOP
                                                                          8     W                   8

                                                                                      8

OSC1(2)               Internal                       Power-up                8                      8
OSC2(2)             Oscillator                         Timer
T1OSI                                                                        ALU<8>
T1OSO                  Block                         Oscillator
MCLR(1)                                           Start-up Timer                      8
VDD, VSS              INTRC
                    Oscillator                       Power-on      Band Gap
                                                       Reset       Reference
                      8 MHz
                    Oscillator                      Watchdog
                                                       Timer
                  Single-Supply
                  Programming                       Brown-out
                                                       Reset
                     In-Circuit
                    Debugger                         Fail-Safe
                                                  Clock Monitor

BOR             Data       Timer0                 Timer1           Timer2    Timer3
HLVD         EEPROM

Comparator        CCP1     ECCP1                  MSSP            EUSART         ADC                   ECAN
                                                                                10-Bit

Note 1:      RE3 is multiplexed with MCLR and is only available when the MCLR Resets are disabled.
         2:
             OSC1/CLKI and OSC2/CLKO are only available in select oscillator modes and when these pins are not being used as digital I/O.
             Refer to Section 3.0 "Oscillator Configurations" for additional information.

DS39637D-page 12                                                                                              2009 Microchip Technology Inc.
                                                  PIC18F2480/2580/4480/4580

FIGURE 1-2:  PIC18F4480/4580 (40/44-PIN) BLOCK DIAGRAM

                                                  Data Bus<8>                                            PORTA
                                                                                                         PORTB
Table Pointer<21>                          88                                  Data Latch                PORTC  RA0/AN0/CVREF
   inc/dec logic                                                                                         PORTD  RA1/AN1
        21                 PCLATU PCLATH                                      Data Memory                PORTE  RA2/AN2/VREF-
                       20                                                    (.7, 1.5 Kbytes)                   RA3/AN3/VREF+
                           PCU PCH PCL                                        Address Latch                     RA4/T0CKI
Address Latch               Program Counter                                                                     RA5/AN4/SS/HLVDIN
Program Memory                                                                           12                     OSC2/CLKO/RA6
                              31 Level Stack                               Data Address<12>                     OSC1/CLKI/RA7
(16/32 Kbytes)                  STKPTR
   Data Latch                                                          4         12       4                     RB0/INT0/FLT0/AN10
                                                                   BSR               Access                     RB1/INT1/AN8
                                                                            FSR0      Bank                      RB2/INT2/CANTX
                                                                            FSR1                                RB3/CANRX
                                                                            FSR2            12                  RB4/KBI0/AN9
                                                                                                                RB5/KBI1/PGM
             8                                                              inc/dec                             RB6/KBI2/PGC
                       Table Latch                                           logic                              RB7/KBI3/PGD

                                       ROM Latch                            Address                             RC0/T1OSO/T13CKI
Instruction Bus <16>                                                        Decode                              RC1/T1OSI
                                                                                                                RC2/CCP1
                                             IR                                                                 RC3/SCK/SCL
                                                                                                                RC4/SDI/SDA
                           Instruction            State Machine                                8                RC5/SDO
                           Decode &               Control Signals           PRODH PRODL                         RC6/TX/CK
                                                                                                                RC7/RX/DT
                             Control
                                                                                                                RD0/PSP0/C1IN+
                                                                         3  8 x 8 Multiply                      RD1/PSP1/C1IN-
                                                                                                  8             RD2/PSP2/C2IN+
                                                                   BITOP                                        RD3/PSP3/C2IN-
                                                                         8     W                8               RD4/PSP4/ECCP1/P1A
                                                                                                                RD5/PSP5/P1B
                                                                                     8                          RD6/PSP6/P1C
                                                                                                                RD7/PSP7/P1D
OSC1(2)          Internal                            Power-up               8                   8
OSC2(2)        Oscillator                              Timer                                                    RE0/RD/AN5
T1OSI                                                                       ALU<8>                              RE1/WR/AN6/C1OUT
T1OSO             Block                              Oscillator                                                 RE2/CS/AN7/C2OUT
MCLR(1)                                           Start-up Timer                        8                       MCLR/VPP/RE3(1)
VDD, VSS         INTRC
               Oscillator                            Power-on      Band Gap
                                                       Reset       Reference
                 8 MHz
               Oscillator                           Watchdog
                                                       Timer
             Single-Supply
             Programming                            Brown-out
                                                       Reset
                In-Circuit
               Debugger                              Fail-Safe
                                                  Clock Monitor

BOR             Data       Timer0                 Timer1           Timer2      Timer3
HLVD         EEPROM

Comparator   CCP1          ECCP1                  MSSP            EUSART        ADC                ECAN
                                                                               10-Bit

Note 1:      RE3 is multiplexed with MCLR and is only available when the MCLR Resets are disabled.
         2:
             OSC1/CLKI and OSC2/CLKO are only available in select oscillator modes and when these pins are not being used as digital I/O.
             Refer to Section 3.0 "Oscillator Configurations" for additional information.

2009 Microchip Technology Inc.                                                                                DS39637D-page 13
PIC18F2480/2580/4480/4580

TABLE 1-2: PIC18F2480/2580 PINOUT I/O DESCRIPTIONS

                  Pin Number   Pin Buffer

Pin Name          SPDIP,  QFN  Type  Type                                   Description
                   SOIC

MCLR/VPP/RE3      1       26               Master Clear (input) or programming voltage (input).
    MCLR
                               I     ST               Master Clear (Reset) input. This pin is an active-low
    VPP
    RE3                                               Reset to the device.

                               P                      Programming voltage input.

                               I     ST               Digital input.

OSC1/CLKI/RA7     9       6                Oscillator crystal or external clock input.
    OSC1
                               I     ST               Oscillator crystal input or external clock source input.
    CLKI
                                                      ST buffer when configured in RC mode; CMOS otherwise.
    RA7
                               I CMOS External clock source input. Always associated with pin

                                                      function OSC1. (See related OSC1/CLKI, OSC2/CLKO pins.)

                               I/O TTL                General purpose I/O pin.

OSC2/CLKO/RA6     10      7                Oscillator crystal or clock output.
    OSC2
                               O     --               Oscillator crystal output. Connects to crystal or resonator in
    CLKO
                                                      Crystal Oscillator mode.
    RA6
                               O     --               In RC mode, OSC2 pin outputs CLKO which has 1/4 the

                                                      frequency of OSC1 and denotes the instruction cycle rate.

                               I/O TTL                General purpose I/O pin.

Legend:  TTL = TTL compatible input                   CMOS = CMOS compatible input or output

         ST = Schmitt Trigger input with CMOS levels  I  = Input

         O = Output                                   P  = Power
         I2C = I2CTM/SMBus input buffer

DS39637D-page 14                                                                   2009 Microchip Technology Inc.
                                             PIC18F2480/2580/4480/4580

TABLE 1-2: PIC18F2480/2580 PINOUT I/O DESCRIPTIONS (CONTINUED)

               Pin Number              Pin Buffer

     Pin Name  SPDIP,             QFN  Type  Type                            Description
                SOIC

                                                   PORTA is a bidirectional I/O port.

RA0/AN0        2                  27
    RA0
    AN0                                I/O TTL        Digital I/O.

RA1/AN1                                I Analog Analog Input 0.
    RA1
    AN1        3                  28

RA2/AN2/VREF-                          I/O TTL        Digital I/O.
    RA2
    AN2                                I Analog Analog Input 1.
    VREF-
               4                  1
RA3/AN3/VREF+
    RA3                                I/O TTL        Digital I/O.
    AN3
    VREF+                              I Analog Analog Input 2.

RA4/T0CKI                              I Analog A/D reference voltage (low) input.
    RA4
    T0CKI      5                  2

RA5/AN4/SS/                            I/O TTL        Digital I/O.
HLVDIN
                                       I Analog Analog Input 3.
    RA5
    AN4                                I Analog A/D reference voltage (high) input.
    SS
    HLVDIN     6                  3

RA6                                    I/O TTL        Digital I/O.

                                       I     ST       Timer0 external clock input.

               7                  4

                                       I/O TTL        Digital I/O.
                                                      Analog Input 4.
                                       I Analog       SPI slave select input.
                                                      High/Low-Voltage Detect input.
                                       I     TTL
                                                      See the OSC2/CLKO/RA6 pin.
                                       I Analog

RA7                                                   See the OSC1/CLKI/RA7 pin.

Legend:  TTL = TTL compatible input                   CMOS = CMOS compatible input or output

         ST = Schmitt Trigger input with CMOS levels  I             = Input

         O = Output                                   P             = Power
         I2C = I2CTM/SMBus input buffer

2009 Microchip Technology Inc.                                                          DS39637D-page 15
PIC18F2480/2580/4480/4580

TABLE 1-2: PIC18F2480/2580 PINOUT I/O DESCRIPTIONS (CONTINUED)

                  Pin Number   Pin Buffer

Pin Name          SPDIP,  QFN  Type  Type                                    Description
                   SOIC

                                           PORTB is a bidirectional I/O port. PORTB can be software
                                           programmed for internal weak pull-ups on all inputs.

RB0/INT0/ AN10    21 18
    RB0
    INT0                       I/O TTL                Digital I/O.
    AN10
                               I     ST               External Interrupt 0.

                               I Analog Analog Input 10.

RB1/INT1/AN8      22 19
    RB1
    INT1                       I/O TTL                Digital I/O.
    AN8
                               I     ST               External Interrupt 1.

                               I Analog Analog Input 8.

RB2/INT2/CANTX    23 20
    RB2
    INT2                       I/O TTL                Digital I/O.
    CANTX                                             External Interrupt 2.
                               I     ST               CAN bus TX.

                               O TTL

RB3/CANRX         24 21
    RB3
    CANRX                      I/O TTL                Digital I/O.
                                                      CAN bus RX.
                               I     TTL

RB4/KBI0/AN9      25 22
    RB4
    KBI0                       I/O TTL                Digital I/O.
    AN9
                               I     TTL              Interrupt-on-change pin.

                               I Analog Analog Input 9.

RB5/KBI1/PGM      26 23
    RB5
    KBI1                       I/O TTL                Digital I/O.
    PGM                                               Interrupt-on-change pin.
                               I     TTL              Low-Voltage ICSPTM Programming enable pin.

                               I/O ST

RB6/KBI2/PGC      27 24
    RB6
    KBI2                       I/O TTL                Digital I/O.
    PGC                                               Interrupt-on-change pin.
                               I     TTL              In-Circuit Debugger and ICSP programming clock pin.

                               I/O ST

RB7/KBI3/PGD      28 25
    RB7
    KBI3                       I/O TTL                Digital I/O.
    PGD                                               Interrupt-on-change pin.
                               I     TTL              In-Circuit Debugger and ICSP programming data pin.

                               I/O ST

Legend:  TTL = TTL compatible input                   CMOS = CMOS compatible input or output

         ST = Schmitt Trigger input with CMOS levels  I             = Input

         O = Output                                   P             = Power
         I2C = I2CTM/SMBus input buffer

DS39637D-page 16                                                                2009 Microchip Technology Inc.
                                             PIC18F2480/2580/4480/4580

TABLE 1-2: PIC18F2480/2580 PINOUT I/O DESCRIPTIONS (CONTINUED)

               Pin Number              Pin Buffer

     Pin Name  SPDIP,             QFN  Type  Type                            Description
                SOIC

                                                   PORTC is a bidirectional I/O port.

RC0/T1OSO/T13CKI 11               8
    RC0
    T1OSO                              I/O ST         Digital I/O.
    T13CKI                                            Timer1 oscillator output.
                                       O     --       Timer1/Timer3 external clock input.

                                       I     ST

RC1/T1OSI      12                 9
    RC1
    T1OSI                              I/O ST         Digital I/O.

                                       I CMOS Timer1 oscillator input.

RC2/CCP1       13 10                                  Digital I/O.
    RC2                           I/O ST              Capture 1 input/Compare 1 output/PWM1 output.
    CCP1                          I/O ST

RC3/SCK/SCL    14 11                                  Digital I/O.
    RC3
    SCK                           I/O ST              Synchronous serial clock input/output for SPI mode.
    SCL                                               Synchronous serial clock input/output for I2CTM mode.
                                  I/O ST
                                  I/O I2C

RC4/SDI/SDA    15 12
    RC4
    SDI                                I/O ST         Digital I/O.
    SDA
                                       I     ST       SPI data in.
                                                      I2C data I/O.
                                       I/O I2C

RC5/SDO        16 13
    RC5
    SDO                                I/O ST         Digital I/O.
                                                      SPI data out.
                                       O     --

RC6/TX/CK      17 14
    RC6
    TX                                 I/O ST         Digital I/O.
    CK                                                EUSART asynchronous transmit.
                                       O     --       EUSART synchronous clock (see related RX/DT).

                                       I/O ST

RC7/RX/DT      18 15
    RC7
    RX                                 I/O ST         Digital I/O.
    DT                                                EUSART asynchronous receive.
                                       I     ST       EUSART synchronous data (see related TX/CK).

                                       I/O ST

RE3            --                 ----       -- See MCLR/VPP/RE3 pin.

VSS            8, 19 5, 16 P                 -- Ground reference for logic and I/O pins.

VDD            20 17 P                       -- Positive supply for logic and I/O pins.

Legend:  TTL = TTL compatible input                   CMOS = CMOS compatible input or output

         ST = Schmitt Trigger input with CMOS levels  I             = Input

         O = Output                                   P             = Power
         I2C = I2CTM/SMBus input buffer

2009 Microchip Technology Inc.                                                           DS39637D-page 17
PIC18F2480/2580/4480/4580

TABLE 1-3: PIC18F4480/4580 PINOUT I/O DESCRIPTIONS

Pin Name          Pin Number  Pin Buffer                                  Description

                  PDIP QFN TQFP Type Type

MCLR/VPP/RE3      1 18 18                                Master Clear (input) or programming voltage (input).
    MCLR
                              I  ST                      Master Clear (Reset) input. This pin is an
    VPP
    RE3                                                  active-low Reset to the device.

                              P                          Programming voltage input.

                              I  ST                      Digital input.

OSC1/CLKI/RA7     13 32 30                               Oscillator crystal or external clock input.
    OSC1
                              I  ST                      Oscillator crystal input or external clock source input.
    CLKI
                                                         ST buffer when configured in RC mode;
    RA7
                                                         CMOS otherwise.

                              I CMOS External clock source input. Always associated with

                                                         pin function OSC1. (See related OSC1/CLKI,

                                                         OSC2/CLKO pins.)

                              I/O TTL General purpose I/O pin.

OSC2/CLKO/RA6     14 33 31                               Oscillator crystal or clock output.
    OSC2
    CLKO                      O  --                      Oscillator crystal output. Connects to crystal or

    RA6                                                  resonator in Crystal Oscillator mode.

                              O  --                      In RC mode, OSC2 pin outputs CLKO which has 1/4

                                                         the frequency of OSC1 and denotes the instruction

                                                         cycle rate.

                              I/O TTL General purpose I/O pin.

Legend:  TTL = TTL compatible input                   CMOS = CMOS compatible input or output

         ST = Schmitt Trigger input with CMOS levels  I  = Input

         O = Output                                   P  = Power
         I2C = I2CTM/SMBus input buffer

DS39637D-page 18                                                            2009 Microchip Technology Inc.
                                  PIC18F2480/2580/4480/4580

TABLE 1-3: PIC18F4480/4580 PINOUT I/O DESCRIPTIONS (CONTINUED)

     Pin Name  Pin Number         Pin Buffer                            Description

               PDIP QFN TQFP Type Type

                                                         PORTA is a bidirectional I/O port.

RA0/AN0/CVREF  2 19 19
    RA0                                     I/O TTL Digital I/O.
    AN0                                       I Analog Analog Input 0.
    CVREF                                    O Analog Analog comparator reference output.

RA1/AN1        3 20 20
    RA1                                     I/O TTL Digital I/O.
    AN1                                       I Analog Analog Input 1.

RA2/AN2/VREF-  4 21 21
    RA2                                     I/O TTL Digital I/O.
    AN2                                       I Analog Analog Input 2.
    VREF-                                     I Analog A/D reference voltage (low) input.

RA3/AN3/VREF+  5 22 22
    RA3                                     I/O TTL Digital I/O.
    AN3                                       I Analog Analog Input 3.
    VREF+                                     I Analog A/D reference voltage (high) input.

RA4/T0CKI      6 23 23
    RA4
    T0CKI                         I/O TTL Digital I/O.

                                  I  ST                  Timer0 external clock input.

RA5/AN4/SS/    7 24 24
HLVDIN
                                  I/O TTL                Digital I/O.
    RA5                            I Analog              Analog Input 4.
    AN4                            I TTL                 SPI slave select input.
    SS                             I Analog              High/Low-Voltage Detect input.
    HLVDIN

RA6                                                      See the OSC2/CLKO/RA6 pin.

RA7                                                      See the OSC1/CLKI/RA7 pin.

Legend:  TTL = TTL compatible input                   CMOS = CMOS compatible input or output

         ST = Schmitt Trigger input with CMOS levels  I  = Input

         O = Output                                   P  = Power
         I2C = I2CTM/SMBus input buffer

2009 Microchip Technology Inc.                                                             DS39637D-page 19
PIC18F2480/2580/4480/4580

TABLE 1-3: PIC18F4480/4580 PINOUT I/O DESCRIPTIONS (CONTINUED)

Pin Name          Pin Number      Pin Buffer                           Description

                  PDIP QFN TQFP Type Type

                                                         PORTB is a bidirectional I/O port. PORTB can be
                                                         software programmed for internal weak pull-ups on all
                                                         inputs.

RB0/INT0/FLT0/    33 9        8
AN10
                                  I/O TTL Digital I/O.
    RB0
    INT0                          I  ST                  External Interrupt 0.
    FLT0
    AN10                          I  ST                  Enhanced PWM Fault input (ECCP1 module).

                                  I Analog Analog input 10.

RB1/INT1/AN8      34 10       9
    RB1
    INT1                          I/O TTL Digital I/O.
    AN8
                                  I  ST                  External Interrupt 1.

                                  I Analog Analog input 8.

RB2/INT2/CANTX    35 11       10
    RB2
    INT2                          I/O TTL                Digital I/O.
    CANTX                                                External Interrupt 2.
                                  I  ST                  CAN bus TX.

                                  O TTL

RB3/CANRX         36 12       11
    RB3                                I/O TTL
    CANRX                                I TTL           Digital I/O.
                                                         CAN bus RX.

RB4/KBI0/AN9      37 14 14
    RB4                                         I/O TTL Digital I/O.
    KBI0                                          I TTL Interrupt-on-change pin.
    AN9                                           I Analog Analog Input 9.

RB5/KBI1/PGM      38 15       15
    RB5                                I/O TTL
    KBI1                                 I TTL           Digital I/O.
    PGM                                I/O ST            Interrupt-on-change pin.
                                                         Low-Voltage ICSPTM Programming enable pin.

RB6/KBI2/PGC      39 16       16
    RB6                                I/O TTL
    KBI2                                 I TTL           Digital I/O.
    PGC                                I/O ST            Interrupt-on-change pin.
                                                         In-Circuit Debugger and ICSP programming
                                                         clock pin.

RB7/KBI3/PGD      40 17       17
    RB7                                I/O TTL
    KBI3                                 I TTL           Digital I/O.
    PGD                                I/O ST            Interrupt-on-change pin.
                                                         In-Circuit Debugger and ICSP programming
                                                         data pin.

Legend:  TTL = TTL compatible input                   CMOS = CMOS compatible input or output

         ST = Schmitt Trigger input with CMOS levels  I  = Input

         O = Output                                   P  = Power
         I2C = I2CTM/SMBus input buffer

DS39637D-page 20                                                                2009 Microchip Technology Inc.
                                     PIC18F2480/2580/4480/4580

TABLE 1-3: PIC18F4480/4580 PINOUT I/O DESCRIPTIONS (CONTINUED)

Pin Name     Pin Number              Pin Buffer                         Description

             PDIP QFN TQFP Type Type

                                                         PORTC is a bidirectional I/O port.

RC0/T1OSO/T13CKI 15 34 32

RC0                                  I/O ST              Digital I/O.
                                                         Timer1 oscillator output.
T1OSO                                O  --               Timer1/Timer3 external clock input.

T13CKI                               I  ST

RC1/T1OSI    16 35 35
    RC1
    T1OSI                            I/O ST              Digital I/O.

                                     I CMOS Timer1 oscillator input.

RC2/CCP1     17 36 36                                    Digital I/O.
    RC2                                    I/O ST        Capture 1 input/Compare 1 output/PWM1 output.
    CCP1                                   I/O ST

RC3/SCK/SCL  18 37 37                                    Digital I/O.
    RC3                                    I/O ST
    SCK                                    I/O ST        Synchronous serial clock input/output for

    SCL                                    I/O I2C       SPI mode.
                                                         Synchronous serial clock input/output for
                                                         I2CTM mode.

RC4/SDI/SDA  23 42 42
    RC4
    SDI                              I/O ST              Digital I/O.
    SDA
                                     I  ST               SPI data in.
                                                         I2C data I/O.
                                     I/O I2C

RC5/SDO      24 43 43
    RC5
    SDO                              I/O ST              Digital I/O.
                                                         SPI data out.
                                     O  --

RC6/TX/CK    25 44 44
    RC6
    TX                               I/O ST              Digital I/O.
    CK                                                   EUSART asynchronous transmit.
                                     O  --               EUSART synchronous clock (see related RX/DT).

                                     I/O ST

RC7/RX/DT    26 1                 1
    RC7
    RX                               I/O ST              Digital I/O.
    DT                                                   EUSART asynchronous receive.
                                     I  ST               EUSART synchronous data (see related TX/CK).

                                     I/O ST

Legend:  TTL = TTL compatible input                   CMOS = CMOS compatible input or output

         ST = Schmitt Trigger input with CMOS levels  I  = Input

         O = Output                                   P  = Power
         I2C = I2CTM/SMBus input buffer

2009 Microchip Technology Inc.                                                             DS39637D-page 21
PIC18F2480/2580/4480/4580

TABLE 1-3: PIC18F4480/4580 PINOUT I/O DESCRIPTIONS (CONTINUED)

Pin Name          Pin Number     Pin Buffer                            Description

                  PDIP QFN TQFP Type Type

                                                         PORTD is a bidirectional I/O port or a Parallel Slave
                                                         Port (PSP) for interfacing to a microprocessor port.
                                                         These pins have TTL input buffers when the PSP
                                                         module is enabled.

RD0/PSP0/C1IN+    19 38 38
    RD0
    PSP0                         I/O ST                  Digital I/O.
    C1IN+
                                 I/O TTL Parallel Slave Port data.

                                 I Analog Comparator 1 input (+).

RD1/PSP1/C1IN-    20 39 39
    RD1
    PSP1                         I/O ST                  Digital I/O.
    C1IN-
                                 I/O TTL Parallel Slave Port data.

                                 I Analog Comparator 1 input (-)

RD2/PSP2/C2IN+    21 40 40
    RD2
    PSP2                         I/O ST                  Digital I/O.
    C2IN+
                                 I/O TTL Parallel Slave Port data.

                                 I Analog Comparator 2 input (+).

RD3/PSP3/C2IN-    22 41 41
    RD3
    PSP3                         I/O ST                  Digital I/O.
    C2IN-
                                 I/O TTL Parallel Slave Port data.

                                 I Analog Comparator 2 input (-).

RD4/PSP4/ECCP1/ 27 2          2
P1A
                                 I/O ST                  Digital I/O.
    RD4                          I/O TTL                 Parallel Slave Port data.
    PSP4                         I/O ST                  Capture 2 input/Compare 2 output/PWM2 output.
    ECCP1                        O TTL                   ECCP1 PWM Output A.
    P1A

RD5/PSP5/P1B      28 3        3
    RD5
    PSP5                         I/O ST                  Digital I/O.
    P1B
                                 I/O TTL Parallel Slave Port data.

                                 O TTL ECCP1 PWM Output B.

RD6/PSP6/P1C      29 4        4
    RD6
    PSP6                         I/O ST                  Digital I/O.
    P1C
                                 I/O TTL Parallel Slave Port data.

                                 O TTL ECCP1 PWM Output C.

RD7/PSP7/P1D      30 5        5
    RD7
    PSP7                         I/O ST                  Digital I/O.
    P1D
                                 I/O TTL Parallel Slave Port data.

                                 O TTL ECCP1 PWM Output D.

Legend:  TTL = TTL compatible input                   CMOS = CMOS compatible input or output

         ST = Schmitt Trigger input with CMOS levels  I  = Input

         O = Output                                   P  = Power
         I2C = I2CTM/SMBus input buffer

DS39637D-page 22                                                       2009 Microchip Technology Inc.
                                  PIC18F2480/2580/4480/4580

TABLE 1-3: PIC18F4480/4580 PINOUT I/O DESCRIPTIONS (CONTINUED)

     Pin Name  Pin Number                 Pin Buffer                    Description

               PDIP QFN TQFP Type Type

                                                         PORTE is a bidirectional I/O port.

RE0/RD/AN5     8 25 25
    RE0
    RD                                    I/O ST         Digital I/O.

    AN5                                   I TTL Read control for Parallel Slave Port (see also WR

                                                         and CS pins).

                                          I Analog Analog Input 5.

RE1/WR/AN6/C1OUT 9 26 26

    RE1                                   I/O ST         Digital I/O.

    WR                                    I TTL Write control for Parallel Slave Port (see CS

                                                         and RD pins).

    AN6                                   I Analog Analog Input 6.

    C1OUT                                 O TTL Comparator 1 output.

RE2/CS/AN7/C2OUT 10 27 27

    RE2                                   I/O ST         Digital I/O.

    CS                                    I TTL Chip select control for Parallel Slave Port (see

                                                         related RD and WR).

    AN7                                   I Analog Analog Input 7.

    C2OUT                                 O TTL Comparator 2 output.

RE3            -- -- -- -- -- See MCLR/VPP/RE3 pin.

VSS            12, 6, 30, 6, 29 P         -- Ground reference for logic and I/O pins.

               31 31

VDD            11, 7, 8, 7, 28 P          -- Positive supply for logic and I/O pins.

               32 28, 29

NC             -- 13 12, 13, -- -- No connect.

                                  33, 34

Legend:  TTL = TTL compatible input                   CMOS = CMOS compatible input or output

         ST = Schmitt Trigger input with CMOS levels  I  = Input

         O = Output                                   P  = Power
         I2C = I2CTM/SMBus input buffer

2009 Microchip Technology Inc.                                                             DS39637D-page 23
PIC18F2480/2580/4480/4580

NOTES:

DS39637D-page 24            2009 Microchip Technology Inc.
                                  PIC18F2480/2580/4480/4580

2.0 GUIDELINES FOR GETTING                                FIGURE 2-1:     RECOMMENDED
         STARTED WITH PIC18F                                              MINIMUM CONNECTIONS
         MICROCONTROLLERS

                                                                                 C2(1)

2.1 Basic Connection Requirements                         VDD

Getting started with the PIC18F2480/2580/4480/4580        R1                     VDD
family of 8-bit microcontrollers requires attention to a     R2                          VSS
minimal set of device pin connections before
proceeding with development.                                        MCLR

                                                          C1                                         VDD

The following pins must always be connected:                              PIC18FXXXX                             C3(1)

All VDD and VSS pins                                                                               VSS
   (see Section 2.2 "Power Supply Pins")
                                                          C6(1)     VSS
All AVDD and AVSS pins, regardless of whether or                  VDD
   not the analog device features are used                                AVDD
   (see Section 2.2 "Power Supply Pins")                                          AVSS
                                                                                                   VDD
MCLR pin                                                                                                  VSS
   (see Section 2.3 "Master Clear (MCLR) Pin")
                                                                          C5(1)               C4(1)
These pins must also be connected if they are being
used in the end application:

PGC/PGD pins used for In-Circuit Serial                 Key (all values are recommendations):
   ProgrammingTM (ICSPTM) and debugging purposes
   (see Section 2.4 "ICSP Pins")                          C1 through C6: 0.1 F, 20V ceramic

OSCI and OSCO pins when an external oscillator          R1: 10 k
   source is used
   (see Section 2.5 "External Oscillator Pins")           R2: 100 to 470

                                                          Note 1:   The example shown is for a PIC18F device
                                                                    with five VDD/VSS and AVDD/AVSS pairs.
Additionally, the following pins may be required:                   Other devices may have more or less pairs;
                                                                    adjust the number of decoupling capacitors
VREF+/VREF- pins are used when external voltage                   appropriately.
   reference for analog modules is implemented

Note:  The AVDD and AVSS pins must always be
       connected, regardless of whether any of
       the analog modules are being used.

The minimum mandatory connections are shown in
Figure 2-1.

2009 Microchip Technology Inc.                                                              DS39637D-page 25
PIC18F2480/2580/4480/4580

2.2 Power Supply Pins                                   2.2.2 TANK CAPACITORS

2.2.1 DECOUPLING CAPACITORS                             On boards with power traces running longer than
                                                        six inches in length, it is suggested to use a tank capac-
The use of decoupling capacitors on every pair of       itor for integrated circuits, including microcontrollers, to
power supply pins, such as VDD, VSS, AVDD and           supply a local power source. The value of the tank
AVSS, is required.                                      capacitor should be determined based on the trace
                                                        resistance that connects the power supply source to
Consider the following criteria when using decoupling   the device, and the maximum current drawn by the
capacitors:                                             device in the application. In other words, select the tank
                                                        capacitor so that it meets the acceptable voltage sag at
Value and type of capacitor: A 0.1 F (100 nF),        the device. Typical values range from 4.7 F to 47 F.
   10-20V capacitor is recommended. The capacitor
   should be a low-ESR device, with a resonance         2.2.3  CONSIDERATIONS WHEN USING
   frequency in the range of 200 MHz and higher.               BOR
   Ceramic capacitors are recommended.
                                                        When the Brown-out Reset (BOR) feature is enabled,
Placement on the printed circuit board: The           a sudden change in VDD may result in a spontaneous
   decoupling capacitors should be placed as close      BOR event. This can happen when the microcontroller
   to the pins as possible. It is recommended to        is operating under normal operating conditions, regard-
   place the capacitors on the same side of the         less of what the BOR set point has been programmed
   board as the device. If space is constricted, the    to, and even if VDD does not approach the set point.
   capacitor can be placed on another layer on the      The precipitating factor in these BOR events is a rise or
   PCB using a via; however, ensure that the trace      fall in VDD with a slew rate faster than 0.15V/s.
   length from the pin to the capacitor is no greater
   than 0.25 inch (6 mm).                               An application that incorporates adequate decoupling
                                                        between the power supplies will not experience such
Handling high-frequency noise: If the board is        rapid voltage changes. Additionally, the use of an
   experiencing high-frequency noise (upward of         electrolytic tank capacitor across VDD and VSS, as
   tens of MHz), add a second ceramic type capaci-      described above, will be helpful in preventing high slew
   tor in parallel to the above described decoupling    rate transitions.
   capacitor. The value of the second capacitor can
   be in the range of 0.01 F to 0.001 F. Place this     If the application has components that turn on or off,
   second capacitor next to each primary decoupling     and share the same VDD circuit as the microcontroller,
   capacitor. In high-speed circuit designs, consider   the BOR can be disabled in software by using the
   implementing a decade pair of capacitances as        SBOREN bit before switching the component. After-
   close to the power and ground pins as possible       wards, allow a small delay before re-enabling the BOR.
   (e.g., 0.1 F in parallel with 0.001 F).              By doing this, it is ensured that the BOR is disabled
                                                        during the interval that might cause high slew rate
Maximizing performance: On the board layout           changes of VDD.
   from the power supply circuit, run the power and
   return traces to the decoupling capacitors first,    Note:  Not all devices incorporate software BOR
   and then to the device pins. This ensures that the          control. See Section 5.0 "Reset" for
   decoupling capacitors are first in the power chain.         device-specific information.
   Equally important is to keep the trace length
   between the capacitor and the power pins to a
   minimum, thereby reducing PCB trace
   inductance.

DS39637D-page 26                                                2009 Microchip Technology Inc.
                                              PIC18F2480/2580/4480/4580

2.3 Master Clear (MCLR) Pin                                 2.4 ICSP Pins

The MCLR pin provides two specific device                   The PGC and PGD pins are used for In-Circuit Serial
functions: Device Reset, and Device Programming             ProgrammingTM (ICSPTM) and debugging purposes. It
and Debugging. If programming and debugging are             is recommended to keep the trace length between the
not required in the end application, a direct               ICSP connector and the ICSP pins on the device as
connection to VDD may be all that is required. The          short as possible. If the ICSP connector is expected to
addition of other components, to help increase the          experience an ESD event, a series resistor is recom-
application's resistance to spurious Resets from            mended, with the value in the range of a few tens of
voltage sags, may be beneficial. A typical                  ohms, not to exceed 100.
configuration is shown in Figure 2-1. Other circuit
designs may be implemented, depending on the                Pull-up resistors, series diodes, and capacitors on the
application's requirements.                                 PGC and PGD pins are not recommended as they will
                                                            interfere with the programmer/debugger communica-
During programming and debugging, the resistance            tions to the device. If such discrete components are an
and capacitance that can be added to the pin must be        application requirement, they should be removed from
considered. Device programmers and debuggers drive          the circuit during programming and debugging. Alter-
the MCLR pin. Consequently, specific voltage levels         natively, refer to the AC/DC characteristics and timing
(VIH and VIL) and fast signal transitions must not be       requirements information in the respective device
adversely affected. Therefore, specific values of R1        Flash programming specification for information on
and C1 will need to be adjusted based on the                capacitive loading limits and pin input voltage high (VIH)
application and PCB requirements. For example, it is        and input low (VIL) requirements.
recommended that the capacitor, C1, be isolated from
the MCLR pin during programming and debugging               For device emulation, ensure that the "Communication
operations by using a jumper (Figure 2-2). The jumper       Channel Select" (i.e., PGCx/PGDx pins) programmed
is replaced for normal run-time operations.                 into the device matches the physical connections for
                                                            the ICSP to the Microchip debugger/emulator tool.
Any components associated with the MCLR pin
should be placed within 0.25 inch (6 mm) of the pin.        For more information on available Microchip
                                                            development tools connection requirements, refer to
FIGURE 2-2:            EXAMPLE OF MCLR PIN                  Section 27.0 "Development Support".
                       CONNECTIONS
                  VDD

R1

            R2
                      MCLR

JP                                PIC18FXXXX

C1

Note 1: R1  10 k is recommended. A suggested
              starting value is 10 k. Ensure that the
              MCLR pin VIH and VIL specifications are met.

        2: R2  470 will limit any current flowing into
              MCLR from the external capacitor, C, in the
              event of MCLR pin breakdown, due to
              Electrostatic Discharge (ESD) or Electrical
              Overstress (EOS). Ensure that the MCLR pin
              VIH and VIL specifications are met.

2009 Microchip Technology Inc.                            DS39637D-page 27
PIC18F2480/2580/4480/4580

2.5 External Oscillator Pins                                 FIGURE 2-3:       SUGGESTED PLACEMENT
                                                                               OF THE OSCILLATOR
Many microcontrollers have options for at least two                            CIRCUIT
oscillators: a high-frequency primary oscillator and a
low-frequency secondary oscillator (refer to                             Single-Sided and In-Line Layouts:
Section 3.0 "Oscillator Configurations" for details).
                                                                               Copper Pour Primary Oscillator
The oscillator circuit should be placed on the same
side of the board as the device. Place the oscillator                    (tied to ground)                  Crystal
circuit close to the respective oscillator pins with no
more than 0.5 inch (12 mm) between the circuit                                                             DEVICE PINS
components and the pins. The load capacitors should
be placed next to the oscillator itself, on the same side     Primary                                                         OSC1
of the board.                                                Oscillator                                                       OSC2
                                                                                                                              GND
Use a grounded copper pour around the oscillator cir-        C1                `
cuit to isolate it from surrounding circuits. The                                                                             T1OSO
grounded copper pour should be routed directly to the        C2                                                               T1OS I
MCU ground. Do not run any signal traces or power                                    `
traces inside the ground pour. Also, if using a two-sided
board, avoid any traces on the other side of the board       Timer1 Oscillator
where the crystal is placed.                                       Crystal
                                                                                                        `
Layout suggestions are shown in Figure 2-4. In-line
packages may be handled with a single-sided layout                  T1 Oscillator: C1                      T1 Oscillator: C2
that completely encompasses the oscillator pins. With
fine-pitch packages, it is not always possible to com-                   Fine-Pitch (Dual-Sided) Layouts:
pletely surround the pins and components. A suitable
solution is to tie the broken guard sections to a mirrored                            Top Layer Copper Pour
ground layer. In all cases, the guard trace(s) must be                                      (tied to ground)
returned to ground.
                                                              Bottom Layer
In planning the application's routing and I/O assign-         Copper Pour
ments, ensure that adjacent port pins and other signals
in close proximity to the oscillator are benign (i.e., free  (tied to ground)
of high frequencies, short rise and fall times, and other
similar noise).                                              OSCO

For additional information and design guidance on            GND                                                              C2
oscillator circuits, please refer to these Microchip          OSCI                                                               Oscillator
Application Notes, available at the corporate web site                                                                            Crystal
(www.microchip.com):
                                                                                                                              C1
AN826, "Crystal Oscillator Basics and Crystal
   Selection for rfPICTM and PICmicro Devices"                     DEVICE PINS

AN849, "Basic PICmicro Oscillator Design"
AN943, "Practical PICmicro Oscillator Analysis

   and Design"

AN949, "Making Your Oscillator Work"

2.6 Unused I/Os

Unused I/O pins should be configured as outputs and
driven to a logic low state. Alternatively, connect a 1 k
to 10 k resistor to VSS on unused pins and drive the
output to logic low.

DS39637D-page 28                                                                         2009 Microchip Technology Inc.
                                         PIC18F2480/2580/4480/4580

3.0 OSCILLATOR                                           FIGURE 3-1:        CRYSTAL/CERAMIC
         CONFIGURATIONS                                                     RESONATOR OPERATION
                                                                            (XT, LP, HS OR HSPLL
3.1 Oscillator Types                                                        CONFIGURATION)

PIC18F2480/2580/4480/4580 devices can be operated        C1(1)           OSC1
in ten different oscillator modes. The user can program
the Configuration bits, FOSC<3:0>, in Configuration                  XTAL      RF(3)                 To
Register 1H to select one of these ten modes:                                                        Internal
                                                                                                     Logic

1. LP  Low-Power Crystal                                                                      Sleep

2. XT  Crystal/Resonator                                             RS(2)            PIC18FXXXX

3. HS  High-Speed Crystal/Resonator                      C2(1)           OSC2

4. HSPLL High-Speed Crystal/Resonator                    Note 1:     See Table 3-1 and Table 3-2 for initial values of
                  with PLL Enabled                               2:  C1 and C2.
                                                                 3:  A series resistor (RS) may be required for AT
5. RC  External Resistor/Capacitor with                              strip cut crystals.
       FOSC/4 Output on RA6                                          RF varies with the oscillator mode chosen.

6. RCIO External Resistor/Capacitor with I/O
                  on RA6

7. INTIO1 Internal Oscillator with FOSC/4 Output         TABLE 3-1: CAPACITOR SELECTION FOR
                  on RA6 and I/O on RA7                                       CERAMIC RESONATORS

8. INTIO2 Internal Oscillator with I/O on RA6                        Typical Capacitor Values Used:
                  and RA7

9. EC  External Clock with FOSC/4 Output                 Mode         Freq     OSC1                  OSC2

10. ECIO External Clock with I/O on RA6                  XT          455 kHz   56 pF                 56 pF
                                                                               47 pF                 47 pF
3.2 Crystal Oscillator/Ceramic                                       2.0 MHz   33 pF                 33 pF
         Resonators
                                                                     4.0 MHz

                                                         HS          8.0 MHz   27 pF                 27 pF
                                                                               22 pF                 22 pF
In XT, LP, HS or HSPLL Oscillator modes, a crystal or                16.0 MHz
ceramic resonator is connected to the OSC1 and
OSC2 pins to establish oscillation. Figure 3-1 shows     Capacitor values are for design guidance only.
the pin connections.
                                                         These capacitors were tested with the resonators
The oscillator design requires the use of a parallel     listed below for basic start-up and operation. These
resonant crystal.                                        values are not optimized.

Note:  Use of a series resonant crystal may give         Different capacitor values may be required to produce
       a frequency out of the crystal                    acceptable oscillator operation. The user should test
       manufacturer's specifications.                    the performance of the oscillator over the expected
                                                         VDD and temperature range for the application.

                                                         See the notes on page 30 for additional information.

                                                                         Resonators Used:

                                                                455 kHz               4.0 MHz
                                                                2.0 MHz               8.0 MHz

                                                                            16.0 MHz

                                                         Note:       When using resonators with frequencies
                                                                     above 3.5 MHz, the use of HS mode,
                                                                     rather than XT mode, is recommended.
                                                                     HS mode may be used at any VDD for
                                                                     which the controller is rated. If HS is
                                                                     selected, it is possible that the gain of the
                                                                     oscillator will overdrive the resonator.
                                                                     Therefore, a series resistor should be
                                                                     placed between the OSC2 pin and the
                                                                     resonator. As a good starting point, the
                                                                     recommended value of RS is 330.

2009 Microchip Technology Inc.                                                      DS39637D-page 29
PIC18F2480/2580/4480/4580

TABLE 3-2: CAPACITOR SELECTION FOR                        An external clock source may also be connected to the
                     CRYSTAL OSCILLATOR                   OSC1 pin in the HS mode, as shown in Figure 3-2.

          Crystal  Typical Capacitor Values               FIGURE 3-2:             EXTERNAL CLOCK
           Freq                Tested:                                            INPUT OPERATION
Osc Type                                                                          (HS OSCILLATOR
                                                                                  CONFIGURATION)
                   C1                     C2

LP        32 kHz   33 pF                  33 pF

          200 kHz  15 pF                  15 pF

XT        1 MHz    33 pF                  33 pF           Clock from              OSC1
                                                          Ext. System
          4 MHz    27 pF                  27 pF                                           PIC18FXXXX
                                                                            Open
HS        4 MHz    27 pF                  27 pF                                   OSC2 (HS Mode)

          8 MHz    22 pF                  22 pF

          20 MHz   15 pF                  15 pF

Capacitor values are for design guidance only.            3.3 External Clock Input

These capacitors were tested with the crystals listed     The EC and ECIO Oscillator modes require an external
below for basic start-up and operation. These values      clock source to be connected to the OSC1 pin. There is
are not optimized.                                        no oscillator start-up time required after a Power-on
                                                          Reset or after an exit from Sleep mode.
Different capacitor values may be required to produce
acceptable oscillator operation. The user should test     In the EC Oscillator mode, the oscillator frequency
the performance of the oscillator over the expected       divided by 4 is available on the OSC2 pin. This signal
VDD and temperature range for the application.            may be used for test purposes or to synchronize other
                                                          logic. Figure 3-3 shows the pin connections for the EC
See the notes following this table for additional         Oscillator mode.
information.

                  Crystals Used:                          FIGURE 3-3:             EXTERNAL CLOCK
                                                                                  INPUT OPERATION
    32 kHz                        4 MHz                                           (EC CONFIGURATION)

    200 kHz                       8 MHz

    1 MHz                         20 MHz

Note 1: Higher capacitance increases the stability        Clock from              OSC1/CLKI
            of the oscillator but also increases the      Ext. System
            start-up time.                                                                PIC18FXXXX
                                                                          FOSC/4
       2: When operating below 3V VDD, or when                                    OSC2/CLKO
            using certain ceramic resonators at any
            voltage, it may be necessary to use the       The ECIO Oscillator mode functions like the EC mode,
            HS mode or switch to a crystal oscillator.    except that the OSC2 pin becomes an additional
                                                          general purpose I/O pin. The I/O pin becomes bit 6 of
       3: Since each resonator/crystal has its own        PORTA (RA6). Figure 3-4 shows the pin connections
            characteristics, the user should consult      for the ECIO Oscillator mode.
            the resonator/crystal manufacturer for
            appropriate values of external                FIGURE 3-4:             EXTERNAL CLOCK
            components.                                                           INPUT OPERATION
                                                                                  (ECIO CONFIGURATION)
       4: Rs may be required to avoid overdriving
            crystals with low drive level specification.  Clock from              OSC1/CLKI
                                                          Ext. System
       5: Always verify oscillator performance over                                       PIC18FXXXX
            the VDD and temperature range that is                            RA6
            expected for the application.                                         I/O (OSC2)

DS39637D-page 30                                                                   2009 Microchip Technology Inc.
                                              PIC18F2480/2580/4480/4580

3.4 RC Oscillator                                           3.5 PLL Frequency Multiplier

For timing insensitive applications, the "RC" and           A Phase Locked Loop (PLL) circuit is provided as an
"RCIO" device options offer additional cost savings.        option for users who wish to use a lower frequency
The actual oscillator frequency is a function of several    oscillator circuit or to clock the device up to its highest
factors:                                                    rated frequency from a crystal oscillator. This may be
                                                            useful for customers who are concerned with EMI due
supply voltage                                            to high-frequency crystals or users who require higher
values of the external resistor (REXT) and                clock speeds from an internal oscillator.

   capacitor (CEXT)                                         3.5.1 HSPLL OSCILLATOR MODE
operating temperature
                                                            The HSPLL mode makes use of the HS mode oscillator
Given the same device, operating voltage and tempera-       for frequencies up to 10 MHz. A PLL then multiplies the
ture and component values, there will also be unit-to-unit  oscillator output frequency by 4 to produce an internal
frequency variations. These are due to factors such as:     clock frequency up to 40 MHz.

normal manufacturing variation                            The PLL is only available to the crystal oscillator when
difference in lead frame capacitance between              the FOSC<3:0> Configuration bits are programmed for
                                                            HSPLL mode (= 0110).
   package types (especially for low CEXT values)
variations within the tolerance of limits of REXT         FIGURE 3-7:         PLL BLOCK DIAGRAM
                                                                                (HS MODE)
   and CEXT
                                                                     HS Osc Enable
In the RC Oscillator mode, the oscillator frequency                        PLL Enable
divided by 4 is available on the OSC2 pin. This signal
may be used for test purposes or to synchronize other       (from Configuration Register 1H)
logic. Figure 3-5 shows how the R/C combination is
connected.

FIGURE 3-5:    RC OSCILLATOR MODE                           OSC2

          VDD                                                          HS Mode  FIN      Phase
                                                            OSC1 Crystal        FOUT  Comparator

REXT                                                                       Osc

               OSC1               Internal
                                   Clock
                                                                                      Loop
CEXT                                                                                  Filter
VSS
                                  PIC18FXXXX

                       OSC2/CLKO                                                4    VCO              SYSCLK
           FOSC/4

Recommended values: 3 k  REXT  100 k                                                              MUX
                                CEXT > 20 pF

The RCIO Oscillator mode (Figure 3-6) functions like        3.5.2 PLL AND INTOSC
the RC mode, except that the OSC2 pin becomes an
additional general purpose I/O pin. The I/O pin             The PLL is also available to the internal oscillator block
becomes bit 6 of PORTA (RA6).                               in selected oscillator modes. In this configuration, the
                                                            PLL is enabled in software and generates a clock
FIGURE 3-6:    RCIO OSCILLATOR MODE                         output of up to 32 MHz. The operation of INTOSC with
                                                            the PLL is described in Section 3.6.4 "PLL in INTOSC
         VDD                                                Modes".
  REXT

               OSC1               Internal
                                   Clock

CEXT                              PIC18FXXXX
VSS

      RA6      I/O (OSC2)

Recommended values: 3 k  REXT  100 k
                                CEXT > 20 pF

2009 Microchip Technology Inc.                                                              DS39637D-page 31
PIC18F2480/2580/4480/4580

3.6 Internal Oscillator Block                               When the OSCTUNE register is modified, the INTOSC
                                                            and INTRC frequencies will begin shifting to the new
The PIC18F2480/2580/4480/4580 devices include an            frequency. The INTRC clock will reach the new
internal oscillator block which generates two different     frequency within 8 clock cycles (approximately
clock signals; either can be used as the micro-             8 * 32 s = 256 s). Code execution continues during
controller's clock source. This may eliminate the need      this shift. There is no indication that the shift has
for external oscillator circuits on the OSC1 and/or         occurred.
OSC2 pins.
                                                            The OSCTUNE register also implements the INTSRC
The main output (INTOSC) is an 8 MHz clock source,          and PLLEN bits, which control certain features of the
which can be used to directly drive the device clock. It    internal oscillator block. The INTSRC bit allows users
also drives a postscaler, which can provide a range of      to select which internal oscillator provides the clock
clock frequencies from 31 kHz to 4 MHz. The INTOSC          source when the 31 kHz frequency option is selected.
output is enabled when a clock frequency from 125 kHz       This is covered in greater detail in Section 3.7.1
to 8 MHz is selected.                                       "Oscillator Control Register".

The other clock source is the internal RC oscillator        The PLLEN bit controls the operation of the frequency
(INTRC), which provides a nominal 31 kHz output.            multiplier, PLL, in internal oscillator modes.
INTRC is enabled if it is selected as the device clock
source; it is also enabled automatically when any of the    3.6.4 PLL IN INTOSC MODES
following are enabled:
                                                            The 4x frequency multiplier can be used with the inter-
Power-up Timer                                            nal oscillator block to produce faster device clock
Fail-Safe Clock Monitor                                   speeds than are normally possible with an internal
Watchdog Timer                                            oscillator. When enabled, the PLL produces a clock
Two-Speed Start-up                                        speed of up to 32 MHz.

These features are discussed in greater detail in           Unlike HSPLL mode, the PLL is controlled through
Section 25.0 "Special Features of the CPU".                 software. The control bit, PLLEN (OSCTUNE<6>), is
                                                            used to enable or disable its operation. If PLL is
The clock source frequency (INTOSC direct, INTRC            enabled and a Two-Speed Start-up from wake is
direct or INTOSC postscaler) is selected by configuring     performed, execution is delayed until the PLL starts.
the IRCF bits of the OSCCON register (Register 3-2).
                                                            The PLL is available when the device is configured to
3.6.1 INTIO MODES                                           use the internal oscillator block as its primary clock
                                                            source (FOSC<3:0> = 1001 or 1000). Additionally, the
Using the internal oscillator as the clock source elimi-    PLL will only function when the selected output fre-
nates the need for up to two external oscillator pins,      quency is either 4 MHz or 8 MHz (OSCCON<6:4> = 111
which can then be used for digital I/O. Two distinct        or 110). If both of these conditions are not met, the PLL
configurations are available:                               is disabled.

In INTIO1 mode, the OSC2 pin outputs FOSC/4,              The PLLEN control bit is only functional in those internal
   while OSC1 functions as RA7 for digital input and        oscillator modes where the PLL is available. In all other
   output.                                                  modes, it is forced to `0' and is effectively unavailable.

In INTIO2 mode, OSC1 functions as RA7 and                 3.6.5 INTOSC FREQUENCY DRIFT
   OSC2 functions as RA6, both for digital input and
   output.                                                  The factory calibrates the internal oscillator block
                                                            output (INTOSC) for 8 MHz. However, this frequency
3.6.2 INTOSC OUTPUT FREQUENCY                               may drift as VDD or temperature changes, which can
                                                            affect the controller operation in a variety of ways. It is
The internal oscillator block is calibrated at the factory  possible to adjust the INTOSC frequency by modifying
to produce an INTOSC output frequency of 8.0 MHz.           the value in the OSCTUNE register. This has no effect
                                                            on the INTRC clock source frequency.
The INTRC oscillator operates independently of the
INTOSC source. Any changes in INTOSC across volt-           Tuning the INTOSC source requires knowing when to
age and temperature are not necessarily reflected by        make the adjustment, in which direction it should be
changes in INTRC and vice versa.                            made, and in some cases, how large a change is
                                                            needed. Three compensation techniques are
3.6.3 OSCTUNE REGISTER                                      discussed in Section 3.6.5.1 "Compensating with
                                                            the EUSART", Section 3.6.5.2 "Compensating with
The internal oscillator's output has been calibrated at     the Timers" and Section 3.6.5.3 "Compensating
the factory but can be adjusted in the user's applica-      with the CCP Module in Capture Mode", but other
tion. This is done by writing to the OSCTUNE register       techniques may be used.
(Register 3-1).

DS39637D-page 32                                             2009 Microchip Technology Inc.
                                       PIC18F2480/2580/4480/4580

REGISTER 3-1: OSCTUNE: OSCILLATOR TUNING REGISTER

R/W-0       R/W-0(1)              U-0               R/W-0  R/W-0                 R/W-0  R/W-0  R/W-0
                                                    TUN4   TUN3                  TUN2   TUN1   TUN0
INTSRC      PLLEN(1)              --
                                                                                                      bit 0
bit 7

Legend:                           W = Writable bit         U = Unimplemented bit, read as `0'
R = Readable bit                  `1' = Bit is set
-n = Value at POR                                          `0' = Bit is cleared         x = Bit is unknown

bit 7    INTSRC: Internal Oscillator Low-Frequency Source Select bit

bit 6    1 = 31.25 kHz device clock derived from 8 MHz INTOSC source (divide-by-256 enabled)
         0 = 31 kHz device clock derived directly from INTRC internal oscillator
bit 5    PLLEN: Frequency Multiplier PLL for INTOSC Enable bit(1)
bit 4-0
         1 = PLL enabled for INTOSC (4 MHz and 8 MHz only)
         0 = PLL disabled

         Unimplemented: Read as `0'

         TUN<4:0>: Frequency Tuning bits

         01111 = Maximum frequency

                                 

                                 

         00001

         00000 = Center frequency. Oscillator module is running at the calibrated frequency.

         11111

                                 

                                 

         10000 = Minimum frequency

Note 1: Available only in certain oscillator configurations; otherwise, this bit is unavailable and reads as `0'. See
              text for details.

3.6.5.1 Compensating with the EUSART                       is greater than expected, then the internal oscillator
                                                           block is running too fast. To adjust for this, decrement
An adjustment may be required when the EUSART              the OSCTUNE register.
begins to generate framing errors or receives data with
errors while in Asynchronous mode. Framing errors          3.6.5.3  Compensating with the CCP Module
indicate that the device clock frequency is too high. To            in Capture Mode
adjust for this, decrement the value in OSCTUNE to
reduce the clock frequency. On the other hand, errors      A CCP module can use free-running Timer1 (or
in data may suggest that the clock speed is too low. To    Timer3), clocked by the internal oscillator block and an
compensate, increment OSCTUNE to increase the              external event with a known period (i.e., AC power
clock frequency.                                           frequency). The time of the first event is captured in the
                                                           CCPRxH:CCPRxL registers and is recorded for use
3.6.5.2 Compensating with the Timers                       later. When the second event causes a capture, the
                                                           time of the first event is subtracted from the time of the
This technique compares device clock speed to some         second event. Since the period of the external event is
reference clock. Two timers may be used; one timer is      known, the time difference between events can be
clocked by the peripheral clock, while the other is        calculated.
clocked by a fixed reference source, such as the
Timer1 oscillator.                                         If the measured time is much greater than the
                                                           calculated time, the internal oscillator block is running
Both timers are cleared, but the timer clocked by the      too fast. To compensate, decrement the OSCTUNE
reference generates interrupts. When an interrupt          register. If the measured time is much less than the
occurs, the internally clocked timer is read and both      calculated time, the internal oscillator block is running
timers are cleared. If the internally clocked timer value  too slow. To compensate, increment the OSCTUNE
                                                           register.

2009 Microchip Technology Inc.                                                               DS39637D-page 33
PIC18F2480/2580/4480/4580

3.7 Clock Sources and Oscillator                                 The secondary oscillators are those external sources
         Switching                                               not connected to the OSC1 or OSC2 pins. These
                                                                 sources may continue to operate even after the
Like  previous    PIC18                  devices,           the  controller is placed in a power-managed mode.

PIC18F2480/2580/4480/4580 family includes a feature              PIC18F2480/2580/4480/4580 devices offer the Timer1
                                                                 oscillator as a secondary oscillator. This oscillator, in all
that allows the device clock source to be switched from          power-managed modes, is often the time base for
                                                                 functions such as a Real-Time Clock (RTC).
the main oscillator to an alternate low-frequency clock
                                                                 Most often, a 32.768 kHz watch crystal is connected
source. PIC18F2480/2580/4480/4580 devices offer                  between the RC0/T1OSO/T13CKI and RC1/T1OSI
                                                                 pins. Like the LP Oscillator mode circuit, loading
two alternate clock sources. When an alternate clock             capacitors are also connected from each pin to ground.

source is enabled, the various power-managed                     The Timer1 oscillator is discussed in greater detail in
                                                                 Section 13.3 "Timer1 Oscillator".
operating modes are available.
                                                                 In addition to being a primary clock source, the internal
Essentially, there are three clock sources for these             oscillator block is available as a power-managed
devices:                                                         mode clock source. The INTRC source is also used as
                                                                 the clock source for several special features, such as
Primary oscillators                                            the WDT and Fail-Safe Clock Monitor.
Secondary oscillators
Internal oscillator block                                      The clock sources for the PIC18F2480/2580/4480/4580
                                                                 devices are shown in Figure 3-8. See Section 25.0
The primary oscillators include the external crystal             "Special Features of the CPU" for Configuration
and resonator modes, the external RC modes, the                  register details.
external clock modes and the internal oscillator block.
The particular mode is defined by the FOSC<3:0>
Configuration bits. The details of these modes are
covered earlier in this chapter.

FIGURE 3-8:       PIC18F2480/2580/4480/4580 CLOCK DIAGRAM

              Primary Oscillator                                                   LP, XT, HS, RC, EC
                                                                 4 x PLL HSPLL, INTOSC/PLL
        OSC2                    Sleep                                                                                                            Peripherals
        OSC1                                                                                       T1OSC
      T1OSO                                     OSCTUNE<6>
       T1OSI  Secondary Oscillator
                                                   Postscaler
                                 T1OSCEN                                                 MUXOSCCON<6:4>Internal Oscillator
                                 Enable                                                                                              MUX
                                 Oscillator                           8 MHz                                                                      CPU
                                                                                 111
                             OSCCON<6:4>
                                                                      4 MHz
                              Internal                                           110                                                             IDLEN
                             Oscillator
                                                                      2 MHz                                                             Clock
                               Block                                             101                                                    Control

                               8 MHz       8 MHz                      1 MHz               FOSC<3:0> OSCCON<1:0>
                               Source    (INTOSC)                                100
                                                                                                     Clock Source Option
                               INTRC                               500 kHz                           for Other Modules
                               Source                                            011

                                31 kHz (INTRC)                     250 kHz
                                                                                 010

                                                                   125 kHz
                                                                                 001

                                                                 1 31 kHz 000
                                                                 0

                                                                              OSCTUNE<7>

                                                                                          WDT, PWRT, FSCM
                                                                                          and Two-Speed Start-up

DS39637D-page 34                                                                           2009 Microchip Technology Inc.
                                  PIC18F2480/2580/4480/4580

3.7.1 OSCILLATOR CONTROL REGISTER                            The IDLEN bit determines if the device goes into Sleep
                                                             mode or one of the Idle modes when the SLEEP
The OSCCON register (Register 3-2) controls several          instruction is executed.
aspects of the device clock's operation, both in
full-power operation and in power-managed modes.             The use of the flag and control bits in the OSCCON
                                                             register is discussed in more detail in Section 4.0
The System Clock Select bits, SCS<1:0>, select the           "Power-Managed Modes".
clock source. The available clock sources are the
primary clock (defined by the FOSC<3:0> Configura-               Note 1: The Timer1 oscillator must be enabled to
tion bits), the secondary clock (Timer1 oscillator) and                      select the secondary clock source. The
the internal oscillator block. The clock source changes                      Timer1 oscillator is enabled by setting the
immediately after one or more of the bits is written to,                     T1OSCEN bit in the Timer1 Control regis-
following a brief clock transition interval. The SCS bits                    ter (T1CON<3>). If the Timer1 oscillator is
are cleared on all forms of Reset.                                           not enabled, then any attempt to select a
                                                                             secondary clock source when executing a
The Internal Oscillator Frequency Select bits,                               SLEEP instruction will be ignored.
IRCF<2:0>, select the frequency output of the internal
oscillator block to drive the device clock. The choices                 2: It is recommended that the Timer1
are the INTRC source, the INTOSC source (8 MHz) or                           oscillator be operating and stable before
one of the frequencies derived from the INTOSC post-                         executing the SLEEP instruction, or a very
scaler (31 kHz to 4 MHz). If the internal oscillator block                   long delay may occur while the Timer1
is supplying the device clock, changing the states of                        oscillator starts.
these bits will have an immediate change on the inter-
nal oscillator's output. On device Resets, the default       3.7.2 OSCILLATOR TRANSITIONS
output frequency of the internal oscillator block is set at
1 MHz.                                                       PIC18F2480/2580/4480/4580 devices contain circuitry
                                                             to prevent clock "glitches" when switching between
When an output frequency of 31 kHz is selected               clock sources. A short pause in the device clock occurs
(IRCF<2:0> = 000), users may choose which internal           during the clock switch. The length of this pause is the
oscillator acts as the source. This is done with the         sum of two cycles of the old clock source and three to
INTSRC bit in the OSCTUNE register (OSCTUNE<7>).             four cycles of the new clock source. This formula
Setting this bit selects INTOSC as a 31.25 kHz clock         assumes that the new clock source is stable.
source by enabling the divide-by-256 output of the
INTOSC postscaler. Clearing INTSRC selects INTRC             Clock transitions are discussed in greater detail in
(nominally 31 kHz) as the clock source.                      Section 4.1.2 "Entering Power-Managed Modes".

This option allows users to select the tunable and more
precise INTOSC as a clock source, while maintaining
power savings with a very low clock speed. Regardless
of the setting of INTSRC, INTRC always remains the
clock source for features such as the Watchdog Timer
and the Fail-Safe Clock Monitor.

The OSTS, IOFS and T1RUN bits indicate which clock
source is currently providing the device clock. The
OSTS bit indicates that the Oscillator Start-up Timer
(OST) has timed out and the primary clock is providing
the device clock in primary clock modes. The IOFS bit
indicates when the internal oscillator block has stabi-
lized and is providing the device clock in RC Clock
modes. The T1RUN bit (T1CON<6>) indicates when
the Timer1 oscillator is providing the device clock in
secondary clock modes. In power-managed modes,
only one of these three bits will be set at any time. If
none of these bits are set, the INTRC is providing the
clock or the internal oscillator block has just started and
is not yet stable.

2009 Microchip Technology Inc.                             DS39637D-page 35
PIC18F2480/2580/4480/4580

REGISTER 3-2: OSCCON: OSCILLATOR CONTROL REGISTER

     R/W-0         R/W-1  R/W-0             R/W-0   R(1)                  R-0  R/W-0             R/W-0
     IDLEN         IRCF2  IRCF1             IRCF0  OSTS                  IOFS  SCS1              SCS0
bit 7
                                                                                                        bit 0

Legend:                   W = Writable bit         U = Unimplemented bit, read as `0'
R = Readable bit          `1' = Bit is set
-n = Value at POR                                  `0' = Bit is cleared        x = Bit is unknown

bit 7       IDLEN: Idle Enable bit
bit 6-4
            1 = Device enters Idle mode on SLEEP instruction
bit 3       0 = Device enters Sleep mode on SLEEP instruction
bit 2
bit 1-0     IRCF<2:0>: Internal Oscillator Frequency Select bits

            111 = 8 MHz (INTOSC drives clock directly)
            110 = 4 MHz
            101 = 2 MHz
            100 = 1 MHz(3)
            011 = 500 kHz
            010 = 250 kHz
            001 = 125 kHz
            000 = 31 kHz (from either INTOSC/256 or INTRC directly)(2)
            OSTS: Oscillator Start-up Timer Time-out Status bit(1)

            1 = Oscillator Start-up Timer time-out has expired; primary oscillator is running
            0 = Oscillator Start-up Timer time-out is running; primary oscillator is not ready

            IOFS: INTOSC Frequency Stable bit

            1 = INTOSC frequency is stable and the frequency is provided by one of the RC modes
            0 = INTOSC frequency is not stable

            SCS<1:0>: System Clock Select bits

            1x = Internal oscillator block
            01 = Timer1 oscillator
            00 = Primary oscillator

Note 1: Depends on state of the IESO Configuration bit.
        2: Source selected by the INTSRC bit (OSCTUNE<7>), see text.
        3: Default output frequency of INTOSC on Reset.

DS39637D-page 36                                                                2009 Microchip Technology Inc.
                                  PIC18F2480/2580/4480/4580

3.8 Effects of Power-Managed Modes                           Timer1 oscillator may be operating to support a
         on the Various Clock Sources                        Real-Time Clock (RTC). Other features may be operat-
                                                             ing that do not require a device clock source (i.e.,
When PRI_IDLE mode is selected, the designated               MSSP slave, PSP, INTx pins and others). Peripherals
primary oscillator continues to run without interruption.    that may add significant current consumption are listed
For all other power-managed modes, the oscillator            in Section 28.2 "DC Characteristics: Power Down
using the OSC1 pin is disabled. The OSC1 pin (and            and Supply Current".
OSC2 pin, if used by the oscillator) will stop oscillating.
                                                             3.9 Power-up Delays
In secondary clock modes (SEC_RUN and
SEC_IDLE), the Timer1 oscillator is operating and            Power-up delays are controlled by two timers, so that no
providing the device clock. The Timer1 oscillator may        external Reset circuitry is required for most applications.
also run in all power-managed modes if required to           The delays ensure that the device is kept in Reset until
clock Timer1 or Timer3.                                      the device power supply is stable under normal circum-
                                                             stances and the primary clock is operating and stable.
In internal oscillator modes (RC_RUN and RC_IDLE),           For additional information on power-up delays, see
the internal oscillator block provides the device clock      Section 5.5 "Device Reset Timers".
source. The 31 kHz INTRC output can be used directly
to provide the clock and may be enabled to support           The first timer is the Power-up Timer (PWRT), which
various special features, regardless of the                  provides a fixed delay on power-up (parameter 33,
power-managed mode (see Section 25.2 "Watchdog               Table 28-10). It is enabled by clearing (= 0) the
Timer (WDT)", Section 25.3 "Two-Speed Start-up"              PWRTEN Configuration bit.
and Section 25.4 "Fail-Safe Clock Monitor" for more
information on WDT, Two-Speed Start-up and Fail-Safe         The second timer is the Oscillator Start-up Timer
Clock Monitor. The INTOSC output at 8 MHz may be             (OST), intended to keep the chip in Reset until the
used directly to clock the device or may be divided          crystal oscillator is stable (LP, XT and HS modes). The
down by the postscaler. The INTOSC output is disabled        OST does this by counting 1024 oscillator cycles
if the clock is provided directly from the INTRC output.     before allowing the oscillator to clock the device.
The INTOSC output is enabled for Two-Speed Start-up
at 1 MHz after a Reset.                                      When the HSPLL Oscillator mode is selected, the
                                                             device is kept in Reset for an additional 2 ms, following
If the Sleep mode is selected, all clock sources are         the HS mode OST delay, so the PLL can lock to the
stopped. Since all the transistor switching currents         incoming clock frequency.
have been stopped, Sleep mode achieves the lowest
current consumption of the device (only leakage              There is a delay of interval, TCSD (parameter 38,
currents).                                                   Table 28-10), following POR, while the controller
                                                             becomes ready to execute instructions. This delay runs
Enabling any on-chip feature that will operate during        concurrently with any other delays. This may be the
Sleep will increase the current consumed during Sleep.       only delay that occurs when any of the EC, RC or INTIO
The INTRC is required to support WDT operation. The          modes are used as the primary clock source.

TABLE 3-3: OSC1 AND OSC2 PIN STATES IN SLEEP MODE

      OSC Mode                    OSC1 Pin                   OSC2 Pin

RC, INTIO1      Floating, external resistor should pull high At logic low (clock/4 output)

RCIO, INTIO2    Floating, external resistor should pull high Configured as PORTA, bit 6

ECIO            Floating, pulled by external clock           Configured as PORTA, bit 6

EC              Floating, pulled by external clock           At logic low (clock/4 output)

LP, XT and HS   Feedback inverter disabled at quiescent      Feedback inverter disabled at quiescent
                voltage level                                voltage level

Note: See Table 5-2 in Section 5.0 "Reset", for time-outs due to Sleep and MCLR Reset.

2009 Microchip Technology Inc.                                                        DS39637D-page 37
PIC18F2480/2580/4480/4580

NOTES:

DS39637D-page 38            2009 Microchip Technology Inc.
                                            PIC18F2480/2580/4480/4580

4.0 POWER-MANAGED MODES                                     4.1.1 CLOCK SOURCES

PIC18F2480/2580/4480/4580 devices offer a total of          The SCS<1:0> bits allow the selection of one of three
seven operating modes for more efficient power              clock sources for power-managed modes. They are:
management. These modes provide a variety of
options for selective power conservation in applications    The primary clock, as defined by the FOSC<3:0>
where resources may be limited (i.e., battery-powered          Configuration bits
devices).
                                                             The secondary clock (the Timer1 oscillator)
There are three categories of power-managed modes:          The internal oscillator block (for RC modes)

Run modes                                                 4.1.2  ENTERING POWER-MANAGED
Idle modes                                                       MODES
Sleep mode
                                                            Switching from one power-managed mode to another
These categories define which portions of the device        begins by loading the OSCCON register. The
are clocked, and sometimes, what speed. The Run and         SCS<1:0> bits select the clock source and determine
Idle modes may use any of the three available clock         which Run or Idle mode is to be used. Changing these
sources (primary, secondary or internal oscillator          bits causes an immediate switch to the new clock
block); the Sleep mode does not use a clock source.         source, assuming that it is running. The switch may
                                                            also be subject to clock transition delays. These are
The power-managed modes include several                     discussed in Section 4.1.3 "Clock Transitions and
power-saving features offered on previous PIC              Status Indicators" and subsequent sections.
devices. One is the clock switching feature, offered in
other PIC18 devices, allowing the controller to use the     Entry to the power-managed Idle or Sleep modes is
Timer1 oscillator in place of the primary oscillator. Also  triggered by the execution of a SLEEP instruction. The
included is the Sleep mode, offered by all PIC devices,     actual mode that results depends on the status of the
where all device clocks are stopped.                        IDLEN bit.

4.1 Selecting Power-Managed Modes                           Depending on the current mode and the mode being
                                                            switched to, a change to a power-managed mode does
Selecting a power-managed mode requires two                 not always require setting all of these bits. Many
decisions: if the CPU is to be clocked or not and the       transitions may be done by changing the oscillator
selection of a clock source. The IDLEN bit                  select bits, or changing the IDLEN bit, prior to issuing a
(OSCCON<7>) controls CPU clocking, while the                SLEEP instruction. If the IDLEN bit is already
SCS<1:0> bits (OSCCON<1:0>) select the clock                configured correctly, it may only be necessary to
source. The individual modes, bit settings, clock sources   perform a SLEEP instruction to switch to the desired
and affected modules are summarized in Table 4-1.           mode.

TABLE 4-1: POWER-MANAGED MODES

          OSCCON<7,1:0>                     Module Clocking
                                            CPU Peripherals
Mode      IDLEN(1)                                                 Available Clock and Oscillator Source

                                  SCS<1:0>

Sleep     0                       N/A       Off             Off None All clocks are disabled

PRI_RUN   N/A                     00        Clocked Clocked Primary LP, XT, HS, HSPLL, RC, EC, INTRC(2):

                                                             This is the normal full-power execution mode.

SEC_RUN   N/A                     01        Clocked Clocked Secondary Timer1 Oscillator

RC_RUN    N/A                     1x        Clocked Clocked Internal Oscillator Block(2)

PRI_IDLE  1                       00        Off             Clocked Primary LP, XT, HS, HSPLL, RC, EC

SEC_IDLE  1                       01        Off             Clocked Secondary Timer1 Oscillator

RC_IDLE   1                       1x        Off             Clocked Internal Oscillator Block(2)

Note 1: IDLEN reflects its value when the SLEEP instruction is executed.
        2: Includes INTOSC and INTOSC postscaler, as well as the INTRC source.

2009 Microchip Technology Inc.                                                                   DS39637D-page 39
PIC18F2480/2580/4480/4580

4.1.3  CLOCK TRANSITIONS AND STATUS                         Upon resuming normal operation after waking form
       INDICATORS                                           Sleep or Idle, the internal state machines require at
                                                            least one TCY delay before another SLEEP instruction
The length of the transition between clock sources is       can be executed. If two back-to-back SLEEP instruc-
the sum of two cycles of the old clock source and three     tions need to be executed, the process shown in
to four cycles of the new clock source. This formula        Example 4-1 should be used.
assumes that the new clock source is stable.
                                                            EXAMPLE 4-1:  EXECUTING
Three bits indicate the current clock source and its                      BACK-TO-BACK SLEEP
status. They are:                                                         INSTRUCTIONS

OSTS (OSCCON<3>)                                          SLEEP
IOFS (OSCCON<2>)
T1RUN (T1CON<6>)                                          NOP    ; Wait at least 1 Tcy before

In general, only one of these bits will be set while in a   executing another SLEEP instruction
given power-managed mode. When the OSTS bit is
set, the primary clock is providing the device clock.       SLEEP
When the IOFS bit is set, the INTOSC output is provid-
ing a stable 8 MHz clock source to a divider that           4.2 Run Modes
actually drives the device clock. When the T1RUN bit is
set, the Timer1 oscillator is providing the clock. If none  In the Run modes, clocks to both the core and
of these bits are set, then either the INTRC clock          peripherals are active. The difference between these
source is clocking the device, or the INTOSC source is      modes is the clock source.
not yet stable.
                                                            4.2.1 PRI_RUN MODE
If the internal oscillator block is configured as the
primary clock source by the FOSC<3:0> Configuration         The PRI_RUN mode is the normal, full-power execution
bits, then both the OSTS and IOFS bits may be set           mode of the microcontroller. This is also the default
when in PRI_RUN or PRI_IDLE modes. This indicates           mode upon a device Reset, unless Two-Speed Start-up
that the primary clock (INTOSC output) is generating a      is enabled (see Section 25.3 "Two-Speed Start-up" for
stable 8 MHz output. Entering another RC                    details). In this mode, the OSTS bit is set. The IOFS bit
power-managed mode at the same frequency would              may be set if the internal oscillator block is the primary
clear the OSTS bit.                                         clock source (see Section 3.7.1 "Oscillator Control
                                                            Register").

Note 1: Caution should be used when modifying a             4.2.2 SEC_RUN MODE
            single IRCF bit. If VDD is less than 3V, it is
            possible to select a higher clock speed         The SEC_RUN mode is the compatible mode to the
            than is supported by the low VDD.               "clock switching" feature offered in other PIC18
            Improper device operation may result if         devices. In this mode, the CPU and peripherals are
            the VDD/FOSC specifications are violated.       clocked from the Timer1 oscillator. This gives users the
                                                            option of lower power consumption while still using a
       2: Executing a SLEEP instruction does not            high accuracy clock source.
            necessarily place the device into Sleep
            mode. It acts as the trigger to place the       SEC_RUN mode is entered by setting the SCS<1:0>
            controller into either the Sleep mode, or       bits to `01'. The device clock source is switched to the
            one of the Idle modes, depending on the         Timer1 oscillator (see Figure 4-1), the primary oscilla-
            setting of the IDLEN bit.                       tor is shut down, the T1RUN bit (T1CON<6>) is set and
                                                            the OSTS bit is cleared.

4.1.4 MULTIPLE SLEEP COMMANDS                               Note:  The Timer1 oscillator should already be
                                                                   running prior to entering SEC_RUN mode.
The power-managed mode that is invoked with the                    If the T1OSCEN bit is not set when the
SLEEP instruction is determined by the setting of the              SCS<1:0> bits are set to `01', entry to
IDLEN bit at the time the instruction is executed. If              SEC_RUN mode will not occur. If the
another SLEEP instruction is executed, the device will             Timer1 oscillator is enabled but not yet
enter the power-managed mode specified by IDLEN at                 running, device clocks will be delayed until
that time. If IDLEN has changed, the device will enter the         the oscillator has started. In such situa-
new power-managed mode specified by the new setting.               tions, initial oscillator operation is far from
                                                                   stable and unpredictable operation may
                                                                   result.

DS39637D-page 40                                                          2009 Microchip Technology Inc.
                                        PIC18F2480/2580/4480/4580

On transitions from SEC_RUN mode to PRI_RUN                        Figure 4-2). When the clock switch is complete, the
mode, the peripherals and CPU continue to be clocked               T1RUN bit is cleared, the OSTS bit is set and the
from the Timer1 oscillator while the primary clock is              primary clock is providing the clock. The IDLEN and
started. When the primary clock becomes ready, a                   SCS bits are not affected by the wake-up; the Timer1
clock switch back to the primary clock occurs (see                 oscillator continues to run.

FIGURE 4-1:     TRANSITION TIMING FOR ENTRY TO SEC_RUN MODE

             Q1 Q2 Q3 Q4 Q1                                               Q2 Q3 Q4 Q1 Q2 Q3
                                                                                                                  PC + 4
T1OSI                        1      23                     n-1 n

OSC1                                    Clock Transition

CPU
Clock

Peripheral
Clock

Program         PC                                         PC + 2
Counter

FIGURE 4-2:     TRANSITION TIMING FROM SEC_RUN MODE TO PRI_RUN MODE (HSPLL)

                    Q1              Q2  Q3                 Q4 Q1                           Q2 Q3 Q4 Q1 Q2 Q3

      T1OSI                  TOST(1)    TPLL(1)
      OSC1
                                                                   1 2 n-1 n
PLL Clock
     Output                                                               Clock
                                                                       Transition
CPU Clock

Peripheral
      Clock

       Program                      PC                                             PC + 2  PC + 4
       Counter

             SCS<1:0> Bits Changed      OSTS Bit Set

Note 1: TOST = 1024 TOSC; TPLL = 2 ms (approx). These intervals are not shown to scale.

4.2.3 RC_RUN MODE                                                  This mode is entered by setting SCS1 to `1'. Although
                                                                   it is ignored, it is recommended that SCS0 also be
In RC_RUN mode, the CPU and peripherals are                        cleared; this is to maintain software compatibility with
clocked from the internal oscillator block using the               future devices. When the clock source is switched to
INTOSC multiplexer; the primary clock is shut down.                the INTOSC multiplexer (see Figure 4-3), the primary
When using the INTRC source, this mode provides the                oscillator is shut down and the OSTS bit is cleared. The
best power conservation of all the Run modes, while                IRCF bits may be modified at any time to immediately
still executing code. It works well for user applications          change the clock speed.
which are not highly timing-sensitive or do not require
high-speed clocks at all times.                                    Note:  Caution should be used when modifying a
                                                                          single IRCF bit. If VDD is less than 3V, it is
If the primary clock source is the internal oscillator                    possible to select a higher clock speed
block (either INTRC or INTOSC), there are no distin-                      than is supported by the low VDD.
guishable differences between PRI_RUN and                                 Improper device operation may result if
RC_RUN modes during execution. However, a clock                           the VDD/FOSC specifications are violated.
switch delay will occur during entry to, and exit from,
RC_RUN mode. Therefore, if the primary clock source                                        DS39637D-page 41
is the internal oscillator block, the use of RC_RUN
mode is not recommended.

2009 Microchip Technology Inc.
PIC18F2480/2580/4480/4580

If the IRCF bits and the INTSRC bit are all clear, the            On transitions from RC_RUN mode to PRI_RUN mode,
INTOSC output is not enabled and the IOFS bit will                the device continues to be clocked from the INTOSC
remain clear; there will be no indication of the current          multiplexer while the primary clock is started. When the
clock source. The INTRC source is providing the                   primary clock becomes ready, a clock switch to the
device clocks.                                                    primary clock occurs (see Figure 4-4). When the clock
                                                                  switch is complete, the IOFS bit is cleared, the OSTS
If the IRCF bits are changed from all clear (thus,                bit is set and the primary clock is providing the device
enabling the INTOSC output) or if INTSRC is set, the              clock. The IDLEN and SCS bits are not affected by the
IOFS bit becomes set after the INTOSC output                      switch. The INTRC source will continue to run if either
becomes stable. Clocks to the device continue while               the WDT or the Fail-Safe Clock Monitor is enabled.
the INTOSC source stabilizes after an interval of
TIOBST.

If the IRCF bits were previously at a non-zero value or
if INTSRC was set before setting SCS1 and the
INTOSC source was already stable, the IOFS bit will
remain set.

FIGURE 4-3:       TRANSITION TIMING TO RC_RUN MODE

                  Q1 Q2 Q3 Q4 Q1                                      Q2 Q3 Q4 Q1 Q2 Q3
                                                                                                              PC + 4
INTRC                             1      2   3                 n-1 n

OSC1                                         Clock Transition

CPU
Clock

Peripheral
Clock

Program           PC                                      PC + 2
Counter

FIGURE 4-4:       TRANSITION TIMING FROM RC_RUN MODE TO PRI_RUN MODE

                      Q1                 Q2     Q3             Q4 Q1                     Q2 Q3 Q4 Q1 Q2 Q3

   INTOSC                         TOST(1)       TPLL(1)
Multiplexer
                                                                      1 2 n-1 n
      OSC1
                                                                             Clock
PLL Clock                                                                 Transition
     Output

CPU Clock

Peripheral
      Clock

       Program                           PC                           PC + 2             PC + 4
       Counter

                  SCS<1:0> Bits Changed         OSTS Bit Set

Note 1: TOST = 1024 TOSC; TPLL = 2 ms (approx). These intervals are not shown to scale.

DS39637D-page 42                                                                         2009 Microchip Technology Inc.
                                               PIC18F2480/2580/4480/4580

4.3 Sleep Mode                                                      4.4 Idle Modes

The power-managed Sleep mode in the                                 The Idle modes allow the controller's CPU to be
PIC18F2480/2580/4480/4580 devices is identical to                   selectively shut down while the peripherals continue to
the legacy Sleep mode offered in all other PIC devices.             operate. Selecting a particular Idle mode allows users
It is entered by clearing the IDLEN bit (the default state          to further manage power consumption.
on device Reset) and executing the SLEEP instruction.
This shuts down the selected oscillator (Figure 4-5). All           If the IDLEN bit is set to `1' when a SLEEP instruction is
clock source status bits are cleared.                               executed, the peripherals will be clocked from the clock
                                                                    source selected using the SCS<1:0> bits; however, the
Entering the Sleep mode from any other mode does not                CPU will not be clocked. The clock source status bits are
require a clock switch. This is because no clocks are               not affected. Setting IDLEN and executing a SLEEP
needed once the controller has entered Sleep. If the                instruction provides a quick method of switching from a
WDT is selected, the INTRC source will continue to                  given Run mode to its corresponding Idle mode.
operate. If the Timer1 oscillator is enabled, it will also
continue to run.                                                    If the WDT is selected, the INTRC source will continue
                                                                    to operate. If the Timer1 oscillator is enabled, it will also
When a wake event occurs in Sleep mode (by interrupt,               continue to run.
Reset or WDT time-out), the device will not be clocked
until the clock source selected by the SCS1:SCS0 bits               Since the CPU is not executing instructions, the only
becomes ready (see Figure 4-6), or it will be clocked               exits from any of the Idle modes are by interrupt, WDT
from the internal oscillator block if either the Two-Speed          time-out or a Reset. When a wake event occurs, CPU
Start-up or the Fail-Safe Clock Monitor are enabled                 execution is delayed by an interval of TCSD
(see Section 25.0 "Special Features of the CPU"). In                (parameter 38, Table 28-10) while it becomes ready to
either case, the OSTS bit is set when the primary clock             execute code. When the CPU begins executing code,
is providing the device clocks. The IDLEN and SCS bits              it resumes with the same clock source for the current
are not affected by the wake-up.                                    Idle mode. For example, when waking from RC_IDLE
                                                                    mode, the internal oscillator block will clock the CPU
                                                                    and peripherals (in other words, RC_RUN mode). The
                                                                    IDLEN and SCS bits are not affected by the wake-up.

                                                                    While in any Idle mode or Sleep mode, a WDT time-out
                                                                    will result in a WDT wake-up to the Run mode currently
                                                                    specified by the SCS<1:0> bits.

FIGURE 4-5:              TRANSITION TIMING FOR ENTRY TO SLEEP MODE

            Q1 Q2 Q3 Q4 Q1

OSC1

CPU
Clock

Peripheral
Clock

Sleep

Program              PC                                     PC + 2
Counter

FIGURE 4-6:              TRANSITION TIMING FOR WAKE FROM SLEEP (HSPLL)

                            Q1                      Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4

            OSC1                  TOST(1)  TPLL(1)

       PLL Clock
           Output

       CPU Clock                           PC                       PC + 2                      PC + 4  PC + 6

       Peripheral
              Clock

          Program
          Counter

                         Wake Event        OSTS Bit Set

       Note 1: TOST = 1024 TOSC; TPLL = 2 ms (approx). These intervals are not shown to scale.

2009 Microchip Technology Inc.                                                                        DS39637D-page 43
PIC18F2480/2580/4480/4580

4.4.1 PRI_IDLE MODE                                                4.4.2 SEC_IDLE MODE

This mode is unique among the three low-power Idle                 In SEC_IDLE mode, the CPU is disabled but the
modes, in that it does not disable the primary device              peripherals continue to be clocked from the Timer1
clock. For timing-sensitive applications, this allows for          oscillator. This mode is entered from SEC_RUN by set-
the fastest resumption of device operation with its more           ting the IDLEN bit and executing a SLEEP instruction. If
accurate primary clock source, since the clock source              the device is in another Run mode, set the IDLEN bit
does not have to "warm up" or transition from another              first, then set the SCS<1:0> bits to `01' and execute
oscillator.                                                        SLEEP. When the clock source is switched to the
                                                                   Timer1 oscillator, the primary oscillator is shut down,
PRI_IDLE mode is entered from PRI_RUN mode by                      the OSTS bit is cleared and the T1RUN bit is set.
setting the IDLEN bit and executing a SLEEP instruc-
tion. If the device is in another Run mode, set IDLEN              When a wake event occurs, the peripherals continue to
first, then clear the SCS bits and execute SLEEP.                  be clocked from the Timer1 oscillator. After an interval
Although the CPU is disabled, the peripherals continue             of TCSD following the wake event, the CPU begins exe-
to be clocked from the primary clock source specified              cuting code being clocked by the Timer1 oscillator. The
by the FOSC<3:0> Configuration bits. The OSTS bit                  IDLEN and SCS bits are not affected by the wake-up;
remains set (see Figure 4-7).                                      the Timer1 oscillator continues to run (see Figure 4-8).

When a wake event occurs, the CPU is clocked from the                  Note:  The Timer1 oscillator should already be
primary clock source. A delay of interval TCSD is                             running prior to entering SEC_IDLE mode.
required between the wake event and when code                                 If the T1OSCEN bit is not set when the
execution starts. This is required to allow the CPU to                        SLEEP instruction is executed, the SLEEP
become ready to execute instructions. After the                               instruction will be ignored and entry to
wake-up, the OSTS bit remains set. The IDLEN and                              SEC_IDLE mode will not occur. If the
SCS bits are not affected by the wake-up (see                                 Timer1 oscillator is enabled but not yet
Figure 4-8).                                                                  running, peripheral clocks will be delayed
                                                                              until the oscillator has started. In such
                                                                              situations, initial oscillator operation is far
                                                                              from stable and unpredictable operation
                                                                              may result.

FIGURE 4-7:               TRANSITION TIMING FOR ENTRY TO IDLE MODE

                  OSC1    Q1  Q2      Q3  Q4    Q1

           CPU Clock              PC                       PC + 2
            Peripheral

                   Clock
              Program
               Counter

FIGURE 4-8:               TRANSITION TIMING FOR WAKE FROM IDLE TO RUN MODE

                          Q1                                                  Q2        Q3  Q4

      OSC1                                TCSD

CPU Clock                                                          PC

Peripheral
       Clock

   Program
   Counter

                              Wake Event

DS39637D-page 44                                                                   2009 Microchip Technology Inc.
                                  PIC18F2480/2580/4480/4580

4.4.3 RC_IDLE MODE                                           On all exits from Idle or Sleep modes by interrupt, code
                                                             execution branches to the interrupt vector if the
In RC_IDLE mode, the CPU is disabled but the periph-         GIE/GIEH bit (INTCON<7>) is set. Otherwise, code
erals continue to be clocked from the internal oscillator    execution continues or resumes without branching
block using the INTOSC multiplexer. This mode allows         (see Section 10.0 "Interrupts").
for controllable power conservation during Idle periods.
                                                             A fixed delay of interval, TCSD, following the wake event
From RC_RUN, this mode is entered by setting the             is required when leaving Sleep and Idle modes. This
IDLEN bit and executing a SLEEP instruction. If the          delay is required for the CPU to prepare for execution.
device is in another Run mode, first set IDLEN, then set     Instruction execution resumes on the first clock cycle
the SCS1 bit and execute SLEEP. Although its value is        following this delay.
ignored, it is recommended that SCS0 also be cleared;
this is to maintain software compatibility with future       4.5.2 EXIT BY WDT TIME-OUT
devices. The INTOSC multiplexer may be used to
select a higher clock frequency, by modifying the IRCF       A WDT time-out will cause different actions depending
bits, before executing the SLEEP instruction. When the       on which power-managed mode the device is in when
clock source is switched to the INTOSC multiplexer, the      the time-out occurs.
primary oscillator is shut down and the OSTS bit is
cleared.                                                     If the device is not executing code (all Idle modes and
                                                             Sleep mode), the time-out will result in an exit from the
If the IRCF bits are set to any non-zero value or the        power-managed mode (see Section 4.2 "Run
INTSRC bit is set, the INTOSC output is enabled. The         Modes" and Section 4.3 "Sleep Mode"). If the device
IOFS bit becomes set, after the INTOSC output                is executing code (all Run modes), the time-out will
becomes stable, after an interval of TIOBST                  result in a WDT Reset (see Section 25.2 "Watchdog
(parameter 39, Table 28-10). Clocks to the peripherals       Timer (WDT)").
continue while the INTOSC source stabilizes. If the
IRCF bits were previously at a non-zero value, or            The WDT timer and postscaler are cleared by execut-
INTSRC was set before the SLEEP instruction was              ing a SLEEP or CLRWDT instruction, the loss of a
executed and the INTOSC source was already stable,           currently selected clock source (if the Fail-Safe Clock
the IOFS bit will remain set. If the IRCF bits and           Monitor is enabled) and modifying the IRCF bits in the
INTSRC are all clear, the INTOSC output will not be          OSCCON register if the internal oscillator block is the
enabled, the IOFS bit will remain clear and there will be    device clock source.
no indication of the current clock source.
                                                             4.5.3 EXIT BY RESET
When a wake event occurs, the peripherals continue to
be clocked from the INTOSC multiplexer. After a delay        Normally, the device is held in Reset by the Oscillator
of TCSD following the wake event, the CPU begins exe-        Start-up Timer (OST) until the primary clock becomes
cuting code being clocked by the INTOSC multiplexer.         ready. At that time, the OSTS bit is set and the device
The IDLEN and SCS bits are not affected by the               begins executing code. If the internal oscillator block is
wake-up. The INTRC source will continue to run if            the new clock source, the IOFS bit is set instead.
either the WDT or the Fail-Safe Clock Monitor is
enabled.                                                     The exit delay time from Reset to the start of code
                                                             execution depends on both the clock sources before
4.5 Exiting Idle and Sleep Modes                             and after the wake-up and the type of oscillator if the
                                                             new clock source is the primary clock. Exit delays are
An exit from Sleep mode or any of the Idle modes is          summarized in Table 4-2.
triggered by an interrupt, a Reset or a WDT time-out.
This section discusses the triggers that cause exits         Code execution can begin before the primary clock
from power-managed modes. The clocking subsystem             becomes ready. If either the Two-Speed Start-up (see
actions are discussed in each of the power-managed           Section 25.3 "Two-Speed Start-up") or Fail-Safe
modes (see Section 4.2 "Run Modes", Section 4.3              Clock Monitor (see Section 25.4 "Fail-Safe Clock
"Sleep Mode" and Section 4.4 "Idle Modes").                  Monitor") is enabled, the device may begin execution
                                                             as soon as the Reset source has cleared. Execution is
4.5.1 EXIT BY INTERRUPT                                      clocked by the INTOSC multiplexer driven by the
                                                             internal oscillator block. Execution is clocked by the
Any of the available interrupt sources can cause the         internal oscillator block until either the primary clock
device to exit from an Idle mode or the Sleep mode to        becomes ready or a power-managed mode is entered
a Run mode. To enable this functionality, an interrupt       before the primary clock becomes ready; the primary
source must be enabled by setting its enable bit in one      clock is then shut down.
of the INTCON or PIE registers. The exit sequence is
initiated when the corresponding interrupt flag bit is set.

2009 Microchip Technology Inc.                             DS39637D-page 45
PIC18F2480/2580/4480/4580

4.5.4  EXIT WITHOUT AN OSCILLATOR                     In these instances, the primary clock source either
       START-UP DELAY                                 does not require an oscillator start-up delay, since it is
                                                      already running (PRI_IDLE), or normally does not
Certain exits from power-managed modes do not         require an oscillator start-up delay (RC, EC and INTIO
invoke the OST at all. There are two cases:           Oscillator modes). However, a fixed delay of interval,
                                                      TCSD, following the wake event is still required when
PRI_IDLE mode where the primary clock source        leaving Sleep and Idle modes to allow the CPU to
   is not stopped; and                                prepare for execution. Instruction execution resumes
                                                      on the first clock cycle following this delay.
the primary clock source is not any of the LP, XT,
   HS or HSPLL modes.

TABLE 4-2: EXIT DELAY ON WAKE-UP BY RESET FROM SLEEP MODE OR ANY IDLE MODE
                     (BY CLOCK SOURCES)

        Clock Source         Clock Source             Exit Delay                     Clock Ready Status
       Before Wake-up        After Wake-up                                               bit (OSCCON)

                             LP, XT, HS

       Primary Device Clock    HSPLL                  TCSD(2)                                 OSTS
         (PRI_IDLE mode)
                               EC, RC                                                           --
                              INTRC(1)                                                        IOFS
                             INTOSC(3)

       T1OSC or INTRC(1)     LP, XT, HS                  TOST(4)                              OSTS
                                                      TOST + trc(4)
                               HSPLL                                                            --
                                                         TCSD(2)                              IOFS
                               EC, RC
                              INTRC(1)                 TIOBST(5)
                             INTOSC(3)

       INTOSC(3)             LP, XT, HS                  TOST(5)                              OSTS
                                                      TOST + trc(4)
                               HSPLL                                                            --
                               EC, RC                    TCSD(2)                              IOFS
                              INTRC(1)
                             INTOSC(3)                    None

            None             LP, XT, HS                  TOST(4)                              OSTS
       (Sleep mode)            HSPLL                  TOST + trc(4)
                                                                                                --
                               EC, RC                    TCSD(2)                              IOFS
                              INTRC(1)
                             INTOSC(3)                 TIOBST(5)

Note 1: In this instance, refers specifically to the 31 kHz INTRC clock source.

       2: TCSD (parameter 38) is a required delay when waking from Sleep and all Idle modes and runs concurrently
             with any other required delays (see Section 4.4 "Idle Modes").

       3: Includes both the INTOSC 8 MHz source and postscaler derived frequencies.

       4: TOST is the Oscillator Start-up Timer (parameter 32). trc is the PLL Lock-out Timer (parameter F12); it is
             also designated as TPLL.

       5: Execution continues during TIOBST (parameter 39), the INTOSC stabilization period.

DS39637D-page 46                                                                  2009 Microchip Technology Inc.
                                                       PIC18F2480/2580/4480/4580

5.0 RESET                                              A simplified block diagram of the On-Chip Reset Circuit
                                                       is shown in Figure 5-1.
The PIC18F2480/2580/4480/4580 devices differentiate
between various kinds of Reset:                        5.1 RCON Register

a) Power-on Reset (POR)                                Device Reset events are tracked through the RCON
b) MCLR Reset during normal operation                  register (Register 5-1). The lower five bits of the regis-
c) MCLR Reset during power-managed modes               ter indicate that a specific Reset event has occurred. In
d) Watchdog Timer (WDT) Reset (during                  most cases, these bits can only be cleared by the event
                                                       and must be set by the application after the event. The
      execution)                                       state of these flag bits, taken together, can be read to
e) Programmable Brown-out Reset (BOR)                  indicate the type of Reset that just occurred. This is
f) RESET Instruction                                   described in more detail in Section 5.6 "Reset State
g) Stack Full Reset                                    of Registers".
h) Stack Underflow Reset
                                                       The RCON register also has control bits for setting
This section discusses Resets generated by MCLR,       interrupt priority (IPEN) and software control of the
POR and BOR, and covers the operation of the various   BOR (SBOREN). Interrupt priority is discussed in
start-up timers. Stack Reset events are covered in     Section 10.0 "Interrupts". BOR is covered in
Section 6.1.2.4 "Stack Full and Underflow Resets".     Section 5.4 "Brown-out Reset (BOR)".
WDT Resets are covered in Section 25.2 "Watchdog
Timer (WDT)".

FIGURE 5-1:                 SIMPLIFIED BLOCK DIAGRAM OF ON-CHIP RESET CIRCUIT

                 RESET
               Instruction

       Stack Stack Full/Underflow Reset
      Pointer

                            External Reset

MCLR               MCLRE
      ( )_IDLE

        Sleep

        WDT
      Time-out

      VDD Rise POR Pulse
       Detect

VDD

      Brown-out

      Reset                                            S

                            BOREN

      OST/PWRT              1024 Cycles                                           Chip_Reset
                     OST

                            10-Bit Ripple Counter      R                       Q

OSC1

        32 s                PWRT 65.5 ms
      INTRC(1)                  11-Bit Ripple Counter

                                                                                                                                                    Enable PWRT
                                                                                                                                                    Enable OST(2)

Note 1: This is the INTRC source from the internal oscillator block and is separate from the RC oscillator of the CLKI pin.
        2: See Table 5-2 for time-out situations.

2009 Microchip Technology Inc.                                               DS39637D-page 47
PIC18F2480/2580/4480/4580

REGISTER 5-1: RCON: RESET CONTROL REGISTER

R/W-0             R/W-1(1)  U-0                 R/W-1       R-1              R-1       R/W-0(2)       R/W-0

       IPEN       SBOREN    --                    RI        TO               PD        POR                 BOR

bit 7                                                                                                      bit 0

Legend:                     W = Writable bit           U = Unimplemented bit, read as `0'
R = Readable bit            `1' = Bit is set
-n = Value at POR                                      `0' = Bit is cleared            x = Bit is unknown

bit 7        IPEN: Interrupt Priority Enable bit

             1 = Enable priority levels on interrupts

             0 = Disable priority levels on interrupts (PIC16CXXX Compatibility mode)

bit 6        SBOREN: BOR Software Enable bit(1)

             If BOREN<1:0> = 01:
             1 = BOR is enabled
             0 = BOR is disabled

             If BOREN<1:0> = 00, 10 or 11:
             Bit is disabled and reads as `0'.

bit 5        Unimplemented: Read as `0'

bit 4        RI: RESET Instruction Flag bit

             1 = The RESET instruction was not executed (set by firmware only)
             0 = The RESET instruction was executed causing a device Reset (must be set in software after a

                   Brown-out Reset occurs)

bit 3        TO: Watchdog Time-out Flag bit

             1 = Set by power-up, CLRWDT instruction or SLEEP instruction
             0 = A WDT time-out occurred

bit 2        PD: Power-down Detection Flag bit

             1 = Set by power-up or by the CLRWDT instruction

             0 = Set by execution of the SLEEP instruction

bit 1        POR: Power-on Reset Status bit(2)

             1 = A Power-on Reset has not occurred (set by firmware only)
             0 = A Power-on Reset occurred (must be set in software after a Power-on Reset occurs)

bit 0        BOR: Brown-out Reset Status bit

             1 = A Brown-out Reset has not occurred (set by firmware only)
             0 = A Brown-out Reset occurred (must be set in software after a Brown-out Reset occurs)

Note 1: If SBOREN is enabled, its Reset state is `1'; otherwise, it is `0'.
        2: The actual Reset value of POR is determined by the type of device Reset. See the notes following this
              register and Section 5.6 "Reset State of Registers" for additional information.

Note 1: It is recommended that the POR bit be set after a Power-on Reset has been detected so that subsequent
            Power-on Resets may be detected.

       2: Brown-out Reset is said to have occurred when BOR is `0' and POR is `1' (assuming that POR was set to
            `1' by software immediately after a Power-on Reset).

DS39637D-page 48                                                                   2009 Microchip Technology Inc.
                                  PIC18F2480/2580/4480/4580

5.2 Master Clear Reset (MCLR)                              FIGURE 5-2:     EXTERNAL POWER-ON
                                                                           RESET CIRCUIT (FOR
The MCLR pin provides a method for triggering an                           SLOW VDD POWER-UP)
external Reset of the device. A Reset is generated by
holding the pin low. These devices have a noise filter in  VDD VDD
the MCLR Reset path which detects and ignores small
pulses.                                                             D   R

The MCLR pin is not driven low by any internal Resets,                  C  R1
including the WDT.                                                                    MCLR

In PIC18F2480/2580/4480/4580 devices, the MCLR                                      PIC18FXXXX
input can be disabled with the MCLRE Configuration
bit. When MCLR is disabled, the pin becomes a digital      Note 1:     External Power-on Reset circuit is required
input. See Section 11.5 "PORTE, TRISE and LATE                         only if the VDD power-up slope is too slow.
Registers" for more information.                                       The diode D helps discharge the capacitor
                                                                       quickly when VDD powers down.
5.3 Power-on Reset (POR)
                                                           2: R < 40 k is recommended to make sure that
A Power-on Reset pulse is generated on-chip                     the voltage drop across R does not violate
whenever VDD rises above a certain threshold. This              the device's electrical specification.
allows the device to start in the initialized state when
VDD is adequate for operation.                             3: R1  1 k will limit any current flowing into
                                                                MCLR from external capacitor C, in the event
To take advantage of the POR circuitry, tie the MCLR            of MCLR/VPP pin breakdown, due to Electro-
pin through a resistor (1 k to 10 k) to VDD. This will          static Discharge (ESD) or Electrical
eliminate external RC components usually needed to              Overstress (EOS).
create a Power-on Reset delay. A minimum rise rate for
VDD is specified (parameter D004). For a slow rise
time, see Figure 5-2.

When the device starts normal operation (i.e., exits the
Reset condition), device operating parameters
(voltage, frequency, temperature, etc.) must be met to
ensure operation. If these conditions are not met, the
device must be held in Reset until the operating
conditions are met.

POR events are captured by the POR bit (RCON<1>).
The state of the bit is set to `0' whenever a Power-on
Reset occurs; it does not change for any other Reset
event. POR is not reset to `1' by any hardware event.
To capture multiple events, the user manually resets
the bit to `1' in software following any Power-on Reset.

2009 Microchip Technology Inc.                                           DS39637D-page 49
PIC18F2480/2580/4480/4580

5.4 Brown-out Reset (BOR)                                   Placing the BOR under software control gives the user
                                                            the additional flexibility of tailoring the application to its
PIC18F2480/2580/4480/4580 devices implement a               environment without having to reprogram the device to
BOR circuit that provides the user with a number of         change BOR configuration. It also allows the user to
configuration and power-saving options. The BOR is          tailor device power consumption in software by elimi-
controlled by the BORV<1:0> and BOREN<1:0>                  nating the incremental current that the BOR consumes.
Configuration bits. There are a total of four BOR           While the BOR current is typically very small, it may
configurations which are summarized in Table 5-1.           have some impact in low-power applications.

The BOR threshold is set by the BORV<1:0> bits. If          Note:  Even when BOR is under software control,
BOR is enabled (any values of BOREN<1:0>, except                   the Brown-out Reset voltage level is still
`00'), any drop of VDD below VBOR (parameter D005)                 set by the BORV<1:0> Configuration bits.
for greater than TBOR (parameter 35) will reset the                It cannot be changed in software.
device. A Reset may or may not occur if VDD falls below
VBOR for less than TBOR. The chip will remain in            5.4.2 DETECTING BOR
Brown-out Reset until VDD rises above VBOR.
                                                            When Brown-out Reset is enabled, the BOR bit always
If the Power-up Timer is enabled, it will be invoked after  resets to `0' on any Brown-out Reset or Power-on
VDD rises above VBOR; it then will keep the chip in         Reset event. This makes it difficult to determine if a
Reset for an additional time delay, TPWRT                   Brown-out Reset event has occurred just by reading
(parameter 33). If VDD drops below VBOR while the           the state of BOR alone. A more reliable method is to
Power-up Timer is running, the chip will go back into a     simultaneously check the state of both POR and BOR.
Brown-out Reset and the Power-up Timer will be              This assumes that the POR bit is reset to `1' in software
initialized. Once VDD rises above VBOR, the Power-up        immediately after any Power-on Reset event. IF BOR
Timer will execute the additional time delay.               is `0' while POR is `1', it can be reliably assumed that a
                                                            Brown-out Reset event has occurred.
BOR and the Power-on Timer (PWRT) are
independently configured. Enabling a Brown-out Reset        5.4.3 DISABLING BOR IN SLEEP MODE
does not automatically enable the PWRT.
                                                            When BOREN<1:0> = 10, the BOR remains under
5.4.1 SOFTWARE ENABLED BOR                                  hardware control and operates as previously
                                                            described. Whenever the device enters Sleep mode,
When BOREN<1:0> = 01, the BOR can be enabled or             however, the BOR is automatically disabled. When the
disabled by the user in software. This is done with the     device returns to any other operating mode, BOR is
control bit, SBOREN (RCON<6>). Setting SBOREN               automatically re-enabled.
enables the BOR to function as previously described.
Clearing SBOREN disables the BOR entirely. The              This mode allows for applications to recover from
SBOREN bit operates only in this mode; otherwise it is      brown-out situations, while actively executing code,
read as `0'.                                                when the device requires BOR protection the most. At
                                                            the same time, it saves additional power in Sleep mode
                                                            by eliminating the small incremental BOR current.

TABLE 5-1: BOR CONFIGURATIONS

BOR Configuration     Status of                                   BOR Operation
BOREN1 BOREN0         SBOREN
                     (RCON<6>)

0                 0  Unavailable BOR disabled; must be enabled by reprogramming the Configuration bits.

0                 1  Available BOR enabled in software; operation controlled by SBOREN.

1                 0  Unavailable BOR enabled in hardware in Run and Idle modes, disabled during Sleep

                                  mode.

1                 1  Unavailable BOR enabled in hardware; must be disabled by reprogramming the

                                  Configuration bits.

DS39637D-page 50                                                    2009 Microchip Technology Inc.
                                  PIC18F2480/2580/4480/4580

5.5 Device Reset Timers                                  5.5.3 PLL LOCK TIME-OUT

PIC18F2480/2580/4480/4580 devices incorporate            With the PLL enabled in its PLL mode, the time-out
three separate on-chip timers that help regulate the     sequence following a Power-on Reset is slightly differ-
Power-on Reset process. Their main function is to        ent from other oscillator modes. A separate timer is
ensure that the device clock is stable before code is    used to provide a fixed time-out that is sufficient for the
executed. These timers are:                              PLL to lock to the main oscillator frequency. This PLL
                                                         lock time-out (TPLL) is typically 2 ms and follows the
Power-up Timer (PWRT)                                  oscillator start-up time-out.
Oscillator Start-up Timer (OST)
PLL Lock Time-out                                      5.5.4 TIME-OUT SEQUENCE

5.5.1 POWER-UP TIMER (PWRT)                              On power-up, the time-out sequence is as follows:

The Power-up Timer (PWRT) of the PIC18F2480/2580/        1. After the POR pulse has cleared, PWRT
4480/4580 devices is an 11-bit counter which uses the          time-out is invoked (if enabled).
INTRC source as the clock input. This yields an
approximate time interval of 2048 x 32 s = 65.6 ms.      2. Then, the OST is activated.
While the PWRT is counting, the device is held in
Reset.                                                   The total time-out will vary based on oscillator configu-
                                                         ration and the status of the PWRT. Figure 5-3,
The power-up time delay depends on the INTRC clock       Figure 5-4, Figure 5-5, Figure 5-6 and Figure 5-7 all
and will vary from chip-to-chip due to temperature and   depict time-out sequences on power-up, with the
process variation. See DC parameter 33 for details.      Power-up Timer enabled and the device operating in
                                                         HS Oscillator mode. Figures 5-3 through 5-6 also apply
The PWRT is enabled by clearing the PWRTEN               to devices operating in XT or LP modes. For devices in
Configuration bit.                                       RC mode and with the PWRT disabled, on the other
                                                         hand, there will be no time-out at all.
5.5.2  OSCILLATOR START-UP TIMER
       (OST)                                             Since the time-outs occur from the POR pulse, if MCLR
                                                         is kept low long enough, all time-outs will expire. Bring-
The Oscillator Start-up Timer (OST) provides a           ing MCLR high will begin execution immediately
1024 oscillator cycle (from OSC1 input) delay after the  (Figure 5-5). This is useful for testing purposes or to
PWRT delay is over (parameter 33). This ensures that     synchronize more than one PIC18FXXXX device
the crystal oscillator or resonator has started and      operating in parallel.
stabilized.

The OST time-out is invoked only for XT, LP, HS and
HSPLL modes and only on Power-on Reset or on exit
from most power-managed modes.

TABLE 5-2: TIME-OUT IN VARIOUS SITUATIONS

  Oscillator                      Power-up(2) and Brown-out                            Exit from
Configuration                                                                 Power-Managed Mode
                                  PWRTEN = 0                      PWRTEN = 1
                                                                                1024 TOSC + 2 ms(2)
HSPLL           66 ms(1) + 1024 TOSC + 2 ms(2)           1024 TOSC + 2 ms(2)          1024 TOSC
HS, XT, LP            66 ms(1) + 1024 TOSC                     1024 TOSC                    --
EC, ECIO                       66 ms(1)                              --                     --
RC, RCIO                       66 ms(1)                              --                     --
INTIO1, INTIO2                 66 ms(1)                              --

Note 1: 66 ms (65.5 ms) is the nominal Power-up Timer (PWRT) delay.

       2: 2 ms is the nominal time required for the PLL to lock.

2009 Microchip Technology Inc.                                              DS39637D-page 51
PIC18F2480/2580/4480/4580

FIGURE 5-3:              TIME-OUT SEQUENCE ON POWER-UP (MCLR TIED TO VDD, VDD RISE < TPWRT)

                    VDD  TPWRT
                 MCLR
   INTERNAL POR                        TOST

PWRT TIME-OUT
    OST TIME-OUT

INTERNAL RESET

FIGURE 5-4:              TIME-OUT SEQUENCE ON POWER-UP (MCLR NOT TIED TO VDD): CASE 1

                    VDD         TPWRT
                 MCLR
    INTERNAL POR                             TOST

PWRT TIME-OUT
    OST TIME-OUT

INTERNAL RESET

FIGURE 5-5:              TIME-OUT SEQUENCE ON POWER-UP (MCLR NOT TIED TO VDD): CASE 2

                    VDD         TPWRT
                 MCLR
   INTERNAL POR                              TOST

PWRT TIME-OUT
    OST TIME-OUT

INTERNAL RESET

DS39637D-page 52                                    2009 Microchip Technology Inc.
                                  PIC18F2480/2580/4480/4580

FIGURE 5-6:             SLOW RISE TIME (MCLR TIED TO VDD, VDD RISE > TPWRT)

                                                                  5V

                        VDD       0V                          1V

             MCLR

       INTERNAL POR

                                      TPWRT

       PWRT TIME-OUT

                                                                        TOST

       OST TIME-OUT

       INTERNAL RESET

FIGURE 5-7:             TIME-OUT SEQUENCE ON POR W/PLL ENABLED (MCLR TIED TO VDD)

                   VDD                TPWRT
               MCLR
  INTERNAL POR                                                    TOST

PWRT TIME-OUT                                                           TPLL
  OST TIME-OUT

PLL TIME-OUT

INTERNAL RESET

Note:  TOST = 1024 clock cycles.
       TPLL  2 ms max. First three stages of the PWRT timer.

2009 Microchip Technology Inc.                                              DS39637D-page 53
PIC18F2480/2580/4480/4580

5.6 Reset State of Registers                              Reset situations, as indicated in Table 5-3. These bits
                                                          are used in software to determine the nature of the
Most registers are unaffected by a Reset. Their status    Reset.
is unknown on a Power-on Reset and unchanged by all
other Resets. The other registers are forced to a "Reset  Table 5-4 describes the Reset states for all of the
state" depending on the type of Reset that occurred.      Special Function Registers. These are categorized by
                                                          Power-on and Brown-out Resets, Master Clear and
Most registers are not affected by a WDT wake-up,         WDT Resets and WDT wake-ups.
since this is viewed as the resumption of normal oper-
ation. Status bits from the RCON register, RI, TO, PD,
POR and BOR, are set or cleared differently in different

TABLE 5-3: STATUS BITS, THEIR SIGNIFICANCE AND THE INITIALIZATION CONDITION FOR
                     RCON REGISTER

                                Program                   RCON Register  STKPTR Register
                               Counter(1) SBOREN
           Condition

                                                          RI TO PD POR BOR STKFUL STKUNF

Power-on Reset                 0000h   1                  11100          0                     0

RESET Instruction              0000h   u(2)               0uuuu          u                     u

Brown-out Reset                0000h   u(2)               111u0          u                     u

MCLR Reset during              0000h   u(2)               u1uuu          u                     u

Power-Managed Run modes

MCLR Reset during              0000h   u(2)               u10uu          u                     u

Power-Managed Idle modes and

Sleep mode

WDT Time-out during Full Power 0000h   u(2)               u0uuu          u                     u

or Power-Managed Run modes

MCLR Reset during Full-Power   0000h   u(2)               uuuuu          u                     u

execution

Stack Full Reset (STVREN = 1)  0000h   u(2)               uuuuu          1                     u

Stack Underflow Reset          0000h   u(2)               uuuuu          u                     1
(STVREN = 1)

Stack Underflow Error (not an  0000h   u(2)               uuuuu          u                     1

actual Reset, STVREN = 0)

WDT Time-out during            PC + 2  u(2)               u00uu          u                     u

Power-Managed Idle or Sleep

modes

Interrupt Exit from            PC + 2  u(2)               uu0uu          u                     u
Power-Managed modes

Legend: u = unchanged
Note 1: When the wake-up is due to an interrupt and the GIEH or GIEL bits are set, the PC is loaded with the

              interrupt vector (008h or 0018h).

2: Reset state is `1' for POR and unchanged for all other Resets when software BOR is enabled
      (BOREN<1:0> Configuration bits = 01 and SBOREN = 1); otherwise, the Reset state is `0'.

DS39637D-page 54                                                          2009 Microchip Technology Inc.
                                  PIC18F2480/2580/4480/4580

TABLE 5-4: INITIALIZATION CONDITIONS FOR ALL REGISTERS

Register  Applicable Devices      Power-on Reset,            MCLR Resets,     Wake-up via WDT
                                  Brown-out Reset             WDT Reset,          or Interrupt

                                                          RESET Instruction,
                                                             Stack Resets

TOSU      2480 2580 4480 4580     ---0 0000               ---0 0000           ---0 uuuu(3)
TOSH      2480 2580 4480 4580     0000 0000               0000 0000           uuuu uuuu(3)
TOSL      2480 2580 4480 4580     0000 0000               0000 0000           uuuu uuuu(3)
STKPTR    2480 2580 4480 4580     00-0 0000               uu-0 0000           uu-u uuuu(3)

PCLATU    2480 2580 4480 4580 ---0 0000                   ---0 0000           ---u uuuu

PCLATH    2480 2580 4480 4580     0000 0000               0000 0000           uuuu uuuu
PCL       2480 2580 4480 4580     0000 0000               0000 0000              PC + 2(2)

TBLPTRU   2480 2580 4480 4580 --00 0000                   --00 0000           --uu uuuu

TBLPTRH   2480 2580 4480 4580 0000 0000                   0000 0000           uuuu uuuu

TBLPTRL   2480 2580 4480 4580 0000 0000                   0000 0000           uuuu uuuu

TABLAT    2480 2580 4480 4580 0000 0000                   0000 0000           uuuu uuuu

PRODH     2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu           uuuu uuuu

PRODL     2480 2580 4480 4580     xxxx xxxx               uuuu uuuu           uuuu uuuu
INTCON    2480 2580 4480 4580     0000 000x               0000 000u           uuuu uuuu(1)
INTCON2   2480 2580 4480 4580     1111 -1-1               1111 -1-1           uuuu -u-u(1)
INTCON3   2480 2580 4480 4580     11-0 0-00               11-0 0-00           uu-u u-uu(1)

INDF0     2480 2580 4480 4580     N/A                     N/A                                   N/A

POSTINC0 2480 2580 4480 4580      N/A                     N/A                                   N/A

POSTDEC0 2480 2580 4480 4580      N/A                     N/A                                   N/A

PREINC0   2480 2580 4480 4580     N/A                     N/A                                   N/A

PLUSW0    2480 2580 4480 4580     N/A                     N/A                                   N/A

FSR0H     2480 2580 4480 4580 ---- 0000                   ---- 0000           ---- uuuu

FSR0L     2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu           uuuu uuuu

WREG      2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu           uuuu uuuu

INDF1     2480 2580 4480 4580     N/A                     N/A                                   N/A

POSTINC1 2480 2580 4480 4580      N/A                     N/A                                   N/A

POSTDEC1 2480 2580 4480 4580      N/A                     N/A                                   N/A

PREINC1   2480 2580 4480 4580     N/A                     N/A                                   N/A

PLUSW1    2480 2580 4480 4580     N/A                     N/A                                   N/A

FSR1H     2480 2580 4480 4580 ---- 0000                   ---- 0000           ---- uuuu

FSR1L     2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu           uuuu uuuu

Legend: u = unchanged, x = unknown, - = unimplemented bit, read as `0', q = value depends on condition.
              Shaded cells indicate conditions do not apply for the designated device.

Note 1: One or more bits in the INTCONx or PIRx registers will be affected (to cause wake-up).

2: When the wake-up is due to an interrupt and the GIEL or GIEH bit is set, the PC is loaded with the interrupt
      vector (0008h or 0018h).

3: When the wake-up is due to an interrupt and the GIEL or GIEH bit is set, the TOSU, TOSH and TOSL are
      updated with the current value of the PC. The STKPTR is modified to point to the next location in the
      hardware stack.

4: See Table 5-3 for Reset value for specific condition.

5: Bits 6 and 7 of PORTA, LATA and TRISA are enabled, depending on the oscillator mode selected. When
      not enabled as PORTA pins, they are disabled and read `0'.

6: This register reads all `0's until ECANTM technology is set up in Mode 1 or Mode 2.

2009 Microchip Technology Inc.                                                                DS39637D-page 55
PIC18F2480/2580/4480/4580

TABLE 5-4: INITIALIZATION CONDITIONS FOR ALL REGISTERS (CONTINUED)

Register          Applicable Devices  Power-on Reset,              MCLR Resets,     Wake-up via WDT
                                      Brown-out Reset               WDT Reset,          or Interrupt

                                                                RESET Instruction,
                                                                   Stack Resets

BSR       2480 2580 4480 4580 ---- 0000                         ---- 0000           ---- uuuu

INDF2     2480 2580 4480 4580         N/A                       N/A                             N/A

POSTINC2 2480 2580 4480 4580          N/A                       N/A                             N/A

POSTDEC2 2480 2580 4480 4580          N/A                       N/A                             N/A

PREINC2   2480 2580 4480 4580         N/A                       N/A                             N/A

PLUSW2    2480 2580 4480 4580         N/A                       N/A                             N/A

FSR2H     2480 2580 4480 4580 ---- 0000                         ---- 0000           ---- uuuu

FSR2L     2480 2580 4480 4580 xxxx xxxx                         uuuu uuuu           uuuu uuuu

STATUS    2480 2580 4480 4580 ---x xxxx                         ---u uuuu           ---u uuuu

TMR0H     2480 2580 4480 4580 0000 0000                         0000 0000           uuuu uuuu

TMR0L     2480 2580 4480 4580 xxxx xxxx                         uuuu uuuu           uuuu uuuu

T0CON     2480 2580 4480 4580 1111 1111                         1111 1111           uuuu uuuu

OSCCON    2480 2580 4480 4580 0100 q000                         0100 00q0           uuuu uuqu

HLVDCON 2480 2580 4480 4580 0-00 0101                           0-00 0101           0-uu uuuu

WDTCON    2480 2580 4480 4580         ---- ---0                 ---- ---0           ---- ---u
RCON(4)   2480 2580 4480 4580         0q-1 11q0                 0q-q qquu           uq-u qquu

TMR1H     2480 2580 4480 4580 xxxx xxxx                         uuuu uuuu           uuuu uuuu

TMR1L     2480 2580 4480 4580 xxxx xxxx                         uuuu uuuu           uuuu uuuu

T1CON     2480 2580 4480 4580 0000 0000                         u0uu uuuu           uuuu uuuu

TMR2      2480 2580 4480 4580 0000 0000                         0000 0000           uuuu uuuu

PR2       2480 2580 4480 4580 1111 1111                         1111 1111           1111 1111

T2CON     2480 2580 4480 4580 -000 0000                         -000 0000           -uuu uuuu

SSPBUF    2480 2580 4480 4580 xxxx xxxx                         uuuu uuuu           uuuu uuuu

SSPADD    2480 2580 4480 4580 0000 0000                         0000 0000           uuuu uuuu

SSPSTAT   2480 2580 4480 4580 0000 0000                         0000 0000           uuuu uuuu

SSPCON1 2480 2580 4480 4580 0000 0000                           0000 0000           uuuu uuuu

SSPCON2 2480 2580 4480 4580 0000 0000                           0000 0000           uuuu uuuu

ADRESH    2480 2580 4480 4580 xxxx xxxx                         uuuu uuuu           uuuu uuuu

ADRESL    2480 2580 4480 4580 xxxx xxxx                         uuuu uuuu           uuuu uuuu

ADCON0    2480 2580 4480 4580 --00 0000                         --00 0000           --uu uuuu

ADCON1    2480 2580 4480 4580 --00 0qqq                         --00 0qqq           --uu uuuu

Legend: u = unchanged, x = unknown, - = unimplemented bit, read as `0', q = value depends on condition.
              Shaded cells indicate conditions do not apply for the designated device.

Note 1: One or more bits in the INTCONx or PIRx registers will be affected (to cause wake-up).

      2: When the wake-up is due to an interrupt and the GIEL or GIEH bit is set, the PC is loaded with the interrupt
            vector (0008h or 0018h).

      3: When the wake-up is due to an interrupt and the GIEL or GIEH bit is set, the TOSU, TOSH and TOSL are
            updated with the current value of the PC. The STKPTR is modified to point to the next location in the
            hardware stack.

      4: See Table 5-3 for Reset value for specific condition.

      5: Bits 6 and 7 of PORTA, LATA and TRISA are enabled, depending on the oscillator mode selected. When
            not enabled as PORTA pins, they are disabled and read `0'.

      6: This register reads all `0's until ECANTM technology is set up in Mode 1 or Mode 2.

DS39637D-page 56                                                            2009 Microchip Technology Inc.
                                  PIC18F2480/2580/4480/4580

TABLE 5-4: INITIALIZATION CONDITIONS FOR ALL REGISTERS (CONTINUED)

Register  Applicable Devices      Power-on Reset,                  MCLR Resets,               Wake-up via WDT
                                  Brown-out Reset                   WDT Reset,                    or Interrupt

                                                                RESET Instruction,
                                                                   Stack Resets

ADCON2    2480 2580 4480 4580 0-00 0000                         0-00 0000                     u-uu uuuu

CCPR1H    2480 2580 4480 4580 xxxx xxxx                         uuuu uuuu                     uuuu uuuu

CCPR1L    2480 2580 4480 4580 xxxx xxxx                         uuuu uuuu                     uuuu uuuu

CCP1CON 2480 2580 4480 4580 --00 0000                           --00 0000                     --uu uuuu

ECCPR1H 2480 2580 4480 4580 xxxx xxxx                           uuuu uuuu                     uuuu uuuu

ECCPR1L   2480 2580 4480 4580 xxxx xxxx                         uuuu uuuu                     uuuu uuuu

ECCP1CON 2480 2580 4480 4580 0000 0000                          0000 0000                     uuuu uuuu

BAUDCON 2480 2580 4480 4580 01-0 0-00                           01-0 0-00                     --uu uuuu

ECCP1DEL 2480 2580 4480 4580 0000 0000                          0000 0000                     uuuu uuuu

ECCP1AS   2480 2580 4480 4580 0000 0000                         0000 0000                     uuuu uuuu

CVRCON    2480 2580 4480 4580 0000 0000                         0000 0000                     uuuu uuuu

CMCON     2480 2580 4480 4580 0000 0111                         0000 0111                     uuuu uuuu

TMR3H     2480 2580 4480 4580 xxxx xxxx                         uuuu uuuu                     uuuu uuuu

TMR3L     2480 2580 4480 4580 xxxx xxxx                         uuuu uuuu                     uuuu uuuu

T3CON     2480 2580 4480 4580 0000 0000                         uuuu uuuu                     uuuu uuuu

SPBRGH    2480 2580 4480 4580 0000 0000                         0000 0000                     uuuu uuuu

SPBRG     2480 2580 4480 4580 0000 0000                         0000 0000                     uuuu uuuu

RCREG     2480 2580 4480 4580 0000 0000                         0000 0000                     uuuu uuuu

TXREG     2480 2580 4480 4580 0000 0000                         0000 0000                     uuuu uuuu

TXSTA     2480 2580 4480 4580 0000 0010                         0000 0010                     uuuu uuuu

RCSTA     2480 2580 4480 4580 0000 000x                         0000 000x                     uuuu uuuu

EEADR     2480 2580 4480 4580 0000 0000                         0000 0000                     uuuu uuuu

EEDATA    2480 2580 4480 4580 0000 0000                         0000 0000                     uuuu uuuu

EECON2    2480 2580 4480 4580 0000 0000                         0000 0000                     0000 0000

EECON1    2480 2580 4480 4580 xx-0 x000                         uu-0 u000                     uu-0 u000

IPR3      2480 2580 4480 4580 1111 1111                         1111 1111                     uuuu uuuu

PIR3      2480 2580 4480 4580 0000 0000                         0000 0000                     uuuu uuuu

PIE3      2480 2580 4480 4580 0000 0000                         0000 0000                     uuuu uuuu

IPR2      2480 2580 4480 4580 11-1 1111                         11-1 1111                     uu-u uuuu

          2480 2580 4480 4580 1--1 111-                         1--1 111-                     u--u uuu-

Legend: u = unchanged, x = unknown, - = unimplemented bit, read as `0', q = value depends on condition.
              Shaded cells indicate conditions do not apply for the designated device.

Note 1: One or more bits in the INTCONx or PIRx registers will be affected (to cause wake-up).

      2: When the wake-up is due to an interrupt and the GIEL or GIEH bit is set, the PC is loaded with the interrupt
            vector (0008h or 0018h).

      3: When the wake-up is due to an interrupt and the GIEL or GIEH bit is set, the TOSU, TOSH and TOSL are
            updated with the current value of the PC. The STKPTR is modified to point to the next location in the
            hardware stack.

      4: See Table 5-3 for Reset value for specific condition.

      5: Bits 6 and 7 of PORTA, LATA and TRISA are enabled, depending on the oscillator mode selected. When
            not enabled as PORTA pins, they are disabled and read `0'.

      6: This register reads all `0's until ECANTM technology is set up in Mode 1 or Mode 2.

2009 Microchip Technology Inc.                                                                DS39637D-page 57
PIC18F2480/2580/4480/4580

TABLE 5-4: INITIALIZATION CONDITIONS FOR ALL REGISTERS (CONTINUED)

Register          Applicable Devices  Power-on Reset,              MCLR Resets,               Wake-up via WDT
                                      Brown-out Reset               WDT Reset,                    or Interrupt

                                                                RESET Instruction,
                                                                   Stack Resets

PIR2      2480 2580 4480 4580         00-0 0000                 00-0 0000                     uu-u uuuu(1)
PIE2      2480 2580 4480 4580         0--0 000-                 0--0 000-                     u--u uuu-(1)
IPR1      2480 2580 4480 4580         00-0 0000                 00-0 0000
PIR1      2480 2580 4480 4580         0--0 000-                 0--0 000-                     uu-u uuuu
          2480 2580 4480 4580         1111 1111                 1111 1111                     u--u uuu-
          2480 2580 4480 4580         -111 1111                 -111 1111
          2480 2580 4480 4580         0000 0000                 0000 0000                     uuuu uuuu

                                                                                              -uuu uuuu
                                                                                              uuuu uuuu(1)

          2480 2580 4480 4580 -000 0000                         -000 0000                     -uuu uuuu

PIE1      2480 2580 4480 4580         0000 0000                 0000 0000                     uuuu uuuu
          2480 2580 4480 4580         -000 0000                 -000 0000                     -uuu uuuu
OSCTUNE   2480 2580 4480 4580         --00 0000                 --00 0000                     --uu uuuu
TRISE     2480 2580 4480 4580         0000 -111                 0000 -111                     uuuu -uuu
TRISD     2480 2580 4480 4580         1111 1111                 1111 1111                     uuuu uuuu
TRISC     2480 2580 4480 4580         1111 1111                 1111 1111                     uuuu uuuu
TRISB     2480 2580 4480 4580         1111 1111                 1111 1111                     uuuu uuuu
TRISA(5)  2480 2580 4480 4580         1111 1111(5)              1111 1111(5)                  uuuu uuuu(5)

LATE      2480 2580 4480 4580 ---- -xxx                         ---- -uuu                     ---- -uuu

LATD      2480 2580 4480 4580         xxxx xxxx                 uuuu uuuu                     uuuu uuuu
LATC      2480 2580 4480 4580         xxxx xxxx                 uuuu uuuu                     uuuu uuuu
LATB      2480 2580 4480 4580         xxxx xxxx                 uuuu uuuu                     uuuu uuuu
LATA(5)   2480 2580 4480 4580         xxxx xxxx(5)              uuuu uuuu(5)                  uuuu uuuu(5)
PORTE     2480 2580 4480 4580         ---- x000                 ---- x000                     ---- uuuu
PORTD     2480 2580 4480 4580         xxxx xxxx                 uuuu uuuu                     uuuu uuuu
PORTC     2480 2580 4480 4580         xxxx xxxx                 uuuu uuuu                     uuuu uuuu
PORTB     2480 2580 4480 4580         xxxx xxxx                 uuuu uuuu                     uuuu uuuu
PORTA(5)  2480 2580 4480 4580         xx0x 0000(5)              uu0u 0000(5)                  uuuu uuuu(5)

ECANCON 2480 2580 4480 4580 0001 0000                           0001 0000                     uuuu uuuu

TXERRCNT 2480 2580 4480 4580 0000 0000                          0000 0000                     uuuu uuuu

RXERRCNT 2480 2580 4480 4580 0000 0000                          0000 0000                     uuuu uuuu

COMSTAT   2480 2580 4480 4580         0000 0000                 0000 0000                     uuuu uuuu

CIOCON    2480 2580 4480 4580 --00 ----                         --00 ----                     --uu ----

Legend: u = unchanged, x = unknown, - = unimplemented bit, read as `0', q = value depends on condition.
              Shaded cells indicate conditions do not apply for the designated device.

Note 1: One or more bits in the INTCONx or PIRx registers will be affected (to cause wake-up).

      2: When the wake-up is due to an interrupt and the GIEL or GIEH bit is set, the PC is loaded with the interrupt
            vector (0008h or 0018h).

      3: When the wake-up is due to an interrupt and the GIEL or GIEH bit is set, the TOSU, TOSH and TOSL are
            updated with the current value of the PC. The STKPTR is modified to point to the next location in the
            hardware stack.

      4: See Table 5-3 for Reset value for specific condition.

      5: Bits 6 and 7 of PORTA, LATA and TRISA are enabled, depending on the oscillator mode selected. When
            not enabled as PORTA pins, they are disabled and read `0'.

      6: This register reads all `0's until ECANTM technology is set up in Mode 1 or Mode 2.

DS39637D-page 58                                                               2009 Microchip Technology Inc.
                                  PIC18F2480/2580/4480/4580

TABLE 5-4: INITIALIZATION CONDITIONS FOR ALL REGISTERS (CONTINUED)

Register  Applicable Devices      Power-on Reset,            MCLR Resets,               Wake-up via WDT
                                  Brown-out Reset             WDT Reset,                    or Interrupt

                                                          RESET Instruction,
                                                             Stack Resets

BRGCON3 2480 2580 4480 4580 00-- -000                     00-- -000                     uu-- -uuu

BRGCON2 2480 2580 4480 4580 0000 0000                     0000 0000                     uuuu uuuu

BRGCON1 2480 2580 4480 4580 0000 0000                     0000 0000                     uuuu uuuu

CANCON    2480 2580 4480 4580 1000 000-                   1000 000-                     uuuu uuu-

CANSTAT   2480 2580 4480 4580 100- 000-                   100- 000-                     uuu- uuu-

RXB0D7    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

RXB0D6    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

RXB0D5    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

RXB0D4    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

RXB0D3    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

RXB0D2    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

RXB0D1    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

RXB0D0    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

RXB0DLC   2480 2580 4480 4580 -xxx xxxx                   -uuu uuuu                     -uuu uuuu

RXB0EIDL 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXB0EIDH 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXB0SIDL 2480 2580 4480 4580 xxxx x-xx                    uuuu u-uu                     uuuu u-uu

RXB0SIDH 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXB0CON 2480 2580 4480 4580 000- 0000                     000- 0000                     uuu- uuuu

RXB1D7    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

RXB1D6    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

RXB1D5    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

RXB1D4    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

RXB1D3    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

RXB1D2    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

RXB1D1    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

RXB1D0    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

RXB1DLC   2480 2580 4480 4580 -xxx xxxx                   -uuu uuuu                     -uuu uuuu

RXB1EIDL 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXB1EIDH 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXB1SIDL 2480 2580 4480 4580 xxxx x-xx                    uuuu u-uu                     uuuu u-uu

Legend: u = unchanged, x = unknown, - = unimplemented bit, read as `0', q = value depends on condition.
              Shaded cells indicate conditions do not apply for the designated device.

Note 1: One or more bits in the INTCONx or PIRx registers will be affected (to cause wake-up).

2: When the wake-up is due to an interrupt and the GIEL or GIEH bit is set, the PC is loaded with the interrupt
      vector (0008h or 0018h).

3: When the wake-up is due to an interrupt and the GIEL or GIEH bit is set, the TOSU, TOSH and TOSL are
      updated with the current value of the PC. The STKPTR is modified to point to the next location in the
      hardware stack.

4: See Table 5-3 for Reset value for specific condition.

5: Bits 6 and 7 of PORTA, LATA and TRISA are enabled, depending on the oscillator mode selected. When
      not enabled as PORTA pins, they are disabled and read `0'.

6: This register reads all `0's until ECANTM technology is set up in Mode 1 or Mode 2.

2009 Microchip Technology Inc.                                                                DS39637D-page 59
PIC18F2480/2580/4480/4580

TABLE 5-4: INITIALIZATION CONDITIONS FOR ALL REGISTERS (CONTINUED)

Register          Applicable Devices  Power-on Reset,        MCLR Resets,               Wake-up via WDT
                                      Brown-out Reset         WDT Reset,                    or Interrupt

                                                          RESET Instruction,
                                                             Stack Resets

RXB1SIDH 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXB1CON 2480 2580 4480 4580 000- 0000                     000- 0000                     uuu- uuuu

TXB0D7    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

TXB0D6    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

TXB0D5    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

TXB0D4    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

TXB0D3    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

TXB0D2    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

TXB0D1    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

TXB0D0    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

TXB0DLC   2480 2580 4480 4580 -x-- xxxx                   -u-- uuuu                     -u-- uuuu

TXB0EIDL  2480 2580 4480 4580         xxxx xxxx           uuuu uuuu                     uuuu uuuu

TXB0EIDH 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     -uuu uuuu

TXB0SIDL  2480 2580 4480 4580         xxx- x-xx           uuu- u-uu                     uuu- u-uu

TXB0SIDH 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

TXB0CON   2480 2580 4480 4580         0000 0-00           0000 0-00                     uuuu u-uu

TXB1D7    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

TXB1D6    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

TXB1D5    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

TXB1D4    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

TXB1D3    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

TXB1D2    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

TXB1D1    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

TXB1D0    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     uuuu uuuu

TXB1DLC   2480 2580 4480 4580 -x-- xxxx                   -u-- uuuu                     -u-- uuuu

TXB1EIDL  2480 2580 4480 4580         xxxx xxxx           uuuu uuuu                     uuuu uuuu

TXB1EIDH 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

TXB1SIDL  2480 2580 4480 4580         xxx- x-xx           uuu- u-uu                     uuu- uu-u

TXB1SIDH 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     -uuu uuuu

TXB1CON   2480 2580 4480 4580         0000 0-00           0000 0-00                     uuuu u-uu

TXB2D7    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     0uuu uuuu

Legend: u = unchanged, x = unknown, - = unimplemented bit, read as `0', q = value depends on condition.
              Shaded cells indicate conditions do not apply for the designated device.

Note 1: One or more bits in the INTCONx or PIRx registers will be affected (to cause wake-up).

2: When the wake-up is due to an interrupt and the GIEL or GIEH bit is set, the PC is loaded with the interrupt
      vector (0008h or 0018h).

3: When the wake-up is due to an interrupt and the GIEL or GIEH bit is set, the TOSU, TOSH and TOSL are
      updated with the current value of the PC. The STKPTR is modified to point to the next location in the
      hardware stack.

4: See Table 5-3 for Reset value for specific condition.

5: Bits 6 and 7 of PORTA, LATA and TRISA are enabled, depending on the oscillator mode selected. When
      not enabled as PORTA pins, they are disabled and read `0'.

6: This register reads all `0's until ECANTM technology is set up in Mode 1 or Mode 2.

DS39637D-page 60                                                      2009 Microchip Technology Inc.
                                  PIC18F2480/2580/4480/4580

TABLE 5-4: INITIALIZATION CONDITIONS FOR ALL REGISTERS (CONTINUED)

Register  Applicable Devices      Power-on Reset,            MCLR Resets,               Wake-up via WDT
                                  Brown-out Reset             WDT Reset,                    or Interrupt

                                                          RESET Instruction,
                                                             Stack Resets

TXB2D6    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     0uuu uuuu

TXB2D5    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     0uuu uuuu

TXB2D4    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     0uuu uuuu

TXB2D3    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     0uuu uuuu

TXB2D2    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     0uuu uuuu

TXB2D1    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     0uuu uuuu

TXB2D0    2480 2580 4480 4580 xxxx xxxx                   uuuu uuuu                     0uuu uuuu

TXB2DLC   2480 2580 4480 4580 -x-- xxxx                   -u-- uuuu                     -u-- uuuu

TXB2EIDL  2480 2580 4480 4580     xxxx xxxx               uuuu uuuu                     uuuu uuuu

TXB2EIDH 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

TXB2SIDL  2480 2580 4480 4580     xxxx x-xx               uuuu u-uu                     -uuu uuuu

TXB2SIDH 2480 2580 4480 4580 xxx- x-xx                    uuu- u-uu                     uuu- u-uu

TXB2CON   2480 2580 4480 4580     0000 0-00               0000 0-00                     uuuu u-uu

RXM1EIDL 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXM1EIDH 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXM1SIDL 2480 2580 4480 4580 xxx- x-xx                    uuu- u-uu                     uuu- u-uu

RXM1SIDH 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXM0EIDL 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXM0EIDH 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXM0SIDL 2480 2580 4480 4580 xxx- x-xx                    uuu- u-uu                     uuu- u-uu

RXM0SIDH 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXF5EIDL 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXF5EIDH 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXF5SIDL 2480 2580 4480 4580 xxx- x-xx                    uuu- u-uu                     uuu- u-uu

RXF5SIDH 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXF4EIDL 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXF4EIDH 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXF4SIDL 2480 2580 4480 4580 xxx- x-xx                    uuu- u-uu                     uuu- u-uu

RXF4SIDH 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXF3EIDL 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXF3EIDH 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

Legend: u = unchanged, x = unknown, - = unimplemented bit, read as `0', q = value depends on condition.
              Shaded cells indicate conditions do not apply for the designated device.

Note 1: One or more bits in the INTCONx or PIRx registers will be affected (to cause wake-up).

2: When the wake-up is due to an interrupt and the GIEL or GIEH bit is set, the PC is loaded with the interrupt
      vector (0008h or 0018h).

3: When the wake-up is due to an interrupt and the GIEL or GIEH bit is set, the TOSU, TOSH and TOSL are
      updated with the current value of the PC. The STKPTR is modified to point to the next location in the
      hardware stack.

4: See Table 5-3 for Reset value for specific condition.

5: Bits 6 and 7 of PORTA, LATA and TRISA are enabled, depending on the oscillator mode selected. When
      not enabled as PORTA pins, they are disabled and read `0'.

6: This register reads all `0's until ECANTM technology is set up in Mode 1 or Mode 2.

2009 Microchip Technology Inc.                                                                DS39637D-page 61
PIC18F2480/2580/4480/4580

TABLE 5-4: INITIALIZATION CONDITIONS FOR ALL REGISTERS (CONTINUED)

Register          Applicable Devices  Power-on Reset,        MCLR Resets,               Wake-up via WDT
                                      Brown-out Reset         WDT Reset,                    or Interrupt

                                                          RESET Instruction,
                                                             Stack Resets

RXF3SIDL 2480 2580 4480 4580 xxx- x-xx                    uuu- u-uu                     uuu- u-uu

RXF3SIDH 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXF2EIDL 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXF2EIDH 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXF2SIDL 2480 2580 4480 4580 xxx- x-xx                    uuu- u-uu                     uuu- u-uu

RXF2SIDH 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXF1EIDL 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXF1EIDH 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXF1SIDL 2480 2580 4480 4580 xxx- x-xx                    uuu- u-uu                     uuu- u-uu

RXF1SIDH 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXF0EIDL 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXF0EIDH 2480 2580 4480 4580 xxxx xxxx                    uuuu uuuu                     uuuu uuuu

RXF0SIDL 2480 2580 4480 4580 xxx- x-xx                    uuu- u-uu                     uuu- u-uu

RXF0SIDH   2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B5D7(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B5D6(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B5D5(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B5D4(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B5D3(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B5D2(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B5D1(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B5D0(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B5DLC(6)   2480 2580 4480 4580        -xxx xxxx           -uuu uuuu                     -uuu uuuu
B5EIDL(6)  2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B5EIDH(6)  2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B5SIDL(6)  2480 2580 4480 4580        xxxx x-xx           uuuu u-uu                     uuuu u-uu
B5SIDH(6)  2480 2580 4480 4580        xxxx x-xx           uuuu u-uu                     uuuu u-uu
B5CON(6)   2480 2580 4480 4580        0000 0000           0000 0000                     uuuu uuuu
B4D7(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B4D6(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B4D5(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu

Legend: u = unchanged, x = unknown, - = unimplemented bit, read as `0', q = value depends on condition.
              Shaded cells indicate conditions do not apply for the designated device.

Note 1: One or more bits in the INTCONx or PIRx registers will be affected (to cause wake-up).

2: When the wake-up is due to an interrupt and the GIEL or GIEH bit is set, the PC is loaded with the interrupt
      vector (0008h or 0018h).

3: When the wake-up is due to an interrupt and the GIEL or GIEH bit is set, the TOSU, TOSH and TOSL are
      updated with the current value of the PC. The STKPTR is modified to point to the next location in the
      hardware stack.

4: See Table 5-3 for Reset value for specific condition.

5: Bits 6 and 7 of PORTA, LATA and TRISA are enabled, depending on the oscillator mode selected. When
      not enabled as PORTA pins, they are disabled and read `0'.

6: This register reads all `0's until ECANTM technology is set up in Mode 1 or Mode 2.

DS39637D-page 62                                                      2009 Microchip Technology Inc.
                                  PIC18F2480/2580/4480/4580

TABLE 5-4: INITIALIZATION CONDITIONS FOR ALL REGISTERS (CONTINUED)

Register   Applicable Devices     Power-on Reset,            MCLR Resets,               Wake-up via WDT
                                  Brown-out Reset             WDT Reset,                    or Interrupt

                                                          RESET Instruction,
                                                             Stack Resets

B4D4(6)    2480 2580 4480 4580    xxxx xxxx               uuuu uuuu                     uuuu uuuu
B4D3(6)    2480 2580 4480 4580    xxxx xxxx               uuuu uuuu                     uuuu uuuu
B4D2(6)    2480 2580 4480 4580    xxxx xxxx               uuuu uuuu                     uuuu uuuu
B4D1(6)    2480 2580 4480 4580    xxxx xxxx               uuuu uuuu                     uuuu uuuu
B4D0(6)    2480 2580 4480 4580    xxxx xxxx               uuuu uuuu                     uuuu uuuu
B4DLC(6)   2480 2580 4480 4580    -xxx xxxx               -uuu uuuu                     -uuu uuuu
B4EIDL(6)  2480 2580 4480 4580    xxxx xxxx               uuuu uuuu                     uuuu uuuu
B4EIDH(6)  2480 2580 4480 4580    xxxx xxxx               uuuu uuuu                     uuuu uuuu
B4SIDL(6)  2480 2580 4480 4580    xxxx x-xx               uuuu u-uu                     uuuu u-uu
B4SIDH(6)  2480 2580 4480 4580    xxxx xxxx               uuuu uuuu                     uuuu uuuu
B4CON(6)   2480 2580 4480 4580    0000 0000               0000 0000                     uuuu uuuu
B3D7(6)    2480 2580 4480 4580    xxxx xxxx               uuuu uuuu                     uuuu uuuu
B3D6(6)    2480 2580 4480 4580    xxxx xxxx               uuuu uuuu                     uuuu uuuu
B3D5(6)    2480 2580 4480 4580    xxxx xxxx               uuuu uuuu                     uuuu uuuu
B3D4(6)    2480 2580 4480 4580    xxxx xxxx               uuuu uuuu                     uuuu uuuu
B3D3(6)    2480 2580 4480 4580    xxxx xxxx               uuuu uuuu                     uuuu uuuu
B3D2(6)    2480 2580 4480 4580    xxxx xxxx               uuuu uuuu                     uuuu uuuu
B3D1(6)    2480 2580 4480 4580    xxxx xxxx               uuuu uuuu                     uuuu uuuu
B3D0(6)    2480 2580 4480 4580    xxxx xxxx               uuuu uuuu                     uuuu uuuu
B3DLC(6)   2480 2580 4480 4580    -xxx xxxx               -uuu uuuu                     -uuu uuuu
B3EIDL(6)  2480 2580 4480 4580    xxxx xxxx               uuuu uuuu                     uuuu uuuu
B3EIDH(6)  2480 2580 4480 4580    xxxx xxxx               uuuu uuuu                     uuuu uuuu
B3SIDL(6)  2480 2580 4480 4580    xxxx x-xx               uuuu u-uu                     uuuu u-uu
B3SIDH(6)  2480 2580 4480 4580    xxxx xxxx               uuuu uuuu                     uuuu uuuu
B3CON(6)   2480 2580 4480 4580    0000 0000               0000 0000                     uuuu uuuu
B2D7(6)    2480 2580 4480 4580    xxxx xxxx               uuuu uuuu                     uuuu uuuu
B2D6(6)    2480 2580 4480 4580    xxxx xxxx               uuuu uuuu                     uuuu uuuu
B2D5(6)    2480 2580 4480 4580    xxxx xxxx               uuuu uuuu                     uuuu uuuu
B2D4(6)    2480 2580 4480 4580    xxxx xxxx               uuuu uuuu                     uuuu uuuu
B2D3(6)    2480 2580 4480 4580    xxxx xxxx               uuuu uuuu                     uuuu uuuu
B2D2(6)    2480 2580 4480 4580    xxxx xxxx               uuuu uuuu                     uuuu uuuu

Legend: u = unchanged, x = unknown, - = unimplemented bit, read as `0', q = value depends on condition.
              Shaded cells indicate conditions do not apply for the designated device.

Note 1: One or more bits in the INTCONx or PIRx registers will be affected (to cause wake-up).

2: When the wake-up is due to an interrupt and the GIEL or GIEH bit is set, the PC is loaded with the interrupt
      vector (0008h or 0018h).

3: When the wake-up is due to an interrupt and the GIEL or GIEH bit is set, the TOSU, TOSH and TOSL are
      updated with the current value of the PC. The STKPTR is modified to point to the next location in the
      hardware stack.

4: See Table 5-3 for Reset value for specific condition.

5: Bits 6 and 7 of PORTA, LATA and TRISA are enabled, depending on the oscillator mode selected. When
      not enabled as PORTA pins, they are disabled and read `0'.

6: This register reads all `0's until ECANTM technology is set up in Mode 1 or Mode 2.

2009 Microchip Technology Inc.                                                                DS39637D-page 63
PIC18F2480/2580/4480/4580

TABLE 5-4: INITIALIZATION CONDITIONS FOR ALL REGISTERS (CONTINUED)

Register          Applicable Devices  Power-on Reset,        MCLR Resets,               Wake-up via WDT
                                      Brown-out Reset         WDT Reset,                    or Interrupt

                                                          RESET Instruction,
                                                             Stack Resets

B2D1(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B2D0(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B2DLC(6)   2480 2580 4480 4580        -xxx xxxx           -uuu uuuu                     -uuu uuuu
B2EIDL(6)  2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B2EIDH(6)  2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B2SIDL(6)  2480 2580 4480 4580        xxxx x-xx           uuuu u-uu                     uuuu u-uu
B2SIDH(6)  2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B2CON(6)   2480 2580 4480 4580        0000 0000           0000 0000                     uuuu uuuu
B1D7(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B1D6(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B1D5(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B1D4(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B1D3(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B1D2(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B1D1(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B1D0(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B1DLC(6)   2480 2580 4480 4580        -xxx xxxx           -uuu uuuu                     -uuu uuuu
B1EIDL(6)  2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B1EIDH(6)  2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B1SIDL(6)  2480 2580 4480 4580        xxxx x-xx           uuuu u-uu                     uuuu u-uu
B1SIDH(6)  2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B1CON(6)   2480 2580 4480 4580        0000 0000           0000 0000                     uuuu uuuu
B0D7(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B0D6(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B0D5(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B0D4(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B0D3(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B0D2(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B0D1(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B0D0(6)    2480 2580 4480 4580        xxxx xxxx           uuuu uuuu                     uuuu uuuu
B0DLC(6)   2480 2580 4480 4580        -xxx xxxx           -uuu uuuu                     -uuu uuuu

Legend: u = unchanged, x = unknown, - = unimplemented bit, read as `0', q = value depends on condition.
              Shaded cells indicate conditions do not apply for the designated device.

Note 1: One or more bits in the INTCONx or PIRx registers will be affected (to cause wake-up).

2: When the wake-up is due to an interrupt and the GIEL or GIEH bit is set, the PC is loaded with the interrupt
      vector (0008h or 0018h).

3: When the wake-up is due to an interrupt and the GIEL or GIEH bit is set, the TOSU, TOSH and TOSL are
      updated with the current value of the PC. The STKPTR is modified to point to the next location in the
      hardware stack.

4: See Table 5-3 for Reset value for specific condition.

5: Bits 6 and 7 of PORTA, LATA and TRISA are enabled, depending on the oscillator mode selected. When
      not enabled as PORTA pins, they are disabled and read `0'.

6: This register reads all `0's until ECANTM technology is set up in Mode 1 or Mode 2.

DS39637D-page 64                                                      2009 Microchip Technology Inc.
                                              PIC18F2480/2580/4480/4580

TABLE 5-4: INITIALIZATION CONDITIONS FOR ALL REGISTERS (CONTINUED)

Register      Applicable Devices              Power-on Reset,     MCLR Resets,          Wake-up via WDT
                                              Brown-out Reset      WDT Reset,               or Interrupt

                                                               RESET Instruction,
                                                                  Stack Resets

B0EIDL(6)     2480  2580          4480  4580  xxxx xxxx        uuuu uuuu                uuuu uuuu
B0EIDH(6)     2480  2580          4480  4580  xxxx xxxx        uuuu uuuu                uuuu uuuu
B0SIDL(6)     2480  2580          4480  4580  xxxx x-xx        uuuu u-uu                uuuu u-uu
B0SIDH(6)     2480  2580          4480  4580  xxxx xxxx        uuuu uuuu                uuuu uuuu
B0CON(6)      2480  2580          4480  4580  0000 0000        0000 0000                uuuu uuuu
TXBIE(6)      2480  2580          4480  4580  ---0 00--        ---u uu--                ---u uu--
BIE0(6)       2480  2580          4480  4580  0000 0000        0000 0000                uuuu uuuu
BSEL0(6)      2480  2580          4480  4580  0000 00--        0000 00--                uuuu uu--
MSEL3(6)      2480  2580          4480  4580  0000 0000        0000 0000                uuuu uuuu
MSEL2(6)      2480  2580          4480  4580  0000 0000        0000 0000                uuuu uuuu
MSEL1(6)      2480  2580          4480  4580  0000 0101        0000 0101                uuuu uuuu
MSEL0(6)      2480  2580          4480  4580  0101 0000        0101 0000                uuuu uuuu
SDFLC(6)      2480  2580          4480  4580  ---0 0000        ---0 0000                -u-- uuuu
RXFCON1(6)    2480  2580          4480  4580  0000 0000        0000 0000                uuuu uuuu
RXFCON0(6)    2480  2580          4480  4580  0000 0000        0000 0000                uuuu uuuu
RXFBCON7(6)   2480  2580          4480  4580  0000 0000        0000 0000                uuuu uuuu
RXFBCON6(6)   2480  2580          4480  4580  0000 0000        0000 0000                uuuu uuuu
RXFBCON5(6)   2480  2580          4480  4580  0000 0000        0000 0000                uuuu uuuu
RXFBCON4(6)   2480  2580          4480  4580  0000 0000        0000 0000                uuuu uuuu
RXFBCON3(6)   2480  2580          4480  4580  0000 0000        0000 0000                uuuu uuuu
RXFBCON2(6)   2480  2580          4480  4580  0001 0001        0001 0001                uuuu uuuu
RXFBCON1(6)   2480  2580          4480  4580  0001 0001        0001 0001                uuuu uuuu
RXFBCON0(6)   2480  2580          4480  4580  0000 0000        0000 0000                uuuu uuuu
RXF15EIDL(6)  2480  2580          4480  4580  xxxx xxxx        uuuu uuuu                uuuu uuuu
RXF15EIDH(6)  2480  2580          4480  4580  xxxx xxxx        uuuu uuuu                uuuu uuuu
RXF15SIDL(6)  2480  2580          4480  4580  xxx- x-xx        uuu- u-uu                uuu- u-uu
RXF15SIDH(6)  2480  2580          4480  4580  xxxx xxxx        uuuu uuuu                uuuu uuuu
RXF14EIDL(6)  2480  2580          4480  4580  xxxx xxxx        uuuu uuuu                uuuu uuuu
RXF14EIDH(6)  2480  2580          4480  4580  xxxx xxxx        uuuu uuuu                uuuu uuuu
RXF14SIDL(6)  2480  2580          4480  4580  xxx- x-xx        uuu- u-uu                uuu- u-uu
RXF14SIDH(6)  2480  2580          4480  4580  xxxx xxxx        uuuu uuuu                uuuu uuuu

Legend: u = unchanged, x = unknown, - = unimplemented bit, read as `0', q = value depends on condition.
              Shaded cells indicate conditions do not apply for the designated device.

Note 1: One or more bits in the INTCONx or PIRx registers will be affected (to cause wake-up).

2: When the wake-up is due to an interrupt and the GIEL or GIEH bit is set, the PC is loaded with the interrupt
      vector (0008h or 0018h).

3: When the wake-up is due to an interrupt and the GIEL or GIEH bit is set, the TOSU, TOSH and TOSL are
      updated with the current value of the PC. The STKPTR is modified to point to the next location in the
      hardware stack.

4: See Table 5-3 for Reset value for specific condition.

5: Bits 6 and 7 of PORTA, LATA and TRISA are enabled, depending on the oscillator mode selected. When
      not enabled as PORTA pins, they are disabled and read `0'.

6: This register reads all `0's until ECANTM technology is set up in Mode 1 or Mode 2.

2009 Microchip Technology Inc.                                                                DS39637D-page 65
PIC18F2480/2580/4480/4580

TABLE 5-4: INITIALIZATION CONDITIONS FOR ALL REGISTERS (CONTINUED)

Register          Applicable Devices  Power-on Reset,     MCLR Resets,     Wake-up via WDT
                                      Brown-out Reset      WDT Reset,          or Interrupt

                                                       RESET Instruction,
                                                          Stack Resets

RXF13EIDL(6)  2480  2580  4480  4580  xxxx xxxx        uuuu uuuu           uuuu uuuu
RXF13EIDH(6)  2480  2580  4480  4580  xxxx xxxx        uuuu uuuu           uuuu uuuu
RXF13SIDL(6)  2480  2580  4480  4580  xxx- x-xx        uuu- u-uu           uuu- u-uu
RXF13SIDH(6)  2480  2580  4480  4580  xxxx xxxx        uuuu uuuu           uuuu uuuu
RXF12EIDL(6)  2480  2580  4480  4580  xxxx xxxx        uuuu uuuu           uuuu uuuu
RXF12EIDH(6)  2480  2580  4480  4580  xxxx xxxx        uuuu uuuu           uuuu uuuu
RXF12SIDL(6)  2480  2580  4480  4580  xxx- x-xx        uuu- u-uu           uuu- u-uu
RXF12SIDH(6)  2480  2580  4480  4580  xxxx xxxx        uuuu uuuu           uuuu uuuu
RXF11EIDL(6)  2480  2580  4480  4580  xxxx xxxx        uuuu uuuu           uuuu uuuu
RXF11EIDH(6)  2480  2580  4480  4580  xxxx xxxx        uuuu uuuu           uuuu uuuu
RXF11SIDL(6)  2480  2580  4480  4580  xxx- x-xx        uuu- u-uu           uuu- u-uu
RXF11SIDH(6)  2480  2580  4480  4580  xxxx xxxx        uuuu uuuu           uuuu uuuu
RXF10EIDL(6)  2480  2580  4480  4580  xxxx xxxx        uuuu uuuu           -uuu uuuu
RXF10EIDH(6)  2480  2580  4480  4580  xxxx xxxx        uuuu uuuu           -uuu uuuu
RXF10SIDL(6)  2480  2580  4480  4580  xxx- x-xx        uuu- u-uu           -uuu uuuu
RXF10SIDH(6)  2480  2580  4480  4580  xxxx xxxx        uuuu uuuu           -uuu uuuu
RXF9EIDL(6)   2480  2580  4480  4580  xxxx xxxx        uuuu uuuu           -uuu uuuu
RXF9EIDH(6)   2480  2580  4480  4580  xxxx xxxx        uuuu uuuu           -uuu uuuu
RXF9SIDL(6)   2480  2580  4480  4580  xxx- x-xx        uuu- u-uu           -uuu uuuu
RXF9SIDH(6)   2480  2580  4480  4580  xxxx xxxx        uuuu uuuu           -uuu uuuu
RXF8EIDL(6)   2480  2580  4480  4580  xxxx xxxx        uuuu uuuu           -uuu uuuu
RXF8EIDH(6)   2480  2580  4480  4580  xxxx xxxx        uuuu uuuu           -uuu uuuu
RXF8SIDL(6)   2480  2580  4480  4580  xxx- x-xx        uuu- u-uu           -uuu uuuu
RXF8SIDH(6)   2480  2580  4480  4580  xxxx xxxx        uuuu uuuu           -uuu uuuu
RXF7EIDL(6)   2480  2580  4480  4580  xxxx xxxx        uuuu uuuu           -uuu uuuu
RXF7EIDH(6)   2480  2580  4480  4580  xxxx xxxx        uuuu uuuu           -uuu uuuu
RXF7SIDL(6)   2480  2580  4480  4580  xxx- x-xx        uuu- u-uu           -uuu uuuu
RXF7SIDH(6)   2480  2580  4480  4580  xxxx xxxx        uuuu uuuu           -uuu uuuu
RXF6EIDL(6)   2480  2580  4480  4580  xxxx xxxx        uuuu uuuu           -uuu uuuu
RXF6EIDH(6)   2480  2580  4480  4580  xxxx xxxx        uuuu uuuu           -uuu uuuu
RXF6SIDL(6)   2480  2580  4480  4580  xxx- x-xx        uuu- u-uu           -uuu uuuu
RXF6SIDH(6)   2480  2580  4480  4580  xxxx xxxx        uuuu uuuu           -uuu uuuu

Legend: u = unchanged, x = unknown, - = unimplemented bit, read as `0', q = value depends on condition.
              Shaded cells indicate conditions do not apply for the designated device.

Note 1:     One or more bits in the INTCONx or PIRx registers will be affected (to cause wake-up).
        2:
            When the wake-up is due to an interrupt and the GIEL or GIEH bit is set, the PC is loaded with the interrupt
        3:  vector (0008h or 0018h).

            When the wake-up is due to an interrupt and the GIEL or GIEH bit is set, the TOSU, TOSH and TOSL are
            updated with the current value of the PC. The STKPTR is modified to point to the next location in the
            hardware stack.

4: See Table 5-3 for Reset value for specific condition.
5: Bits 6 and 7 of PORTA, LATA and TRISA are enabled, depending on the oscillator mode selected. When

      not enabled as PORTA pins, they are disabled and read `0'.
6: This register reads all `0's until ECANTM technology is set up in Mode 1 or Mode 2.

DS39637D-page 66                                                   2009 Microchip Technology Inc.
                                         PIC18F2480/2580/4480/4580

6.0 MEMORY ORGANIZATION                                            6.1 Program Memory Organization

There are three types of memory in PIC18 Enhanced                  PIC18 microcontrollers implement a 21-bit program
microcontroller devices:                                           counter, which is capable of addressing a 2-Mbyte
                                                                   program memory space. Accessing a location between
Program Memory                                                   upper boundary of the physically implemented memory
Data RAM                                                         and the 2-Mbyte address will return all `0's (a NOP
Data EEPROM                                                      instruction).

As Harvard architecture devices, the data and program              The PIC18F2480 and PIC18F4480 each have
memories use separate busses; this allows for con-                 16 Kbytes of Flash memory and can store up to
current access of the two memory spaces. The data                  8,192 single-word instructions. The PIC18F2580 and
EEPROM, for practical purposes, can be regarded as                 PIC18F4580 each have 32 Kbytes of Flash memory
a peripheral device, since it is addressed and accessed            and can store up to 16,384 single-word instructions.
through a set of control registers.
                                                                   PIC18 devices have two interrupt vectors. The Reset
Additional detailed information on the operation of the            vector address is at 0000h and the interrupt vector
Flash program memory is provided in Section 7.0                    addresses are at 0008h and 0018h.
"Flash Program Memory". Data EEPROM is dis-
cussed separately in Section 8.0 "Data EEPROM                      The program memory maps for PIC18FX480 and
Memory".                                                           PIC18FX580 devices are shown in Figure 6-1.

FIGURE 6-1:   PROGRAM MEMORY MAP AND STACK FOR
              PIC18F2480/2580/4480/4580 DEVICES
                                                                                 PIC18FX580
              PIC18FX480

              PC<20:0>                                                           PC<20:0>

CALL,RCALL,RETURN             21                                   CALL,RCALL,RETURN             21

RETFIE,RETLW                                                       RETFIE,RETLW

              Stack Level 1                                                      Stack Level 1

                                                                                     
                                                                                     
                                                                                     

              Stack Level 31                                                     Stack Level 31

              Reset Vector        0000h                                          Reset Vector        0000h

High-Priority Interrupt Vector 0008h                               High-Priority Interrupt Vector 0008h

Low-Priority Interrupt Vector 0018h                                Low-Priority Interrupt Vector 0018h

                    On-Chip
              Program Memory

                                  3FFFh                                                On-Chip
                                  4000h                                          Program Memory

                                                                   User Memory Space                 7FFFh
                                                                                                                                                           User Memory Space80000h

              Read `0'                                                           Read `0'

                                                          1FFFFFh                                    1FFFFFh
                                                          200000h                                    200000h

2009 Microchip Technology Inc.                                                                        DS39637D-page 67
PIC18F2480/2580/4480/4580

6.1.1 PROGRAM COUNTER                                        The stack operates as a 31-word by 21-bit RAM and a
                                                             5-bit Stack Pointer, STKPTR. The stack space is not
The Program Counter (PC) specifies the address of the        part of either program or data space. The Stack Pointer
instruction to fetch for execution. The PC is 21 bits wide   is readable and writable and the address on the top of
and is contained in three separate 8-bit registers. The      the stack is readable and writable through the
low byte, known as the PCL register, is both readable        Top-Of-Stack (TOF) Special File Registers. Data can
and writable. The high byte, or PCH register, contains       also be pushed to, or popped from the stack, using
the PC<15:8> bits; it is not directly readable or writable.  these registers.
Updates to the PCH register are performed through the
PCLATH register. The upper byte is called PCU. This          A CALL type instruction causes a push onto the stack;
register contains the PC<20:16> bits; it is also not         the Stack Pointer is first incremented and the location
directly readable or writable. Updates to the PCU            pointed to by the Stack Pointer is written with the
register are performed through the PCLATU register.          contents of the PC (already pointing to the instruction
                                                             following the CALL). A RETURN type instruction causes
The contents of PCLATH and PCLATU are transferred            a pop from the stack; the contents of the location
to the program counter by any operation that writes          pointed to by the STKPTR are transferred to the PC
PCL. Similarly, the upper two bytes of the program           and then the Stack Pointer is decremented.
counter are transferred to PCLATH and PCLATU by an
operation that reads PCL. This is useful for computed        The Stack Pointer is initialized to `00000' after all
offsets to the PC (see Section 6.1.4.1 "Computed             Resets. There is no RAM associated with the location
GOTO").                                                      corresponding to a Stack Pointer value of `00000'; this
                                                             is only a Reset value. Status bits indicate if the stack is
The PC addresses bytes in the program memory. To             full or has overflowed or has underflowed.
prevent the PC from becoming misaligned with word
instructions, the Least Significant bit of PCL is fixed to   6.1.2.1 Top-of-Stack Access
a value of `0'. The PC increments by 2 to address
sequential instructions in the program memory.               Only the top of the return address stack (TOS) is
                                                             readable and writable. A set of three registers,
The CALL, RCALL and GOTO program branch                      TOSU:TOSH:TOSL, hold the contents of the stack loca-
instructions write to the program counter directly. For      tion pointed to by the STKPTR register (Figure 6-2). This
these instructions, the contents of PCLATH and               allows users to implement a software stack if necessary.
PCLATU are not transferred to the program counter.           After a CALL, RCALL or interrupt, the software can read
                                                             the pushed value by reading the TOSU:TOSH:TOSL
6.1.2 RETURN ADDRESS STACK                                   registers. These values can be placed on a user-defined
                                                             software stack. At return time, the software can return
The return address stack allows any combination of up        these values to TOSU:TOSH:TOSL and do a return.
to 31 program calls and interrupts to occur. The PC is
pushed onto the stack when a CALL or RCALL instruc-          The user must disable the global interrupt enable bits
tion is executed or an interrupt is Acknowledged. The        while accessing the stack to prevent inadvertent stack
PC value is pulled off the stack on a RETURN, RETLW          corruption.
or a RETFIE instruction. PCLATU and PCLATH are not
affected by any of the RETURN or CALL instructions.

FIGURE 6-2:       RETURN ADDRESS STACK AND ASSOCIATED REGISTERS
                                                       Return Address Stack <20:0>

                  Top-of-Stack Registers                              11111  Stack Pointer
                                                                      11110
                                                                      11101  STKPTR<4:0>
                                                                                  00010
TOSU              TOSH  TOSL
00h               1Ah   34h

                                          Top-of-Stack       001A34h  00011
                                                             000D58h  00010
                                                                      00001
                                                                      00000

DS39637D-page 68                                                             2009 Microchip Technology Inc.
                                       PIC18F2480/2580/4480/4580

6.1.2.2 Return Stack Pointer (STKPTR)                       When the stack has been popped enough times to
                                                            unload the stack, the next pop will return a value of zero
The STKPTR register (Register 6-1) contains the Stack       to the PC and sets the STKUNF bit, while the Stack
Pointer value, the STKFUL (Stack Full) status bit and       Pointer remains at zero. The STKUNF bit will remain
the STKUNF (Stack Underflow) status bits. The value         set until cleared by software or until a POR occurs.
of the Stack Pointer can be 0 through 31. The Stack
Pointer increments before values are pushed onto the        Note:  Returning a value of zero to the PC on an
stack and decrements after values are popped off the               underflow has the effect of vectoring the
stack. On Reset, the Stack Pointer value will be zero.             program to the Reset vector, where the
The user may read and write the Stack Pointer value.               stack conditions can be verified and
This feature can be used by a Real-Time Operating                  appropriate actions can be taken. This is
System for return stack maintenance.                               not the same as a Reset, as the contents
                                                                   of the SFRs are not affected.
After the PC is pushed onto the stack 31 times (without
popping any values off the stack), the STKFUL bit is        6.1.2.3 PUSH and POP Instructions
set. The STKFUL bit is cleared by software or by a
POR.                                                        Since the Top-of-Stack is readable and writable, the
                                                            ability to push values onto the stack and pull values off
The action that takes place when the stack becomes          the stack without disturbing normal program execution
full depends on the state of the STVREN (Stack Over-        is a desirable feature. The PIC18 instruction set
flow Reset Enable) Configuration bit. (Refer to             includes two instructions, PUSH and POP, that permit
Section 25.1 "Configuration Bits" for a description of      the TOS to be manipulated under software control.
the device Configuration bits.) If STVREN is set            TOSU, TOSH and TOSL can be modified to place data
(default), the 31st push will push the (PC + 2) value       or a return address on the stack.
onto the stack, set the STKFUL bit and reset the
device. The STKFUL bit will remain set and the Stack        The PUSH instruction places the current PC value onto
Pointer will be set to zero.                                the stack. This increments the Stack Pointer and loads
                                                            the current PC value onto the stack.
If STVREN is cleared, the STKFUL bit will be set on the
31st push and the Stack Pointer will increment to 31.       The POP instruction discards the current TOS by decre-
Any additional pushes will not overwrite the 31st push      menting the Stack Pointer. The previous value pushed
and STKPTR will remain at 31.                               onto the stack then becomes the TOS value.

REGISTER 6-1: STKPTR: STACK POINTER REGISTER

R/C-0              R/C-0          U-0                R/W-0  R/W-0                 R/W-0  R/W-0  R/W-0
                                                      SP4    SP3                   SP2    SP1    SP0
STKFUL(1) STKUNF(1)               --
                                                                                                       bit 0
bit 7

Legend:                           C = Clearable bit         U = Unimplemented bit, read as `0'
R = Readable bit                  W = Writable bit
-n = Value at POR                 `1' = Bit is set          `0' = Bit is cleared         x = Bit is unknown

bit 7    STKFUL: Stack Full Flag bit(1)

bit 6    1 = Stack became full or overflowed
         0 = Stack has not become full or overflowed
bit 5    STKUNF: Stack Underflow Flag bit(1)
bit 4-0
         1 = Stack underflow occurred
         0 = Stack underflow did not occur

         Unimplemented: Read as `0'

         SP<4:0>: Stack Pointer Location bits

Note 1: Bit 7 and bit 6 are cleared by user software or by a POR.

2009 Microchip Technology Inc.                                                                DS39637D-page 69
PIC18F2480/2580/4480/4580

6.1.2.4 Stack Full and Underflow Resets                        6.1.4  LOOK-UP TABLES IN PROGRAM
                                                                      MEMORY
Device Resets on stack overflow and stack underflow
conditions are enabled by setting the STVREN bit in            There may be programming situations that require the
Configuration Register 4L. When STVREN is set, a full          creation of data structures, or look-up tables, in
or underflow will set the appropriate STKFUL or                program memory. For PIC18 devices, look-up tables
STKUNF bit and then cause a device Reset. When                 can be implemented in two ways:
STVREN is cleared, a full or underflow condition will set
the appropriate STKFUL or STKUNF bit but not cause             Computed GOTO
a device Reset. The STKFUL or STKUNF bits are                   Table Reads
cleared by the user software or a Power-on Reset.
                                                               6.1.4.1 Computed GOTO
6.1.3 FAST REGISTER STACK
                                                               A computed GOTO is accomplished by adding an offset
A Fast Register Stack is provided for the STATUS,              to the program counter. An example is shown in
WREG and BSR registers, to provide a "fast return"             Example 6-2.
option for interrupts. Each stack is only one level deep
and is neither readable nor writable. It is loaded with the    A look-up table can be formed with an ADDWF PCL
current value of the corresponding register when the           instruction and a group of RETLW nn instructions. The
processor vectors for an interrupt. All interrupt sources      W register is loaded with an offset into the table before
will push values into the stack registers. The values in       executing a call to that table. The first instruction of the
the registers are then loaded back into their associated       called routine is the ADDWF PCL instruction. The next
registers, if the RETFIE, FAST instruction is used to          instruction executed will be one of the RETLW nn
return from the interrupt.                                     instructions, that returns the value `nn' to the calling
                                                               function.
If both low and high-priority interrupts are enabled, the
stack registers cannot be used reliably to return from         The offset value (in WREG) specifies the number of
low-priority interrupts. If a high-priority interrupt occurs   bytes that the program counter should advance and
while servicing a low-priority interrupt, the stack            should be multiples of 2 (LSb = 0).
register values stored by the low-priority interrupt will
be overwritten. In these cases, users must save the key        In this method, only one data byte may be stored in
registers in software during a low-priority interrupt.         each instruction location and room on the return
                                                               address stack is required.
If interrupt priority is not used, all interrupts may use the
Fast Register Stack for returns from interrupt. If no          EXAMPLE 6-2:     COMPUTED GOTO USING
interrupts are used, the Fast Register Stack can be                             AN OFFSET VALUE
used to restore the STATUS, WREG and BSR registers
at the end of a subroutine call. To use the Fast Register      ORG    MOVF      OFFSET, W
Stack for a subroutine call, a CALL label, FAST                TABLE  CALL      TABLE
instruction must be executed to save the STATUS,                      nn00h
WREG and BSR registers to the Fast Register Stack. A                  ADDWF     PCL
RETURN, FAST instruction is then executed to restore                  RETLW     nnh
these registers from the Fast Register Stack.                         RETLW     nnh
                                                                      RETLW     nnh
Example 6-1 shows a source code example that uses                     .
the Fast Register Stack during a subroutine call and                  .
return.                                                               .

EXAMPLE 6-1:            FAST REGISTER STACK                    6.1.4.2 Table Reads and Table Writes
                        CODE EXAMPLE
CALL SUB1, FAST                                               A better method of storing data in program memory
                             ;STATUS, WREG, BSR                allows two bytes of data to be stored in each instruction
                            ;SAVED IN FAST REGISTER           location.
                            ;STACK
                                                               Look-up table data may be stored two bytes per
SUB1                   ;RESTORE VALUES SAVED                  program word by using table reads and writes. The
                       ;IN FAST REGISTER STACK                Table Pointer (TBLPTR) register specifies the byte
                                                               address and the Table Latch (TABLAT) register con-
          RETURN, FAST                                         tains the data that is read from or written to program
                                                               memory. Data is transferred to or from program
                                                               memory one byte at a time.

                                                               Table read and table write operations are discussed
                                                               further in Section 7.1 "Table Reads and Table Writes".

DS39637D-page 70                                                                2009 Microchip Technology Inc.
                                                 PIC18F2480/2580/4480/4580

6.2 PIC18 Instruction Cycle                               6.2.2 INSTRUCTION FLOW/PIPELINING

6.2.1 CLOCKING SCHEME                                     An "Instruction Cycle" consists of four Q cycles: Q1
                                                          through Q4. The instruction fetch and execute are
The microcontroller clock input, whether from an inter-   pipelined in such a manner that a fetch takes one
nal or external source, is internally divided by four to  instruction cycle, while the decode and execute take
generate four non-overlapping quadrature clocks (Q1,      another instruction cycle. However, due to the
Q2, Q3 and Q4). Internally, the Program Counter (PC)      pipelining, each instruction effectively executes in one
is incremented on every Q1; the instruction is fetched    cycle. If an instruction causes the program counter to
from the program memory and latched into the Instruc-     change (e.g., GOTO), then two cycles are required to
tion Register (IR) during Q4. The instruction is decoded  complete the instruction (Example 6-3).
and executed during the following Q1 through Q4. The
clocks and instruction execution flow are shown in        A fetch cycle begins with the program counter
Figure 6-3.                                               incrementing in Q1.

                                                          In the execution cycle, the fetched instruction is latched
                                                          into the Instruction Register (IR) in cycle Q1. This
                                                          instruction is then decoded and executed during the
                                                          Q2, Q3 and Q4 cycles. Data memory is read during Q2
                                                          (operand read) and written during Q4 (destination
                                                          write).

FIGURE 6-3:               CLOCK/INSTRUCTION CYCLE                              Q1 Q2 Q3 Q4

                  OSC1    Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4                                             PC + 4
                      Q1                                                           Execute INST (PC + 2)
                      Q2                                                                                  Internal
                      Q3                                                             Fetch INST (PC + 4)  Phase
                      Q4                                                                                  Clock
                      PC
                                       PC                         PC + 2
         OSC2/CLKO
            (RC mode)     Execute INST (PC 2)           Execute INST (PC)
                              Fetch INST (PC)             Fetch INST (PC + 2)

EXAMPLE 6-3: INSTRUCTION PIPELINE FLOW

                                  TCY0           TCY1        TCY2              TCY3  TCY4                 TCY5

1. MOVLW 55h                      Fetch 1 Execute 1       Execute 2
                                                           Fetch 3
2. MOVWF PORTB                                   Fetch 2

3. BRA SUB_1                                                                   Execute 3
                                                                                Fetch 4 Flush (NOP)
4. BSF PORTA, BIT3 (Forced NOP)                                                                Fetch SUB_1 Execute SUB_1

5. Instruction @ address SUB_1

Note:  All instructions are single cycle, except for any program branches. These take two cycles since the
       fetch instruction is "flushed" from the pipeline while the new instruction is being fetched and then
       executed.

2009 Microchip Technology Inc.                                                           DS39637D-page 71
PIC18F2480/2580/4480/4580

6.2.3  INSTRUCTIONS IN PROGRAM                               The CALL and GOTO instructions have the absolute pro-
       MEMORY                                                gram memory address embedded into the instruction.
                                                             Since instructions are always stored on word bound-
The program memory is addressed in bytes. Instruc-           aries, the data contained in the instruction is a word
tions are stored as two bytes or four bytes in program       address. The word address is written to PC<20:1>,
memory. The Least Significant Byte of an instruction         which accesses the desired byte address in program
word is always stored in a program memory location           memory. Instruction #2 in Figure 6-4 shows how the
with an even address (LSB = 0). To maintain alignment        instruction, GOTO 0006h, is encoded in the program
with instruction boundaries, the PC increments in steps      memory. Program branch instructions, which encode a
of 2 and the LSB will always read `0' (see Section 6.1.1     relative address offset, operate in the same manner. The
"Program Counter").                                          offset value stored in a branch instruction represents the
                                                             number of single-word instructions that the PC will be
Figure 6-4 shows an example of how instruction words         offset by. Section 26.0 "Instruction Set Summary"
are stored in the program memory.                            provides further details of the instruction set.

FIGURE 6-4:       INSTRUCTIONS IN PROGRAM MEMORY

                     Program Memory                          LSB = 1  LSB = 0  Word Address
                                                                                       
                     Byte Locations                                     55h
                                                                        03h       000000h
             Instruction 1: MOVLW  055h                      0Fh        00h       000002h
                                                                        23h       000004h
             Instruction 2: GOTO   0006h                     EFh        56h       000006h
                                                                                  000008h
                                                             F0h                  00000Ah
                                                                                  00000Ch
             Instruction 3: MOVFF  123h, 456h                C1h                  00000Eh
                                                                                  000010h
                                                             F4h                  000012h
                                                                                  000014h

6.2.4 TWO-WORD INSTRUCTIONS                                  the instruction sequence. If the first word is skipped for
                                                             some reason and the second word is executed by itself,
The standard PIC18 instruction set has four, two-word        a NOP is executed instead. This is necessary for cases
instructions: CALL, MOVFF, GOTO and LSFR. In all             when the two-word instruction is preceded by a condi-
cases, the second word of the instructions always has        tional instruction that changes the PC. Example 6-4
`1111' as its four Most Significant bits; the other 12 bits  shows how this works.
are literal data, usually a data memory address.
                                                             Note:    See Section 6.5 "Program Memory and
The use of `1111' in the 4 MSbs of an instruction spec-               the Extended Instruction Set" for infor-
ifies a special form of NOP. If the instruction is executed           mation on two-word instructions in the
in proper sequence immediately after the first word                extended instruction set.
the data in the second word is accessed and used by

EXAMPLE 6-4: TWO-WORD INSTRUCTIONS

CASE 1:              Source Code
Object Code

0110 0110 0000 0000  TSTFSZ        REG1                      ; is RAM location 0?
1100 0001 0010 0011  MOVFF         REG1, REG2                ; No, skip this word
1111 0100 0101 0110                                          ; Execute this word as a NOP
0010 0100 0000 0000  ADDWF         REG3                      ; continue code
CASE 2:
Object Code          Source Code

0110 0110 0000 0000 TSTFSZ         REG1                      ; is RAM location 0?
1100 0001 0010 0011 MOVFF
                                   REG1, REG2 ; Yes, execute this word

1111 0100 0101 0110                                          ; 2nd word of instruction

0010 0100 0000 0000 ADDWF          REG3                      ; continue code

DS39637D-page 72                                                                2009 Microchip Technology Inc.
                                  PIC18F2480/2580/4480/4580

6.3 Data Memory Organization                             6.3.1 BANK SELECT REGISTER (BSR)

Note:  The operation of some aspects of data             Large areas of data memory require an efficient
       memory are changed when the PIC18                 addressing scheme to make rapid access to any
       extended instruction set is enabled. See          address possible. Ideally, this means that an entire
       Section 6.6 "Data Memory and the                  address does not need to be provided for each read or
       Extended Instruction Set" for more                write operation. For PIC18 devices, this is accom-
       information.                                      plished with a RAM banking scheme. This divides the
                                                         memory space into 16 contiguous banks of 256 bytes.
The data memory in PIC18 devices is implemented as       Depending on the instruction, each location can be
static RAM. Each register in the data memory has a       addressed directly by its full 12-bit address, or an 8-bit
12-bit address, allowing up to 4096 bytes of data        low-order address and a 4-bit Bank Pointer.
memory. The memory space is divided into as many as
16 banks that contain 256 bytes each;                    Most instructions in the PIC18 instruction set make use
PIC18F2480/2580/4480/4580 devices implement all          of the Bank Pointer, known as the Bank Select Register
16 banks. Figure 6-6 shows the data memory               (BSR). This SFR holds the 4 Most Significant bits of a
organization for the PIC18F2480/2580/4480/4580           location's address; the instruction itself includes the
devices.                                                 8 Least Significant bits. Only the four lower bits of the
                                                         BSR are implemented (BSR<3:0>). The upper four bits
The data memory contains Special Function Registers      are unused; they will always read `0' and cannot be
(SFRs) and General Purpose Registers (GPRs). The         written to. The BSR can be loaded directly by using the
SFRs are used for control and status of the controller   MOVLB instruction.
and peripheral functions, while GPRs are used for data
storage and scratchpad operations in the user's appli-   The value of the BSR indicates the bank in data mem-
cation. Any read of an unimplemented location will read  ory; the 8 bits in the instruction show the location in the
as `0's.                                                 bank and can be thought of as an offset from the bank's
                                                         lower boundary. The relationship between the BSR's
The instruction set and architecture allow operations    value and the bank division in data memory is shown in
across all banks. The entire data memory may be          Figure 6-7.
accessed by Direct, Indirect or Indexed Addressing
modes. Addressing modes are discussed later in this      Since up to 16 registers may share the same low-order
subsection.                                              address, the user must always be careful to ensure that
                                                         the proper bank is selected before performing a data
To ensure that commonly used registers (SFRs and         read or write. For example, writing what should be
select GPRs) can be accessed in a single cycle, PIC18    program data to an 8-bit address of F9h, while the BSR
devices implement an Access Bank. This is a 256-byte     is 0Fh will end up resetting the Program Counter.
memory space that provides fast access to SFRs and
the lower portion of GPR Bank 0 without using the        While any bank can be selected, only those banks that
BSR. Section 6.3.2 "Access Bank" provides a              are actually implemented can be read or written to.
detailed description of the Access RAM.                  Writes to unimplemented banks are ignored, while
                                                         reads from unimplemented banks will return `0's. Even
                                                         so, the STATUS register will still be affected as if the
                                                         operation was successful. The data memory map in
                                                         Figure 6-6 indicates which banks are implemented.

                                                         In the core PIC18 instruction set, only the MOVFF
                                                         instruction fully specifies the 12-bit address of the
                                                         source and target registers. This instruction ignores the
                                                         BSR completely when it executes. All other instructions
                                                         include only the low-order address as an operand and
                                                         must use either the BSR or the Access Bank to locate
                                                         their target registers.

2009 Microchip Technology Inc.                         DS39637D-page 73
PIC18F2480/2580/4480/4580

FIGURE 6-5:          DATA MEMORY MAP FOR PIC18F2480/4480 DEVICES

      BSR<3:0>                         Data Memory Map        When a = 0:
            = 0000                                                  The BSR is ignored and the
            = 0001                00h  Access RAM       000h        Access Bank is used.
            = 0010   Bank 0                 GPR         05Fh
            = 0011                          GPR         060h        The first 128 bytes are
            = 0100                FFh                   0FFh        general purpose RAM
            = 0101                00h       GPR         100h        (from Bank 0).
            = 0110
            = 0111   Bank 1                             1FFh        The second 128 bytes are
            = 1000                FFh                   200h        Special Function Registers
            = 1001                00h                               (from Bank 15).
            = 1010                                      2FFh
            = 1011   Bank 2                             300h  When a = 1:
            = 1100                                                  The BSR specifies the Bank
            = 1101                FFh                               used by the instruction.
            = 1110                00h
             = 1111  Bank 3

                                  FFh                   3FFh
                                  00h                   400h
                     Bank 4

                                  FFh                   4FFh
                                  00h                   500h
                     Bank 5

                                  FFh                   5FFh
                                  00h                   600h
                     Bank 6

                             FFh                        6FFh      Access Bank
                             00h                        700h
                     Bank 7                                                                 00h
                     Bank 8  FFh Unimplemented          7FFh      Access RAM Low
                             00h Read as `0'            800h
                                                                                            5Fh
                                                                  Access RAM High 60h

                                                                  (SFRs)       FFh

                                  FFh                   8FFh
                                  00h                   900h
                     Bank 9

                                  FFh                   9FFh
                                  00h                   A00h
                     Bank 10

                                  FFh                   AFFh
                                  00h                   B00h
                     Bank 11

                                  FFh                   BFFh
                     Bank 12 00h                        C00h

                                  FFh  CAN SFRs         CFFh
                     Bank 13 00h       CAN SFRs         D00h

                                  FFh                   DFFh
                                  00h                   E00h
                     Bank 14

                                  FFh  CAN SFRs         EFFh
                                  00h      SFR          F00h
                     Bank 15
                                                        F5Fh
                                  FFh
                                                        F60h
                                                        FFFh

DS39637D-page 74                                                   2009 Microchip Technology Inc.
                                       PIC18F2480/2580/4480/4580

FIGURE 6-6:          DATA MEMORY MAP FOR PIC18F2580/4580 DEVICES

      BSR<3:0>                         Data Memory Map        When a = 0:
            = 0000                                                  The BSR is ignored and the
            = 0001                00h  Access RAM       000h        Access Bank is used.
            = 0010   Bank 0                 GPR         05Fh
            = 0011                          GPR         060h        The first 128 bytes are
            = 0100                FFh       GPR         0FFh        general purpose RAM
            = 0101                00h       GPR         100h        (from Bank 0).
            = 0110   Bank 1                 GPR
            = 0111                FFh       GPR         1FFh        The second 128 bytes are
            = 1000                00h                   200h        Special Function Registers
            = 1001   Bank 2                                         (from Bank 15).
            = 1010                                      2FFh
            = 1011                FFh                   300h  When a = 1:
            = 1100                00h                               The BSR specifies the Bank
            = 1101   Bank 3                             3FFh        used by the instruction.
            = 1110                                      400h
             = 1111               FFh
                                  00h                   4FFh
                     Bank 4                             500h

                                  FFh                   5FFh
                                  00h                   600h
                     Bank 5

                                  FFh
                                  00h
                     Bank 6

                                  FFh                   6FFh      Access Bank
                                                        700h
                                  00h                                                       00h
                     Bank 7                                       Access RAM Low

                                  FFh                   7FFh                                5Fh
                                  00h                   800h      Access RAM High 60h
                     Bank 8
                                                                  (SFRs)       FFh

                                  FFh  Unimplemented    8FFh
                                  00h     Read as `0'   900h
                     Bank 9
                                                        9FFh
                                  FFh                   A00h
                                  00h
                     Bank 10

                                  FFh                   AFFh
                                  00h                   B00h
                     Bank 11

                                  FFh                   BFFh
                     Bank 12 00h                        C00h

                                  FFh  CAN SFRs         CFFh
                     Bank 13 00h       CAN SFRs         D00h

                                  FFh                   DFFh
                                  00h                   E00h
                     Bank 14

                                  FFh  CAN SFRs         EFFh
                                  00h      SFR          F00h
                     Bank 15
                                                        F5Fh
                                  FFh
                                                        F60h
                                                        FFFh

2009 Microchip Technology Inc.                                  DS39637D-page 75
PIC18F2480/2580/4480/4580

FIGURE 6-7:       USE OF THE BANK SELECT REGISTER (DIRECT ADDRESSING)

                  BSR(1)           Data Memory                                       From Opcode(2)

7                         0  000h                                            00h  7                  0

0 0 00001 1                                                  Bank 0          FFh  1 1111 111
                                                                             00h
                             100h

                                                             Bank 1

Bank Select(2)               200h                                            FFh
                                                                             00h

                                                             Bank 2          FFh

                             300h

                                                                             00h

                                                             Bank 3
                                                             through
                                                             Bank 13

                             E00h                                            FFh

                                                                             00h

                                                             Bank 14         FFh
                                                                             00h
                             F00h

                                                             Bank 15

                             FFFh                                            FFh

Note 1:      The Access RAM bit of the instruction can be used to force an override of the selected bank (BSR<3:0>) to
         2:  the registers of the Access Bank.

             The MOVFF instruction embeds the entire 12-bit address in the instruction.

6.3.2 ACCESS BANK                                                     however, the instruction is forced to use the Access
                                                                      Bank address map; the current value of the BSR is
While the use of the BSR with an embedded 8-bit                       ignored entirely.
address allows users to address the entire range of
data memory, it also means that the user must always                  Using this "forced" addressing allows the instruction to
ensure that the correct bank is selected. Otherwise,                  operate on a data address in a single cycle, without
data may be read from or written to the wrong location.               updating the BSR first. For 8-bit addresses of 80h and
This can be disastrous if a GPR is the intended target                above, this means that users can evaluate and operate
of an operation, but an SFR is written to instead.                    on SFRs more efficiently. The Access RAM below 80h
Verifying and/or changing the BSR for each read or                    is a good place for data values that the user might need
write to data memory can become very inefficient.                     to access rapidly, such as immediate computational
                                                                      results or common program variables. Access RAM
To streamline access for the most commonly used data                  also allows for faster and more code efficient context
memory locations, the data memory is configured with                  saving and switching of variables.
an Access Bank, which allows users to access a
mapped block of memory without specifying a BSR.                      The mapping of the Access Bank is slightly different
The Access Bank consists of the first 128 bytes of                    when the extended instruction set is enabled (XINST
memory (00h-7Fh) in Bank 0 and the last 128 bytes of                  Configuration bit = 1). This is discussed in more detail
memory (80h-FFh) in Block 15. The lower half is known                 in Section 6.6.3 "Mapping the Access Bank in
as the "Access RAM" and is composed of GPRs. The                      Indexed Literal Offset Mode".
upper half is where the device's SFRs are mapped.
These two areas are mapped contiguously in the                        6.3.3       GENERAL PURPOSE
Access Bank and can be addressed in a linear fashion                              REGISTER FILE
by an 8-bit address (Figure 6-6).
                                                                      PIC18 devices may have banked memory in the GPR
The Access Bank is used by core PIC18 instructions                    area. This is data RAM, which is available for use by all
that include the Access RAM bit (the `a' parameter in                 instructions. GPRs start at the bottom of Bank 0
the instruction). When `a' is equal to `1', the instruction           (address 000h) and grow upwards towards the bottom
uses the BSR and the 8-bit address included in the                    of the SFR area. GPRs are not initialized by a
opcode for the data memory address. When `a' is `0'                   Power-on Reset and are unchanged on all other
                                                                      Resets.

DS39637D-page 76                                                                      2009 Microchip Technology Inc.
                                              PIC18F2480/2580/4480/4580

6.3.4 SPECIAL FUNCTION REGISTERS                           peripheral functions. The reset and interrupt registers
                                                           are described in their respective chapters, while the
The Special Function Registers (SFRs) are registers        ALU's STATUS register is described later in this
used by the CPU and peripheral modules for controlling     section. Registers related to the operation of a
the desired operation of the device. These registers are   peripheral feature are described in the chapter for that
implemented as static RAM. SFRs start at the top of        peripheral.
data memory (FFFh) and extend downward to occupy
the top half of Bank 15 (F80h to FFFh). A list of these    The SFRs are typically distributed among the
registers is given in Table 6-1 and Table 6-2.             peripherals whose functions they control. Unused SFR
                                                           locations are unimplemented and read as `0's.
The SFRs can be classified into two sets: those
associated with the "core" device functionality (ALU,
Resets and interrupts) and those related to the

TABLE 6-1: SPECIAL FUNCTION REGISTER MAP FOR
                     PIC18F2480/2580/4480/4580 DEVICES

Address           Name            Address          Name    Address          Name    Address         Name
                                                 INDF2(3)
      FFFh        TOSU                  FDFh  POSTINC2(3)        FBFh    ECCPR1H          F9Fh       IPR1
      FFEh        TOSH                 FDEh   POSTDEC2(3)        FBEh    ECCPR1L          F9Eh       PIR1
      FFDh        TOSL                 FDDh    PREINC2(3)        FBDh    CCP1CON          F9Dh       PIE1
      FFCh      STKPTR                 FDCh    PLUSW2(3)         FBCh    CCPR2H(1)        F9Ch
      FFBh      PCLATU                 FDBh       FSR2H          FBBh    CCPR2L(1)        F9Bh        --
      FFAh      PCLATH                 FDAh       FSR2L          FBAh  ECCP1CON(1)        F9Ah   OSCTUNE
       FF9h        PCL                  FD9h     STATUS          FB9h                      F99h
       FF8h    TBLPTRU                  FD8h      TMR0H          FB8h          --          F98h       --
       FF7h    TBLPTRH                  FD7h      TMR0L          FB7h    BAUDCON           F97h       --
       FF6h     TBLPTRL                 FD6h      T0CON          FB6h   ECCP1DEL           F96h       --
       FF5h      TABLAT                 FD5h                     FB5h   ECCP1AS(1)         F95h       --
       FF4h      PRODH                  FD4h          --         FB4h   CVRCON(1)          F94h   TRISE(1)
       FF3h      PRODL                  FD3h     OSCCON          FB3h                      F93h   TRISD(1)
       FF2h     INTCON                  FD2h    HLVDCON          FB2h      CMCON           F92h    TRISC
       FF1h     INTCON2                 FD1h    WDTCON           FB1h      TMR3H           F91h    TRISB
       FF0h     INTCON3                 FD0h                     FB0h       TMR3L          F90h    TRISA
      FEFh      INDF0(3)                FCFh       RCON          FAFh      T3CON          F8Fh        --
      FEEh   POSTINC0(3)               FCEh       TMR1H          FAEh     SPBRGH          F8Eh        --
      FEDh   POSTDEC0(3)               FCDh       TMR1L          FADh      SPBRG          F8Dh        --
      FECh    PREINC0(3)               FCCh       T1CON          FACh      RCREG          F8Ch        --
      FEBh    PLUSW0(3)                FCBh        TMR2          FABh      TXREG          F8Bh     LATE(1)
      FEAh       FSR0H                 FCAh                      FAAh       TXSTA         F8Ah     LATD(1)
      FE9h       FSR0L                  FC9h        PR2          FA9h      RCSTA           F89h     LATC
      FE8h       WREG                   FC8h      T2CON          FA8h                      F88h     LATB
      FE7h      INDF1(3)                FC7h     SSPBUF          FA7h          --          F87h     LATA
      FE6h   POSTINC1(3)                FC6h     SSPADD          FA6h      EEADR           F86h       --
      FE5h   POSTDEC1(3)                FC5h    SSPSTAT          FA5h      EEDATA          F85h       --
      FE4h    PREINC1(3)                FC4h    SSPCON1          FA4h    EECON2(3)         F84h       --
      FE3h    PLUSW1(3)                 FC3h    SSPCON2          FA3h     EECON1           F83h       --
      FE2h       FSR1H                  FC2h     ADRESH          FA2h                      F82h    PORTE
      FE1h       FSR1L                  FC1h     ADRESL          FA1h        IPR3          F81h  PORTD(1)
      FE0h         BSR                  FC0h     ADCON0          FA0h        PIR3          F80h    PORTC
                                                 ADCON1                      PIE3                  PORTB
                                                 ADCON2                      IPR2                  PORTA
                                                                             PIR2
                                                                             PIE2

Note 1:      Registers available only on PIC18F4X80 devices; otherwise, the registers read as `0'.
         2:  When any TX_ENn bit in RX_TX_SELn is set, then the corresponding bit in this register has transmit properties.
         3:  This is not a physical register.

2009 Microchip Technology Inc.                                                    DS39637D-page 77
PIC18F2480/2580/4480/4580

TABLE 6-1: SPECIAL FUNCTION REGISTER MAP FOR
                     PIC18F2480/2580/4480/4580 DEVICES (CONTINUED)

Address           Name  Address  Name     Address  Name             Address  Name

F7Fh               --   F5Fh CANCON_RO0   F3Fh CANCON_RO2           F1Fh     RXM1EIDL
F7Eh               --                                               F1Eh     RXM1EIDH
F7Dh               --   F5Eh CANSTAT_RO0  F3Eh CANSTAT_RO2          F1Dh     RXM1SIDL
F7Ch               --                                               F1Ch     RXM1SIDH
F7Bh               --   F5Dh     RXB1D7   F3Dh     TXB1D7           F1Bh     RXM0EIDL
F7Ah               --                                               F1Ah     RXM0EIDH
F79h               --   F5Ch     RXB1D6   F3Ch     TXB1D6           F19h     RXM0SIDL
F78h               --                                               F18h     RXM0SIDH
F77h         ECANCON    F5Bh     RXB1D5   F3Bh     TXB1D5           F17h     RXF5EIDL
F76h         TXERRCNT                                               F16h     RXF5EIDH
F75h         RXERRCNT   F5Ah     RXB1D4   F3Ah     TXB1D4           F15h     RXF5SIDL
F74h          COMSTAT                                               F14h     RXF5SIDH
F73h           CIOCON   F59h     RXB1D3   F39h     TXB1D3           F13h     RXF4EIDL
F72h         BRGCON3                                                F12h     RXF4EIDH
F71h         BRGCON2    F58h     RXB1D2   F38h     TXB1D2           F11h     RXF4SIDL
F70h         BRGCON1                                                F10h     RXF4SIDH
F6Fh          CANCON    F57h     RXB1D1   F37h     TXB1D1           F0Fh     RXF3EIDL
F6Eh          CANSTAT                                               F0Eh     RXF3EIDH
F6Dh           RXB0D7   F56h     RXB1D0   F36h     TXB1D0           F0Dh     RXF3SIDL
F6Ch           RXB0D6                                               F0Ch     RXF3SIDH
F6Bh           RXB0D5   F55h RXB1DLC      F35h TXB1DLC              F0Bh     RXF2EIDL
F6Ah           RXB0D4                                               F0Ah     RXF2EIDH
F69h           RXB0D3   F54h RXB1EIDL     F34h TXB1EIDL             F09h     RXF2SIDL
F68h           RXB0D2                                               F08h     RXF2SIDH
F67h           RXB0D1   F53h RXB1EIDH     F33h TXB1EIDH             F07h     RXF1EIDL
F66h           RXB0D0                                               F06h     RXF1EIDH
F65h          RXB0DLC   F52h RXB1SIDL     F32h TXB1SIDL             F05h     RXF1SIDL
F64h          RXB0EIDL                                              F04h     RXF1SIDH
F63h         RXB0EIDH   F51h RXB1SIDH     F31h TXB1SIDH             F03h     RXF0EIDL
F62h          RXB0SIDL                                              F02h     RXF0EIDH
F61h         RXB0SIDH   F50h RXB1CON      F30h TXB1CON              F01h     RXF0SIDL
F60h          RXB0CON                                               F00h     RXF0SIDH
                        F4Fh CANCON_RO1   F2Fh CANCON_RO3

                        F4Eh CANSTAT_RO1  F2Eh CANSTAT_RO3

                        F4DH     TXB0D7   F2Dh     TXB2D7

                        F4Ch     TXB0D6   F2Ch     TXB2D6

                        F4Bh     TXB0D5   F2Bh     TXB2D5

                        F4Ah     TXB0D4   F2Ah     TXB2D4

                        F49h     TXB0D3   F29h     TXB2D3

                        F48h     TXB0D2   F28h     TXB2D2

                        F47h     TXB0D1   F27h     TXB2D1

                        F46h     TXB0D0   F26h     TXB2D0

                        F45h TXB0DLC      F25h TXB2DLC

                        F44h TXB0EIDL     F24h TXB2EIDL

                        F43h TXB0EIDH     F23h TXB2EIDH

                        F42h TXB0SIDL     F22h TXB2SIDL

                        F41h TXB0SIDH     F21h TXB2SIDH

                        F40h TXB0CON      F20h TXB2CON

Note 1:      Registers available only on PIC18F4X80 devices; otherwise, the registers read as `0'.
         2:  When any TX_ENn bit in RX_TX_SELn is set, then the corresponding bit in this register has transmit properties.
         3:  This is not a physical register.

DS39637D-page 78                                                    2009 Microchip Technology Inc.
                                              PIC18F2480/2580/4480/4580

TABLE 6-1: SPECIAL FUNCTION REGISTER MAP FOR
                     PIC18F2480/2580/4480/4580 DEVICES (CONTINUED)

Address      Name                 Address     Name  Address     Name  Address     Name

      EFFh     --                      EDFh     --        EBFh    --        E9Fh    --
      EFEh     --                      EDEh     --        EBEh    --        E9Eh    --
      EFDh     --                      EDDh     --        EBDh    --        E9Dh    --
      EFCh     --                      EDCh     --        EBCh    --        E9Ch    --
      EFBh     --                      EDBh     --        EBBh    --        E9Bh    --
      EFAh     --                      EDAh     --        EBAh    --        E9Ah    --
      EF9h     --                       ED9h    --        EB9h    --        E99h    --
      EF8h     --                       ED8h    --        EB8h    --        E98h    --
      EF7h     --                       ED7h    --        EB7h    --        E97h    --
      EF6h     --                       ED6h    --        EB6h    --        E96h    --
      EF5h     --                       ED5h    --        EB5h    --        E95h    --
      EF4h     --                       ED4h    --        EB4h    --        E94h    --
      EF3h     --                       ED3h    --        EB3h    --        E93h    --
      EF2h     --                       ED2h    --        EB2h    --        E92h    --
      EF1h     --                       ED1h    --        EB1h    --        E91h    --
      EF0h     --                       ED0h    --        EB0h    --        E90h    --
      EEFh     --                      ECFh     --        EAFh    --        E8Fh    --
      EEEh     --                      ECEh     --        EAEh    --        E8Eh    --
      EEDh     --                      ECDh     --        EADh    --        E8Dh    --
      EECh     --                      ECCh     --        EACh    --        E8Ch    --
      EEBh     --                      ECBh     --        EABh    --        E8Bh    --
      EEAh     --                      ECAh     --        EAAh    --        E8Ah    --
      EE9h     --                       EC9h    --        EA9h    --        E89h    --
      EE8h     --                       EC8h    --        EA8h    --        E88h    --
      EE7h     --                       EC7h    --        EA7h    --        E87h    --
      EE6h     --                       EC6h    --        EA6h    --        E86h    --
      EE5h     --                       EC5h    --        EA5h    --        E85h    --
      EE4h     --                       EC4h    --        EA4h    --        E84h    --
      EE3h     --                       EC3h    --        EA3h    --        E83h    --
      EE2h     --                       EC2h    --        EA2h    --        E82h    --
      EE1h     --                       EC1h    --        EA1h    --        E81h    --
      EE0h     --                       EC0h    --        EA0h    --        E80h    --

Note 1:      Registers available only on PIC18F4X80 devices; otherwise, the registers read as `0'.
         2:  When any TX_ENn bit in RX_TX_SELn is set, then the corresponding bit in this register has transmit properties.
         3:  This is not a physical register.

2009 Microchip Technology Inc.                                      DS39637D-page 79
PIC18F2480/2580/4480/4580

TABLE 6-1: SPECIAL FUNCTION REGISTER MAP FOR
                     PIC18F2480/2580/4480/4580 DEVICES (CONTINUED)

Address           Name      Address  Name           Address  Name           Address  Name

E7Fh         CANCON_RO4     E6Fh CANCON_RO5         E5Fh CANCON_RO6         E4Fh CANCON_RO7
E7Eh
E7Dh         CANSTAT_RO4    E6Eh     CANSTAT_RO5    E5Eh     CANSTAT_RO6    E4Eh     CANSTAT_RO7
E7Ch              B5D7(2)   E6Dh          B4D7(2)   E5Dh          B3D7(2)   E4Dh          B2D7(2)
E7Bh              B5D6(2)   E6Ch          B4D6(2)   E5Ch          B3D6(2)   E4Ch          B2D6(2)
E7Ah              B5D5(2)   E6Bh          B4D5(2)   E5Bh          B3D5(2)   E4Bh          B2D5(2)
E79h              B5D4(2)   E6Ah          B4D4(2)   E5Ah          B3D4(2)   E4Ah          B2D4(2)
E78h              B5D3(2)   E69h          B4D3(2)   E59h          B3D3(2)   E49h          B2D3(2)
E77h              B5D2(2)   E68h          B4D2(2)   E58h          B3D2(2)   E48h          B2D2(2)
E76h              B5D1(2)   E67h          B4D1(2)   E57h          B3D1(2)   E47h          B2D1(2)
E75h              B5D0(2)   E66h          B4D0(2)   E56h          B3D0(2)   E46h          B2D0(2)
E74h             B5DLC(2)   E65h         B4DLC(2)   E55h         B3DLC(2)   E45h         B2DLC(2)
E73h             B5EIDL(2)  E64h         B4EIDL(2)  E54h         B3EIDL(2)  E44h         B2EIDL(2)
E72h                        E63h                    E53h                    E43h
E71h            B5EIDH(2)   E62h        B4EIDH(2)   E52h        B3EIDH(2)   E42h        B2EIDH(2)
E70h             B5SIDL(2)  E61h         B4SIDL(2)  E51h         B3SIDL(2)  E41h         B2SIDL(2)
E3Fh            B5SIDH(2)   E60h        B4SIDH(2)   E50h        B3SIDH(2)   E40h        B2SIDH(2)
E3Eh            B5CON (2)                B4CON(2)                B3CON(2)                B2CON(2)
E3Dh
E3Ch         CANCON_RO8     E2Fh CANCON_RO9         E1Fh     --             E0Fh     --
E3Bh
E3Ah         CANSTAT_RO8    E2Eh     CANSTAT_RO9    E1Eh     --             E0Eh     --
E39h              B1D7(2)   E2Dh          B0D7(2)
E38h              B1D6(2)   E2Ch          B0D6(2)   E1Dh     --             E0Dh     --
E37h              B1D5(2)   E2Bh          B0D5(2)
E36h              B1D4(2)   E2Ah          B0D4(2)   E1Ch     --             E0Ch     --
E35h              B1D3(2)   E29h          B0D3(2)
E34h              B1D2(2)   E28h          B0D2(2)   E1Bh     --             E0Bh     --
E33h              B1D1(2)   E27h          B0D1(2)
E32h              B1D0(2)   E26h          B0D0(2)   E1Ah     --             E0Ah     --
E31h             B1DLC(2)   E25h         B0DLC(2)
E30h             B1EIDL(2)  E24h         B0EIDL(2)  E19h     --             E09h     --
                            E23h
                B1EIDH(2)   E22h        B0EIDH(2)   E18h     --             E08h     --
                 B1SIDL(2)  E21h         B0SIDL(2)
                B1SIDH(2)   E20h        B0SIDH(2)   E17h     --             E07h     --
                 B1CON(2)                B0CON(2)
                                                    E16h     --             E06h     --

                                                    E15h     --             E05h     --

                                                    E14h     --             E04h     --

                                                    E13h     --             E03h     --

                                                    E12h     --             E02h     --

                                                    E11h     --             E01h     --

                                                    E10h     --             E00h     --

Note 1:      Registers available only on PIC18F4X80 devices; otherwise, the registers read as `0'.
         2:  When any TX_ENn bit in RX_TX_SELn is set, then the corresponding bit in this register has transmit properties.
         3:  This is not a physical register.

DS39637D-page 80                                                    2009 Microchip Technology Inc.
                                             PIC18F2480/2580/4480/4580

TABLE 6-1: SPECIAL FUNCTION REGISTER MAP FOR
                     PIC18F2480/2580/4480/4580 DEVICES (CONTINUED)

Address          Name             Address       Name  Address     Name  Address         Name

      DFFh         --                  DDFh       --        DBFh    --        D9Fh        --
      DFEh         --                  DDEh       --        DBEh    --        D9Eh        --
      DFDh         --                  DDDh       --       DBDh     --        D9Dh        --
      DFCh      TXBIE                  DDCh       --       DBCh     --        D9Ch        --
      DFBh         --                  DDBh       --        DBBh    --        D9Bh        --
      DFAh        BIE0                 DDAh       --        DBAh    --        D9Ah        --
      DF9h         --                  DD9h       --        DB9h    --        D99h        --
      DF8h      BSEL0                  DD8h    SDFLC        DB8h    --        D98h        --
      DF7h         --                  DD7h       --        DB7h    --        D97h        --
      DF6h         --                  DD6h       --        DB6h    --        D96h        --
      DF5h         --                  DD5h  RXFCON1        DB5h    --        D95h        --
      DF4h         --                  DD4h  RXFCON0        DB4h    --        D94h        --
      DF3h      MSEL3                  DD3h       --        DB3h    --        D93h  RXF15EIDL
      DF2h      MSEL2                  DD2h       --        DB2h    --        D92h  RXF15EIDH
      DF1h      MSEL1                  DD1h       --        DB1h    --        D91h  RXF15SIDL
      DF0h      MSEL0                  DD0h       --        DB0h    --        D90h  RXF15SIDH
      DEFh         --                  DCFh       --        DAFh    --        D8Fh        --
      DEEh         --                  DCEh       --        DAEh    --        D8Eh        --
      DEDh         --                  DCDh       --       DADh     --        D8Dh        --
      DECh         --                  DCCh       --       DACh     --        D8Ch        --
      DEBh         --                  DCBh       --        DABh    --        D8Bh  RXF14EIDL
      DEAh         --                  DCAh       --        DAAh    --        D8Ah  RXF14EIDH
      DE9h         --                  DC9h       --        DA9h    --        D89h  RXF14SIDL
      DE8h         --                  DC8h       --        DA8h    --        D88h  RXF14SIDH
      DE7h   RXFBCON7                  DC7h       --        DA7h    --        D87h  RXF13EIDL
      DE6h   RXFBCON6                  DC6h       --        DA6h    --        D86h  RXF13EIDH
      DE5h   RXFBCON5                  DC5h       --        DA5h    --        D85h  RXF13SIDL
      DE4h   RXFBCON4                  DC4h       --        DA4h    --        D84h  RXF13SIDH
      DE3h   RXFBCON3                  DC3h       --        DA3h    --        D83h  RXF12EIDL
      DE2h   RXFBCON2                  DC2h       --        DA2h    --        D82h  RXF12EIDH
      DE1h   RXFBCON1                  DC1h       --        DA1h    --        D81h  RXF12SIDL
      DE0h   RXFBCON0                  DC0h       --        DA0h    --        D80h  RXF12SIDH

Note 1:      Registers available only on PIC18F4X80 devices; otherwise, the registers read as `0'.
         2:  When any TX_ENn bit in RX_TX_SELn is set, then the corresponding bit in this register has transmit properties.
         3:  This is not a physical register.

2009 Microchip Technology Inc.                                        DS39637D-page 81
PIC18F2480/2580/4480/4580

TABLE 6-1: SPECIAL FUNCTION REGISTER MAP FOR
                     PIC18F2480/2580/4480/4580 DEVICES (CONTINUED)

Address          Name

  D7Fh             --
  D7Eh             --
  D7Dh             --
  D7Ch             --
  D7Bh       RXF11EIDL
  D7Ah       RXF11EIDH
  D79h       RXF11SIDL
  D78h       RXF11SIDH
  D77h       RXF10EIDL
  D76h       RXF10EIDH
  D75h       RXF10SIDL
  D74h       RXF10SIDH
  D73h        RXF9EIDL
  D72h       RXF9EIDH
  D71h        RXF9SIDL
  D70h       RXF9SIDH
  D6Fh             --
  D6Eh             --
  D6Dh             --
  D6Ch             --
  D6Bh        RXF8EIDL
  D6Ah       RXF8EIDH
  D69h        RXF8SIDL
  D68h       RXF8SIDH
  D67h        RXF7EIDL
  D66h       RXF7EIDH
  D65h        RXF7SIDL
  D64h       RXF7SIDH
  D63h        RXF6EIDL
  D62h       RXF6EIDH
  D61h        RXF6SIDL
  D60h       RXF6SIDH

Note 1:      Registers available only on PIC18F4X80 devices; otherwise, the registers read as `0'.
         2:  When any TX_ENn bit in RX_TX_SELn is set, then the corresponding bit in this register has transmit properties.
         3:  This is not a physical register.

DS39637D-page 82                                                    2009 Microchip Technology Inc.
                                                 PIC18F2480/2580/4480/4580

TABLE 6-2: REGISTER FILE SUMMARY (PIC18F2480/2580/4480/4580)

File Name  Bit 7             Bit 6        Bit 5  Bit 4          Bit 3               Bit 2   Bit 1                  Bit 0      Value on Details on
                                                                                                                             POR, BOR Page:

TOSU       --                --           --     Top-of-Stack Upper Byte (TOS<20:16>)                                        ---0 0000 55, 68

TOSH       Top-of-Stack High Byte (TOS<15:8>)                                                                                0000 0000 55, 68

TOSL       Top-of-Stack Low Byte (TOS<7:0>)                                                                                  0000 0000 55, 68

STKPTR     STKFUL  STKUNF                 --     Return Stack Pointer                                                        00-0 0000 55, 69
PCLATU         --      --                                                                                                    ---0 0000 55, 68
                                          bit 21(1) Holding Register for PC<20:16>

PCLATH     Holding Register for PC<15:8>                                                                                     0000 0000 55, 68

PCL        PC Low Byte (PC<7:0>)                                                                                             0000 0000 55, 68

TBLPTRU    --                --           bit 21 Program Memory Table Pointer Upper Byte (TBLPTR<20:16>)                     --00 0000 55, 109

TBLPTRH Program Memory Table Pointer High Byte (TBLPTR<15:8>)                                                                0000 0000 55, 109

TBLPTRL    Program Memory Table Pointer Low Byte (TBLPTR<7:0>)                                                               0000 0000 55, 109

TABLAT     Program Memory Table Latch                                                                                        0000 0000 55, 109

PRODH      Product Register High Byte                                                                                        xxxx xxxx 55, 117

PRODL      Product Register Low Byte                                                                                         xxxx xxxx 55, 117

INTCON     GIE/GIEH PEIE/GIEL TMR0IE             INT0IE         RBIE                TMR0IF  INT0IF                 RBIF 0000 000x 55, 121

INTCON2    RBPU    INTEDG0 INTEDG1 INTEDG2                      --                  TMR0IP  --                     RBIP 1111 -1-1 55, 122

INTCON3    INT2IP            INT1IP       --     INT2IE         INT1IE              --      INT2IF                 INT1IF 11-0 0-00 55, 123

INDF0      Uses contents of FSR0 to address data memory value of FSR0 not changed (not a physical register)                N/A  55, 96

POSTINC0 Uses contents of FSR0 to address data memory value of FSR0 post-incremented (not a physical register)             N/A  55, 97

POSTDEC0 Uses contents of FSR0 to address data memory value of FSR0 post-decremented (not a physical register)             N/A  55, 97

PREINC0    Uses contents of FSR0 to address data memory value of FSR0 pre-incremented (not a physical register)            N/A  55, 97

PLUSW0     Uses contents of FSR0 to address data memory value of FSR0 pre-incremented (not a physical register), value of  N/A  55, 97
           FSR0 offset by W

FSR0H      --                --           --     --         Indirect Data Memory Address Pointer 0 High                      ---- xxxx 55, 96

FSR0L      Indirect Data Memory Address Pointer 0 Low Byte                                                                   xxxx xxxx 55, 96

WREG       Working Register                                                                                                  xxxx xxxx 55

INDF1      Uses contents of FSR1 to address data memory value of FSR1 not changed (not a physical register)                N/A  55, 96

POSTINC1 Uses contents of FSR1 to address data memory value of FSR1 post-incremented (not a physical register)             N/A  55, 97

POSTDEC1 Uses contents of FSR1 to address data memory value of FSR1 post-decremented (not a physical register)             N/A  55, 97

PREINC1    Uses contents of FSR1 to address data memory value of FSR1 pre-incremented (not a physical register)            N/A  55, 97

PLUSW1     Uses contents of FSR1 to address data memory value of FSR1 pre-incremented (not a physical register), value of  N/A  55, 97
           FSR1 offset by W

FSR1H      --                --           --     --         Indirect Data Memory Address Pointer 1 High                      ---- xxxx 55, 96

FSR1L      Indirect Data Memory Address Pointer 1 Low Byte                                                                   xxxx xxxx 55, 96

BSR        --                --           --     --         Bank Select Register                                             ---- 0000 56, 73

INDF2      Uses contents of FSR2 to address data memory value of FSR2 not changed (not a physical register)                N/A  56, 96

POSTINC2 Uses contents of FSR2 to address data memory value of FSR2 post-incremented (not a physical register)             N/A  56, 97

POSTDEC2 Uses contents of FSR2 to address data memory value of FSR2 post-decremented (not a physical register)             N/A  56, 97

PREINC2    Uses contents of FSR2 to address data memory value of FSR2 pre-incremented (not a physical register)            N/A  56, 97

PLUSW2     Uses contents of FSR2 to address data memory value of FSR2 pre-incremented (not a physical register), value of  N/A  56, 97
           FSR2 offset by W

Legend: x = unknown, u = unchanged, - = unimplemented, q = value depends on condition
Note 1: Bit 21 of the PC is only available in Test mode and Serial Programming modes.

       2: The SBOREN bit is only available when CONFIG2L<1:0> = 01; otherwise, it is disabled and reads as `0'. See Section 5.4 "Brown-out Reset (BOR)".
       3: These registers and/or bits are not implemented on PIC18F2X80 devices and are read as `0'. Reset values are shown for PIC18F4X80 devices;

              individual unimplemented bits should be interpreted as `--'.
       4: The PLLEN bit is only available in specific oscillator configuration; otherwise, it is disabled and reads as `0'. See Section 3.6.4 "PLL in INTOSC

              Modes".
       5: The RE3 bit is only available when Master Clear Reset is disabled (CONFIG3H<7> = 0); otherwise, RE3 reads as `0'. This bit is read-only.
       6: RA6/RA7 and their associated latch and direction bits are individually configured as port pins based on various primary oscillator modes. When

              disabled, these bits read as `0'.
       7: CAN bits have multiple functions depending on the selected mode of the CAN module.
       8: This register reads all `0's until the ECANTM technology is set up in Mode 1 or Mode 2.
       9: These registers are available on PIC18F4X80 devices only.

2009 Microchip Technology Inc.                                                                                             DS39637D-page 83
PIC18F2480/2580/4480/4580

TABLE 6-2: REGISTER FILE SUMMARY (PIC18F2480/2580/4480/4580) (CONTINUED)

File Name    Bit 7            Bit 6         Bit 5      Bit 4    Bit 3      Bit 2    Bit 1                    Bit 0       Value on Details on
                                                                                                                        POR, BOR Page:

FSR2H        --               --            --         --       Indirect Data Memory Address Pointer 2 High             ---- xxxx 56, 96

FSR2L        Indirect Data Memory Address Pointer 2 Low Byte                                                            xxxx xxxx 56, 96

STATUS       --               --            --         N        OV         Z        DC                       C          ---x xxxx 56, 94

TMR0H        Timer0 Register High Byte                                                                                  0000 0000 56, 153

TMR0L        Timer0 Register Low Byte                                                                                   xxxx xxxx 56, 153

T0CON        TMR0ON           T08BIT        T0CS       T0SE     PSA        T0PS2    T0PS1                    T0PS0 1111 1111 56, 153

OSCCON       IDLEN            IRCF2         IRCF1      IRCF0    OSTS       IOFS     SCS1                     SCS0 0000 q000 36, 56

HLVDCON      VDIRMAG          --            IRVST HLVDEN HLVDL3            HLVDL2   HLVDL1                   HLVDL0 0-00 0101 56, 273

WDTCON       --               --            --         --       --         --       --                       SWDTEN --- ---0 56, 359

RCON         IPEN     SBOREN(2)             --         RI       TO         PD       POR                      BOR        0q-1 11q0 56, 133

TMR1H        Timer1 Register High Byte                                                                                  xxxx xxxx 56, 159

TMR1L        Timer1 Register Low Byte                                                                                   0000 0000 56, 159

T1CON        RD16             T1RUN T1CKPS1 T1CKPS0 T1OSCEN T1SYNC                  TMR1CS TMR1ON 0000 0000 56, 155

TMR2         Timer2 Register                                                                                            1111 1111 56, 162

PR2          Timer2 Period Register                                                                                     -000 0000 56, 159

T2CON        --       T2OUTPS3 T2OUTPS2 T2OUTPS1 T2OUTPS0 TMR2ON                    T2CKPS1 T2CKPS0 -000 0000 56, 161

SSPBUF       MSSP Receive Buffer/Transmit Register                                                                      xxxx xxxx 56, 199
SSPADD       MSSP Address Register in I2C Slave Mode. MSSP Baud Rate Reload Register in I2C Master Mode.                0000 0000 56, 199

SSPSTAT      SMP              CKE           D/A        P        S          R/W      UA                       BF         0000 0000 56, 201

SSPCON1      WCOL             SSPOV         SSPEN      CKP      SSPM3      SSPM2    SSPM1                    SSPM0 0000 0000 56, 202

SSPCON2      GCEN             ACKSTAT ACKDT            ACKEN    RCEN       PEN      RSEN                     SEN        0000 0000 56, 203

ADRESH       A/D Result Register High Byte                                                                              xxxx xxxx 56, 262

ADRESL       A/D Result Register Low Byte                                                                               xxxx xxxx 56, 262

ADCON0       --               --            CHS3       CHS2     CHS1       CHS0     GO/DONE                  ADON --00 0000 56, 253

ADCON1       --               --            VCFG1      VCFG0    PCFG3      PCFG2    PCFG1                    PCFG0 --00 0qqq 56, 254

ADCON2       ADFM             --            ACQT2      ACQT1    ACQT0      ADCS2    ADCS1                    ADCS0 0-00 0000 57, 255

CCPR1H       Capture/Compare/PWM Register 1 High Byte                                                                   xxxx xxxx 57, 172

CCPR1L       Capture/Compare/PWM Register 1 Low Byte                                                                    xxxx xxxx 57, 172

CCP1CON      --               --            DC1B1      DC1B0    CCP1M3     CCP1M2   CCP1M1                   CCP1M0     --00 0000  57, 167
                                                                           ECCP1M2  ECCP1M1                  ECCP1M0    xxxx xxxx  57, 171
ECCPR1H(9) Enhanced Capture/Compare/PWM Register 1 High Byte                                                            xxxx xxxx  57, 171
                                                                                                                        0000 0000  57, 172
ECCPR1L(9) Enhanced Capture/Compare/PWM Register 1 Low Byte

ECCP1CON(9) EPWM1M1 EPWM1M0 EDC1B1 EDC1B0 ECCP1M3

BAUDCON      ABDOVF             RCIDL            --     SCKP    BRG16          --      WUE                     ABDEN    01-0 0000  57, 234
ECCP1DEL(9)   PRSEN            PDC6(3)       PDC5(3)   PDC4(3)  PDC3(3)    PDC2(3)   PDC1(3)                  PDC0(3)   0000 0000  57, 187
ECCP1AS(9)   ECCPASE          ECCPAS2       ECCPAS1   ECCPAS0   PSSAC1     PSSAC0   PSSBD1(3)                PSSBD0(3)  0000 0000  57, 187
CVRCON(9)     CVREN            CVROE          CVRR     CVRSS     CVR3       CVR2       CVR1                     CVR0    0000 0000  57, 269
CMCON(9)      C2OUT            C1OUT          C2INV     C1INV                                                           0000 0000  57, 263
                                                                   CIS       CM2        CM1                      CM0

TMR3H        Timer3 Register High Byte                                                                                  xxxx xxxx 57, 165

TMR3L        Timer3 Register Low Byte                 T3CKPS0   T3CCP1(9)  T3SYNC   TMR3CS                                    xxxx xxxx 57, 165
T3CON             RD16 T3ECCP1(9) T3CKPS1                                                                    TMR3ON 0000 0000 57, 165

Legend: x = unknown, u = unchanged, - = unimplemented, q = value depends on condition
Note 1: Bit 21 of the PC is only available in Test mode and Serial Programming modes.

       2: The SBOREN bit is only available when CONFIG2L<1:0> = 01; otherwise, it is disabled and reads as `0'. See Section 5.4 "Brown-out Reset (BOR)".
       3: These registers and/or bits are not implemented on PIC18F2X80 devices and are read as `0'. Reset values are shown for PIC18F4X80 devices;

              individual unimplemented bits should be interpreted as `--'.
       4: The PLLEN bit is only available in specific oscillator configuration; otherwise, it is disabled and reads as `0'. See Section 3.6.4 "PLL in INTOSC

              Modes".
       5: The RE3 bit is only available when Master Clear Reset is disabled (CONFIG3H<7> = 0); otherwise, RE3 reads as `0'. This bit is read-only.
       6: RA6/RA7 and their associated latch and direction bits are individually configured as port pins based on various primary oscillator modes. When

              disabled, these bits read as `0'.
       7: CAN bits have multiple functions depending on the selected mode of the CAN module.
       8: This register reads all `0's until the ECANTM technology is set up in Mode 1 or Mode 2.
       9: These registers are available on PIC18F4X80 devices only.

DS39637D-page 84                                                                                           2009 Microchip Technology Inc.
                                                 PIC18F2480/2580/4480/4580

TABLE 6-2: REGISTER FILE SUMMARY (PIC18F2480/2580/4480/4580) (CONTINUED)

File Name  Bit 7     Bit 6                Bit 5  Bit 4          Bit 3      Bit 2      Bit 1   Bit 0        Value on Details on
                                                                                                          POR, BOR Page:

SPBRGH     EUSART Baud Rate Generator High Byte                                                           0000 0000 57, 236

SPBRG      EUSART Baud Rate Generator                                                                     0000 0000 57, 236

RCREG      EUSART Receive Register                                                                        0000 0000 57, 244

TXREG      EUSART Transmit Register                                                                       0000 0000 57, 241

TXSTA      CSRC      TX9                  TXEN   SYNC           SENDB      BRGH       TRMT    TX9D 0000 0010 57, 243

RCSTA      SPEN      RX9                  SREN   CREN           ADDEN      FERR       OERR    RX9D 0000 000x 57, 243

EEADR      EEPROM Address Register                                                                        0000 0000 57, 111

EEDATA     EEPROM Data Register                                                                           0000 0000 57, 111

EECON2     EEPROM Control Register 2 (not a physical register)                                            0000 0000 57, 111

EECON1     EEPGD     CFGS                 --     FREE           WRERR      WREN       WR      RD          xx-0 x000 57, 111

IPR3       IRXIP     WAKIP                ERRIP  TXB2IP         TXB1IP     TXB0IP     RXB1IP  RXB0IP 1111 1111 57, 132
Mode 0

IPR3       IRXIP     WAKIP                ERRIP  TXBnIP         TXB1IP(8)  TXB0IP(8)  RXBnIP FIFOWMIP 1111 1111 57, 132
Mode 1, 2

PIR3       IRXIF     WAKIF                ERRIF  TXB2IF         TXB1IF     TXB0IF     RXB1IF  RXB0IF 0000 0000 57, 126
Mode 0

PIR3       IRXIF     WAKIF                ERRIF  TXBnIF         TXB1IF(8)  TXB0IF(8)  RXBnIF FIFOWMIF 0000 0000 57, 126
Mode 1, 2

PIE3       IRXIE     WAKIE                ERRIE  TXB2IE         TXB1IE     TXB0IE     RXB1IE  RXB0IE 0000 0000 57, 129
Mode 0

PIE3       IRXIE     WAKIE                ERRIE  TXBnIE TXB1IE(8)          TXB0IE(8)  RXBnIE  FIFOMWIE 0000 0000 57, 129
Mode 1, 2
IPR2       OSCFIP    CMIP(9)                --       EEIP       BCLIP       HLVDIP    TMR3IP  ECCP1IP(9)  11-1 1111  57, 131
PIR2       OSCFIF     CMIF(9)               --       EEIF       BCLIF       HLVDIF    TMR3IF  ECCP1IF(9)  00-0 0000  58, 125
PIE2       OSCFIE    CMIE(9)                --       EEIE       BCLIE       HLVDIE    TMR3IE  ECCP1IE(9)  00-0 0000  58, 128
IPR1       PSPIP(3)                       RCIP       TXIP       SSPIP       CCP1IP    TMR2IP              1111 1111  58, 130
PIR1       PSPIF(3)    ADIP               RCIF       TXIF       SSPIF       CCP1IF    TMR2IF    TMR1IP    0000 0000  58, 124
PIE1       PSPIE(3)    ADIF               RCIE       TXIE       SSPIE       CCP1IE    TMR2IE    TMR1IF    0000 0000  58, 127
OSCTUNE    INTSRC      ADIE                 --      TUN4        TUN3         TUN2      TUN1     TMR1IE    0q-0 0000  33, 58
TRISE(3)             PLLEN(4)                    PSPMODE                    TRISE2    TRISE1     TUN0     0000 -111  58, 146
TRISD(3)                                                          --                            TRISE0    1111 1111  58, 143
           IBF       OBF                  IBOV

           PORTD Data Direction Register

TRISC      PORTC Data Direction Register                                                                  1111 1111 58, 141

TRISB      PORTB Data Direction Register                                                                  1111 1111  58, 138
             TRISA7(6) TRISA6(6) PORTA Data Direction Register                                            1111 1111  58, 135
TRISA                                                                                                     ---- -xxx  58, 146
LATE(3)    --        --                   --     --             --         LATE2      LATE1   LATE0       xxxx xxxx  58, 143
LATD(3)
           LATD Output Latch Register

LATC       LATC Output Latch Register                                                                     xxxx xxxx 58, 141

LATB       LATB Output Latch Register                                                                     xxxx xxxx 58, 138
LATA                                                                                                      xxxx xxxx 58, 135
           LATA7(6)  LATA6(6) LATA Output Latch Register

Legend: x = unknown, u = unchanged, - = unimplemented, q = value depends on condition
Note 1: Bit 21 of the PC is only available in Test mode and Serial Programming modes.

       2: The SBOREN bit is only available when CONFIG2L<1:0> = 01; otherwise, it is disabled and reads as `0'. See Section 5.4 "Brown-out Reset (BOR)".
       3: These registers and/or bits are not implemented on PIC18F2X80 devices and are read as `0'. Reset values are shown for PIC18F4X80 devices;

              individual unimplemented bits should be interpreted as `--'.
       4: The PLLEN bit is only available in specific oscillator configuration; otherwise, it is disabled and reads as `0'. See Section 3.6.4 "PLL in INTOSC

              Modes".
       5: The RE3 bit is only available when Master Clear Reset is disabled (CONFIG3H<7> = 0); otherwise, RE3 reads as `0'. This bit is read-only.
       6: RA6/RA7 and their associated latch and direction bits are individually configured as port pins based on various primary oscillator modes. When

              disabled, these bits read as `0'.
       7: CAN bits have multiple functions depending on the selected mode of the CAN module.
       8: This register reads all `0's until the ECANTM technology is set up in Mode 1 or Mode 2.
       9: These registers are available on PIC18F4X80 devices only.

2009 Microchip Technology Inc.                                                                     DS39637D-page 85
PIC18F2480/2580/4480/4580

TABLE 6-2: REGISTER FILE SUMMARY (PIC18F2480/2580/4480/4580) (CONTINUED)

File Name   Bit 7     Bit 6                Bit 5  Bit 4     Bit 3    Bit 2     Bit 1      Bit 0      Value on Details on
                                                                                                    POR, BOR Page:

PORTE(3)    --        --                   --     --       RE3(5)      RE2(3)    RE1(3)    RE0(3)   ---- xxxx  58, 150
PORTD(3)                                                                                            xxxx xxxx  58, 143
PORTC       PORTD Data Direction Register                             EWIN2     EWIN1     EWIN0     xxxx xxxx  58, 141
PORTB                                                                  TEC2      TEC1      TEC0     xxxx xxxx  58, 138
PORTA       PORTC Data Direction Register                              REC2      REC1      REC0     xx00 0000  58, 135
ECANCON                                                              TXWARN    RXWARN     EWARN     0001 000   58, 286
TXERRCNT    PORTB Data Direction Register                                                           0000 0000  58, 291
RXERRCNT                                                                                            0000 0000  58, 299
COMSTAT     RA7(6)    RA6(6) PORTA Data Direction Register                                          0000 0000  58, 287
Mode 0
            MDSEL1 MDSEL0 FIFOWM EWIN4                     EWIN3

            TEC7      TEC6                 TEC5   TEC4     TEC3

            REC7      REC6                 REC5   REC4     REC3

            RXB0OVFL RXB1OVFL TXBO                TXBP     RXBP

COMSTAT     --        RXBnOVFL TXBO               TXBP     RXBP      TXWARN    RXWARN     EWARN -000 0000 58, 287
Mode 1

COMSTAT     FIFOEMPTY RXBnOVFL TXBO               TXBP     RXBP      TXWARN    RXWARN     EWARN 0000 0000 58, 287
Mode 2

CIOCON            --      --   ENDRHI             CANCAP        --        --        --         --   --00 ----  58, 320
              WAKDIS  WAKFIL       --                  --       --   SEG2PH2   SEG2PH1    SEG2PH0   00-- -000  59, 319
BRGCON3     SEG2PHTS                                       SEG1PH0   PRSEG2    PRSEG1     PRSEG0    0000 0000  59, 318
                        SAM   SEG1PH2             SEG1PH1    BRP3                                   0000 0000  59, 317
BRGCON2        SJW1     SJW0     BRP5                BRP4   WIN2(7)    BRP2      BRP1       BRP0    1000 000-  59, 282
             REQOP2   REQOP1                         ABAT             WIN1(7)   WIN0(7)      --(7)
BRGCON1                       REQOP0

CANCON      REQOP2 REQOP1 REQOP0                  ABAT      --(7)    --(7)     --(7)      --(7)     1000 ---- 59, 282
Mode 0
            REQOP2 REQOP1 REQOP0                  ABAT     FP3(7)    FP2(7)    FP1(7)     FP0(7) 1000 0000 59, 282
CANCON
Mode 1      OPMODE2 OPMODE1 OPMODE0               --(7)    ICODE3(7) ICODE2(7) ICODE1(7)  --(7)     000- 0000 59, 283

CANCON      OPMODE2 OPMODE1 OPMODE0 EICODE4(7) EICODE3(7) EICODE2(7) EICODE1(7) EICODE0(7) 0000 0000 59, 283
Mode 2

CANSTAT
Mode 0

CANSTAT
Modes 1, 2

RXB0D7      RXB0D77 RXB0D76 RXB0D75 RXB0D74 RXB0D73 RXB0D72 RXB0D71 RXB0D70 xxxx xxxx 59, 298

RXB0D6      RXB0D67 RXB0D66 RXB0D65 RXB0D64 RXB0D63 RXB0D62 RXB0D61 RXB0D60 xxxx xxxx 59, 298

RXB0D5      RXB0D57 RXB0D56 RXB0D55 RXB0D54 RXB0D53 RXB0D52 RXB0D51 RXB0D50 xxxx xxxx 59, 298

RXB0D4      RXB0D47 RXB0D46 RXB0D45 RXB0D44 RXB0D43 RXB0D42 RXB0D41 RXB0D40 xxxx xxxx 59, 298

RXB0D3      RXB0D37 RXB0D36 RXB0D35 RXB0D34 RXB0D33 RXB0D32 RXB0D31 RXB0D30 xxxx xxxx 59, 298

RXB0D2      RXB0D27 RXB0D26 RXB0D25 RXB0D24 RXB0D23 RXB0D22 RXB0D21 RXB0D20 xxxx xxxx 59, 298

RXB0D1      RXB0D17 RXB0D16 RXB0D15 RXB0D14 RXB0D13 RXB0D12 RXB0D11 RXB0D10 xxxx xxxx 59, 298

RXB0D0      RXB0D07 RXB0D06 RXB0D05 RXB0D04 RXB0D03 RXB0D02 RXB0D01 RXB0D00 xxxx xxxx 59, 298

RXB0DLC     --        RXRTR                RB1    RB0      DLC3      DLC2      DLC1       DLC0 -xxx xxxx 59, 298

RXB0EIDL    EID7      EID6                 EID5   EID4      EID3     EID2      EID1       EID0      xxxx xxxx 59, 297

RXB0EIDH    EID15     EID14                EID13  EID12    EID11     EID10     EID9       EID8      xxxx xxxx 59, 297

RXB0SIDL    SID2      SID1                 SID0   SRR       EXID     --        EID17      EID16 xxxx x-xx 59, 297

RXB0SIDH    SID10     SID9                 SID8   SID7      SID6     SID5      SID4       SID3      xxxx xxxx 59, 296

Legend: x = unknown, u = unchanged, - = unimplemented, q = value depends on condition
Note 1: Bit 21 of the PC is only available in Test mode and Serial Programming modes.

       2: The SBOREN bit is only available when CONFIG2L<1:0> = 01; otherwise, it is disabled and reads as `0'. See Section 5.4 "Brown-out Reset (BOR)".
       3: These registers and/or bits are not implemented on PIC18F2X80 devices and are read as `0'. Reset values are shown for PIC18F4X80 devices;

              individual unimplemented bits should be interpreted as `--'.
       4: The PLLEN bit is only available in specific oscillator configuration; otherwise, it is disabled and reads as `0'. See Section 3.6.4 "PLL in INTOSC

              Modes".
       5: The RE3 bit is only available when Master Clear Reset is disabled (CONFIG3H<7> = 0); otherwise, RE3 reads as `0'. This bit is read-only.
       6: RA6/RA7 and their associated latch and direction bits are individually configured as port pins based on various primary oscillator modes. When

              disabled, these bits read as `0'.
       7: CAN bits have multiple functions depending on the selected mode of the CAN module.
       8: This register reads all `0's until the ECANTM technology is set up in Mode 1 or Mode 2.
       9: These registers are available on PIC18F4X80 devices only.

DS39637D-page 86                                                                        2009 Microchip Technology Inc.
                                            PIC18F2480/2580/4480/4580

TABLE 6-2: REGISTER FILE SUMMARY (PIC18F2480/2580/4480/4580) (CONTINUED)

File Name  Bit 7    Bit 6         Bit 5     Bit 4  Bit 3       Bit 2       Bit 1       Bit 0        Value on Details on
                                                                                                   POR, BOR Page:

RXB0CON    RXFUL    RXM1          RXM0(7)   --(7)  RXRTRRO(7) RXBODBEN(7) JTOFF(7)     FILHIT0(7) 000- 0000 59, 293
Mode 0

RXB0CON    RXFUL    RXM1          RTRRO FILHIT4    FILHIT3     FILHIT2     FILHIT1     FILHIT0 0000 0000 59, 293
Mode 1, 2

RXB1D7     RXB1D77  RXB1D76       RXB1D75   RXB1D74 RXB1D73    RXB1D72     RXB1D71     RXB1D70     xxxx xxxx  59, 298
RXB1D6     RXB1D67  RXB1D66       RXB1D65                      RXB1D62     RXB1D61     RXB1D60     xxxx xxxx  59, 298
RXB1D5     RXB1D57  RXB1D56       RXB1D55   RXB1D64 RXB1D63    RXB1D52     RXB1D51     RXB1D50     xxxx xxxx  59, 298
RXB1D4     RXB1D47  RXB1D46       RXB1D45                      RXB1D42     RXB1D41     RXB1D40     xxxx xxxx  59, 298
RXB1D3     RXB1D37  RXB1D36       RXB1D35   RXB1D54 RXB1D53    RXB1D32     RXB1D31     RXB1D30     xxxx xxxx  59, 298
RXB1D2     RXB1D27  RXB1D26       RXB1D25                      RXB1D22     RXB1D21     RXB1D20     xxxx xxxx  59, 298
RXB1D1     RXB1D17  RXB1D16       RXB1D15   RXB1D44 RXB1D43    RXB1D12     RXB1D11     RXB1D10     xxxx xxxx  59, 298
RXB1D0     RXB1D07  RXB1D06       RXB1D05                      RXB1D02     RXB1D01     RXB1D00     xxxx xxxx  59, 298
RXB1DLC              RXRTR                  RXB1D34 RXB1D33                                        -xxx xxxx  59, 298
RXB1EIDL        --                   RB1                         DLC2        DLC1        DLC0      xxxx xxxx  59, 297
RXB1EIDH      EID7     EID6          EID5   RXB1D24 RXB1D23       EID2        EID1        EID0     xxxx xxxx  59, 297
RXB1SIDL     EID15    EID14         EID13                        EID10        EID9        EID8     xxxx xxxx  59, 297
RXB1SIDH      SID2     SID1          SID0   RXB1D14 RXB1D13                  EID17       EID16     xxxx xxxx  60, 296
RXB1CON      SID10     SID9          SID8                           --        SID4        SID3     000- 0000  60, 293
Mode 0      RXFUL     RXM1         RXM0(7)  RXB1D04 RXB1D03       SID5     FILHIT1(7)  FILHIT0(7)
                                                               FILHIT2(7)
                                            RB0    DLC3

                                            EID4   EID3

                                            EID12  EID11

                                            SRR    EXID

                                            SID7        SID6
                                            --(7)  RXRTRRO(7)

RXB1CON    RXFUL    RXM1          RTRRO FILHIT4    FILHIT3     FILHIT2     FILHIT1     FILHIT0 0000 0000 60, 293
Mode 1, 2

TXB0D7     TXB0D77 TXB0D76 TXB0D75 TXB0D74 TXB0D73             TXB0D72     TXB0D71 TXB0D70 xxxx xxxx 60, 290

TXB0D6     TXB0D67 TXB0D66 TXB0D65 TXB0D64 TXB0D63             TXB0D62     TXB0D61 TXB0D60 xxxx xxxx 60, 290

TXB0D5     TXB0D57 TXB0D56 TXB0D55 TXB0D54 TXB0D53             TXB0D52     TXB0D51 TXB0D50 xxxx xxxx 60, 290

TXB0D4     TXB0D47 TXB0D46 TXB0D45 TXB0D44 TXB0D43             TXB0D42     TXB0D41 TXB0D40 xxxx xxxx 60, 290

TXB0D3     TXB0D37 TXB0D36 TXB0D35 TXB0D34 TXB0D33             TXB0D32     TXB0D31 TXB0D30 xxxx xxxx 60, 290

TXB0D2     TXB0D27 TXB0D26 TXB0D25 TXB0D24 TXB0D23             TXB0D22     TXB0D21 TXB0D20 xxxx xxxx 60, 290

TXB0D1     TXB0D17 TXB0D16 TXB0D15 TXB0D14 TXB0D13             TXB0D12     TXB0D11     TXB0D10 xxxx xxxx 60, 290

TXB0D0     TXB0D07 TXB0D06 TXB0D05 TXB0D04 TXB0D03             TXB0D02     TXB0D01 TXB0D00 xxxx xxxx 60, 290

TXB0DLC    --       TXRTR         --        --     DLC3        DLC2        DLC1        DLC0 -x-- xxxx 60, 291

TXB0EIDL   EID7     EID6          EID5      EID4   EID3        EID2        EID1        EID0        xxxx xxxx 60, 290

TXB0EIDH   EID15    EID14         EID13     EID12  EID11       EID10       EID9        EID8        xxxx xxxx 60, 289

TXB0SIDL   SID2     SID1          SID0      --     EXIDE       --          EID17       EID16 xxx- x-xx 60, 289

TXB0SIDH   SID10    SID9          SID8      SID7   SID6        SID5        SID4        SID3        xxxx xxxx 60, 289

TXB0CON    TXBIF    TXABT TXLARB TXERR             TXREQ       --          TXPRI1      TXPRI0 0000 0-00 60, 288

TXB1D7     TXB1D77 TXB1D76 TXB1D75 TXB1D74 TXB1D73             TXB1D72     TXB1D71 TXB1D70 xxxx xxxx 60, 290

TXB1D6     TXB1D67 TXB1D66 TXB1D65 TXB1D64 TXB1D63             TXB1D62     TXB1D61 TXB1D60 xxxx xxxx 60, 290

TXB1D5     TXB1D57 TXB1D56 TXB1D55 TXB1D54 TXB1D53             TXB1D52     TXB1D51 TXB1D50 xxxx xxxx 60, 290

TXB1D4     TXB1D47 TXB1D46 TXB1D45 TXB1D44 TXB1D43             TXB1D42     TXB1D41 TXB1D40 xxxx xxxx 60, 290

TXB1D3     TXB1D37 TXB1D36 TXB1D35 TXB1D34 TXB1D33             TXB1D32     TXB1D31 TXB1D30 xxxx xxxx 60, 290

TXB1D2     TXB1D27 TXB1D26 TXB1D25 TXB1D24 TXB1D23             TXB1D22     TXB1D21 TXB1D20 xxxx xxxx 60, 290

Legend: x = unknown, u = unchanged, - = unimplemented, q = value depends on condition
Note 1: Bit 21 of the PC is only available in Test mode and Serial Programming modes.

       2: The SBOREN bit is only available when CONFIG2L<1:0> = 01; otherwise, it is disabled and reads as `0'. See Section 5.4 "Brown-out Reset (BOR)".
       3: These registers and/or bits are not implemented on PIC18F2X80 devices and are read as `0'. Reset values are shown for PIC18F4X80 devices;

              individual unimplemented bits should be interpreted as `--'.
       4: The PLLEN bit is only available in specific oscillator configuration; otherwise, it is disabled and reads as `0'. See Section 3.6.4 "PLL in INTOSC

              Modes".
       5: The RE3 bit is only available when Master Clear Reset is disabled (CONFIG3H<7> = 0); otherwise, RE3 reads as `0'. This bit is read-only.
       6: RA6/RA7 and their associated latch and direction bits are individually configured as port pins based on various primary oscillator modes. When

              disabled, these bits read as `0'.
       7: CAN bits have multiple functions depending on the selected mode of the CAN module.
       8: This register reads all `0's until the ECANTM technology is set up in Mode 1 or Mode 2.
       9: These registers are available on PIC18F4X80 devices only.

2009 Microchip Technology Inc.                                                                   DS39637D-page 87
PIC18F2480/2580/4480/4580

TABLE 6-2: REGISTER FILE SUMMARY (PIC18F2480/2580/4480/4580) (CONTINUED)

File Name  Bit 7  Bit 6  Bit 5  Bit 4  Bit 3        Bit 2    Bit 1   Bit 0   Value on Details on
                                                                            POR, BOR Page:

TXB1D1     TXB1D17 TXB1D16 TXB1D15 TXB1D14 TXB1D13  TXB1D12  TXB1D11 TXB1D10 xxxx xxxx 60, 290

TXB1D0     TXB1D07 TXB1D06 TXB1D05 TXB1D04 TXB1D03 TXB1D02 TXB1D01 TXB1D00 xxxx xxxx 60, 290

TXB1DLC    --     TXRTR  --     --     DLC3         DLC2     DLC1    DLC0 -x-- xxxx 60, 291

TXB1EIDL   EID7   EID6   EID5   EID4   EID3         EID2     EID1    EID0   xxxx xxxx 60, 290

TXB1EIDH   EID15  EID14  EID13  EID12  EID11        EID10    EID9    EID8   xxxx xxxx 60, 289

TXB1SIDL   SID2   SID1   SID0   --     EXIDE        --       EID17   EID16 xxx- x-xx 60, 289

TXB1SIDH   SID10  SID9   SID8   SID7   SID6         SID5     SID4    SID3   xxxx xxxx 60, 289

TXB1CON    TXBIF  TXABT TXLARB TXERR   TXREQ        --       TXPRI1  TXPRI0 0000 0-00 60, 288

TXB2D7     TXB2D77 TXB2D76 TXB2D75 TXB2D74 TXB2D73 TXB2D72 TXB2D71 TXB2D70 xxxx xxxx 60, 290

TXB2D6     TXB2D67 TXB2D66 TXB2D65 TXB2D64 TXB2D63 TXB2D62 TXB2D61 TXB2D60 xxxx xxxx 61, 290

TXB2D5     TXB2D57 TXB2D56 TXB2D55 TXB2D54 TXB2D53 TXB2D52 TXB2D51 TXB2D50 xxxx xxxx 61, 290

TXB2D4     TXB2D47 TXB2D46 TXB2D45 TXB2D44 TXB2D43 TXB2D42 TXB2D41 TXB2D40 xxxx xxxx 61, 290

TXB2D3     TXB2D37 TXB2D36 TXB2D35 TXB2D34 TXB2D33 TXB2D32 TXB2D31 TXB2D30 xxxx xxxx 61, 290

TXB2D2     TXB2D27 TXB2D26 TXB2D25 TXB2D24 TXB2D23 TXB2D22 TXB2D21 TXB2D20 xxxx xxxx 61, 290

TXB2D1     TXB2D17 TXB2D16 TXB2D15 TXB2D14 TXB2D13  TXB2D12  TXB2D11 TXB2D10 xxxx xxxx 61, 290

TXB2D0     TXB2D07 TXB2D06 TXB2D05 TXB2D04 TXB2D03 TXB2D02 TXB2D01 TXB2D00 xxxx xxxx 61, 290

TXB2DLC    --     TXRTR  --     --     DLC3         DLC2     DLC1    DLC0 -x-- xxxx 61, 291

TXB2EIDL   EID7   EID6   EID5   EID4   EID3         EID2     EID1    EID0   xxxx xxxx 61, 290

TXB2EIDH   EID15  EID14  EID13  EID12  EID11        EID10    EID9    EID8   xxxx xxxx 61, 289

TXB2SIDL   SID2   SID1   SID0   --     EXIDE        --       EID17   EID16 xxxx x-xx 61, 289

TXB2SIDH   SID10  SID9   SID8   SID7   SID6         SID5     SID4    SID3   xxx- x-xx 61, 289

TXB2CON    TXBIF  TXABT TXLARB TXERR   TXREQ        --       TXPRI1  TXPRI0 0000 0-00 61, 288

RXM1EIDL   EID7   EID6   EID5   EID4   EID3         EID2     EID1    EID0   xxxx xxxx 61, 310

RXM1EIDH   EID15  EID14  EID13  EID12  EID11        EID10    EID9    EID8   xxxx xxxx 61, 310

RXM1SIDL   SID2   SID1   SID0   --     EXIDEN       --       EID17   EID16 xxx- x-xx 61, 310

RXM1SIDH   SID10  SID9   SID8   SID7   SID6         SID5     SID4    SID3   xxxx xxxx 61, 310

RXM0EIDL   EID7   EID6   EID5   EID4   EID3         EID2     EID1    EID0   xxxx xxxx 61, 310

RXM0EIDH   EID15  EID14  EID13  EID12  EID11        EID10    EID9    EID8   xxxx xxxx 61, 310

RXM0SIDL   SID2   SID1   SID0   --     EXIDEN       --       EID17   EID16 xxx- x-xx 61, 310

RXM0SIDH   SID10  SID9   SID8   SID7   SID6         SID5     SID4    SID3   xxxx xxxx 61, 309

RXF5EIDL   EID7   EID6   EID5   EID4   EID3         EID2     EID1    EID0   xxxx xxxx 61, 309

RXF5EIDH   EID15  EID14  EID13  EID12  EID11        EID10    EID9    EID8   xxxx xxxx 61, 309

RXF5SIDL   SID2   SID1   SID0   --     EXIDEN       --       EID17   EID16 xxx- x-xx 61, 308

RXF5SIDH   SID10  SID9   SID8   SID7   SID6         SID5     SID4    SID3   xxxx xxxx 61, 308

RXF4EIDL   EID7   EID6   EID5   EID4   EID3         EID2     EID1    EID0   xxxx xxxx 61, 309

RXF4EIDH   EID15  EID14  EID13  EID12  EID11        EID10    EID9    EID8   xxxx xxxx 61, 309

RXF4SIDL   SID2   SID1   SID0   --     EXIDEN       --       EID17   EID16 xxx- x-xx 61, 308

RXF4SIDH   SID10  SID9   SID8   SID7   SID6         SID5     SID4    SID3   xxxx xxxx 61, 308

RXF3EIDL   EID7   EID6   EID5   EID4   EID3         EID2     EID1    EID0   xxxx xxxx 61, 309

RXF3EIDH   EID15  EID14  EID13  EID12  EID11        EID10    EID9    EID8   xxxx xxxx 61, 309

RXF3SIDL   SID2   SID1   SID0   --     EXIDEN       --       EID17   EID16 xxx- x-xx 62, 308

Legend: x = unknown, u = unchanged, - = unimplemented, q = value depends on condition
Note 1: Bit 21 of the PC is only available in Test mode and Serial Programming modes.

       2: The SBOREN bit is only available when CONFIG2L<1:0> = 01; otherwise, it is disabled and reads as `0'. See Section 5.4 "Brown-out Reset (BOR)".
       3: These registers and/or bits are not implemented on PIC18F2X80 devices and are read as `0'. Reset values are shown for PIC18F4X80 devices;

              individual unimplemented bits should be interpreted as `--'.
       4: The PLLEN bit is only available in specific oscillator configuration; otherwise, it is disabled and reads as `0'. See Section 3.6.4 "PLL in INTOSC

              Modes".
       5: The RE3 bit is only available when Master Clear Reset is disabled (CONFIG3H<7> = 0); otherwise, RE3 reads as `0'. This bit is read-only.
       6: RA6/RA7 and their associated latch and direction bits are individually configured as port pins based on various primary oscillator modes. When

              disabled, these bits read as `0'.
       7: CAN bits have multiple functions depending on the selected mode of the CAN module.
       8: This register reads all `0's until the ECANTM technology is set up in Mode 1 or Mode 2.
       9: These registers are available on PIC18F4X80 devices only.

DS39637D-page 88                                                      2009 Microchip Technology Inc.
                                            PIC18F2480/2580/4480/4580

TABLE 6-2: REGISTER FILE SUMMARY (PIC18F2480/2580/4480/4580) (CONTINUED)

File Name      Bit 7  Bit 6       Bit 5     Bit 4    Bit 3                             Bit 2  Bit 1    Bit 0     Value on Details on
                                                                                                                POR, BOR Page:

RXF3SIDH       SID10  SID9        SID8      SID7     SID6     SID5                            SID4     SID3     xxxx xxxx 62, 308

RXF2EIDL       EID7   EID6        EID5      EID4     EID3     EID2                            EID1     EID0     xxxx xxxx 62, 309

RXF2EIDH       EID15  EID14       EID13     EID12    EID11    EID10                           EID9     EID8     xxxx xxxx 62, 309

RXF2SIDL       SID2   SID1        SID0      --       EXIDEN                            --     EID17    EID16 xxx- x-xx 62, 308

RXF2SIDH       SID10  SID9        SID8      SID7     SID6     SID5                            SID4     SID3     xxxx xxxx 62, 308

RXF1EIDL       EID7   EID6        EID5      EID4     EID3     EID2                            EID1     EID0     xxxx xxxx 62, 309

RXF1EIDH       EID15  EID14       EID13     EID12    EID11    EID10                           EID9     EID8     xxxx xxxx 62, 309

RXF1SIDL       SID2   SID1        SID0      --       EXIDEN                            --     EID17    EID16 xxx- x-xx 62, 308

RXF1SIDH       SID10  SID9        SID8      SID7     SID6     SID5                            SID4     SID3     xxxx xxxx 62, 308

RXF0EIDL       EID7   EID6        EID5      EID4     EID3     EID2                            EID1     EID0     xxxx xxxx 62, 309

RXF0EIDH       EID15  EID14       EID13     EID12    EID11    EID10                           EID9     EID8     xxxx xxxx 62, 309

RXF0SIDL       SID2   SID1        SID0      --       EXIDEN                            --     EID17    EID16 xxx- x-xx 62, 308

RXF0SIDH       SID10   SID9        SID8      SID7     SID6     SID5                            SID4     SID3    xxxx xxxx  62, 308
B5D7(8)        B5D77  B5D76       B5D75     B5D74    B5D73    B5D72                           B5D71    B5D70    xxxx xxxx  62, 305
B5D6(8)        B5D67  B5D66       B5D65     B5D64    B5D63    B5D62                           B5D61    B5D60    xxxx xxxx  62, 305
B5D5(8)        B5D57  B5D56       B5D55     B5D54    B5D53    B5D52                           B5D51    B5D50    xxxx xxxx  62, 305
B5D4(8)        B5D47  B5D46       B5D45     B5D44    B5D43    B5D42                           B5D41    B5D40    xxxx xxxx  62, 305
B5D3(8)        B5D37  B5D36       B5D35     B5D34    B5D33    B5D32                           B5D31    B5D30    xxxx xxxx  62, 305
B5D2(8)        B5D27  B5D26       B5D25     B5D24    B5D23    B5D22                           B5D21    B5D20    xxxx xxxx  62, 305
B5D1(8)        B5D17  B5D16       B5D15     B5D14    B5D13    B5D12                           B5D11    B5D10    xxxx xxxx  62, 305
B5D0(8)        B5D07  B5D06       B5D05     B5D04    B5D03    B5D02                           B5D01    B5D00    xxxx xxxx  62, 305
B5DLC(8)              RXRTR                          DLC3     DLC2                            DLC1     DLC0     -xxx xxxx  62, 307
Receive mode     --                RB1       RB0

B5DLC(8)       --     TXRTR       --        --       DLC3     DLC2                            DLC1     DLC0 -x-- xxxx 62, 307

Transmit mode

B5EIDL(8)      EID7   EID6        EID5      EID4     EID3     EID2                            EID1     EID0     xxxx xxxx  62, 305
B5EIDH(8)      EID15  EID14       EID13     EID12    EID11    EID10                           EID9     EID8     xxxx xxxx  62, 304
B5SIDL(8)      SID2   SID1        SID0      SRR      EXID                                     EID17    EID16    xxxx x-xx  62, 303
Receive mode                                                    --

B5SIDL(8)      SID2   SID1        SID0      --       EXIDE                             --     EID17    EID16 xxx- x-xx 62, 303

Transmit mode

B5SIDH(8)      SID10  SID9            SID8   SID7      SID6    SID5                            SID4      SID3   xxxx x-xx 62, 302
B5CON(8)       RXFUL  RXM1        RXRTRRO   FILHIT4  FILHIT3  FILHIT2                         FILHIT1  FILHIT0  0000 0000 62, 301
Receive mode

B5CON(8)       TXBIF  TXABT TXLARB TXERR             TXREQ    RTREN                           TXPRI1   TXPRI0 0000 0000 62, 301
Transmit mode

B4D7(8)        B4D77  B4D76       B4D75     B4D74    B4D73    B4D72                           B4D71    B4D70    xxxx xxxx  62, 305
B4D6(8)        B4D67  B4D66       B4D65     B4D64    B4D63    B4D62                           B4D61    B4D60    xxxx xxxx  62, 305
B4D5(8)        B4D57  B4D56       B4D55     B4D54    B4D53    B4D52                           B4D51    B4D50    xxxx xxxx  62, 305
B4D4(8)        B4D47  B4D46       B4D45     B4D44    B4D43    B4D42                           B4D41    B4D40    xxxx xxxx  63, 305
B4D3(8)        B4D37  B4D36       B4D35     B4D34    B4D33    B4D32                           B4D31    B4D30    xxxx xxxx  63, 305

Legend: x = unknown, u = unchanged, - = unimplemented, q = value depends on condition
Note 1: Bit 21 of the PC is only available in Test mode and Serial Programming modes.

2: The SBOREN bit is only available when CONFIG2L<1:0> = 01; otherwise, it is disabled and reads as `0'. See Section 5.4 "Brown-out Reset (BOR)".
3: These registers and/or bits are not implemented on PIC18F2X80 devices and are read as `0'. Reset values are shown for PIC18F4X80 devices;

      individual unimplemented bits should be interpreted as `--'.

4: The PLLEN bit is only available in specific oscillator configuration; otherwise, it is disabled and reads as `0'. See Section 3.6.4 "PLL in INTOSC
      Modes".

5: The RE3 bit is only available when Master Clear Reset is disabled (CONFIG3H<7> = 0); otherwise, RE3 reads as `0'. This bit is read-only.
6: RA6/RA7 and their associated latch and direction bits are individually configured as port pins based on various primary oscillator modes. When

      disabled, these bits read as `0'.
7: CAN bits have multiple functions depending on the selected mode of the CAN module.

8: This register reads all `0's until the ECANTM technology is set up in Mode 1 or Mode 2.
9: These registers are available on PIC18F4X80 devices only.

2009 Microchip Technology Inc.                                                                                DS39637D-page 89
PIC18F2480/2580/4480/4580

TABLE 6-2: REGISTER FILE SUMMARY (PIC18F2480/2580/4480/4580) (CONTINUED)

File Name      Bit 7  Bit 6  Bit 5     Bit 4    Bit 3                                  Bit 2  Bit 1    Bit 0     Value on Details on
                                                                                                                POR, BOR Page:

B4D2(8)        B4D27  B4D26  B4D25     B4D24    B4D23    B4D22                                B4D21    B4D20    xxxx xxxx  63, 305
B4D1(8)        B4D17  B4D16  B4D15     B4D14    B4D13    B4D12                                B4D11    B4D10    xxxx xxxx  63, 305
B4D0(8)        B4D07  B4D06  B4D05     B4D04    B4D03    B4D02                                B4D01    B4D00    xxxx xxxx  62, 305
B4DLC(8)              RXRTR                     DLC3     DLC2                                 DLC1     DLC0     -xxx xxxx  63, 307
Receive mode     --           RB1       RB0

B4DLC(8)       --     TXRTR  --        --       DLC3     DLC2                                 DLC1     DLC0 -x-- xxxx 63, 307

Transmit mode

B4EIDL(8)      EID7   EID6   EID5      EID4     EID3     EID2                                 EID1     EID0     xxxx xxxx  63, 305
B4EIDH(8)      EID15  EID14  EID13     EID12    EID11    EID10                                EID9     EID8     xxxx xxxx  63, 304
B4SIDL(8)      SID2   SID1   SID0      SRR      EXID                                          EID17    EID16    xxxx x-xx  63, 303
Receive mode                                               --

B4SIDL(8)      SID2   SID1   SID0      --       EXIDE                                  --     EID17    EID16 xxx- x-xx 63, 303

Transmit mode

B4SIDH(8)      SID10  SID9       SID8    SID7     SID6    SID5                                 SID4      SID3   xxxx xxxx 63, 302
B4CON(8)       RXFUL  RXM1   RXRTRRO   FILHIT4  FILHIT3  FILHIT2                              FILHIT1  FILHIT0  0000 0000 63, 301
Receive mode

B4CON(8)       TXBIF  TXABT TXLARB TXERR        TXREQ    RTREN                                TXPRI1   TXPRI0 0000 0000 63, 301
Transmit mode

B3D7(8)        B3D77  B3D76  B3D75     B3D74    B3D73    B3D72                                B3D71    B3D70    xxxx xxxx  63, 305
B3D6(8)        B3D67  B3D66  B3D65     B3D64    B3D63    B3D62                                B3D61    B3D60    xxxx xxxx  63, 305
B3D5(8)        B3D57  B3D56  B3D55     B3D54    B3D53    B3D52                                B3D51    B3D50    xxxx xxxx  63, 305
B3D4(8)        B3D47  B3D46  B3D45     B3D44    B3D43    B3D42                                B3D41    B3D40    xxxx xxxx  63, 305
B3D3(8)        B3D37  B3D36  B3D35     B3D34    B3D33    B3D32                                B3D31    B3D30    xxxx xxxx  63, 305
B3D2(8)        B3D27  B3D26  B3D25     B3D24    B3D23    B3D22                                B3D21    B3D20    xxxx xxxx  63, 305
B3D1(8)        B3D17  B3D16  B3D15     B3D14    B3D13    B3D12                                B3D11    B3D10    xxxx xxxx  63, 305
B3D0(8)        B3D07  B3D06  B3D05     B3D04    B3D03    B3D02                                B3D01    B3D00    xxxx xxxx  63, 305
B3DLC(8)              RXRTR                     DLC3     DLC2                                 DLC1     DLC0     -xxx xxxx  63, 307
Receive mode     --           RB1       RB0

B3DLC(8)       --     TXRTR  --        --       DLC3     DLC2                                 DLC1     DLC0 -x-- xxxx 63, 307

Transmit mode

B3EIDL(8)      EID7   EID6   EID5      EID4     EID3     EID2                                 EID1     EID0     xxxx xxxx  63, 305
B3EIDH(8)      EID15  EID14  EID13     EID12    EID11    EID10                                EID9     EID8     xxxx xxxx  63, 304
B3SIDL(8)      SID2   SID1   SID0      SRR      EXID                                          EID17    EID16    xxxx x-xx  63, 303
Receive mode                                               --

B3SIDL(8)      SID2   SID1   SID0      --       EXIDE                                  --     EID17    EID16 xxx- x-xx 63, 303

Transmit mode

B3SIDH(8)      SID10  SID9       SID8    SID7     SID6    SID5                                 SID4      SID3   xxxx xxxx 63, 302
B3CON(8)       RXFUL  RXM1   RXRTRRO   FILHIT4  FILHIT3  FILHIT2                              FILHIT1  FILHIT0  0000 0000 63, 301
Receive mode

B3CON(8)       TXBIF  TXABT TXLARB TXERR        TXREQ    RTREN                                TXPRI1   TXPRI0 0000 0000 63, 301
Transmit mode

B2D7(8)        B2D77  B2D76  B2D75     B2D74    B2D73    B2D72                                B2D71    B2D70    xxxx xxxx  63, 305
B2D6(8)        B2D67  B2D66  B2D65     B2D64    B2D63    B2D62                                B2D61    B2D60    xxxx xxxx  63, 305
B2D5(8)        B2D57  B2D56  B2D55     B2D54    B2D53    B2D52                                B2D51    B2D50    xxxx xxxx  63, 305

Legend: x = unknown, u = unchanged, - = unimplemented, q = value depends on condition
Note 1: Bit 21 of the PC is only available in Test mode and Serial Programming modes.

2: The SBOREN bit is only available when CONFIG2L<1:0> = 01; otherwise, it is disabled and reads as `0'. See Section 5.4 "Brown-out Reset (BOR)".
3: These registers and/or bits are not implemented on PIC18F2X80 devices and are read as `0'. Reset values are shown for PIC18F4X80 devices;

      individual unimplemented bits should be interpreted as `--'.

4: The PLLEN bit is only available in specific oscillator configuration; otherwise, it is disabled and reads as `0'. See Section 3.6.4 "PLL in INTOSC
      Modes".

5: The RE3 bit is only available when Master Clear Reset is disabled (CONFIG3H<7> = 0); otherwise, RE3 reads as `0'. This bit is read-only.
6: RA6/RA7 and their associated latch and direction bits are individually configured as port pins based on various primary oscillator modes. When

      disabled, these bits read as `0'.
7: CAN bits have multiple functions depending on the selected mode of the CAN module.

8: This register reads all `0's until the ECANTM technology is set up in Mode 1 or Mode 2.
9: These registers are available on PIC18F4X80 devices only.

DS39637D-page 90                                                                                        2009 Microchip Technology Inc.
                                            PIC18F2480/2580/4480/4580

TABLE 6-2: REGISTER FILE SUMMARY (PIC18F2480/2580/4480/4580) (CONTINUED)

File Name      Bit 7  Bit 6       Bit 5     Bit 4    Bit 3    Bit 2    Bit 1    Bit 0     Value on Details on
                                                                                         POR, BOR Page:

B2D4(8)        B2D47  B2D46       B2D45     B2D44    B2D43    B2D42    B2D41    B2D40    xxxx xxxx  63, 305
B2D3(8)        B2D37  B2D36       B2D35     B2D34    B2D33    B2D32    B2D31    B2D30    xxxx xxxx  63, 305
B2D2(8)        B2D27  B2D26       B2D25     B2D24    B2D23    B2D22    B2D21    B2D20    xxxx xxxx  63, 305
B2D1(8)        B2D17  B2D16       B2D15     B2D14    B2D13    B2D12    B2D11    B2D10    xxxx xxxx  64, 305
B2D0(8)        B2D07  B2D06       B2D05     B2D04    B2D03    B2D02    B2D01    B2D00    xxxx xxxx  64, 305
B2DLC(8)              RXRTR                           DLC3     DLC2     DLC1    DLC0     -xxx xxxx  64, 307
Receive mode      --               RB1       RB0
B2DLC(8)                                              DLC3     DLC2     DLC1
Transmit mode     --  TXRTR       --        --                                  DLC0 -x-- xxxx 64, 307
B2EIDL(8)                                              EID3    EID2     EID1
B2EIDH(8)       EID7  EID6        EID5      EID4      EID11    EID10    EID9    EID0     xxxx xxxx  64, 305
B2SIDL(8)      EID15  EID14       EID13     EID12     EXID              EID17   EID8     xxxx xxxx  64, 304
Receive mode    SID2  SID1        SID0      SRR                  --             EID16    xxxx x-xx  64, 303
B2SIDL(8)                                            EXIDE              EID17
Transmit mode   SID2  SID1        SID0      --                   --             EID16 xxx- x-xx 64, 303
B2SIDH(8)                                              SID6             SID4
B2CON(8)       SID10  SID9            SID8   SID7    FILHIT3   SID5    FILHIT1    SID3   xxxx xxxx 64, 302
Receive mode   RXFUL  RXM1        RXRTRRO   FILHIT4           FILHIT2           FILHIT0  0000 0000 64, 301
B2CON(8)                                             TXREQ             TXPRI1
Transmit mode  TXBIF  RXM1        TXLARB TXERR                RTREN             TXPRI0 0000 0000 64, 301
B1D7(8)                                              B1D73             B1D71
B1D6(8)        B1D77  B1D76       B1D75     B1D74    B1D63    B1D72    B1D61    B1D70    xxxx xxxx  64, 305
B1D5(8)        B1D67  B1D66       B1D65     B1D64    B1D53    B1D62    B1D51    B1D60    xxxx xxxx  64, 305
B1D4(8)        B1D57  B1D56       B1D55     B1D54    B1D43    B1D52    B1D41    B1D50    xxxx xxxx  64, 305
B1D3(8)        B1D47  B1D46       B1D45     B1D44    B1D33    B1D42    B1D31    B1D40    xxxx xxxx  64, 305
B1D2(8)        B1D37  B1D36       B1D35     B1D34    B1D23    B1D32    B1D21    B1D30    xxxx xxxx  64, 305
B1D1(8)        B1D27  B1D26       B1D25     B1D24    B1D13    B1D22    B1D11    B1D20    xxxx xxxx  64, 305
B1D0(8)        B1D17  B1D16       B1D15     B1D14    B1D03    B1D12    B1D01    B1D10    xxxx xxxx  64, 305
B1DLC(8)       B1D07  B1D06       B1D05     B1D04     DLC3    B1D02     DLC1    B1D00    xxxx xxxx  64, 305
Receive mode          RXRTR                                    DLC2             DLC0     -xxx xxxx  64, 307
B1DLC(8)          --               RB1       RB0      DLC3              DLC1
Transmit mode                                                  DLC2
B1EIDL(8)         --  TXRTR       --        --         EID3             EID1    DLC0 -x-- xxxx 64, 307
B1EIDH(8)                                             EID11    EID2     EID9
B1SIDL(8)       EID7  EID6        EID5      EID4      EXID     EID10    EID17   EID0     xxxx xxxx  64, 305
Receive mode   EID15  EID14       EID13     EID12                               EID8     xxxx xxxx  64, 304
B1SIDL(8)       SID2  SID1        SID0      SRR      EXIDE       --     EID17   EID16    xxxx x-xx  64, 303
Transmit mode
B1SIDH(8)       SID2  SID1        SID0      --         SID6      --     SID4    EID16 xxx- x-xx 64, 303
B1CON(8)                                             FILHIT3           FILHIT1
Receive mode   SID10  SID9            SID8   SID7              SID5               SID3   xxxx xxxx 64, 302
B1CON(8)       RXFUL  RXM1        RXRTRRO   FILHIT4  TXREQ    FILHIT2  TXPRI1   FILHIT0  0000 0000 64, 301
Transmit mode
               TXBIF  TXABT TXLARB TXERR                      RTREN             TXPRI0 0000 0000 64, 301

Legend: x = unknown, u = unchanged, - = unimplemented, q = value depends on condition
Note 1: Bit 21 of the PC is only available in Test mode and Serial Programming modes.

       2: The SBOREN bit is only available when CONFIG2L<1:0> = 01; otherwise, it is disabled and reads as `0'. See Section 5.4 "Brown-out Reset (BOR)".
       3: These registers and/or bits are not implemented on PIC18F2X80 devices and are read as `0'. Reset values are shown for PIC18F4X80 devices;

              individual unimplemented bits should be interpreted as `--'.
       4: The PLLEN bit is only available in specific oscillator configuration; otherwise, it is disabled and reads as `0'. See Section 3.6.4 "PLL in INTOSC

              Modes".
       5: The RE3 bit is only available when Master Clear Reset is disabled (CONFIG3H<7> = 0); otherwise, RE3 reads as `0'. This bit is read-only.
       6: RA6/RA7 and their associated latch and direction bits are individually configured as port pins based on various primary oscillator modes. When

              disabled, these bits read as `0'.
       7: CAN bits have multiple functions depending on the selected mode of the CAN module.
       8: This register reads all `0's until the ECANTM technology is set up in Mode 1 or Mode 2.
       9: These registers are available on PIC18F4X80 devices only.

2009 Microchip Technology Inc.                                                         DS39637D-page 91
PIC18F2480/2580/4480/4580

TABLE 6-2: REGISTER FILE SUMMARY (PIC18F2480/2580/4480/4580) (CONTINUED)

File Name      Bit 7    Bit 6   Bit 5     Bit 4    Bit 3    Bit 2    Bit 1    Bit 0     Value on Details on
                                                                                       POR, BOR Page:

B0D7(8)        B0D77    B0D76   B0D75     B0D74    B0D73    B0D72    B0D71    B0D70    xxxx xxxx  64, 305
B0D6(8)        B0D67    B0D66   B0D65     B0D64    B0D63    B0D62    B0D61    B0D60    xxxx xxxx  64, 305
B0D5(8)        B0D57    B0D56   B0D55     B0D54    B0D53    B0D52    B0D51    B0D50    xxxx xxxx  64, 305
B0D4(8)        B0D47    B0D46   B0D45     B0D44    B0D43    B0D42    B0D41    B0D40    xxxx xxxx  64, 305
B0D3(8)        B0D37    B0D36   B0D35     B0D34    B0D33    B0D32    B0D31    B0D30    xxxx xxxx  64, 305
B0D2(8)        B0D27    B0D26   B0D25     B0D24    B0D23    B0D22    B0D21    B0D20    xxxx xxxx  64, 305
B0D1(8)        B0D17    B0D16   B0D15     B0D14    B0D13    B0D12    B0D11    B0D10    xxxx xxxx  64, 305
B0D0(8)        B0D07    B0D06   B0D05     B0D04    B0D03    B0D02    B0D01    B0D00    xxxx xxxx  64, 305
B0DLC(8)                RXRTR                       DLC3     DLC2     DLC1    DLC0     -xxx xxxx  64, 307
Receive mode      --             RB1       RB0
B0DLC(8)                                            DLC3     DLC2     DLC1
Transmit mode     --    TXRTR   --        --                                  DLC0 -x-- xxxx 64, 307
B0EIDL(8)                                            EID3    EID2     EID1
B0EIDH(8)       EID7    EID6    EID5      EID4      EID11    EID10     EID9   EID0     xxxx xxxx  65, 305
B0SIDL(8)      EID15    EID14   EID13     EID12     EXID              EID17   EID8     xxxx xxxx  65, 304
Receive mode    SID2    SID1    SID0      SRR                  --             EID16    xxxx x-xx  65, 303
B0SIDL(8)                                          EXIDE              EID17
Transmit mode   SID2    SID1    SID0      --                   --             EID16 xxx- x-xx 65, 303
B0SIDH(8)                                            SID6             SID4
B0CON(8)       SID10    SID9        SID8    SID7   FILHIT3   SID5    FILHIT1    SID3   xxxx xxxx 65, 302
Receive mode   RXFUL    RXM1    RXRTRRO   FILHIT4           FILHIT2           FILHIT0  0000 0000 64, 301
B0CON(8)                                           TXREQ             TXPRI1
Transmit mode  TXBIF    TXABT TXLARB TXERR                  RTREN             TXPRI0 0000 0000 64, 301

TXBIE          --       --      --        TXB2IE   TXB1IE   TXB0IE   --       --       ---0 00-- 65, 324

BIE0           B5IE     B4IE    B3IE      B2IE     B1IE     B0IE     RXB1IE   RXB0IE 0000 0000 65, 324

BSEL0          B5TXEN B4TXEN B3TXEN B2TXEN B1TXEN           B0TXEN   --       --       0000 00-- 65, 307

MSEL3          FIL15_1  FIL15_0 FIL14_1 FIL14_0    FIL13_1  FIL13_0  FIL12_1  FIL12_0 0000 0000 65, 316

MSEL2          FIL11_1  FIL11_0 FIL10_1 FIL10_0    FIL9_1   FIL9_0   FIL8_1   FIL8_0 0000 0000 65, 315

MSEL1          FIL7_1   FIL7_0  FIL6_1    FIL6_0   FIL5_1   FIL5_0   FIL4_1   FIL4_0 0000 0101 65, 314

MSEL0          FIL3_1   FIL3_0  FIL2_1    FIL2_0   FIL1_1   FIL1_0   FIL0_1   FIL0_0 0101 0000 65, 313

RXFBCON7       F15BP_3 F15BP_2 F15BP_1 F15BP_0 F14BP_3      F14BP_2  F14BP_1  F14BP_0 0000 0000 65, 312

RXFBCON6       F13BP_3 F13BP_2 F13BP_1 F13BP_0 F12BP_3      F12BP_2  F12BP_1  F12BP_0 0000 0000 65, 312

RXFBCON5       F11BP_3 F11BP_2 F11BP_1 F11BP_0 F10BP_3      F10BP_2  F10BP_1  F10BP_0 0000 0000 65, 312

RXFBCON4       F9BP_3   F9BP_2 F9BP_1 F9BP_0       F8BP_3   F8BP_2   F8BP_1   F8BP_0 0000 0000 65, 312

RXFBCON3       F7BP_3   F7BP_2 F7BP_1 F7BP_0       F6BP_3   F6BP_2   F6BP_1   F6BP_0 0000 0000 65, 312

RXFBCON2       F5BP_3   F5BP_2 F5BP_1 F5BP_0       F4BP_3   F4BP_2   F4BP_1   F4BP_0 0001 0001 65, 312

RXFBCON1       F3BP_3   F3BP_2 F3BP_1 F3BP_0       F2BP_3   F2BP_2   F2BP_1   F2BP_0 0001 0001 65, 312

RXFBCON0       F1BP_3   F1BP_2 F1BP_1 F1BP_0       F0BP_3   F0BP_2   F0BP_1   F0BP_0 0000 0000 65, 312

SDFLC          --       --      --        FLC4     FLC3     FLC2     FLC1     FLC0 ---0 0000 65, 312

RXFCON1        RXF15EN RXF14EN RXF13EN RXF12EN RXF11EN RXF10EN       RXF9EN   RXF8EN 0000 0000 65, 311

RXFCON0        RXF7EN RXF6EN RXF5EN RXF4EN RXF3EN           RXF2EN   RXF1EN   RXF0EN 0000 0000 65, 311

RXF15EIDL      EID7     EID6    EID5      EID4     EID3     EID2     EID1     EID0     xxxx xxxx 65, 309

Legend: x = unknown, u = unchanged, - = unimplemented, q = value depends on condition
Note 1: Bit 21 of the PC is only available in Test mode and Serial Programming modes.

       2: The SBOREN bit is only available when CONFIG2L<1:0> = 01; otherwise, it is disabled and reads as `0'. See Section 5.4 "Brown-out Reset (BOR)".
       3: These registers and/or bits are not implemented on PIC18F2X80 devices and are read as `0'. Reset values are shown for PIC18F4X80 devices;

              individual unimplemented bits should be interpreted as `--'.
       4: The PLLEN bit is only available in specific oscillator configuration; otherwise, it is disabled and reads as `0'. See Section 3.6.4 "PLL in INTOSC

              Modes".
       5: The RE3 bit is only available when Master Clear Reset is disabled (CONFIG3H<7> = 0); otherwise, RE3 reads as `0'. This bit is read-only.
       6: RA6/RA7 and their associated latch and direction bits are individually configured as port pins based on various primary oscillator modes. When

              disabled, these bits read as `0'.
       7: CAN bits have multiple functions depending on the selected mode of the CAN module.
       8: This register reads all `0's until the ECANTM technology is set up in Mode 1 or Mode 2.
       9: These registers are available on PIC18F4X80 devices only.

DS39637D-page 92                                                               2009 Microchip Technology Inc.
                                         PIC18F2480/2580/4480/4580

TABLE 6-2: REGISTER FILE SUMMARY (PIC18F2480/2580/4480/4580) (CONTINUED)

File Name  Bit 7  Bit 6           Bit 5  Bit 4  Bit 3   Bit 2  Bit 1  Bit 0   Value on Details on
                                                                             POR, BOR Page:

RXF15EIDH  EID15  EID14           EID13  EID12  EID11   EID10  EID9   EID8   xxxx xxxx 65, 309

RXF15SIDL  SID2   SID1            SID0   --     EXIDEN  --     EID17  EID16 xxx- x-xx 65, 308

RXF15SIDH  SID10  SID9            SID8   SID7   SID6    SID5   SID4   SID3   xxxx xxxx 65, 309

RXF14EIDL  EID7   EID6            EID5   EID4   EID3    EID2   EID1   EID0   xxxx xxxx 65, 309

RXF14EIDH  EID15  EID14           EID13  EID12  EID11   EID10  EID9   EID8   xxxx xxxx 65, 309

RXF14SIDL  SID2   SID1            SID0   --     EXIDEN  --     EID17  EID16 xxx- x-xx 65, 308

RXF14SIDH  SID10  SID9            SID8   SID7   SID6    SID5   SID4   SID3   xxxx xxxx 65, 309

RXF13EIDL  EID7   EID6            EID5   EID4   EID3    EID2   EID1   EID0   xxxx xxxx 66, 309

RXF13EIDH  EID15  EID14           EID13  EID12  EID11   EID10  EID9   EID8   xxxx xxxx 66, 309

RXF13SIDL  SID2   SID1            SID0   --     EXIDEN  --     EID17  EID16 xxx- x-xx 66, 308

RXF13SIDH  SID10  SID9            SID8   SID7   SID6    SID5   SID4   SID3   xxxx xxxx 66, 309

RXF12EIDL  EID7   EID6            EID5   EID4   EID3    EID2   EID1   EID0   xxxx xxxx 66, 309

RXF12EIDH  EID15  EID14           EID13  EID12  EID11   EID10  EID9   EID8   xxxx xxxx 66, 309

RXF12SIDL  SID2   SID1            SID0   --     EXIDEN  --     EID17  EID16 xxx- x-xx 66, 308

RXF12SIDH  SID10  SID9            SID8   SID7   SID6    SID5   SID4   SID3   xxxx xxxx 66, 309

RXF11EIDL  EID7   EID6            EID5   EID4   EID3    EID2   EID1   EID0   xxxx xxxx 66, 309

RXF11EIDH  EID15  EID14           EID13  EID12  EID11   EID10  EID9   EID8   xxxx xxxx 66, 309

RXF11SIDL  SID2   SID1            SID0   --     EXIDEN  --     EID17  EID16 xxx- x-xx 66, 308

RXF11SIDH  SID10  SID9            SID8   SID7   SID6    SID5   SID4   SID3   xxxx xxxx 66, 309

RXF10EIDL  EID7   EID6            EID5   EID4   EID3    EID2   EID1   EID0   xxxx xxxx 66, 309

RXF10EIDH  EID15  EID14           EID13  EID12  EID11   EID10  EID9   EID8   xxxx xxxx 66, 309

RXF10SIDL  SID2   SID1            SID0   --     EXIDEN  --     EID17  EID16 xxx- x-xx 66, 308

RXF10SIDH  SID10  SID9            SID8   SID7   SID6    SID5   SID4   SID3   xxxx xxxx 66, 309

RXF9EIDL   EID7   EID6            EID5   EID4   EID3    EID2   EID1   EID0   xxxx xxxx 66, 309

RXF9EIDH   EID15  EID14           EID13  EID12  EID11   EID10  EID9   EID8   xxxx xxxx 66, 309

RXF9SIDL   SID2   SID1            SID0   --     EXIDEN  --     EID17  EID16 xxx- x-xx 66, 308

RXF9SIDH   SID10  SID9            SID8   SID7   SID6    SID5   SID4   SID3   xxxx xxxx 66, 309

RXF8EIDL   EID7   EID6            EID5   EID4   EID3    EID2   EID1   EID0   xxxx xxxx 66, 309

RXF8EIDH   EID15  EID14           EID13  EID12  EID11   EID10  EID9   EID8   xxxx xxxx 66, 309

RXF8SIDL   SID2   SID1            SID0   --     EXIDEN  --     EID17  EID16 xxx- x-xx 66, 308

RXF8SIDH   SID10  SID9            SID8   SID7   SID6    SID5   SID4   SID3   xxxx xxxx 66, 309

RXF7EIDL   EID7   EID6            EID5   EID4   EID3    EID2   EID1   EID0   xxxx xxxx 66, 309

RXF7EIDH   EID15  EID14           EID13  EID12  EID11   EID10  EID9   EID8   xxxx xxxx 66, 309

RXF7SIDL   SID2   SID1            SID0   --     EXIDEN  --     EID17  EID16 xxx- x-xx 66, 308

RXF7SIDH   SID10  SID9            SID8   SID7   SID6    SID5   SID4   SID3   xxxx xxxx 66, 309

RXF6EIDL   EID7   EID6            EID5   EID4   EID3    EID2   EID1   EID0   xxxx xxxx 66, 309

RXF6EIDH   EID15  EID14           EID13  EID12  EID11   EID10  EID9   EID8   xxxx xxxx 66, 309

RXF6SIDL   SID2   SID1            SID0   --     EXIDEN  --     EID17  EID16 xxx- x-xx 66, 308

RXF6SIDH   SID10  SID9            SID8   SID7   SID6    SID5   SID4   SID3   xxxx xxxx 66, 309

Legend: x = unknown, u = unchanged, - = unimplemented, q = value depends on condition
Note 1: Bit 21 of the PC is only available in Test mode and Serial Programming modes.

       2: The SBOREN bit is only available when CONFIG2L<1:0> = 01; otherwise, it is disabled and reads as `0'. See Section 5.4 "Brown-out Reset (BOR)".
       3: These registers and/or bits are not implemented on PIC18F2X80 devices and are read as `0'. Reset values are shown for PIC18F4X80 devices;

              individual unimplemented bits should be interpreted as `--'.
       4: The PLLEN bit is only available in specific oscillator configuration; otherwise, it is disabled and reads as `0'. See Section 3.6.4 "PLL in INTOSC

              Modes".
       5: The RE3 bit is only available when Master Clear Reset is disabled (CONFIG3H<7> = 0); otherwise, RE3 reads as `0'. This bit is read-only.
       6: RA6/RA7 and their associated latch and direction bits are individually configured as port pins based on various primary oscillator modes. When

              disabled, these bits read as `0'.
       7: CAN bits have multiple functions depending on the selected mode of the CAN module.
       8: This register reads all `0's until the ECANTM technology is set up in Mode 1 or Mode 2.
       9: These registers are available on PIC18F4X80 devices only.

2009 Microchip Technology Inc.                                             DS39637D-page 93
PIC18F2480/2580/4480/4580

6.3.5 STATUS REGISTER                                       It is recommended that only BCF, BSF, SWAPF, MOVFF
                                                            and MOVWF instructions are used to alter the STATUS
The STATUS register, shown in Register 6-2, contains        register, because these instructions do not affect the Z,
the arithmetic status of the ALU. As with any other SFR,    C, DC, OV or N bits in the STATUS register.
it can be the operand for any instruction.
                                                            For other instructions that do not affect Status bits, see
If the STATUS register is the destination for an instruc-   the instruction set summaries in Table 26-2 and
tion that affects the Z, DC, C, OV or N bits, the results   Table 26-3.
of the instruction are not written; instead, the status is
updated according to the instruction performed. There-      Note:  The C and DC bits operate as the borrow
fore, the result of an instruction with the STATUS                 and digit borrow bits respectively in
register as its destination may be different than                  subtraction.
intended. As an example, CLRF STATUS will set the Z
bit and leave the remaining Status bits unchanged
(`000u u1uu').

REGISTER 6-2: STATUS REGISTER

       U-0         U-0  U-0               R/W-x             R/W-x                 R/W-x  R/W-x  R/W-x
        --                                                   OV                      Z   DC(1)   C(2)
bit 7              --   --                N
                                                                                                       bit 0

Legend:                 W = Writable bit                    U = Unimplemented bit, read as `0'
R = Readable bit        `1' = Bit is set
-n = Value at POR                                           `0' = Bit is cleared         x = Bit is unknown

bit 7-5     Unimplemented: Read as `0'
bit 4
            N: Negative bit
bit 3       This bit is used for signed arithmetic (2's complement). It indicates whether the result was negative
            (ALU MSB = 1).
bit 2       1 = Result was negative
bit 1       0 = Result was positive
bit 0
            OV: Overflow bit
            This bit is used for signed arithmetic (2's complement). It indicates an overflow of the 7-bit magnitude
            which causes the sign bit (bit 7) to change state.

            1 = Overflow occurred for signed arithmetic (in this arithmetic operation)
            0 = No overflow occurred

            Z: Zero bit

            1 = The result of an arithmetic or logic operation is zero
            0 = The result of an arithmetic or logic operation is not zero
            DC: Digit carry/borrow bit(1)
            For ADDWF, ADDLW, SUBLW and SUBWF instructions:
            1 = A carry-out from the 4th low-order bit of the result occurred
            0 = No carry-out from the 4th low-order bit of the result

            C: Carry/borrow bit(2)
            For ADDWF, ADDLW, SUBLW and SUBWF instructions:
            1 = A carry-out from the Most Significant bit of the result occurred
            0 = No carry-out from the Most Significant bit of the result occurred

Note 1:     For borrow, the polarity is reversed. A subtraction is executed by adding the two's complement of the
        2:  second operand. For rotate (RRF, RLF) instructions, this bit is loaded with either the bit 4 or bit 3 of the
            source register.

            For borrow, the polarity is reversed. A subtraction is executed by adding the two's complement of the
            second operand. For rotate (RRF, RLF) instructions, this bit is loaded with either the high or low-order bit of
            the source register.

DS39637D-page 94                                                                         2009 Microchip Technology Inc.
                                  PIC18F2480/2580/4480/4580

6.4 Data Addressing Modes                                  Purpose Register File") or a location in the Access
                                                           Bank (Section 6.3.2 "Access Bank") as the data
Note:  The execution of some instructions in the           source for the instruction.
       core PIC18 instruction set are changed
       when the PIC18 extended instruction                 The Access RAM bit `a' determines how the address is
       set is enabled. See Section 6.6 "Data               interpreted. When `a' is `1', the contents of the BSR
       Memory and the Extended Instruction                 (Section 6.3.1 "Bank Select Register (BSR)") are
       Set" for more information.                          used with the address to determine the complete 12-bit
                                                           address of the register. When `a' is `0', the address is
While the program memory can be addressed in only          interpreted as being a register in the Access Bank.
one way through the program counter information        Addressing that uses the Access RAM is sometimes
in the data memory space can be addressed in several       also known as Direct Forced Addressing mode.
ways. For most instructions, the addressing mode is
fixed. Other instructions may use up to three modes,       A few instructions, such as MOVFF, include the entire
depending on which operands are used and whether or        12-bit address (either source or destination) in their
not the extended instruction set is enabled.               opcodes. In these cases, the BSR is ignored entirely.

The addressing modes are:                                  The destination of the operation's results is determined
                                                           by the destination bit, `d'. When `d' is `1', the results are
Inherent                                                 stored back in the source register, overwriting its origi-
                                                           nal contents. When `d' is `0', the results are stored in
Literal                                                  the W register. Instructions without the `d' argument
Direct                                                   have a destination that is implicit in the instruction; their
Indirect                                                 destination is either the target register being operated
                                                           on or the W register.
An additional addressing mode, Indexed Literal Offset,
is available when the extended instruction set is          6.4.3 INDIRECT ADDRESSING
enabled (XINST Configuration bit = 1). Its operation is
discussed in greater detail in Section 6.6.1 "Indexed      Indirect Addressing allows the user to access a location
Addressing with Literal Offset".                           in data memory without giving a fixed address in the
                                                           instruction. This is done by using File Select Registers
6.4.1  INHERENT AND LITERAL                                (FSRs) as pointers to the locations to be read or written
       ADDRESSING                                          to. Since the FSRs are themselves located in RAM as
                                                           Special File Registers, they can also be directly manip-
Many PIC18 control instructions do not need any            ulated under program control. This makes FSRs very
argument at all; they either perform an operation that     useful in implementing data structures, such as tables
globally affects the device or they operate implicitly on  and arrays in data memory.
one register. This addressing mode is known as
Inherent Addressing. Examples include SLEEP, RESET         The registers for Indirect Addressing are also imple-
and DAW.                                                   mented with Indirect File Operands (INDFs) that permit
                                                           automatic manipulation of the pointer value with
Other instructions work in a similar way but require an    auto-incrementing, auto-decrementing or offsetting
additional explicit argument in the opcode. This is        with another value. This allows for efficient code, using
known as Literal Addressing mode because they              loops, such as the example of clearing an entire RAM
require some literal value as an argument. Examples        bank in Example 6-5.
include ADDLW and MOVLW which, respectively, add or
move a literal value to the W register. Other examples     EXAMPLE 6-5:        HOW TO CLEAR RAM
include CALL and GOTO, which include a 20-bit                                  (BANK 1) USING
program memory address.                                                        INDIRECT ADDRESSING

6.4.2 DIRECT ADDRESSING                                    NEXT  LFSR          FSR0, 100h  ;
                                                                 CLRF          POSTINC0    ; Clear INDF
Direct Addressing specifies all or part of the source                                      ; register then
and/or destination address of the operation within the                  BTFSS  FSR0H,1     ; inc pointer
opcode itself. The options are specified by the                                NEXT        ; All done with
arguments accompanying the instruction.                                 BRA                ; Bank1?
                                                           CONTINUE                        ; NO, clear next
In the core PIC18 instruction set, bit-oriented and                                        ; YES, continue
byte-oriented instructions use some version of Direct
Addressing by default. All of these instructions include
some 8-bit literal address as their Least Significant
Byte. This address specifies either a register address in
one of the banks of data RAM (Section 6.3.3 "General

2009 Microchip Technology Inc.                                                           DS39637D-page 95
PIC18F2480/2580/4480/4580

6.4.3.1  FSR Registers and the                                mapped in the SFR space, but are not physically imple-
         INDF Operand                                         mented. Reading or writing to a particular INDF register
                                                              actually accesses its corresponding FSR register pair.
At the core of Indirect Addressing are three sets of          A read from INDF1, for example, reads the data at the
registers: FSR0, FSR1 and FSR2. Each represents a             address indicated by FSR1H:FSR1L. Instructions that
pair of 8-bit registers, FSRnH and FSRnL. The four            use the INDF registers as operands actually use the
upper bits of the FSRnH register are not used, so each        contents of their corresponding FSR as a pointer to the
FSR pair holds a 12-bit value. This represents a value        instruction's target. The INDF operand is just a
that can address the entire range of the data memory          convenient way of using the pointer.
in a linear fashion. The FSR register pairs, then, serve
as pointers to data memory locations.                         Because Indirect Addressing uses a full 12-bit address,
                                                              data RAM banking is not necessary. Thus, the current
Indirect Addressing is accomplished with a set of             contents of the BSR and the Access RAM bit have no
Indirect File Operands, INDF0 through INDF2. These            effect on determining the target address.
can be thought of as "virtual" registers: they are

FIGURE 6-8:       INDIRECT ADDRESSING

Using an instruction with one of the       ADDWF, INDF1, 1       000h  Bank 0
Indirect Addressing registers as the                             100h  Bank 1
operand....                                                      200h
                                                                 300h  Bank 2
                                           FSR1H:FSR1L
...uses the 12-bit address stored in                                   Bank 3
the FSR pair associated with that       7                 07  0        through
register....                                                           Bank 13

                                        xxxx1110 11001100

...to determine the data memory                                  E00h       Bank 14
location to be used in that operation.                           F00h       Bank 15
                                                                 FFFh
In this case, the FSR1 pair contains                                   Data Memory
ECCh. This means the contents of
location ECCh will be added to that
of the W register and stored back in
ECCh.

DS39637D-page 96                                                 2009 Microchip Technology Inc.
                                  PIC18F2480/2580/4480/4580

6.4.3.2  FSR Registers and POSTINC,                         6.4.3.3 Operations by FSRs on FSRs
         POSTDEC, PREINC and PLUSW
                                                            Indirect Addressing operations that target other FSRs
In addition to the INDF operand, each FSR register pair     or virtual registers represent special cases. For
also has four additional indirect operands. Like INDF,      example, using an FSR to point to one of the virtual
these are "virtual" registers that cannot be indirectly     registers will not result in successful operations. As a
read or written to. Accessing these registers actually      specific case, assume that FSR0H:FSR0L contains
accesses the associated FSR register pair, but also         FE7h, the address of INDF1. Attempts to read the
performs a specific action on its stored value. They are:   value of the INDF1 using INDF0 as an operand will
                                                            return 00h. Attempts to write to INDF1 using INDF0 as
POSTDEC: accesses the FSR value, then                     the operand will result in a NOP.
   automatically decrements it by 1 afterwards
                                                            On the other hand, using the virtual registers to write to
POSTINC: accesses the FSR value, then                     an FSR pair may not occur as planned. In these cases,
   automatically increments it by 1 afterwards              the value will be written to the FSR pair but without any
                                                            incrementing or decrementing. Thus, writing to INDF2
PREINC: increments the FSR value by 1, then               or POSTDEC2 will write the same value to the
   uses it in the operation                                 FSR2H:FSR2L.

PLUSW: adds the signed value of the W register            Since the FSRs are physical registers mapped in the
   (range of -127 to 128) to that of the FSR and uses       SFR space, they can be manipulated through all direct
   the new value in the operation.                          operations. Users should proceed cautiously when
                                                            working on these registers, particularly if their code
In this context, accessing an INDF register, uses the       uses Indirect Addressing.
value in the FSR registers without changing them.
Similarly, accessing a PLUSW register gives the FSR         Similarly, operations by Indirect Addressing are gener-
value offset by that in the W register; neither value is    ally permitted on all other SFRs. Users should exercise
actually changed in the operation. Accessing the other      the appropriate caution that they do not inadvertently
virtual registers changes the value of the FSR              change settings that might affect the operation of the
registers.                                                  device.

Operations on the FSRs with POSTDEC, POSTINC
and PREINC affect the entire register pair; that is, roll-
overs of the FSRnL register from FFh to 00h carry over
to the FSRnH register. On the other hand, results of
these operations do not change the value of any flags
in the STATUS register (e.g., Z, N, OV, etc.).

The PLUSW register can be used to implement a form
of Indexed Addressing in the data memory space. By
manipulating the value in the W register, users can
reach addresses that are fixed offsets from pointer
addresses. In some applications, this can be used to
implement some powerful program control structure,
such as software stacks, inside of data memory.

2009 Microchip Technology Inc.                            DS39637D-page 97
PIC18F2480/2580/4480/4580

6.5 Program Memory and the                                     When using the extended instruction set, this
         Extended Instruction Set                              addressing mode requires the following:

The operation of program memory is unaffected by the            The use of the Access Bank is forced (`a' = 0);
use of the extended instruction set.                              and

Enabling the extended instruction set adds eight                The file address argument is less than or equal to
additional two-word commands to the existing                      5Fh.
PIC18 instruction set: ADDFSR, ADDULNK, CALLW,
MOVSF, MOVSS, PUSHL, SUBFSR and SUBULNK. These                 Under these conditions, the file address of the instruc-
instructions are executed as described in                      tion is not interpreted as the lower byte of an address
Section 6.2.4 "Two-Word Instructions".                         (used with the BSR in Direct Addressing), or as an 8-bit
                                                               address in the Access Bank. Instead, the value is
6.6 Data Memory and the Extended                               interpreted as an offset value to an Address Pointer,
         Instruction Set                                       specified by FSR2. The offset and the contents of
                                                               FSR2 are added to obtain the target address of the
                                                               operation.

Enabling the PIC18 extended instruction set (XINST             6.6.2  INSTRUCTIONS AFFECTED BY
Configuration bit = 1) significantly changes certain                  INDEXED LITERAL OFFSET MODE
aspects of data memory and its addressing. Specifically,
the use of the Access Bank for many of the core PIC18          Any of the core PIC18 instructions that can use Direct
instructions is different. This is due to the introduction of  Addressing are potentially affected by the Indexed
a new addressing mode for the data memory space. This          Literal Offset Addressing mode. This includes all
mode also alters the behavior of Indirect Addressing           byte-oriented and bit-oriented instructions, or almost
using FSR2 and its associated operands.                        one-half of the standard PIC18 instruction set. Instruc-
                       &