datasheet

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

型号

产品描述

搜索

PIC18F4580-I/ML

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

器件描述

8-bit Microcontrollers - MCU 32 KB FL 1536 RAM 36 I/O

参数

产品属性属性值
Product AttributeAttribute Value
制造商:
Manufacturer:
Microchip
产品种类:
Product Category:
8-bit Microcontrollers - MCU
RoHS:YES
安装风格:
Mounting Style:
SMD/SMT
封装 / 箱体:
Package / Case:
QFN-44
系列:
Series:
PIC18(L)Fxx80
Core:PIC18
Data Bus Width:8 bit
Maximum Clock Frequency:40 MHz
Program Memory Size:32 kB
Data RAM Size:1.5 kB
ADC Resolution:10 bit
Number of I/Os:36 I/O
工作电源电压:
Operating Supply Voltage:
5.5 V
最小工作温度:
Minimum Operating Temperature:
- 40 C
最大工作温度:
Maximum Operating Temperature:
+ 85 C
接口类型:
Interface Type:
ECAN, EUSART, I2C, MSSP, SPI
封装:
Packaging:
Tube
高度:
Height:
0.88 mm
长度:
Length:
8 mm
产品:
Product:
MCU
Program Memory Type:Flash
宽度:
Width:
8 mm
商标:
Brand:
Microchip Technology
Data RAM Type:SRAM
Data ROM Size:256 B
Data ROM Type:EEPROM
Number of ADC Channels:11
Number of Timers/Counters:4 Timer
Processor Series:PIC18
产品类型:
Product Type:
8-bit Microcontrollers - MCU
工厂包装数量:
Factory Pack Quantity:
45
子类别:
Subcategory:
Microcontrollers - MCU
电源电压-最大:
Supply Voltage - Max:
5.5 V
电源电压-最小:
Supply Voltage - Min:
4.2 V
商标名:
Tradename:
PIC
单位重量:
Unit Weight:
0.013051 oz

PIC18F4580-I/ML器件文档内容

PIC18F2480/2580/4480/4580

                                  Data Sheet

                                  28/40/44-Pin

                                  Enhanced Flash Microcontrollers

with ECAN™ 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                The Microchip name and logo, the Microchip logo, dsPIC,

and may be superseded by updates. It is your responsibility to                 KEELOQ, KEELOQ logo, MPLAB, PIC, PICmicro, PICSTART,

ensure that your application meets with your specifications.                   rfPIC and UNI/O are registered trademarks of Microchip

MICROCHIP         MAKES         NO    REPRESENTATIONS               OR         Technology Incorporated in the U.S.A. and other countries.

WARRANTIES        OF       ANY  KIND  WHETHER         EXPRESS       OR

IMPLIED,       WRITTEN          OR    ORAL,         STATUTORY       OR         FilterLab, Hampshire, HI-TECH C, Linear Active Thermistor,

OTHERWISE,           RELATED          TO       THE    INFORMATION,             MXDEV, MXLAB, SEEVAL and The Embedded Control

INCLUDING      BUT         NOT  LIMITED        TO    ITS  CONDITION,           Solutions Company are registered trademarks of Microchip

QUALITY,       PERFORMANCE,               MERCHANTABILITY           OR         Technology Incorporated in the U.S.A.

FITNESS      FOR     PURPOSE.       Microchip  disclaims       all  liability  Analog-for-the-Digital Age, Application Maestro, CodeGuard,

arising  from  this  information    and   its  use.  Use  of   Microchip       dsPICDEM, dsPICDEM.net, dsPICworks, dsSPEAK, ECAN,

devices in life support and/or safety applications is entirely at              ECONOMONITOR, FanSense, HI-TIDE, In-Circuit Serial

the buyer’s risk, and the buyer agrees to defend, indemnify and                Programming, ICSP, Mindi, MiWi, MPASM, MPLAB Certified

hold harmless Microchip from any and all damages, claims,                      logo, MPLIB, MPLINK, mTouch, Octopus, Omniscient Code

suits, or expenses resulting from such use. No licenses are                    Generation, PICC, PICC-18, PICDEM, PICDEM.net, PICkit,

conveyed,      implicitly  or   otherwise,     under      any  Microchip       PICtail, PIC32 logo, REAL ICE, rfLAB, Select Mode, Total

intellectual property rights.                                                  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.

                                                                               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.

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

      28/40/44-Pin Enhanced Flash Microcontrollers with

   ECAN™ 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                         (40/44-pin devices only):

•  Timer1 Oscillator:   1 μA, 32 kHz, 2V                             -     One, two or four PWM outputs

•  Watchdog Timer:      1.7 μA                                       -     Selectable polarity

•  Two-Speed Oscillator Start-up                                     -     Programmable dead time

                                                                     -     Auto-shutdown and auto-restart

Flexible Oscillator Structure:                                   •   Master Synchronous Serial Port (MSSP) module

•  Four Crystal modes, up to 40 MHz                                  Supporting 3-Wire SPI (all 4 modes) and I2C™

•  4x Phase Lock Loop (PLL) – Available for Crystal                  Master and Slave modes

   and Internal Oscillators)                                     •   Enhanced Addressable USART module

•  Two External RC modes, up to 4 MHz                                -     Supports RS-485, RS-232 and LIN/J2602

•  Two External Clock modes, up to 40 MHz                            -     RS-232 operation using internal oscillator

•  Internal Oscillator Block:                                              block

   -  Fast wake from Sleep and Idle, 1 μs typical                    -     Auto-wake-up on Start bit

   -  8 user-selectable frequencies, from 31 kHz to 8 MHz            -     Auto-Baud Detect

   -  Provides a complete range of clock speeds,                 •   10-Bit, up to 11-Channel Analog-to-Digital

      from 31 kHz to 32 MHz when used with PLL                       Converter (A/D) module, up to 100 ksps

   -  User-tunable to compensate for frequency drift                 -     Auto-acquisition capability

•  Secondary Oscillator using Timer1 @ 32 kHz                        -     Conversion available during Sleep

•  Fail-Safe Clock Monitor                                       •   Dual Analog Comparators with Input Multiplexing

   -  Allows for safe shutdown if peripheral clock stops         ECAN Technology Module Features:

Special Microcontroller Features:                                •   Message Bit Rates up to 1 Mbps

•  C Compiler Optimized Architecture with Optional               •   Conforms to CAN 2.0B Active Specification

   Extended Instruction Set                                      •   Fully Backward Compatible with PIC18XXX8 CAN

•  100,000 Erase/Write Cycle Enhanced Flash                          modules

   Program Memory Typical                                        •   Three Modes of Operation:

•  1,000,000 Erase/Write Cycle Data EEPROM                           -     Legacy, Enhanced Legacy, FIFO

   Memory Typical                                                •   Three Dedicated Transmit Buffers with Prioritization

•  Flash/Data EEPROM Retention: > 40 Years                       •   Two Dedicated Receive Buffers

•  Self-Programmable under Software Control                      •   Six Programmable Receive/Transmit Buffers

•  Priority Levels for Interrupts                                •   Three Full 29-Bit Acceptance Masks

•  8 x 8 Single-Cycle Hardware Multiplier                        •   16 Full 29-Bit Acceptance Filters w/Dynamic

•  Extended Watchdog Timer (WDT):                                    Association

   -  Programmable period from 41 ms to 131s                     •   DeviceNet™ Data Byte Filter Support

•  Single-Supply 5V In-Circuit Serial                            •   Automatic Remote Frame Handling

   Programming™ (ICSP™) via Two Pins                             •   Advanced Error Management Features

•  In-Circuit Debug (ICD) via Two Pins

•  Wide Operating Voltage Range: 2.0V to 5.5V

               Program Memory              Data Memory                     CCP/      MSSP               EUSART

      Device   Flash    # Single-Word     SRAM     EEPROM   I/O  10-Bit    ECCP              Master             Comp.  Timers

               (bytes)  Instructions      (bytes)  (bytes)       A/D (ch)  (PWM)  SPI           I2C™                   8/16-bit

   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  MCLR/VPP/RE3       1                                                                                                         28  RB7/KBI3/PGD

                       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    PIC18F2580                                              24  RB3/CANRX

                       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+      2                                                                                                         20  RB2/INT2/CANTX

                       RA4/T0CKI          3         PIC18F2480                                                                                      19  RB1/INT1/AN8

                       RA5/AN4/SS/HLVDIN  4         PIC18F2580                                                                                      18  RB0/INT0/AN10

                       VSS                5                                                                                                         17  VDD

                       OSC1/CLKI/RA7      6                                                                                                         16  VSS

                       OSC2/CLKO/RA6      7                                                                                                         15  RC7/RX/DT

                                                 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    PIC18F4580                                33                RB0/INT0/FLT0/AN10

                       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)

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

                                                      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             2                                                                                                                                                               32  RC0/T1OSO/T13CKI

                        RD5/PSP5/P1B              3                                                                                                                                                               31  OSC2/CLKO/RA6

                        RD6/PSP6/P1C              4                                                                                                                                                               30  OSC1/CLKI/RA7

                        RD7/PSP7/P1D              5                       PIC18F4480                                                                                                                              29       VSS

                                    VSS           6                       PIC18F4580                                                                                                                              28       VDD

                                    VDD           7                                                                                                                                                               27  RE2/CS/AN7/C2OUT

                   RB0/INT0/FLT0/AN10             8                                                                                                                                                               26  RE1/WR/AN6/C1OUT

                        RB1/INT1/AN8              9                                                                                                                                                               25  RE0/RD/AN5

                   RB2/INT2/CANTX                 10                                                                                                                                                              24  RA5/AN4/SS/HLVDIN

                        RB3/CANRX                 11  12         13       14            15              16              17              18              19             20        21             22                23  RA4/T0CKI

                                                      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             2                                                                                                                                                            32     OSC1/CLKI/RA7

                                    RD5/PSP5/P1B  3                                                                                                                                                            31     VSS

                        RD6/PSP6/P1C              4                                                                                                                                                            30     AVSS

                        RD7/PSP7/P1D              5                       PIC18F4480                                                                                                                           29     VDD

                                       VSS        6                       PIC18F4580                                                                                                                           28     AVDD

                                    AVDD          7                                                                                                                                                            27     RE2/CS/AN7/C2OUT

                                       VDD        8                                                                                                                                                            26     RE1/WR/AN6/C1OUT

                   RB0/INT0/FLT0/AN10             9                                                                                                                                                            25     RE0/RD/AN5

                                    RB1/INT1/AN8  10                                                                                                                                                           24     RA5/AN4/SS/HLVDIN

                        RB2/INT2/CANTX            11                                    15                                              18              19             20        21                            23     RA4/T0CKI
                                                      12         13       14                            16              17                                                                      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

This document contains device specific information for                           AND FEATURES

the following devices:                                            All of the devices in the PIC18F2480/2580/4480/4580

•   PIC18F2480                                                    family  offer  ten  different  oscillator  options,  allowing

                                                                  users a wide range of choices in developing application

•   PIC18F2580                                                    hardware. These include:

•   PIC18F4480                                                    •  Four Crystal modes, using crystals or ceramic

•   PIC18F4580                                                       resonators

This   family  of  devices    offers  the    advantages  of  all  •  Two External Clock modes, offering the option of

PIC18 microcontrollers – namely, high computational                  using two pins (oscillator input and a divide-by-4

performance at an economical price – with the addition               clock output) or one pin (oscillator input, with the

of    high-endurance,         Enhanced       Flash   program         second pin reassigned as general I/O)

memory. In         addition   to      these  features,       the  •  Two External RC Oscillator modes with the same

PIC18F2480/2580/4480/4580 family introduces design                   pin options as the External Clock modes

enhancements       that   make    these    microcontrollers  a    •  An internal oscillator block which provides an

logical  choice          for  many           high-performance,       8 MHz clock (±2% accuracy) and an INTRC

power-sensitive applications.                                        source (approximately 31 kHz, stable over

1.1      New Core Features                                           temperature and VDD), as well as a range of

                                                                     6 user-selectable clock frequencies, between

                                                                     125 kHz to 4 MHz, for a total of 8 clock

1.1.1          nanoWatt TECHNOLOGY                                   frequencies. This option frees the two oscillator

All of the devices in the PIC18F2480/2580/4480/4580                  pins for use as additional general purpose I/O.

family incorporate a range of features that can signifi-          •  A Phase Lock Loop (PLL) frequency multiplier,

cantly   reduce    power     consumption     during  operation.      available to both the high-speed crystal and

Key items include:                                                   internal oscillator modes, which allows clock

•   Alternate Run Modes: By clocking the controller                  speeds of up to 40 MHz. Used with the internal

    from the Timer1 source or the internal oscillator                oscillator, the PLL gives users a complete

    block, power consumption during code execution                   selection of clock speeds, from 31 kHz to

    can be reduced by as much as 90%.                                32 MHz – all without using an external crystal or

•   Multiple Idle Modes: The controller can also run                 clock circuit.

    with its CPU core disabled but the peripherals still          Besides its availability as a clock source, the internal

    active. In these states, power consumption can be             oscillator block provides a stable reference source that

    reduced even further, to as little as 4% of normal            gives   the    family  additional  features    for      robust

    operation requirements.                                       operation:

•   On-the-Fly Mode Switching: The                                •  Fail-Safe Clock Monitor: This option constantly

    power-managed modes are invoked by user code                     monitors the main clock source against a refer-

    during operation, allowing the user to incorporate               ence signal provided by the internal oscillator. If a

    power-saving ideas into their application’s                      clock failure occurs, the controller is switched to

    software design.                                                 the internal oscillator block, allowing for continued

•   Lower Consumption in Key Modules: The                            low-speed operation or a safe application

    power requirements for both Timer1 and the                       shutdown.

    Watchdog Timer have been reduced by up to                     •  Two-Speed Start-up: This option allows the

    80%, with typical values of 1.1 and 2.1 μA,                      internal oscillator to serve as the clock source

    respectively.                                                    from Power-on Reset, or wake-up from Sleep

•   Extended Instruction Set: In addition to the                     mode, until the primary clock source is available.

    standard 75 instructions of the PIC18 instruction

    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

•  Memory Endurance: The Enhanced Flash cells                       Members

   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    The devices are differentiated from each other in six

   than 40 years.                                       ways:

•  Self-Programmability: These devices can write        1.    Flash        program  memory            (16 Kbytes  for

   to their own program memory spaces under inter-

   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        2.    A/D channels (8 for PIC18F2X80 devices; 11 for

   an application that can update itself in the field.        PIC18F4X80 devices).

•  Extended Instruction Set: The                        3.    I/O ports (3 bidirectional ports and 1 input only

   PIC18F2480/2580/4480/4580 family introduces                port     on  PIC18F2X80       devices;  5   bidirectional

   an optional extension to the PIC18 instruction set,        ports on PIC18F4X80 devices).

   which adds 8 new instructions and an Indexed         4.    CCP      and  Enhanced        CCP       implementation

   Addressing mode. This extension, enabled as a              (PIC18F2X80          devices  have  1   standard    CCP

   device configuration option, has been specifically         module;       PIC18F4X80        devices     have    one

   designed to optimize re-entrant application code           standard CCP module and one ECCP module).

   originally developed in high-level languages, such   5.    Parallel      Slave   Port      (present    only    on

   as C.                                                      PIC18F4X80 devices).

•  Enhanced CCP Module: In PWM mode, this               6.    PIC18F4X80 devices provide two comparators.

   module provides 1, 2 or 4 modulated outputs for      All other features for devices in this family are identical.

   controlling half-bridge and full-bridge drivers.     These are summarized in Table 1-1.

   Other features include auto-shutdown, for

   disabling PWM outputs on interrupt or other select   The pinouts for all devices are listed in Table 1-2 and

   conditions and auto-restart, to reactivate outputs   Table 1-3.

   once the condition has cleared.                      Like  all   Microchip      PIC18    devices,  members     of  the

•  Enhanced Addressable USART: This serial              PIC18F2480/2580/4480/4580 family are available as

   communication module is capable of standard          both   standard     and     low-voltage    devices.    Standard

   RS-232 operation and provides support for the        devices with Enhanced Flash memory, designated with

   LIN/J2602 bus protocol. Other enhancements           an   “F”   in  the  part    number  (such     as  PIC18F2580),

   include automatic baud rate detection and a 16-bit   accommodate an operating VDD range of 4.2V to 5.5V.

   Baud Rate Generator for improved resolution.         Low-voltage        parts,   designated    by   “LF”    (such     as

   When the microcontroller is using the internal       PIC18LF2580), function over an extended VDD range

   oscillator block, the EUSART provides stable         of 2.0V to 5.5V.

   operation for applications that talk to the outside

   world without using an external crystal (or its

   accompanying power requirement).

•  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,

                                  Enhanced USART      Enhanced USART      Enhanced USART       Enhanced USART

Parallel Communications (PSP)       No                No                  Yes                  Yes

10-Bit Analog-to-Digital Module   8 Input Channels    8 Input Channels    11 Input Channels    11 Input Channels

Comparators                         0                 0                   2                    2

Resets (and Delays)               POR, BOR,           POR, BOR,           POR, BOR,            POR, BOR,

                                  RESET Instruction,  RESET Instruction,  RESET Instruction,   RESET Instruction,

                                  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

Programmable High/                  Yes               Yes                 Yes                  Yes

Low-Voltage Detect

Programmable Brown-out Reset        Yes               Yes                 Yes                  Yes

Instruction Set                   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

Packages                          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>

                                                  8     8                        Data Latch                        PORTA

          inc/dec logic                                                                                                          RA0/AN0

                                                                                 Data Memory                                     RA1/AN1

             21                      PCLATU  PCLATH                              (.7, 1.5 Kbytes)                                RA2/AN2/VREF-

                         20                                                      Address Latch                                   RA3/AN3/VREF+

                                     PCU     PCH     PCL                                                                         RA4/T0CKI

                                     Program Counter                                                                             RA5/AN4/SS/HLVDIN

                                                                                           12                                    OSC2/CLKO/RA6

                                                                                 Data Address<12>                                OSC1/CLKI/RA7

                                        31 Level Stack

       Address Latch                                                  4             12             4

      Program Memory                      STKPTR                      BSR        FSR0         Access

       (16/32 Kbytes)                                                            FSR1            Bank

          Data Latch                                                             FSR2              12

                                                                                                                   PORTB

                                                                                 inc/dec                                         RB0/INT0/AN10

                         8                                                       logic                                           RB1/INT1/AN8

                             Table Latch                                                                                         RB2/INT2/CANTX

                                                                                                                                 RB3/CANRX

                                                                                 Address                                         RB4/KBI0/AN9

                             ROM Latch                                           Decode                                          RB5/KBI1/PGM

      Instruction Bus <16>                                                                                                       RB6/KBI2/PGC

                                                                                                                                 RB7/KBI3/PGD

                                     IR

                                                                                                       8

                             Instruction             State Machine

                                   Decode &          Control Signals

                                   Control                                       PRODH PRODL

                                                                                                                   PORTC

                                                                                 8 x 8 Multiply                                  RC0/T1OSO/T13CKI

                                                                              3                              8                   RC1/T1OSI

                                                                                                                                 RC2/CCP1

                                                                      BITOP             W                                        RC3/SCK/SCL

                                                                              8            8              8                      RC4/SDI/SDA

OSC1(2)                  Internal                                                                                                RC5/SDO

                         Oscillator               Power-up                       8                        8                      RC6/TX/CK

                            Block                    Timer                                                                       RC7/RX/DT

OSC2(2)                                           Oscillator                     ALU<8>

                         INTRC               Start-up Timer

T1OSI                    Oscillator               Power-on                                    8

                            8 MHz                    Reset

T1OSO                    Oscillator               Watchdog

                                                     Timer

MCLR(1)                  Single-Supply            Brown-out           Band Gap

                         Programming                 Reset            Reference                                    PORTE

                         In-Circuit               Fail-Safe

VDD, VSS                 Debugger            Clock Monitor                                                                       MCLR/VPP/RE3(1)

BOR               Data

HLVD             EEPROM              Timer0          Timer1           Timer2     Timer3

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

      Table Pointer<21>                                                                                                              RA0/AN0/CVREF

                                                                                  Data Latch                                         RA1/AN1

          inc/dec logic                            8     8                                                                           RA2/AN2/VREF-

                                                                                  Data Memory                                        RA3/AN3/VREF+

             21                       PCLATU  PCLATH                              (.7, 1.5 Kbytes)                                   RA4/T0CKI

                                                                                                                                     RA5/AN4/SS/HLVDIN

                          20                                                      Address Latch                                      OSC2/CLKO/RA6

                                      PCU     PCH     PCL                                                                            OSC1/CLKI/RA7

                                      Program Counter                                       12

                                                                                  Data Address<12>

                                                                                                                     PORTB

                                         31 Level Stack                                                                              RB0/INT0/FLT0/AN10

       Address Latch                                                   4             12           4                                  RB1/INT1/AN8

      Program Memory                         STKPTR                    BSR        FSR0      Access                                   RB2/INT2/CANTX

          (16/32 Kbytes)                                                          FSR1         Bank                                  RB3/CANRX

          Data Latch                                                              FSR2               12                              RB4/KBI0/AN9

                                                                                                                                     RB5/KBI1/PGM

                                                                                  inc/dec                                            RB6/KBI2/PGC

                          8                                                       logic                                              RB7/KBI3/PGD

                              Table Latch

                                                                                  Address                            PORTC

                              ROM Latch                                           Decode                                             RC0/T1OSO/T13CKI

      Instruction Bus <16>                                                                                                           RC1/T1OSI

                                                                                                                                     RC2/CCP1

                                         IR                                                                                          RC3/SCK/SCL

                                                                                                                                     RC4/SDI/SDA

                                                                                                     8                               RC5/SDO

                              Instruction             State Machine                                                                  RC6/TX/CK

                                    Decode &          Control Signals                                                                RC7/RX/DT

                                    Control                                       PRODH PRODL

                                                                               3     8 x 8 Multiply

                                                                                                            8        PORTD

                                                                                                                                     RD0/PSP0/C1IN+

                                                                       BITOP             W               8                           RD1/PSP1/C1IN-

                                                                               8            8                                        RD2/PSP2/C2IN+

OSC1(2)                   Internal                                                                                                   RD3/PSP3/C2IN-

                          Oscillator               Power-up                       8                      8                           RD4/PSP4/ECCP1/P1A

                             Block                    Timer                                                                          RD5/PSP5/P1B

OSC2(2)                                            Oscillator                     ALU<8>                                             RD6/PSP6/P1C

                          INTRC               Start-up Timer                                                                         RD7/PSP7/P1D

T1OSI                     Oscillator               Power-on                                    8

                             8 MHz                    Reset

T1OSO                     Oscillator               Watchdog                                                          PORTE

                                                      Timer                                                                          RE0/RD/AN5

MCLR(1)                   Single-Supply            Brown-out           Band Gap                                                      RE1/WR/AN6/C1OUT

                          Programming                 Reset            Reference                                                     RE2/CS/AN7/C2OUT

                          In-Circuit               Fail-Safe                                                                         MCLR/VPP/RE3(1)

VDD, VSS                  Debugger            Clock Monitor

BOR              Data

HLVD             EEPROM               Timer0          Timer1           Timer2        Timer3

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

                                                         Reset to the device.

VPP                                   P                  Programming voltage input.

RE3                                   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.

                                                         ST buffer when configured in RC mode; CMOS otherwise.

CLKI                                  I     CMOS         External clock source input. Always associated with pin

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

RA7                                   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

                                                         Crystal Oscillator mode.

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

                                                         frequency of OSC1 and denotes the instruction cycle rate.

RA6                                   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  = I2C™/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                                    I/O   TTL         Digital I/O.

AN0                                    I     Analog      Analog Input 0.

RA1/AN1                  3        28

RA1                                    I/O   TTL         Digital I/O.

AN1                                    I     Analog      Analog Input 1.

RA2/AN2/VREF-            4        1

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        2

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        3

RA4                                    I/O   TTL         Digital I/O.

T0CKI                                  I     ST          Timer0 external clock input.

RA5/AN4/SS/              7        4

HLVDIN

RA5                                    I/O   TTL         Digital I/O.

AN4                                    I     Analog      Analog Input 4.

SS                                     I     TTL         SPI slave select input.

HLVDIN                                 I     Analog      High/Low-Voltage Detect input.

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   = I2C™/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                                   I/O   TTL         Digital I/O.

INT0                                  I     ST          External Interrupt 0.

AN10                                  I     Analog      Analog Input 10.

RB1/INT1/AN8            22  19

RB1                                   I/O   TTL         Digital I/O.

INT1                                  I     ST          External Interrupt 1.

AN8                                   I     Analog      Analog Input 8.

RB2/INT2/CANTX          23  20

RB2                                   I/O   TTL         Digital I/O.

INT2                                  I     ST          External Interrupt 2.

CANTX                                 O     TTL         CAN bus TX.

RB3/CANRX               24  21

RB3                                   I/O   TTL         Digital I/O.

CANRX                                 I     TTL         CAN bus RX.

RB4/KBI0/AN9            25  22

RB4                                   I/O   TTL         Digital I/O.

KBI0                                  I     TTL         Interrupt-on-change pin.

AN9                                   I     Analog      Analog Input 9.

RB5/KBI1/PGM            26  23

RB5                                   I/O   TTL         Digital I/O.

KBI1                                  I     TTL         Interrupt-on-change pin.

PGM                                   I/O   ST          Low-Voltage ICSP™ Programming enable pin.

RB6/KBI2/PGC            27  24

RB6                                   I/O   TTL         Digital I/O.

KBI2                                  I     TTL         Interrupt-on-change pin.

PGC                                   I/O   ST          In-Circuit Debugger and ICSP programming clock pin.

RB7/KBI3/PGD            28  25

RB7                                   I/O   TTL         Digital I/O.

KBI3                                  I     TTL         Interrupt-on-change pin.

PGD                                   I/O   ST          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  = I2C™/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                                      I/O   ST        Digital I/O.

T1OSO                                    O     —         Timer1 oscillator output.

T13CKI                                   I     ST        Timer1/Timer3 external clock input.

RC1/T1OSI                12       9

RC1                                      I/O   ST        Digital I/O.

T1OSI                                    I     CMOS      Timer1 oscillator input.

RC2/CCP1                 13       10

RC2                                      I/O   ST        Digital I/O.

CCP1                                     I/O   ST        Capture 1 input/Compare 1 output/PWM1 output.

RC3/SCK/SCL              14       11

RC3                                      I/O   ST        Digital I/O.

SCK                                      I/O   ST        Synchronous serial clock input/output for SPI mode.

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

RC4/SDI/SDA              15       12

RC4                                      I/O   ST        Digital I/O.

SDI                                      I     ST        SPI data in.

SDA                                      I/O   I2C       I2C data I/O.

RC5/SDO                  16       13

RC5                                      I/O   ST        Digital I/O.

SDO                                      O     —         SPI data out.

RC6/TX/CK                17       14

RC6                                      I/O   ST        Digital I/O.

TX                                       O     —         EUSART asynchronous transmit.

CK                                       I/O   ST        EUSART synchronous clock (see related RX/DT).

RC7/RX/DT                18       15

RC7                                      I/O   ST        Digital I/O.

RX                                       I     ST        EUSART asynchronous receive.

DT                                       I/O   ST        EUSART synchronous data (see related TX/CK).

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  = I2C™/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

                                                             active-low Reset to the device.

VPP                                          P               Programming voltage input.

RE3                                          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.

                                                             ST buffer when configured in RC mode;

                                                             CMOS otherwise.

CLKI                                         I     CMOS      External clock source input. Always associated with

                                                             pin function OSC1. (See related OSC1/CLKI,

                                                             OSC2/CLKO pins.)

RA7                                          I/O   TTL       General purpose I/O pin.

OSC2/CLKO/RA6            14  33          31                  Oscillator crystal or clock output.

OSC2                                         O     —         Oscillator crystal output. Connects to crystal or

                                                             resonator in Crystal Oscillator mode.

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

                                                             the frequency of OSC1 and denotes the instruction

                                                             cycle rate.

RA6                                          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   = I2C™/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                                          I/O         TTL     Digital I/O.

T0CKI                                        I           ST      Timer0 external clock input.

RA5/AN4/SS/              7        24    24

HLVDIN

RA5                                          I/O         TTL     Digital I/O.

AN4                                          I     Analog        Analog Input 4.

SS                                           I           TTL     SPI slave select input.

HLVDIN                                       I     Analog        High/Low-Voltage Detect input.

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   = I2C™/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                                           I           ST      External Interrupt 0.

INT0                                          I           ST      Enhanced PWM Fault input (ECCP1 module).

FLT0                                          I     Analog        Analog input 10.

AN10

RB1/INT1/AN8              34  10          9

RB1                                           I/O         TTL     Digital I/O.

INT1                                          I           ST      External Interrupt 1.

AN8                                           I     Analog        Analog input 8.

RB2/INT2/CANTX            35  11          10

RB2                                           I/O         TTL     Digital I/O.

INT2                                          I           ST      External Interrupt 2.

CANTX                                         O           TTL     CAN bus TX.

RB3/CANRX                 36  12          11

RB3                                           I/O         TTL     Digital I/O.

CANRX                                         I           TTL     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     Digital I/O.

KBI1                                          I           TTL     Interrupt-on-change pin.

PGM                                           I/O         ST      Low-Voltage ICSP™ Programming enable pin.

RB6/KBI2/PGC              39  16          16

RB6                                           I/O         TTL     Digital I/O.

KBI2                                          I           TTL     Interrupt-on-change pin.

PGC                                           I/O         ST      In-Circuit Debugger and ICSP programming

                                                                  clock pin.

RB7/KBI3/PGD              40  17          17

RB7                                           I/O         TTL     Digital I/O.

KBI3                                          I           TTL     Interrupt-on-change pin.

PGD                                           I/O         ST      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    = I2C™/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.

T1OSO                                        O           —       Timer1 oscillator output.

T13CKI                                       I           ST      Timer1/Timer3 external clock input.

RC1/T1OSI                16       35     35

RC1                                          I/O         ST      Digital I/O.

T1OSI                                        I     CMOS          Timer1 oscillator input.

RC2/CCP1                 17       36     36

RC2                                          I/O         ST      Digital I/O.

CCP1                                         I/O         ST      Capture 1 input/Compare 1 output/PWM1 output.

RC3/SCK/SCL              18       37     37

RC3                                          I/O         ST      Digital I/O.

SCK                                          I/O         ST      Synchronous serial clock input/output for

                                                                 SPI mode.

SCL                                          I/O         I2C     Synchronous serial clock input/output for

                                                                 I2C™ mode.

RC4/SDI/SDA              23       42     42

RC4                                          I/O         ST      Digital I/O.

SDI                                          I           ST      SPI data in.

SDA                                          I/O         I2C     I2C data I/O.

RC5/SDO                  24       43     43

RC5                                          I/O         ST      Digital I/O.

SDO                                          O           —       SPI data out.

RC6/TX/CK                25       44     44

RC6                                          I/O         ST      Digital I/O.

TX                                           O           —       EUSART asynchronous transmit.

CK                                           I/O         ST      EUSART synchronous clock (see related RX/DT).

RC7/RX/DT                26       1      1

RC7                                          I/O         ST      Digital I/O.

RX                                           I           ST      EUSART asynchronous receive.

DT                                           I/O         ST      EUSART synchronous data (see related TX/CK).

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  = I2C™/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                                          I/O         ST      Digital I/O.

PSP0                                         I/O         TTL     Parallel Slave Port data.

C1IN+                                        I     Analog        Comparator 1 input (+).

RD1/PSP1/C1IN-           20  39          39

RD1                                          I/O         ST      Digital I/O.

PSP1                                         I/O         TTL     Parallel Slave Port data.

C1IN-                                        I     Analog        Comparator 1 input (-)

RD2/PSP2/C2IN+           21  40          40

RD2                                          I/O         ST      Digital I/O.

PSP2                                         I/O         TTL     Parallel Slave Port data.

C2IN+                                        I     Analog        Comparator 2 input (+).

RD3/PSP3/C2IN-           22  41          41

RD3                                          I/O         ST      Digital I/O.

PSP3                                         I/O         TTL     Parallel Slave Port data.

C2IN-                                        I     Analog        Comparator 2 input (-).

RD4/PSP4/ECCP1/          27  2           2

P1A

RD4                                          I/O         ST      Digital I/O.

PSP4                                         I/O         TTL     Parallel Slave Port data.

ECCP1                                        I/O         ST      Capture 2 input/Compare 2 output/PWM2 output.

P1A                                          O           TTL     ECCP1 PWM Output A.

RD5/PSP5/P1B             28  3           3

RD5                                          I/O         ST      Digital I/O.

PSP5                                         I/O         TTL     Parallel Slave Port data.

P1B                                          O           TTL     ECCP1 PWM Output B.

RD6/PSP6/P1C             29  4           4

RD6                                          I/O         ST      Digital I/O.

PSP6                                         I/O         TTL     Parallel Slave Port data.

P1C                                          O           TTL     ECCP1 PWM Output C.

RD7/PSP7/P1D             30  5           5

RD7                                          I/O         ST      Digital I/O.

PSP7                                         I/O         TTL     Parallel Slave Port data.

P1D                                          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   = I2C™/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                                            I/O   ST       Digital I/O.

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

                                                                  and CS pins).

    AN5                                            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   = I2C™/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  VSS

family of 8-bit microcontrollers requires attention to a            R2

minimal   set  of  device     pin  connections     before                MCLR

proceeding with development.                                                                              VDD

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

•  All VDD and VSS pins                                                                                   VSS

   (see Section 2.2 “Power Supply Pins”)                                 VSS

•  All AVDD and AVSS pins, regardless of whether or           C6(1)

   not the analog device features are used                               VDD    AVDD

   (see Section 2.2 “Power Supply Pins”)                                              AVSS         VDD  VSS

•  MCLR pin

   (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

   Programming™ (ICSP™) and debugging purposes                Key (all values are recommendations):

   (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                                             R2: 100Ω to 470Ω

   (see Section 2.5 “External Oscillator Pins”)               Note   1:  The example shown is for a PIC18F device

Additionally, the following pins may be required:                        with five VDD/VSS and AVDD/AVSS pairs.

•  VREF+/VREF- pins are used when external voltage                       Other devices may have more or less pairs;

   reference for analog modules is implemented                           adjust the number of decoupling capacitors

                                                                         appropriately.

   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

Consider the following criteria when using decoupling           resistance that connects the power supply source to

capacitors:                                                     the device, and the maximum current drawn by the

   Value and type of capacitor: A 0.1 μF (100 nF),              device in the application. In other words, select the tank

•                                                               capacitor so that it meets the acceptable voltage sag at

   10-20V capacitor is recommended. The capacitor               the device. Typical values range from 4.7 μF to 47 μF.

   should be a low-ESR device, with a resonance

   frequency in the range of 200 MHz and higher.                2.2.3         CONSIDERATIONS WHEN USING

   Ceramic capacitors are recommended.                                        BOR

•  Placement on the printed circuit board: The                  When the Brown-out Reset (BOR) feature is enabled,

   decoupling capacitors should be placed as close              a sudden change in VDD may result in a spontaneous

   to the pins as possible. It is recommended to                BOR event. This can happen when the microcontroller

   place the capacitors on the same side of the                 is operating under normal operating conditions, regard-

   board as the device. If space is constricted, the            less of what the BOR set point has been programmed

   capacitor can be placed on another layer on the              to, and even if VDD does not approach the set point.

   PCB using a via; however, ensure that the trace              The precipitating factor in these BOR events is a rise or

   length from the pin to the capacitor is no greater           fall in VDD with a slew rate faster than 0.15V/μs.

   than 0.25 inch (6 mm).

•  Handling high-frequency noise: If the board is               An application that incorporates adequate decoupling

   experiencing high-frequency noise (upward of                 between the power supplies will not experience such

   tens of MHz), add a second ceramic type capaci-              rapid   voltage    changes.   Additionally,    the   use    of  an

   tor in parallel to the above described decoupling            electrolytic  tank  capacitor     across  VDD   and  VSS,       as

   capacitor. The value of the second capacitor can             described above, will be helpful in preventing high slew

   be in the range of 0.01 μF to 0.001 μF. Place this           rate transitions.

   second capacitor next to each primary decoupling             If the application has components that turn on or off,

   capacitor. In high-speed circuit designs, consider           and share the same VDD circuit as the microcontroller,

   implementing a decade pair of capacitances as                the  BOR      can  be   disabled  in  software  by   using      the

   close to the power and ground pins as possible               SBOREN bit before switching the component. After-

   (e.g., 0.1 μF in parallel with 0.001 μF).                    wards, allow a small delay before re-enabling the BOR.

•  Maximizing performance: On the board layout                  By doing this, it is ensured that the BOR is disabled

   from the power supply circuit, run the power and             during  the   interval  that  might   cause    high  slew       rate

   return traces to the decoupling capacitors first,            changes of VDD.

   and then to the device pins. This ensures that the           Note:         Not all devices incorporate software BOR

   decoupling capacitors are first in the power chain.                        control.  See       Section 5.0   “Reset”         for

   Equally important is to keep the trace length                              device-specific information.

   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         Programming™ (ICSP™) 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   Pull-up resistors, series diodes, and capacitors on the

designs     may      be      implemented,           depending        on  the   PGC and PGD pins are not recommended as they will

application’s requirements.                                                    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                           For device emulation, ensure that the “Communication

the  MCLR      pin     during      programming            and  debugging       Channel Select” (i.e., PGCx/PGDx pins) programmed

operations by using a jumper (Figure 2-2). The jumper                          into the device matches the physical connections for

is replaced for normal run-time operations.                                    the ICSP to the Microchip debugger/emulator tool.

Any  components              associated         with  the      MCLR      pin   For    more   information  on      available  Microchip

should be placed within 0.25 inch (6 mm) of the pin.                           development tools connection requirements, refer to

                                                                               Section 27.0 “Development Support”.

FIGURE 2-2:                     EXAMPLE OF MCLR PIN

                                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

Many microcontrollers have options for at least two                                          OF THE OSCILLATOR

oscillators: a high-frequency primary oscillator and a                                       CIRCUIT

low-frequency        secondary    oscillator        (refer   to                    Single-Sided and In-Line Layouts:

Section 3.0 “Oscillator Configurations” for details).

The oscillator circuit should be placed on the same                                    Copper Pour          Primary Oscillator

                                                                                       (tied to ground)     Crystal

side of the board as the device. Place the oscillator                                                                 DEVICE PINS

circuit close to the respective oscillator pins with no

more  than     0.5 inch  (12 mm)         between    the     circuit

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

                                                                     C1                      `                                      OSC2

Use a grounded copper pour around the oscillator cir-

cuit  to    isolate  it  from     surrounding    circuits.  The      C2                                                             GND

grounded copper pour should be routed directly to the                                        `

MCU ground. Do not run any signal traces or power                                                                                   T1OSO

traces inside the ground pour. Also, if using a two-sided

board, avoid any traces on the other side of the board                                                                              T1OS I

where the crystal is placed.                                         Timer1 Oscillator

                                                                     Crystal                             `

Layout suggestions are shown in Figure 2-4. In-line

packages may be handled with a single-sided layout

that completely encompasses the oscillator pins. With                        T1 Oscillator:  C1             T1 Oscillator: C2

fine-pitch packages, it is not always possible to com-

pletely surround the pins and components. A suitable

solution is to tie the broken guard sections to a mirrored                             Fine-Pitch (Dual-Sided) Layouts:

ground layer. In all cases, the guard trace(s) must be

returned to ground.                                                                          Top Layer Copper Pour

                                                                                                    (tied to ground)

In planning the application’s routing and I/O assign-

ments, ensure that adjacent port pins and other signals              Bottom Layer

in close proximity to the oscillator are benign (i.e., free          Copper Pour

of high frequencies, short rise and fall times, and other            (tied to ground)

similar noise).

For   additional     information  and    design   guidance   on      OSCO

oscillator  circuits,    please   refer  to  these  Microchip                                                                   C2

Application Notes, available at the corporate web site                                                                          Oscillator

(www.microchip.com):                                                 GND                                                            Crystal

•  AN826, “Crystal Oscillator Basics and Crystal                                                                                C1

   Selection for rfPIC™ and PICmicro® Devices”

•  AN849, “Basic PICmicro® Oscillator Design”                        OSCI

•  AN943, “Practical PICmicro® Oscillator Analysis

   and Design”

•  AN949, “Making Your Oscillator Work”

2.6         Unused I/Os                                                       DEVICE PINS

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                                                                       To

the  Configuration    bits,  FOSC<3:0>,         in  Configuration                                                             Internal

Register 1H to select one of these ten modes:                                       XTAL                   RF(3)              Logic

1.   LP          Low-Power Crystal                                                                                   Sleep

2.   XT          Crystal/Resonator                                                  RS(2)

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

4.   HSPLL       High-Speed Crystal/Resonator                         Note   1:  See Table 3-1 and Table 3-2 for initial values of

                 with PLL Enabled                                                C1 and C2.

5.   RC          External Resistor/Capacitor with                            2:  A series resistor (RS) may be required for AT

                 FOSC/4 Output on RA6                                            strip cut crystals.

6.   RCIO        External Resistor/Capacitor with I/O                        3:  RF varies with the oscillator mode chosen.

                 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

                 and RA7                                                         Typical Capacitor Values Used:

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

3.2        Crystal Oscillator/Ceramic                                               2.0 MHz             47 pF                 47 pF

           Resonators                                                               4.0 MHz             33 pF                 33 pF

                                                                      HS            8.0 MHz             27 pF                 27 pF

In XT, LP, HS or HSPLL Oscillator modes, a crystal or                               16.0 MHz            22 pF                 22 pF

ceramic    resonator  is     connected  to      the  OSC1   and       Capacitor values are for design guidance only.

OSC2 pins to establish oscillation. Figure 3-1 shows                  These  capacitors     were       tested  with  the     resonators

the pin connections.                                                  listed below for basic start-up and operation. These

The  oscillator  design      requires  the  use      of  a  parallel  values are not optimized.

resonant crystal.                                                     Different capacitor values may be required to produce

    Note:    Use of a series resonant crystal may give                acceptable oscillator operation. The user should test

             a     frequency      out       of      the     crystal   the performance of the oscillator over the expected

             manufacturer’s specifications.                           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.

                                Typical Capacitor Values        FIGURE 3-2:                EXTERNAL CLOCK

Osc Type      Crystal                   Tested:

                   Freq                                                                    INPUT OPERATION

                                C1                   C2                                    (HS OSCILLATOR

LP            32 kHz            33 pF             33 pF                                    CONFIGURATION)

              200 kHz           15 pF             15 pF

XT                 1 MHz        33 pF             33 pF             Clock from                    OSC1

                   4 MHz        27 pF             27 pF             Ext. System                         PIC18FXXXX

HS                 4 MHz        27 pF             27 pF                          Open             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

Different capacitor values may be required to produce           Reset or after an exit from Sleep mode.

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

See  the  notes    following    this  table  for  additional    logic. Figure 3-3 shows the pin connections for the EC

information.                                                    Oscillator mode.

                    Crystals Used:                              FIGURE 3-3:                EXTERNAL CLOCK

          32 kHz                        4 MHz                                              INPUT OPERATION

      200 kHz                           8 MHz                                              (EC CONFIGURATION)

          1 MHz                         20 MHz

                                                                    Clock from                    OSC1/CLKI

Note  1:      Higher capacitance increases the stability            Ext. System                         PIC18FXXXX

              of the oscillator but also increases the                           FOSC/4           OSC2/CLKO

              start-up time.

      2:      When operating below 3V VDD, or when              The ECIO Oscillator mode functions like the EC mode,

              using certain ceramic resonators at any           except   that    the  OSC2  pin   becomes     an    additional

              voltage, it may be necessary to use the           general purpose I/O pin. The I/O pin becomes bit 6 of

              HS mode or switch to a crystal oscillator.        PORTA (RA6). Figure 3-4 shows the pin connections

      3:      Since each resonator/crystal has its own          for the ECIO Oscillator mode.

              characteristics,  the   user   should  consult

              the  resonator/crystal    manufacturer       for  FIGURE 3-4:                EXTERNAL CLOCK

              appropriate       values       of      external                              INPUT OPERATION

              components.                                                                  (ECIO CONFIGURATION)

      4:      Rs may be required to avoid overdriving

              crystals with low drive level specification.          Clock from                    OSC1/CLKI

      5:      Always verify oscillator performance over             Ext. System                         PIC18FXXXX

              the  VDD    and   temperature  range   that   is                    RA6             I/O (OSC2)

              expected for the application.

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

•   supply voltage                                                   useful for customers who are concerned with EMI due

•   values of the external resistor (REXT) and                       to high-frequency crystals or users who require higher

    capacitor (CEXT)                                                 clock speeds from an internal oscillator.

•   operating temperature                                            3.5.1      HSPLL OSCILLATOR MODE

Given the same device, operating voltage and tempera-                The HSPLL mode makes use of the HS mode oscillator

ture and component values, there will also be unit-to-unit           for frequencies up to 10 MHz. A PLL then multiplies the

frequency variations. These are due to factors such as:              oscillator output frequency by 4 to produce an internal

•   normal manufacturing variation                                   clock frequency up to 40 MHz.

•   difference in lead frame capacitance between                     The PLL is only available to the crystal oscillator when

    package types (especially for low CEXT values)                   the FOSC<3:0> Configuration bits are programmed for

•   variations within the tolerance of limits of REXT                HSPLL mode (= 0110).

    and CEXT

In  the   RC   Oscillator  mode,    the  oscillator   frequency      FIGURE 3-7:             PLL BLOCK DIAGRAM

divided by 4 is available on the OSC2 pin. This signal                                       (HS MODE)

may be used for test purposes or to synchronize other                                  HS Osc Enable

logic. Figure 3-5 shows how the R/C combination is                                           PLL Enable

connected.                                                                    (from Configuration Register 1H)

FIGURE 3-5:                RC OSCILLATOR MODE                             OSC2

          VDD                                                                   HS Mode      FIN         Phase

                                                                                                       Comparator

                                                                          OSC1  Crystal      FOUT

    REXT                                                                        Osc

                           OSC1                       Internal

                                                      Clock                                              Loop

    CEXT                                                                                                 Filter

    VSS                                    PIC18FXXXX

                           OSC2/CLKO                                                         ÷4          VCO

                   FOSC/4                                                                                                   SYSCLK

   Recommended values:      3 kΩ ≤ REXT ≤  100 kΩ                                                                  MUX

                            CEXT > 20 pF

The RCIO Oscillator mode (Figure 3-6) functions like

the RC mode, except that the OSC2 pin becomes an

additional     general     purpose  I/O    pin.  The   I/O      pin  3.5.2      PLL AND INTOSC

becomes bit 6 of PORTA (RA6).                                        The PLL is also available to the internal oscillator block

                                                                     in selected oscillator modes. In this configuration, the

FIGURE 3-6:                RCIO OSCILLATOR MODE                      PLL  is  enabled    in  software    and     generates  a  clock

         VDD                                                         output of up to 32 MHz. The operation of INTOSC with

                                                                     the PLL is described in Section 3.6.4 “PLL in INTOSC

   REXT                                                              Modes”.

                           OSC1                       Internal

                                                      Clock

   CEXT

    VSS                                    PIC18FXXXX

              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

The PIC18F2480/2580/4480/4580 devices include an                  and INTRC frequencies will begin shifting to the new

                                                                  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

The clock source frequency (INTOSC direct, INTRC                  used    to    enable     or  disable       its  operation.       If  PLL   is

                                                                  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

Using the internal oscillator as the clock source elimi-          source (FOSC<3:0> = 1001 or 1000). Additionally, the

nates the need for up to two external oscillator pins,            PLL   will    only  function        when   the  selected      output       fre-

which can then be used for digital I/O. Two distinct              quency is either 4 MHz or 8 MHz (OSCCON<6:4> = 111

configurations are available:                                     or 110). If both of these conditions are not met, the PLL

                                                                  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

   OSC2 functions as RA6, both for digital input and              3.6.5           INTOSC FREQUENCY DRIFT

   output.                                                        The    factory      calibrates      the    internal   oscillator      block

3.6.2          INTOSC OUTPUT FREQUENCY                            output (INTOSC) for 8 MHz. However, this frequency

                                                                  may drift as VDD or temperature changes, which can

The internal oscillator block is calibrated at the factory        affect the controller operation in a variety of ways. It is

to produce an INTOSC output frequency of 8.0 MHz.                 possible to adjust the INTOSC frequency by modifying

The INTRC oscillator operates independently of the                the value in the OSCTUNE register. This has no effect

INTOSC source. Any changes in INTOSC across volt-                 on the INTRC clock source frequency.

age and temperature are not necessarily reflected by              Tuning the INTOSC source requires knowing when to

changes in INTRC and vice versa.                                  make the adjustment, in which direction it should be

3.6.3          OSCTUNE REGISTER                                   made,      and  in  some        cases,     how      large  a    change     is

                                                                  needed.         Three        compensation             techniques           are

The internal oscillator’s output has been calibrated at           discussed       in  Section 3.6.5.1             “Compensating           with

the factory but can be adjusted in the user’s applica-            the EUSART”, Section 3.6.5.2 “Compensating with

tion. This is done by writing to the OSCTUNE register             the   Timers”       and      Section 3.6.5.3          “Compensating

(Register 3-1).                                                   with the CCP Module in Capture Mode”, but other

                                                                  techniques may be used.

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

INTSRC                   PLLEN(1)              —         TUN4        TUN3                  TUN2             TUN1            TUN0

bit 7                                                                                                                             bit  0

Legend:

R = Readable bit                      W = Writable bit               U = Unimplemented bit, read as ‘0’

-n = Value at POR                     ‘1’ = Bit is set               ‘0’ = Bit is cleared               x = Bit is unknown

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

                      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 6                 PLLEN: Frequency Multiplier PLL for INTOSC Enable bit(1)

                      1 = PLL enabled for INTOSC (4 MHz and 8 MHz only)

                      0 = PLL disabled

bit 5                 Unimplemented: Read as ‘0’

bit 4-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

An adjustment may be required when the EUSART                        block is running too fast. To adjust for this, decrement

begins to generate framing errors or receives data with              the OSCTUNE register.

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

This technique compares device clock speed to some                   time of the first event is subtracted from the time of the

reference clock. Two timers may be used; one timer is                second event. Since the period of the external event is

clocked  by      the  peripheral    clock,  while  the   other  is   known,      the  time  difference      between    events     can  be

clocked      by  a  fixed  reference    source,    such  as     the  calculated.

Timer1 oscillator.                                                   If   the   measured    time        is  much   greater  than       the

Both timers are cleared, but the timer clocked by the                calculated time, the internal oscillator block is running

reference    generates     interrupts.      When   an    interrupt   too  fast.  To        compensate,      decrement  the  OSCTUNE

occurs, the internally clocked timer is read and both                register. If the measured time is much less than the

timers are cleared. If the internally clocked timer value            calculated time, the internal oscillator block is running

                                                                     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

that allows the device clock source to be switched from                            oscillator as a secondary oscillator. This oscillator, in all

the main oscillator to an alternate low-frequency clock                            power-managed                modes,      is       often    the   time     base  for

source.   PIC18F2480/2580/4480/4580                devices               offer     functions such as a Real-Time Clock (RTC).

two alternate clock sources. When an alternate clock

source    is  enabled,        the      various     power-managed                   Most often, a 32.768 kHz watch crystal is connected

operating modes are available.                                                     between            the  RC0/T1OSO/T13CKI                    and      RC1/T1OSI

Essentially,  there      are  three    clock       sources   for  these            pins.         Like      the  LP      Oscillator   mode          circuit,  loading

devices:                                                                           capacitors are also connected from each pin to ground.

•  Primary oscillators                                                             The Timer1 oscillator is discussed in greater detail in

•  Secondary oscillators                                                           Section 13.3 “Timer1 Oscillator”.

•  Internal oscillator block                                                       In addition to being a primary clock source, the internal

                                                                                   oscillator          block        is  available    as     a  power-managed

The primary oscillators include the external crystal                               mode clock source. The INTRC source is also used as

and   resonator   modes,          the  external    RC     modes,         the       the clock source for several special features, such as

external clock modes and the internal oscillator block.                            the WDT and Fail-Safe Clock Monitor.

The   particular  mode        is  defined      by  the    FOSC<3:0>                The clock sources for the PIC18F2480/2580/4480/4580

Configuration     bits.  The      details      of  these  modes          are       devices            are  shown        in  Figure 3-8.       See   Section 25.0

covered earlier in this chapter.                                                   “Special            Features         of  the      CPU”      for  Configuration

                                                                                   register details.

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

                     Primary Oscillator                                                                    LP, XT, HS, RC, EC

      OSC2

                                       Sleep                                                               HSPLL, INTOSC/PLL

                                                                                            4 x PLL

      OSC1                                         OSCTUNE<6>

                     Secondary Oscillator                                                                                   T1OSC    MUX            Peripherals

      T1OSO

                                       T1OSCEN

                                       Enable

      T1OSI                            Oscillator                                  OSCCON<6:4>                  Internal Oscillator

                                  OSCCON<6:4>                                      8 MHz                                                                  CPU

                                                                                            111

                                                                                   4 MHz    110

                                   Internal                                                                                                         IDLEN

                                  Oscillator                                       2 MHz    101

                                       Block                 Postscaler            1 MHz                                             Clock

                                       8 MHz                                                100  MUX                                 Control

                                   Source          8 MHz                           500 kHz  011

                                   INTRC           (INTOSC)                        250 kHz                              FOSC<3:0>           OSCCON<1:0>

                                   Source                                                   010

                                                                                   125 kHz  001                                      Clock Source Option

                                         31 kHz (INTRC)                         1  31 kHz   000                                      for Other Modules

                                                                                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

The OSCCON register (Register 3-2) controls several                  mode   or    one  of  the  Idle   modes     when  the   SLEEP

aspects     of  the     device   clock’s   operation,  both   in     instruction is executed.

full-power operation and in power-managed modes.                     The use of the flag and control bits in the OSCCON

The System Clock Select bits, SCS<1:0>, select the                   register  is  discussed    in  more   detail  in  Section 4.0

clock   source.    The    available   clock  sources     are  the    “Power-Managed Modes”.

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

The    Internal      Oscillator  Frequency        Select      bits,                secondary clock source when executing a

IRCF<2:0>, select the frequency output of the internal                             SLEEP instruction will be ignored.

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

When     an     output  frequency     of  31 kHz   is  selected      to  prevent   clock   “glitches”  when   switching      between

(IRCF<2:0> = 000), users may choose which internal                   clock sources. A short pause in the device clock occurs

oscillator   acts  as   the  source.  This   is  done  with   the    during the clock switch. The length of this pause is the

INTSRC bit in the OSCTUNE register (OSCTUNE<7>).                     sum of two cycles of the old clock source and three to

Setting this bit selects INTOSC as a 31.25 kHz clock                 four  cycles  of  the  new     clock  source.     This  formula

source   by     enabling  the    divide-by-256   output   of  the    assumes that the new clock source is stable.

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:

R = Readable bit             W = Writable bit                 U = Unimplemented bit, read as ‘0’

-n = Value at POR            ‘1’ = Bit is set                 ‘0’ = Bit is cleared        x = Bit is unknown

bit 7        IDLEN: Idle Enable bit

             1 = Device enters Idle mode on SLEEP instruction

             0 = Device enters Sleep mode on SLEEP instruction

bit 6-4      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)

bit 3        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

bit 2        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

bit 1-0      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.

In   secondary        clock      modes       (SEC_RUN          and       3.9             Power-up Delays

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-

In internal oscillator modes (RC_RUN and RC_IDLE),                       stances and the primary clock is operating and stable.

the internal oscillator block provides the device clock                  For       additional  information         on   power-up       delays,  see

source. The 31 kHz INTRC output can be used directly                     Section 5.5 “Device Reset Timers”.

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                      When      the       HSPLL       Oscillator     mode   is  selected,     the

at 1 MHz after a Reset.                                                  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                        There     is    a   delay       of  interval,  TCSD      (parameter     38,

current    consumption       of  the  device        (only  leakage       Table 28-10),         following      POR,         while   the  controller

currents).                                                               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        •   The primary clock, as defined by the FOSC<3:0>

options for selective power conservation in applications                     Configuration bits

where resources may be limited (i.e., battery-powered                    •   The secondary clock (the Timer1 oscillator)

devices).                                                                •   The internal oscillator block (for RC modes)

There are three categories of power-managed modes:

•  Run modes                                                             4.1.2           ENTERING POWER-MANAGED

•  Idle modes                                                                            MODES

•  Sleep mode                                                            Switching from one power-managed mode to another

                                                                         begins  by      loading     the      OSCCON        register.   The

These categories define which portions of the device                     SCS<1:0> bits select the clock source and determine

are clocked, and sometimes, what speed. The Run and                      which Run or Idle mode is to be used. Changing these

Idle modes may use any of the three available clock                      bits    causes  an   immediate       switch    to  the  new    clock

sources    (primary,  secondary        or  internal  oscillator          source, assuming that it is running. The switch may

block); the Sleep mode does not use a clock source.                      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                  Entry to the power-managed Idle or Sleep modes is

other PIC18 devices, allowing the controller to use the                  triggered by the execution of a SLEEP instruction. The

Timer1 oscillator in place of the primary oscillator. Also               actual mode that results depends on the status of the

included is the Sleep mode, offered by all PIC devices,                  IDLEN bit.

where all device clocks are stopped.                                     Depending on the current mode and the mode being

4.1        Selecting Power-Managed Modes                                 switched to, a change to a power-managed mode does

                                                                         not     always  require     setting   all  of  these    bits.  Many

Selecting  a   power-managed           mode     requires      two        transitions     may  be     done  by  changing     the      oscillator

decisions: if the CPU is to be clocked or not and the                    select bits, or changing the IDLEN bit, prior to issuing a

selection  of    a    clock   source.      The     IDLEN       bit       SLEEP   instruction.        If  the   IDLEN        bit  is  already

(OSCCON<7>)         controls  CPU      clocking,     while     the       configured      correctly,  it  may   only     be  necessary   to

SCS<1:0>   bits     (OSCCON<1:0>)          select    the    clock        perform a SLEEP instruction to switch to the desired

source. The individual modes, bit settings, clock sources                mode.

and affected modules are summarized in Table 4-1.

TABLE 4-1:            POWER-MANAGED MODES

                      OSCCON<7,1:0>                       Module Clocking

   Mode          IDLEN(1)                                                        Available Clock and Oscillator Source

                                   SCS<1:0>               CPU       Peripherals

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

The length of the transition between clock sources is                    least one TCY delay before another SLEEP instruction

the sum of two cycles of the old clock source and three                  can be executed. If two back-to-back SLEEP instruc-

to four cycles of the new clock source. This formula                     tions    need     to  be  executed,    the    process          shown  in

assumes that the new clock source is stable.                             Example 4-1 should be used.

Three bits indicate the current clock source and its                     EXAMPLE 4-1:                   EXECUTING

status. They are:                                                                                       BACK-TO-BACK SLEEP

•   OSTS (OSCCON<3>)                                                                                    INSTRUCTIONS

•   IOFS (OSCCON<2>)                                                         SLEEP

•   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                               SLEEP

set, the primary clock is providing the device clock.

When the IOFS bit is set, the INTOSC output is provid-                   4.2          Run Modes

ing  a   stable     8 MHz    clock   source      to   a  divider  that

actually drives the device clock. When the T1RUN bit is                  In  the    Run    modes,       clocks  to   both        the    core   and

set, the Timer1 oscillator is providing the clock. If none               peripherals are active. The difference between these

of   these  bits    are  set,  then  either      the  INTRC       clock  modes is the clock source.

source is clocking the device, or the INTOSC source is

not yet stable.                                                          4.2.1          PRI_RUN MODE

If  the  internal   oscillator    block  is  configured       as  the    The PRI_RUN mode is the normal, full-power execution

primary clock source by the FOSC<3:0> Configuration                      mode     of  the  microcontroller.     This     is  also     the  default

bits, then both the OSTS and IOFS bits may be set                        mode upon a device Reset, unless Two-Speed Start-up

when in PRI_RUN or PRI_IDLE modes. This indicates                        is enabled (see Section 25.3 “Two-Speed Start-up” for

that the primary clock (INTOSC output) is generating a                   details). In this mode, the OSTS bit is set. The IOFS bit

stable      8 MHz        output.     Entering         another     RC     may be set if the internal oscillator block is the primary

power-managed mode at the same frequency would                           clock source (see Section 3.7.1 “Oscillator Control

clear the OSTS bit.                                                      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

            2:  Executing a SLEEP instruction does not                   option of lower power consumption while still using a

                necessarily place the device into Sleep                  high accuracy clock source.

                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

The  power-managed           mode    that    is  invoked  with    the        Note:      The Timer1 oscillator should already be

SLEEP instruction is determined by the setting of the                                   running prior to entering SEC_RUN mode.

IDLEN    bit    at  the  time  the   instruction     is  executed.  If                  If the T1OSCEN bit is not set when the

another SLEEP instruction is executed, the device will                                  SCS<1:0>        bits  are   set  to      ‘01’,  entry  to

enter the power-managed mode specified by IDLEN at                                      SEC_RUN         mode    will     not     occur.    If  the

that time. If IDLEN has changed, the device will enter the                              Timer1 oscillator is enabled but not yet

new power-managed mode specified by the new setting.                                    running, device clocks will be delayed until

                                                                                        the oscillator has started. In such situa-

                                                                                        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

          T1OSI                                    1    2       3              n-1     n

          OSC1                                               Clock Transition

          CPU

          Clock

          Peripheral

          Clock

          Program                  PC                                          PC + 2                                               PC + 4

          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

                   OSC1

                                                   TOST(1)         TPLL(1)

               PLL Clock                                                               1   2      n-1  n

                   Output

                                                                                           Clock

           CPU Clock                                                                       Transition

               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

In  RC_RUN         mode,       the     CPU  and       peripherals      are             it is ignored, it is recommended that SCS0 also be

clocked   from     the     internal    oscillator     block     using  the             cleared; this is to maintain software compatibility with

INTOSC multiplexer; the primary clock is shut down.                                    future devices. When the clock source is switched to

When using the INTRC source, this mode provides the                                    the INTOSC multiplexer (see Figure 4-3), the primary

best power conservation of all the Run modes, while                                    oscillator is shut down and the OSTS bit is cleared. The

still executing code. It works well for user applications                              IRCF bits may be modified at any time to immediately

which are not highly timing-sensitive or do not require                                change the clock speed.

high-speed clocks at all times.                                                           Note:        Caution should be used when modifying a

If  the  primary   clock       source  is   the    internal     oscillator                             single IRCF bit. If VDD is less than 3V, it is

block (either INTRC or INTOSC), there are no distin-                                                   possible    to  select   a   higher      clock  speed

guishable        differences           between        PRI_RUN          and                             than    is  supported        by      the  low   VDD.

RC_RUN modes during execution. However, a clock                                                        Improper    device       operation   may       result  if

switch delay will occur during entry to, and exit from,                                                the VDD/FOSC specifications are violated.

RC_RUN mode. Therefore, if the primary clock source

is  the  internal  oscillator       block,  the    use  of      RC_RUN

mode is not recommended.

© 2009 Microchip Technology Inc.                                                                                                        DS39637D-page 41
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

If  the  IRCF   bits  are   changed        from    all   clear  (thus,                switch is complete, the IOFS bit is cleared, the OSTS

enabling the INTOSC output) or if INTSRC is set, the                                  bit is set and the primary clock is providing the device

IOFS     bit  becomes       set     after  the     INTOSC       output                clock. The IDLEN and SCS bits are not affected by the

becomes stable. Clocks to the device continue while                                   switch. The INTRC source will continue to run if either

the  INTOSC         source  stabilizes     after     an     interval   of             the WDT or the Fail-Safe Clock Monitor is enabled.

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

         INTRC                                  1        2      3             n-1     n

         OSC1                                               Clock Transition

         CPU

         Clock

         Peripheral

         Clock

         Program                PC                                            PC + 2                                                PC  +4

         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

               Multiplexer

                    OSC1

                                                 TOST(1)           TPLL(1)

                PLL Clock                                                                1   2         n-1   n

                    Output

                                                                                                Clock

              CPU Clock                                                                      Transition

                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.                         If the IDLEN bit is set to ‘1’ when a SLEEP instruction is

This shuts down the selected oscillator (Figure 4-5). All                     executed, the peripherals will be clocked from the clock

clock source status bits are cleared.                                         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                    If the WDT is selected, the INTRC source will continue

continue to run.                                                              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                        Since the CPU is not executing instructions, the only

until the clock source selected by the SCS1:SCS0 bits                         exits from any of the Idle modes are by interrupt, WDT

becomes ready (see Figure 4-6), or it will be clocked                         time-out or a Reset. When a wake event occurs, CPU

from the internal oscillator block if either the Two-Speed                    execution              is  delayed          by  an   interval     of  TCSD

Start-up or the Fail-Safe Clock Monitor are enabled                           (parameter 38, Table 28-10) while it becomes ready to

(see Section 25.0 “Special Features of the CPU”). In                          execute code. When the CPU begins executing code,

either case, the OSTS bit is set when the primary clock                       it resumes with the same clock source for the current

is providing the device clocks. The IDLEN and SCS bits                        Idle mode. For example, when waking from RC_IDLE

are not affected by the wake-up.                                              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

       PLL Clock                       TOST(1)        TPLL(1)

            Output

       CPU Clock

       Peripheral

            Clock

         Program                                      PC                              PC + 2                      PC + 4           PC + 6

         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

PRI_IDLE mode is entered from PRI_RUN mode by                                  Timer1 oscillator, the primary oscillator is shut down,

setting the IDLEN bit and executing a SLEEP instruc-                           the OSTS bit is cleared and the T1RUN bit is set.

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

                           Q1         Q2       Q3        Q4       Q1

              OSC1

        CPU Clock

         Peripheral

              Clock

          Program                         PC                           PC + 2

             Counter

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

                           Q1                                                                         Q2                Q3                    Q4

             OSC1

                                                    TCSD

        CPU Clock

        Peripheral

              Clock

         Program                                                               PC

          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

In RC_IDLE mode, the CPU is disabled but the periph-                            execution  branches      to  the  interrupt   vector    if  the

erals continue to be clocked from the internal oscillator                       GIE/GIEH   bit   (INTCON<7>)      is  set.  Otherwise,   code

block using the INTOSC multiplexer. This mode allows                            execution  continues     or  resumes   without     branching

for controllable power conservation during Idle periods.                        (see Section 10.0 “Interrupts”).

From RC_RUN, this mode is entered by setting the                                A fixed delay of interval, TCSD, following the wake event

IDLEN bit and executing a SLEEP instruction. If the                             is required when leaving Sleep and Idle modes. This

device is in another Run mode, first set IDLEN, then set                        delay is required for the CPU to prepare for execution.

the SCS1 bit and execute SLEEP. Although its value is                           Instruction execution resumes on the first clock cycle

ignored, it is recommended that SCS0 also be cleared;                           following this delay.

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                             If the device is not executing code (all Idle modes and

cleared.                                                                        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  The WDT timer and postscaler are cleared by execut-

IRCF      bits  were  previously          at   a    non-zero       value,   or  ing  a  SLEEP    or  CLRWDT  instruction,     the  loss     of  a

INTSRC         was    set   before     the    SLEEP      instruction       was  currently selected clock source (if the Fail-Safe Clock

executed and the INTOSC source was already stable,                              Monitor is enabled) and modifying the IRCF bits in the

the   IOFS      bit   will  remain     set.    If   the  IRCF      bits    and  OSCCON register if the internal oscillator block is the

INTSRC are all clear, the INTOSC output will not be                             device clock source.

enabled, the IOFS bit will remain clear and there will be

no indication of the current clock source.                                      4.5.3        EXIT BY RESET

When a wake event occurs, the peripherals continue to                           Normally, the device is held in Reset by the Oscillator

be clocked from the INTOSC multiplexer. After a delay                           Start-up Timer (OST) until the primary clock becomes

of TCSD following the wake event, the CPU begins exe-                           ready. At that time, the OSTS bit is set and the device

cuting code being clocked by the INTOSC multiplexer.                            begins executing code. If the internal oscillator block is

The   IDLEN     and         SCS  bits     are      not   affected      by  the  the new clock source, the IOFS bit is set instead.

wake-up.        The   INTRC      source       will  continue       to  run  if  The exit delay time from Reset to the start of code

either    the   WDT         or  the    Fail-Safe        Clock  Monitor      is  execution depends on both the clock sources before

enabled.                                                                        and after the wake-up and the type of oscillator if the

4.5       Exiting Idle and Sleep Modes                                          new clock source is the primary clock. Exit delays are

                                                                                summarized in Table 4-2.

An exit from Sleep mode or any of the Idle modes is                             Code execution can begin before the primary clock

triggered by an interrupt, a Reset or a WDT time-out.                           becomes ready. If either the Two-Speed Start-up (see

This section discusses the triggers that cause exits                            Section 25.3     “Two-Speed       Start-up”)  or   Fail-Safe

from power-managed modes. The clocking subsystem                                Clock   Monitor    (see  Section 25.4       “Fail-Safe  Clock

actions are discussed in each of the power-managed                              Monitor”) is enabled, the device may begin execution

modes (see Section 4.2 “Run Modes”, Section 4.3                                 as soon as the Reset source has cleared. Execution is

“Sleep Mode” and Section 4.4 “Idle Modes”).                                     clocked  by   the    INTOSC  multiplexer      driven    by  the

                                                                                internal oscillator block. Execution is clocked by the

4.5.1           EXIT BY INTERRUPT                                               internal oscillator block until either the primary clock

Any of the available interrupt sources can cause the                            becomes ready or a power-managed mode is entered

device to exit from an Idle mode or the Sleep mode to                           before the primary clock becomes ready; the primary

a Run mode. To enable this functionality, an interrupt                          clock is then shut down.

source must be enabled by setting its enable bit in one

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

Certain  exits  from    power-managed  modes  do       not  already          running  (PRI_IDLE),        or    normally   does  not

invoke the OST at all. There are two cases:                 require an oscillator start-up delay (RC, EC and INTIO

                                                            Oscillator modes). However, a fixed delay of interval,

•  PRI_IDLE mode where the primary clock source             TCSD, following the wake event is still required when

   is not stopped; and                                      leaving  Sleep            and   Idle  modes    to  allow  the  CPU  to

•  the primary clock source is not any of the LP, XT,       prepare for execution. Instruction execution resumes

   HS or HSPLL modes.                                       on the first clock cycle following this delay.

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

                                              HSPLL                                                            OSTS

         Primary Device Clock                 EC, RC                         TCSD(2)

         (PRI_IDLE mode)                      INTRC(1)

                                                                                                                      —

                                             INTOSC(3)                                                              IOFS

                                             LP, XT, HS                      TOST(4)

                                              HSPLL                          TOST + trc(4)                     OSTS

         T1OSC or INTRC(1)                    EC, RC                         TCSD(2)

                                              INTRC(1)                                                                —

                                             INTOSC(3)                       TIOBST(5)                              IOFS

                                             LP, XT, HS                      TOST(5)

                                              HSPLL                          TOST + trc(4)                     OSTS

             INTOSC(3)                        EC, RC                         TCSD(2)

                                              INTRC(1)                                                                —

                                             INTOSC(3)                                None                          IOFS

                                             LP, XT, HS                      TOST(4)

                                              HSPLL                          TOST + trc(4)                     OSTS

                None                          EC, RC

             (Sleep mode)                     INTRC(1)                       TCSD(2)

                                                                                                                      —

                                             INTOSC(3)                       TIOBST(5)                              IOFS

   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

     execution)                                                   and must be set by the application after the event. The

e)   Programmable Brown-out Reset (BOR)                           state of these flag bits, taken together, can be read to

f)   RESET Instruction                                            indicate the type of Reset that just occurred. This is

g)   Stack Full Reset                                             described in more detail in Section 5.6 “Reset State

h)   Stack Underflow Reset                                        of Registers”.

This section discusses Resets generated by MCLR,                  The RCON register also has control bits for setting

POR and BOR, and covers the operation of the various              interrupt  priority  (IPEN)  and   software         control      of  the

start-up  timers.  Stack     Reset  events    are    covered  in  BOR  (SBOREN).       Interrupt     priority  is     discussed        in

Section 6.1.2.4 “Stack Full and Underflow Resets”.                Section 10.0    “Interrupts”.      BOR          is  covered          in

WDT Resets are covered in Section 25.2 “Watchdog                  Section 5.4 “Brown-out Reset (BOR)”.

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

                        OST         1024 Cycles                                                                    Chip_Reset

                              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:

R = Readable bit             W = Writable bit                U = Unimplemented bit, read as ‘0’

-n = Value at POR            ‘1’ = Bit is set                ‘0’ = Bit is cleared              x = Bit is unknown

bit 7         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

The  MCLR  pin      provides   a  method  for  triggering  an                              RESET CIRCUIT (FOR

external Reset of the device. A Reset is generated by                                      SLOW VDD POWER-UP)

holding the pin low. These devices have a noise filter in

the MCLR Reset path which detects and ignores small                     VDD     VDD

pulses.

The MCLR pin is not driven low by any internal Resets,                       D          R

including the WDT.                                                                         R1

In  PIC18F2480/2580/4480/4580         devices,      the  MCLR                                         MCLR

input can be disabled with the MCLRE Configuration                                      C             PIC18FXXXX

bit. When MCLR is disabled, the pin becomes a digital

input. See Section 11.5 “PORTE, TRISE and LATE

Registers” for more information.                                  Note  1:      External Power-on Reset circuit is required

5.3      Power-on Reset (POR)                                                   only if the VDD power-up slope is too slow.

                                                                                The diode D helps discharge the capacitor

A   Power-on   Reset       pulse  is  generated          on-chip                quickly when VDD powers down.

whenever VDD rises above a certain threshold. This                      2:      R < 40 kΩ is recommended to make sure that

allows the device to start in the initialized state when                        the voltage drop across R does not violate

VDD is adequate for operation.                                                  the device’s electrical specification.

To take advantage of the POR circuitry, tie the MCLR                    3:      R1 ≥ 1 kΩ will limit any current flowing into

pin through a resistor (1 kΩ to 10 kΩ) to VDD. This will                        MCLR from external capacitor C, in the event

                                                                                of MCLR/VPP pin breakdown, due to Electro-

eliminate external RC components usually needed to                              static     Discharge  (ESD)  or         Electrical

create a Power-on Reset delay. A minimum rise rate for                          Overstress (EOS).

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

PIC18F2480/2580/4480/4580                 devices    implement     a            the additional flexibility of tailoring the application to its

                                                                                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.

If the Power-up Timer is enabled, it will be invoked after                      When Brown-out Reset is enabled, the BOR bit always

VDD rises above VBOR; it then will keep the chip in                             resets  to  ‘0’  on  any  Brown-out    Reset    or  Power-on

Reset     for      an      additional     time     delay,   TPWRT               Reset event. This makes it difficult to determine if a

(parameter 33).        If  VDD  drops     below    VBOR    while   the          Brown-out Reset event has occurred just by reading

Power-up Timer is running, the chip will go back into a                         the state of BOR alone. A more reliable method is to

Brown-out      Reset       and  the    Power-up      Timer  will   be           simultaneously check the state of both POR and BOR.

initialized. Once VDD rises above VBOR, the Power-up                            This assumes that the POR bit is reset to ‘1’ in software

Timer will execute the additional time delay.                                   immediately after any Power-on Reset event. IF BOR

                                                                                is ‘0’ while POR is ‘1’, it can be reliably assumed that a

BOR       and      the     Power-on       Timer      (PWRT)        are          Brown-out Reset event has occurred.

independently configured. Enabling a Brown-out Reset

does not automatically enable the PWRT.                                         5.4.3        DISABLING BOR IN SLEEP MODE

5.4.1          SOFTWARE ENABLED BOR                                             When    BOREN<1:0>        =  10,  the  BOR  remains      under

                                                                                hardware     control      and     operates  as      previously

When BOREN<1:0> = 01, the BOR can be enabled or                                 described. Whenever the device enters Sleep mode,

disabled by the user in software. This is done with the                         however, the BOR is automatically disabled. When the

control bit, SBOREN (RCON<6>). Setting SBOREN                                   device returns to any other operating mode, BOR is

enables the BOR to function as previously described.                            automatically re-enabled.

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

                                       SBOREN                                           BOR Operation

BOREN1              BOREN0             (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

•  Power-up Timer (PWRT)                                              lock time-out (TPLL) is typically 2 ms and follows the

                                                                      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  2.   Then, the OST is activated.

approximate time interval of 2048 x 32 μs = 65.6 ms.                  The total time-out will vary based on oscillator configu-

While   the   PWRT       is  counting,  the  device     is  held  in  ration  and     the   status   of  the   PWRT.     Figure 5-3,

Reset.                                                                Figure 5-4, Figure 5-5, Figure 5-6 and Figure 5-7 all

The power-up time delay depends on the INTRC clock                    depict  time-out      sequences    on   power-up,   with  the

and will vary from chip-to-chip due to temperature and                Power-up Timer enabled and the device operating in

process variation. See DC parameter 33 for details.                   HS Oscillator mode. Figures 5-3 through 5-6 also apply

                                                                      to devices operating in XT or LP modes. For devices in

The    PWRT   is     enabled     by     clearing  the   PWRTEN        RC mode and with the PWRT disabled, on the other

Configuration bit.                                                    hand, there will be no time-out at all.

5.5.2         OSCILLATOR START-UP TIMER                               Since the time-outs occur from the POR pulse, if MCLR

              (OST)                                                   is kept low long enough, all time-outs will expire. Bring-

                                                                      ing  MCLR       high  will  begin   execution   immediately

The    Oscillator    Start-up    Timer  (OST)        provides     a   (Figure 5-5). This is useful for testing purposes or to

1024 oscillator cycle (from OSC1 input) delay after the               synchronize     more    than   one     PIC18FXXXX   device

PWRT delay is over (parameter 33). This ensures that                  operating in parallel.

the  crystal  oscillator     or  resonator      has  started    and

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                      PWRTEN = 0                         PWRTEN = 1                    Power-Managed Mode

HSPLL                            66 ms(1) + 1024 TOSC + 2 ms(2)       1024 TOSC + 2 ms(2)                 1024 TOSC + 2 ms(2)

HS, XT, LP                              66 ms(1) + 1024 TOSC                  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

             MCLR

INTERNAL POR

                                           TPWRT

PWRT TIME-OUT                                            TOST

OST TIME-OUT

INTERNAL RESET

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

                  VDD

             MCLR

INTERNAL POR

                                                  TPWRT

PWRT TIME-OUT                                                   TOST

OST TIME-OUT

INTERNAL RESET

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

                  VDD

             MCLR

INTERNAL POR

                                                  TPWRT

PWRT TIME-OUT                                                   TOST

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

             MCLR

INTERNAL POR

                                                         TPWRT

PWRT TIME-OUT                                                             TOST

OST TIME-OUT                                                                    TPLL

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

Most registers are unaffected by a Reset. Their status          are used in software to determine the nature of the

                                                                Reset.

is unknown on a Power-on Reset and unchanged by all             Table 5-4  describes  the  Reset  states     for  all  of  the

other Resets. The other registers are forced to a “Reset        Special Function Registers. These are categorized by

state” depending on the type of Reset that occurred.            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

           Condition            Counter(1)

                                                      SBOREN    RI  TO     PD  POR         BOR    STKFUL          STKUNF

Power-on Reset                      0000h                 1     1       1  1          0    0        0                  0

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

Brown-out Reset                     0000h                 u(2)  1       1  1          u    0        u                  u

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

Power-Managed Run modes

MCLR Reset during                   0000h                 u(2)  u       1  0          u    u        u                  u

Power-Managed Idle modes and

Sleep mode

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

or Power-Managed Run modes

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

execution

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

Stack Underflow Reset               0000h                 u(2)  u       u  u          u    u        u                  1

(STVREN = 1)

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

actual Reset, STVREN = 0)

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

Power-Managed Idle or Sleep

modes

Interrupt Exit from             PC + 2                    u(2)  u       u  0          u    u        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

                                                                       MCLR Resets,

Register    Applicable Devices                Power-on Reset,          WDT Reset,                  Wake-up via WDT

                                              Brown-out Reset     RESET Instruction,               or Interrupt

                                                                       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 ECAN™ 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)

                                                                       MCLR Resets,

Register          Applicable Devices       Power-on Reset,             WDT Reset,                  Wake-up via WDT

                                           Brown-out Reset        RESET Instruction,               or Interrupt

                                                                       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 ECAN™ 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)

                                                                      MCLR Resets,

Register    Applicable Devices                Power-on Reset,         WDT Reset,                  Wake-up via WDT

                                              Brown-out Reset    RESET Instruction,               or Interrupt

                                                                      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 ECAN™ 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)

                                                                       MCLR Resets,

Register          Applicable Devices       Power-on Reset,             WDT Reset,                  Wake-up via WDT

                                           Brown-out Reset        RESET Instruction,               or Interrupt

                                                                       Stack Resets

PIR2              2480  2580  4480   4580  00-0  0000                  00-0  0000                  uu-u     uuuu(1)

                  2480  2580  4480   4580  0--0  000-                  0--0  000-                  u--u     uuu-(1)

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

                  2480  2580  4480   4580  0--0  000-                  0--0  000-                  u--u     uuu-

IPR1              2480  2580  4480   4580  1111  1111                  1111  1111                  uuuu     uuuu

                  2480  2580  4480   4580  -111  1111                  -111  1111                  -uuu     uuuu

PIR1              2480  2580  4480   4580  0000  0000                  0000  0000                  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 ECAN™ 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)

                                                                      MCLR Resets,

Register    Applicable Devices                Power-on Reset,         WDT Reset,                  Wake-up via WDT

                                              Brown-out Reset    RESET Instruction,               or Interrupt

                                                                      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 ECAN™ 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)

                                                                      MCLR Resets,

Register          Applicable Devices      Power-on Reset,             WDT Reset,                  Wake-up via WDT

                                          Brown-out Reset        RESET Instruction,               or Interrupt

                                                                      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 ECAN™ 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)

                                                                      MCLR Resets,

Register    Applicable Devices                Power-on Reset,         WDT Reset,                  Wake-up via WDT

                                              Brown-out Reset    RESET Instruction,               or Interrupt

                                                                      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 ECAN™ 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)

                                                                       MCLR Resets,

Register          Applicable Devices       Power-on Reset,             WDT Reset,                  Wake-up via WDT

                                           Brown-out Reset        RESET Instruction,               or Interrupt

                                                                       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 ECAN™ 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)

                                                                       MCLR Resets,

Register    Applicable Devices                Power-on Reset,          WDT Reset,                  Wake-up via WDT

                                              Brown-out Reset     RESET Instruction,               or Interrupt

                                                                       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 ECAN™ 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)

                                                                       MCLR Resets,

Register          Applicable Devices       Power-on Reset,             WDT Reset,                  Wake-up via WDT

                                           Brown-out Reset        RESET Instruction,               or Interrupt

                                                                       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 ECAN™ 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)

                                                                       MCLR Resets,

Register      Applicable Devices              Power-on Reset,          WDT Reset,                  Wake-up via WDT

                                              Brown-out Reset     RESET Instruction,               or Interrupt

                                                                       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 ECAN™ 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)

                                                                      MCLR Resets,

Register          Applicable Devices        Power-on Reset,           WDT Reset,                  Wake-up via WDT

                                            Brown-out Reset      RESET Instruction,               or Interrupt

                                                                      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

          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 ECAN™ 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                                                             program memory space. Accessing a location between

•  Data RAM                                                                   upper boundary of the physically implemented memory

                                                                              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-  The  program       memory      maps      for  PIC18FX480                     and

cussed  separately  in    Section 8.0     “Data    EEPROM                     PIC18FX580 devices are shown in Figure 6-1.

Memory”.

FIGURE 6-1:               PROGRAM MEMORY MAP AND STACK FOR

                          PIC18F2480/2580/4480/4580 DEVICES

                          PIC18FX480                                                             PIC18FX580

                    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 Space

                                                                                                                       80000h

                    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

The Program Counter (PC) specifies the address of the                    5-bit Stack Pointer, STKPTR. The stack space is not

instruction to fetch for execution. The PC is 21 bits wide               part of either program or data space. The Stack Pointer

and is contained in three separate 8-bit registers. The                  is readable and writable and the address on the top of

low byte, known as the PCL register, is both readable                    the   stack    is  readable    and  writable        through     the

and writable. The high byte, or PCH register, contains                   Top-Of-Stack (TOF) Special File Registers. Data can

the PC<15:8> bits; it is not directly readable or writable.              also be pushed to, or popped from the stack, using

Updates to the PCH register are performed through the                    these registers.

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

The contents of PCLATH and PCLATU are transferred                        following the CALL). A RETURN type instruction causes

to the program counter by any operation that writes                      a  pop   from  the     stack;  the  contents    of  the  location

PCL. Similarly, the upper two bytes of the program                       pointed to by the STKPTR are transferred to the PC

counter are transferred to PCLATH and PCLATU by an                       and then the Stack Pointer is decremented.

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

The PC addresses bytes in the program memory. To                         is only a Reset value. Status bits indicate if the stack is

prevent the PC from becoming misaligned with word                        full or has overflowed or has underflowed.

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

The    CALL,       RCALL     and  GOTO      program         branch       readable      and  writable.   A    set     of  three    registers,

instructions write to the program counter directly. For                  TOSU:TOSH:TOSL, hold the contents of the stack loca-

these     instructions,      the  contents  of     PCLATH        and     tion pointed to by the STKPTR register (Figure 6-2). This

PCLATU are not transferred to the program counter.                       allows users to implement a software stack if necessary.

                                                                         After a CALL, RCALL or interrupt, the software can read

6.1.2         RETURN ADDRESS STACK                                       the pushed value by reading the TOSU:TOSH:TOSL

                                                                         registers. These values can be placed on a user-defined

The return address stack allows any combination of up                    software stack. At return time, the software can return

to 31 program calls and interrupts to occur. The PC is                   these values to TOSU:TOSH:TOSL and do a return.

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>

                                                                                   11111

                         Top-of-Stack Registers                                    11110                Stack Pointer

                                                                                   11101

                   TOSU           TOSH                 TOSL                                             STKPTR<4:0>

                    00h           1Ah                  34h                                                   00010

                                                                                   00011

                                                           Top-of-Stack  001A34h   00010

                                                                         000D58h   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

The STKPTR register (Register 6-1) contains the Stack                  unload the stack, the next pop will return a value of zero

Pointer value, the STKFUL (Stack Full) status bit and                  to the PC and sets the STKUNF bit, while the Stack

the STKUNF (Stack Underflow) status bits. The value                    Pointer remains at zero. The STKUNF bit will remain

of the Stack Pointer can be 0 through 31. The Stack                    set until cleared by software or until a POR occurs.

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

After the PC is pushed onto the stack 31 times (without                           of the SFRs are not affected.

popping any values off the stack), the STKFUL bit is

set. The STKFUL bit is cleared by software or by a                     6.1.2.3            PUSH and POP Instructions

POR.                                                                   Since the Top-of-Stack is readable and writable, the

The action that takes place when the stack becomes                     ability to push values onto the stack and pull values off

full depends on the state of the STVREN (Stack Over-                   the stack without disturbing normal program execution

flow   Reset  Enable)      Configuration         bit.  (Refer  to      is   a  desirable  feature.     The     PIC18    instruction  set

Section 25.1 “Configuration Bits” for a description of                 includes two instructions, PUSH and POP, that permit

the   device  Configuration     bits.)  If  STVREN     is      set     the  TOS   to  be  manipulated       under   software  control.

(default), the 31st push will push the (PC + 2) value                  TOSU, TOSH and TOSL can be modified to place data

onto   the   stack,   set  the  STKFUL      bit  and   reset   the     or a return address on the stack.

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

If STVREN is cleared, the STKFUL bit will be set on the                the current PC value onto the stack.

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

STKFUL(1)             STKUNF(1)             —                 SP4      SP3                SP2               SP1            SP0

bit 7                                                                                                                                bit  0

Legend:                           C = Clearable bit

R = Readable bit                  W = Writable bit                  U = Unimplemented     bit,   read  as ‘0’

-n = Value at POR                 ‘1’ = Bit is set                  ‘0’ = Bit is cleared               x = Bit is unknown

bit 7                 STKFUL: Stack Full Flag bit(1)

                      1 = Stack became full or overflowed

                      0 = Stack has not become full or overflowed

bit 6                 STKUNF: Stack Underflow Flag bit(1)

                      1 = Stack underflow occurred

                      0 = Stack underflow did not occur

bit 5                 Unimplemented: Read as ‘0’

bit 4-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

Device Resets on stack overflow and stack underflow                                     MEMORY

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               •   Computed GOTO

the appropriate STKFUL or STKUNF bit but not cause                      •   Table Reads

a   device       Reset.  The     STKFUL    or  STKUNF        bits  are

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                A look-up table can be formed with an ADDWF                        PCL

and is neither readable nor writable. It is loaded with the             instruction and a group of RETLW               nn instructions. The

current value of the corresponding register when the                    W register is loaded with an offset into the table before

processor vectors for an interrupt. All interrupt sources               executing a call to that table. The first instruction of the

will push values into the stack registers. The values in                called routine is the ADDWF             PCL instruction. The next

the registers are then loaded back into their associated                instruction     executed     will   be  one    of  the  RETLW        nn

registers, if the RETFIE, FAST instruction is used to                   instructions, that returns the value ‘nn’ to the calling

return from the interrupt.                                              function.

If both low and high-priority interrupts are enabled, the               The offset value (in WREG) specifies the number of

stack registers cannot be used reliably to return from                  bytes that the program counter should advance and

low-priority interrupts. If a high-priority interrupt occurs            should be multiples of 2 (LSb = 0).

while    servicing       a   low-priority  interrupt,      the  stack   In this method, only one data byte may be stored in

register values stored by the low-priority interrupt will               each     instruction      location    and  room     on      the  return

be overwritten. In these cases, users must save the key                 address stack is required.

registers in software during a low-priority interrupt.

If interrupt priority is not used, all interrupts may use the           EXAMPLE 6-2:                 COMPUTED GOTO USING

Fast Register Stack for returns from interrupt. If no                                                AN OFFSET VALUE

interrupts are used, the Fast Register Stack can be                                  MOVF         OFFSET,       W

used to restore the STATUS, WREG and BSR registers                                   CALL         TABLE

at the end of a subroutine call. To use the Fast Register                  ORG       nn00h

Stack    for     a  subroutine   call,  a  CALL      label,     FAST       TABLE     ADDWF        PCL

instruction      must    be  executed      to  save  the   STATUS,                   RETLW        nnh

WREG and BSR registers to the Fast Register Stack. A                                 RETLW        nnh

RETURN,          FAST instruction is then executed to restore                        RETLW        nnh

these registers from the Fast Register Stack.                                        .

Example 6-1 shows a source code example that uses                                    .

                                                                                     .

the Fast Register Stack during a subroutine call and

return.                                                                 6.1.4.2           Table Reads and Table Writes

EXAMPLE 6-1:                     FAST REGISTER STACK                    A better method of storing data in program memory

                                 CODE EXAMPLE                           allows two bytes of data to be stored in each instruction

CALL     SUB1,      FAST         ;STATUS,          WREG,   BSR          location.

                                 ;SAVED        IN  FAST    REGISTER     Look-up    table     data    may      be   stored   two     bytes    per

                                 ;STACK                                 program word by using table reads and writes. The

              •                                                         Table    Pointer   (TBLPTR)         register   specifies    the    byte

              •                                                         address and the Table Latch (TABLAT) register con-

SUB1          •                                                         tains the data that is read from or written to program

              •                                                         memory.      Data     is  transferred      to  or   from    program

         RETURN,         FAST    ;RESTORE          VALUES  SAVED        memory one byte at a time.

                                 ;IN    FAST       REGISTER     STACK   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                 A      fetch       cycle   begins   with  the     program         counter

clocks  and  instruction  execution    flow    are  shown    in      incrementing in Q1.

Figure 6-3.                                                          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  Q1        Q2  Q3             Q4      Q1       Q2  Q3            Q4

             OSC1

             Q1

             Q2                                                                                                                 Internal

             Q3                                                                                                                 Phase
                                                                                                                                Clock

             Q4

             PC                   PC                             PC + 2                              PC + 4

        OSC2/CLKO

        (RC mode)

                            Execute INST (PC – 2)

                              Fetch INST (PC)                    Execute INST (PC)

                                                               Fetch INST (PC + 2)              Execute INST (PC + 2)

                                                                                                Fetch INST (PC + 4)

EXAMPLE 6-3:              INSTRUCTION PIPELINE FLOW

                                  TCY0                 TCY1          TCY2               TCY3             TCY4              TCY5

1.   MOVLW   55h                  Fetch 1           Execute 1

2.   MOVWF   PORTB                                  Fetch 2      Execute 2

3.   BRA     SUB_1                                               Fetch 3            Execute 3

4.   BSF     PORTA,     BIT3  (Forced  NOP)                                         Fetch 4          Flush (NOP)

5.   Instruction     @  address   SUB_1                                                              Fetch SUB_1       Execute 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.

The program memory is addressed in bytes. Instruc-                    Since instructions are always stored on word bound-

tions are stored as two bytes or four bytes in program                aries, the data contained in the instruction is a word

memory. The Least Significant Byte of an instruction                  address.     The  word  address     is  written  to  PC<20:1>,

word is always stored in a program memory location                    which accesses the desired byte address in program

with an even address (LSB = 0). To maintain alignment                 memory. Instruction #2 in Figure 6-4 shows how the

with instruction boundaries, the PC increments in steps               instruction, GOTO      0006h, is encoded in the program

of 2 and the LSB will always read ‘0’ (see Section 6.1.1              memory. Program branch instructions, which encode a

“Program Counter”).                                                   relative address offset, operate in the same manner. The

                                                                      offset value stored in a branch instruction represents the

Figure 6-4 shows an example of how instruction words                  number of single-word instructions that the PC will be

are stored in the program memory.                                     offset  by.   Section 26.0   “Instruction  Set       Summary”

                                                                      provides further details of the instruction set.

FIGURE 6-4:            INSTRUCTIONS IN PROGRAM                     MEMORY

                                                                                              Word Address

                                                                   LSB = 1          LSB = 0            ↓

                                  Program Memory                                                   000000h

                                  Byte Locations  →                                                000002h

                                                                                                   000004h

                                                                                                   000006h

                  Instruction 1:  MOVLW      055h                     0Fh           55h            000008h

                  Instruction 2:  GOTO       0006h                    EFh           03h            00000Ah

                                                                      F0h           00h            00000Ch

                  Instruction 3:  MOVFF      123h,       456h         C1h           23h            00000Eh

                                                                      F4h           56h            000010h

                                                                                                   000012h

                                                                                                   000014h

6.2.4          TWO-WORD INSTRUCTIONS                                  the instruction sequence. If the first word is skipped for

The standard PIC18 instruction set has four, two-word                 some reason and the second word is executed by itself,

instructions:  CALL,  MOVFF,      GOTO  and  LSFR.   In      all      a NOP is executed instead. This is necessary for cases

cases, the second word of the instructions always has                 when the two-word instruction is preceded by a condi-

‘1111’ as its four Most Significant bits; the other 12 bits           tional instruction that changes the PC. Example 6-4

are literal data, usually a data memory address.                      shows how this works.

The use of ‘1111’ in the 4 MSbs of an instruction spec-                   Note:     See Section 6.5 “Program Memory and

ifies a special form of NOP. If the instruction is executed                         the Extended Instruction Set” for infor-

in proper sequence – immediately after the first word –                             mation    on   two-word   instructions  in  the

the data in the second word is accessed and used by                                 extended instruction set.

EXAMPLE 6-4:           TWO-WORD INSTRUCTIONS

CASE 1:

Object Code                       Source 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                      Most instructions in the PIC18 instruction set make use

16      banks      that       contain        256   bytes          each;  of the Bank Pointer, known as the Bank Select Register

PIC18F2480/2580/4480/4580                devices   implement      all    (BSR). This SFR holds the 4 Most Significant bits of a

16   banks.        Figure 6-6     shows      the   data      memory      location’s     address;  the    instruction  itself    includes    the

organization       for   the     PIC18F2480/2580/4480/4580               8 Least Significant bits. Only the four lower bits of the

devices.                                                                 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                   The value of the BSR indicates the bank in data mem-

storage and scratchpad operations in the user’s appli-                   ory; the 8 bits in the instruction show the location in the

cation. Any read of an unimplemented location will read                  bank and can be thought of as an offset from the bank’s

as ‘0’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       Since up to 16 registers may share the same low-order

modes. Addressing modes are discussed later in this                      address, the user must always be careful to ensure that

subsection.                                                              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                       While any bank can be selected, only those banks that

the lower portion of GPR Bank 0 without using the                        are actually implemented can be read or written to.

BSR.      Section 6.3.2       “Access        Bank”      provides  a      Writes     to  unimplemented       banks     are  ignored,       while

detailed description of the Access RAM.                                  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:

                                                        The BSR is ignored and the

                            00h  Access RAM       000h  Access Bank is used.

= 0000            Bank  0                         05Fh  The first 128 bytes are

                                 GPR              060h  general purpose RAM

                            FFh                   0FFh

= 0001                      00h                   100h  (from Bank 0).

                  Bank  1        GPR                    The      second  128   bytes  are

                            FFh                   1FFh  Special      Function  Registers

= 0010                      00h                   200h  (from Bank 15).

                  Bank  2        GPR

                            FFh                   2FFh  When a = 1:

= 0011                      00h                   300h  The BSR specifies the Bank

                  Bank  3                               used by the instruction.

                            FFh                   3FFh

=  0100                     00h                   400h

                  Bank  4

                            FFh                   4FFh

=  0101                     00h                   500h

                  Bank  5

                            FFh                   5FFh

=  0110                     00h                   600h

                  Bank  6

                            FFh                   6FFh           Access Bank

=  0111                     00h                   700h                                00h

                  Bank  7                                        Access RAM Low       5Fh

                            FFh  Unimplemented    7FFh           Access RAM High      60h

=  1000                     00h  Read as ‘0’      800h               (SFRs)       FFh

                  Bank  8

                            FFh                   8FFh

=  1001                     00h                   900h

                  Bank  9

                            FFh                   9FFh

= 1010                      00h                   A00h

                  Bank  10

                            FFh                   AFFh

= 1011                      00h                   B00h

                  Bank  11

                            FFh                   BFFh

= 1100                      00h                   C00h

                  Bank  12

                            FFh                   CFFh

= 1101                      00h                   D00h

                  Bank  13       CAN SFRs

                            FFh                   DFFh

= 1110                      00h                   E00h

                  Bank  14       CAN SFRs

                            FFh                   EFFh

= 1111                      00h  CAN SFRs         F00h

                  Bank  15                        F5Fh

                            FFh  SFR              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:

                                                                  The BSR is ignored and the

                                      00h  Access RAM       000h  Access Bank is used.

= 0000       Bank                 0                         05Fh  The first 128 bytes are

                                           GPR              060h  general purpose RAM

                                      FFh                   0FFh

= 0001                                00h                   100h  (from Bank 0).

             Bank                 1        GPR                    The      second  128   bytes  are

                                      FFh                   1FFh  Special      Function  Registers

= 0010                                00h                   200h  (from Bank 15).

             Bank                 2        GPR

                                      FFh                   2FFh  When a = 1:

= 0011                                00h                   300h  The BSR specifies the Bank

             Bank                 3        GPR                    used by the instruction.

                                      FFh                   3FFh

=  0100                               00h                   400h

             Bank                 4        GPR

                                      FFh                   4FFh

=  0101                               00h                   500h

             Bank                 5        GPR

                                      FFh                   5FFh

=  0110                               00h                   600h

             Bank                 6

                                      FFh                   6FFh           Access Bank

=  0111                               00h                   700h                                00h

             Bank                 7                                        Access RAM Low       5Fh

                                      FFh                   7FFh           Access RAM High      60h

=  1000                               00h                   800h               (SFRs)       FFh

             Bank                 8

                                      FFh                   8FFh

=  1001                               00h                   900h

             Bank                 9        Unimplemented

                                      FFh  Read as ‘0’      9FFh

= 1010                                00h                   A00h

             Bank                 10

                                      FFh                   AFFh

= 1011                                00h                   B00h

             Bank                 11

                                      FFh                   BFFh

= 1100                                00h                   C00h

             Bank                 12

                                      FFh                   CFFh

= 1101                                00h                   D00h

             Bank                 13       CAN SFRs

                                      FFh                   DFFh

= 1110                                00h                   E00h

             Bank                 14       CAN SFRs

                                      FFh                   EFFh

= 1111                                00h  CAN SFRs         F00h

             Bank                 15                        F5Fh

                                      FFh  SFR              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   0     0   0   0      1   1                     Bank 0          FFh             1    1    1   1     1   1   1      1

                                                       100h                           00h

                                                                      Bank 1

             Bank Select(2)                            200h                           FFh

                                                                                      00h

                                                                      Bank 2          FFh

                                                       300h

                                                                                      00h

                                                                      Bank 3

                                                                      through

                                                                      Bank 13

                                                       E00h                           FFh

                                                                                      00h

                                                                      Bank 14         FFh

                                                       F00h                           00h

                                                                      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

                   the registers of the Access Bank.

             2:    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

While   the  use   of  the   BSR     with   an  embedded       8-bit           Bank address map; the current value of the BSR is

address allows users to address the entire range of                            ignored entirely.

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

To streamline access for the most commonly used data                           results or common program variables. Access RAM

memory locations, the data memory is configured with                           also allows for faster and more code efficient context

an  Access      Bank,   which    allows     users  to  access  a               saving and switching of variables.

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

The Special Function Registers (SFRs) are registers                    are described in their respective chapters, while the

used by the CPU and peripheral modules for controlling                 ALU’s     STATUS  register    is       described    later     in  this

the desired operation of the device. These registers are               section.  Registers           related  to  the   operation        of  a

implemented as static RAM. SFRs start at the top of                    peripheral feature are described in the chapter for that

data memory (FFFh) and extend downward to occupy                       peripheral.

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

The    SFRs   can  be  classified  into         two  sets:  those      locations are unimplemented and read as ‘0’s.

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

        FFFh       TOSU                         FDFh        INDF2(3)   FBFh         ECCPR1H                       F9Fh     IPR1

       FFEh        TOSH                         FDEh     POSTINC2(3)   FBEh         ECCPR1L                       F9Eh     PIR1

       FFDh        TOSL                         FDDh     POSTDEC2(3)   FBDh         CCP1CON                       F9Dh     PIE1

       FFCh        STKPTR                       FDCh     PREINC2(3)    FBCh         CCPR2H(1)                     F9Ch     —

       FFBh        PCLATU                       FDBh        PLUSW2(3)  FBBh         CCPR2L(1)                     F9Bh     OSCTUNE

        FFAh       PCLATH                       FDAh        FSR2H      FBAh         ECCP1CON(1)                   F9Ah     —

        FF9h           PCL                      FD9h        FSR2L      FB9h              —                        F99h     —

        FF8h       TBLPTRU                      FD8h        STATUS     FB8h         BAUDCON                       F98h     —

        FF7h       TBLPTRH                      FD7h        TMR0H      FB7h         ECCP1DEL                      F97h     —

        FF6h       TBLPTRL                      FD6h        TMR0L      FB6h         ECCP1AS(1)                    F96h     TRISE(1)

        FF5h       TABLAT                       FD5h        T0CON      FB5h         CVRCON(1)                     F95h     TRISD(1)

        FF4h       PRODH                        FD4h            —      FB4h         CMCON                         F94h     TRISC

        FF3h       PRODL                        FD3h        OSCCON     FB3h         TMR3H                         F93h     TRISB

        FF2h       INTCON                       FD2h        HLVDCON    FB2h         TMR3L                         F92h     TRISA

        FF1h       INTCON2                      FD1h        WDTCON     FB1h         T3CON                         F91h     —

        FF0h       INTCON3                      FD0h        RCON       FB0h         SPBRGH                        F90h     —

       FEFh        INDF0(3)                     FCFh        TMR1H      FAFh         SPBRG                         F8Fh     —

       FEEh        POSTINC0(3)                  FCEh        TMR1L      FAEh         RCREG                         F8Eh     —

       FEDh   POSTDEC0(3)                       FCDh        T1CON      FADh         TXREG                         F8Dh     LATE(1)

       FECh        PREINC0(3)                   FCCh            TMR2   FACh         TXSTA                         F8Ch     LATD(1)

       FEBh        PLUSW0(3)                    FCBh            PR2    FABh         RCSTA                         F8Bh     LATC

       FEAh        FSR0H                        FCAh        T2CON      FAAh              —                        F8Ah     LATB

        FE9h       FSR0L                        FC9h        SSPBUF     FA9h         EEADR                         F89h     LATA

        FE8h       WREG                         FC8h        SSPADD     FA8h         EEDATA                        F88h     —

        FE7h       INDF1(3)                     FC7h        SSPSTAT    FA7h         EECON2(3)                     F87h     —

        FE6h       POSTINC1(3)                  FC6h        SSPCON1    FA6h         EECON1                        F86h     —

        FE5h  POSTDEC1(3)                       FC5h        SSPCON2    FA5h         IPR3                          F85h     —

        FE4h       PREINC1(3)                   FC4h        ADRESH     FA4h         PIR3                          F84h     PORTE

        FE3h       PLUSW1(3)                    FC3h        ADRESL     FA3h         PIE3                          F83h     PORTD(1)

        FE2h       FSR1H                        FC2h        ADCON0     FA2h         IPR2                          F82h     PORTC

        FE1h       FSR1L                        FC1h        ADCON1     FA1h         PIR2                          F81h     PORTB

        FE0h           BSR                      FC0h        ADCON2     FA0h         PIE2                          F80h     PORTA

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        —                           F5Eh  CANSTAT_RO0  F3Eh     CANSTAT_RO2              F1Eh          RXM1EIDH

      F7Dh        —                           F5Dh  RXB1D7       F3Dh     TXB1D7                   F1Dh          RXM1SIDL

      F7Ch        —                           F5Ch  RXB1D6       F3Ch     TXB1D6                   F1Ch          RXM1SIDH

      F7Bh        —                           F5Bh  RXB1D5       F3Bh     TXB1D5                   F1Bh          RXM0EIDL

      F7Ah        —                           F5Ah  RXB1D4       F3Ah     TXB1D4                   F1Ah          RXM0EIDH

      F79h        —                           F59h  RXB1D3       F39h     TXB1D3                   F19h          RXM0SIDL

      F78h        —                           F58h  RXB1D2       F38h     TXB1D2                   F18h          RXM0SIDH

      F77h        ECANCON                     F57h  RXB1D1       F37h     TXB1D1                   F17h          RXF5EIDL

      F76h  TXERRCNT                          F56h  RXB1D0       F36h     TXB1D0                   F16h          RXF5EIDH

      F75h  RXERRCNT                          F55h  RXB1DLC      F35h     TXB1DLC                  F15h          RXF5SIDL

      F74h        COMSTAT                     F54h  RXB1EIDL     F34h     TXB1EIDL                 F14h          RXF5SIDH

      F73h        CIOCON                      F53h  RXB1EIDH     F33h     TXB1EIDH                 F13h          RXF4EIDL

      F72h        BRGCON3                     F52h  RXB1SIDL     F32h     TXB1SIDL                 F12h          RXF4EIDH

      F71h        BRGCON2                     F51h  RXB1SIDH     F31h     TXB1SIDH                 F11h          RXF4SIDL

      F70h        BRGCON1                     F50h  RXB1CON      F30h     TXB1CON                  F10h          RXF4SIDH

      F6Fh        CANCON                      F4Fh  CANCON_RO1   F2Fh     CANCON_RO3               F0Fh          RXF3EIDL

      F6Eh        CANSTAT                     F4Eh  CANSTAT_RO1  F2Eh     CANSTAT_RO3              F0Eh          RXF3EIDH

      F6Dh        RXB0D7                      F4DH  TXB0D7       F2Dh     TXB2D7                   F0Dh          RXF3SIDL

      F6Ch        RXB0D6                      F4Ch  TXB0D6       F2Ch     TXB2D6                   F0Ch          RXF3SIDH

      F6Bh        RXB0D5                      F4Bh  TXB0D5       F2Bh     TXB2D5                   F0Bh          RXF2EIDL

      F6Ah        RXB0D4                      F4Ah  TXB0D4       F2Ah     TXB2D4                   F0Ah          RXF2EIDH

      F69h        RXB0D3                      F49h  TXB0D3       F29h     TXB2D3                   F09h          RXF2SIDL

      F68h        RXB0D2                      F48h  TXB0D2       F28h     TXB2D2                   F08h          RXF2SIDH

      F67h        RXB0D1                      F47h  TXB0D1       F27h     TXB2D1                   F07h          RXF1EIDL

      F66h        RXB0D0                      F46h  TXB0D0       F26h     TXB2D0                   F06h          RXF1EIDH

      F65h        RXB0DLC                     F45h  TXB0DLC      F25h     TXB2DLC                  F05h          RXF1SIDL

      F64h        RXB0EIDL                    F44h  TXB0EIDL     F24h     TXB2EIDL                 F04h          RXF1SIDH

      F63h        RXB0EIDH                    F43h  TXB0EIDH     F23h     TXB2EIDH                 F03h          RXF0EIDL

      F62h        RXB0SIDL                    F42h  TXB0SIDL     F22h     TXB2SIDL                 F02h          RXF0EIDH

      F61h        RXB0SIDH                    F41h  TXB0SIDH     F21h     TXB2SIDH                 F01h          RXF0SIDL

      F60h        RXB0CON                     F40h  TXB0CON      F20h     TXB2CON                  F00h          RXF0SIDH

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  CANSTAT_RO4                       E6Eh  CANSTAT_RO5  E5Eh     CANSTAT_RO6              E4Eh          CANSTAT_RO7

      E7Dh        B5D7(2)                     E6Dh  B4D7(2)      E5Dh     B3D7(2)                  E4Dh          B2D7(2)

      E7Ch        B5D6(2)                     E6Ch  B4D6(2)      E5Ch     B3D6(2)                  E4Ch          B2D6(2)

      E7Bh        B5D5(2)                     E6Bh  B4D5(2)      E5Bh     B3D5(2)                  E4Bh          B2D5(2)

      E7Ah        B5D4(2)                     E6Ah  B4D4(2)      E5Ah     B3D4(2)                  E4Ah          B2D4(2)

      E79h        B5D3(2)                     E69h  B4D3(2)      E59h     B3D3(2)                  E49h          B2D3(2)

      E78h        B5D2(2)                     E68h  B4D2(2)      E58h     B3D2(2)                  E48h          B2D2(2)

      E77h        B5D1(2)                     E67h  B4D1(2)      E57h     B3D1(2)                  E47h          B2D1(2)

      E76h        B5D0(2)                     E66h  B4D0(2)      E56h     B3D0(2)                  E46h          B2D0(2)

      E75h        B5DLC(2)                    E65h  B4DLC(2)     E55h     B3DLC(2)                 E45h          B2DLC(2)

      E74h        B5EIDL(2)                   E64h  B4EIDL(2)    E54h     B3EIDL(2)                E44h          B2EIDL(2)

      E73h        B5EIDH(2)                   E63h  B4EIDH(2)    E53h     B3EIDH(2)                E43h          B2EIDH(2)

      E72h        B5SIDL(2)                   E62h  B4SIDL(2)    E52h     B3SIDL(2)                E42h          B2SIDL(2)

      E71h        B5SIDH(2)                   E61h  B4SIDH(2)    E51h     B3SIDH(2)                E41h          B2SIDH(2)

      E70h        B5CON (2)                   E60h  B4CON(2)     E50h     B3CON(2)                 E40h          B2CON(2)

      E3Fh  CANCON_RO8                        E2Fh  CANCON_RO9   E1Fh     —                        E0Fh          —

      E3Eh  CANSTAT_RO8                       E2Eh  CANSTAT_RO9  E1Eh     —                        E0Eh          —

      E3Dh        B1D7(2)                     E2Dh  B0D7(2)      E1Dh     —                        E0Dh          —

      E3Ch        B1D6(2)                     E2Ch  B0D6(2)      E1Ch     —                        E0Ch          —

      E3Bh        B1D5(2)                     E2Bh  B0D5(2)      E1Bh     —                        E0Bh          —

      E3Ah        B1D4(2)                     E2Ah  B0D4(2)      E1Ah     —                        E0Ah          —

      E39h        B1D3(2)                     E29h  B0D3(2)      E19h     —                        E09h          —

      E38h        B1D2(2)                     E28h  B0D2(2)      E18h     —                        E08h          —

      E37h        B1D1(2)                     E27h  B0D1(2)      E17h     —                        E07h          —

      E36h        B1D0(2)                     E26h  B0D0(2)      E16h     —                        E06h          —

      E35h        B1DLC(2)                    E25h  B0DLC(2)     E15h     —                        E05h          —

      E34h        B1EIDL(2)                   E24h  B0EIDL(2)    E14h     —                        E04h          —

      E33h        B1EIDH(2)                   E23h  B0EIDH(2)    E13h     —                        E03h          —

      E32h        B1SIDL(2)                   E22h  B0SIDL(2)    E12h     —                        E02h          —

      E31h        B1SIDH(2)                   E21h  B0SIDH(2)    E11h     —                        E01h          —

      E30h        B1CON(2)                    E20h  B0CON(2)     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  —