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

产品描述

搜索

PIC16F1825-E-SL

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

器件描述

Non-Isolated DC/DC Converters 7.5W 24V 5Vout 1.5A Horizontal Mount

参数
产品属性属性值
产品种类:
Product Category:
8-bit Microcontrollers - MCU
制造商:
Manufacturer:
Microchip
RoHS:YES
安装风格:
Mounting Style:
SMD/SMT
封装 / 箱体:
Package / Case:
SOIC-14
系列:
Series:
PIC16
Core:PIC16
Data Bus Width:8 bit
Maximum Clock Frequency:32 MHz
Program Memory Size:8 kB
Data RAM Size:1 kB
ADC Resolution:10 bit
Number of I/Os:12 I/O
工作电源电压:
Operating Supply Voltage:
1.8 V to 5.5 V
最大工作温度:
Maximum Operating Temperature:
+ 125 C
接口类型:
Interface Type:
I2C, SPI, USART
封装:
Packaging:
Tube
商标:
Brand:
Microchip Technology
Data RAM Type:SRAM
高度:
Height:
1.25 mm (Min)
长度:
Length:
8.65 mm
最小工作温度:
Minimum Operating Temperature:
- 40 C
Number of ADC Channels:8
Number of Timers/Counters:5 Timer
Processor Series:PIC16
产品:
Product:
MCU
Program Memory Type:Flash
工厂包装数量:
Factory Pack Quantity:
57
电源电压-最大:
Supply Voltage - Max:
5.5 V
电源电压-最小:
Supply Voltage - Min:
2.3 V
商标名:
Tradename:
PIC
宽度:
Width:
3.9 mm
单位重量:
Unit Weight:
0.011923 oz

PIC16F1825-E-SL器件文档内容

                                                           PIC16(L)F1825/9

               14/20-Pin Flash Microcontrollers with XLP Technology

High-Performance RISC CPU                            Extreme Low-Power Management

•  Only 49 Instructions to Learn:                    PIC16LF1825/9 with XLP

   -  All single-cycle instructions except branches  •  Sleep mode: 20 nA @ 1.8V, typical

•  Operating Speed:                                  •  Watchdog Timer: 300 nA @ 1.8V, typical

   -  DC – 32 MHz oscillator/clock input             •  Timer1 Oscillator: 650 nA @ 32 kHz, 1.8V, typical

   -  DC – 125 ns instruction cycle                  •  Operating Current: 48 µA/MHz @ 1.8V, typical

•  Up to 16 Kbytes Linear Program Memory

   Addressing                                        Analog Features

•  Up to 1024 bytes Linear Data Memory Addressing    •  Analog-to-Digital Converter (ADC) Module:

•  Interrupt Capability with Automatic Context          -  10-bit resolution, up to 12 channels

   Saving                                               -  Auto acquisition capability

•  16-Level Deep Hardware Stack with Optional           -  Conversion available during Sleep

   Overflow/Underflow Reset                          •  Analog Comparator Module:

•  Direct, Indirect and Relative Addressing modes:      -  Two rail-to-rail analog comparators

   -  Two full 16-bit File Select Registers (FSRs)      -  Power mode control

   -  FSRs can read program and data memory             -  Software controllable hysteresis

Flexible Oscillator Structure                        •  Voltage Reference Module:

                                                        -  Fixed Voltage Reference (FVR) with 1.024V,

•  Precision 32 MHz Internal Oscillator Block:             2.048V and 4.096V output levels

   -  Factory calibrated to ± 1%, typical               -  5-bit rail-to-rail resistive DAC with positive

   -  Software selectable frequencies range of             and negative reference selection

      31 kHz to 32 MHz                               Peripheral Highlights

•  31 kHz Low-Power Internal Oscillator

•  Four Crystal modes up to 32 MHz                   •  Up to 17 I/O Pins and 1 Input Only Pin:

•  Three External Clock modes up to 32 MHz              -  High current sink/source 25 mA/25 mA

•  4x Phase Lock Loop (PLL)                             -  Programmable weak pull-ups

•  Fail-Safe Clock Monitor:                             -  Programmable interrupt-on-change pins

   -  Allows for safe shutdown if peripheral clock   •  Timer0: 8-Bit Timer/Counter with 8-Bit Prescaler

      stops                                          •  Enhanced Timer1:

•  Two-Speed Oscillator Start-Up                        -  16-bit timer/counter with prescaler

•  Reference Clock Module:                              -  External Gate Input mode

   -  Programmable clock output frequency and           -  Dedicated, low-power 32 kHz oscillator driver

      duty cycle                                     •  Three Timer2-types: 8-Bit Timer/Counter with 8-Bit

                                                        Period Register, Prescaler and Postscaler

Special Microcontroller Features                     •  Two Capture, Compare, PWM (CCP) Modules

•  1.8V-5.5V Operation – PIC16F1825/9                •  Two Enhanced CCP (ECCP) Modules:

•  1.8V-3.6V Operation – PIC16LF1825/9                  -  Software selectable time bases

•  Self-Programmable under Software Control             -  Auto-shutdown and auto-restart

•  Power-on Reset (POR), Power-up Timer (PWRT)          -  PWM steering

   and Oscillator Start-up Timer (OST)               •  Up to Two Master Synchronous Serial Port
                                                        (MSSP) with SPI and I2CTM with:
•  Programmable Brown-out Reset (BOR)
                                                        -  7-bit address masking
•  Extended Watchdog Timer (WDT)
                                                        -  SMBus/PMBusTM compatibility
•  In-Circuit Serial Programming™ (ICSP™) via
                                                     •  Enhanced Universal Synchronous Asynchronous
   Two Pins
                                                        Receiver Transmitter (EUSART) Module
•  In-Circuit Debug (ICD) via Two Pins
                                                     •  mTouch™ Sensing Oscillator Module:
•  Enhanced Low-Voltage Programming (LVP)
                                                        -  Up to 12 input channels
•  Programmable Code Protection

•  Power-Saving Sleep mode

 2010-2015 Microchip Technology Inc.                                                      DS40001440E-page 1
PIC16(L)F1825/9

Peripheral Highlights (Continued)

•  Data Signal Modulator Module:

   -  Selectable modulator and carrier sources

•  SR Latch:

   -  Multiple Set/Reset input options

   -  Emulates 555 Timer applications

PIC12(L)F1822/1840/PIC16(L)F182x/1847                                                                          Family                     Types

      Device        Data Sheet Index  Program Memory  Flash (words)  Data EEPROM  (bytes)  Data SRAM  (bytes)  I/O’s(2)  10-bit ADC (ch)  CapSense (ch)  Comparators  Timers  (8/16-bit)  EUSART  MSSP (I2C™/SPI)  ECCP (Full-Bridge)  ECCP (Half-Bridge)  CCP  SR Latch  Debug(1)  XLP

PIC12(L)F1822       (1)               2K                             256                   128                 6         4                4              1            2/1                 1       1                0/1/0                                        Y         I/H       Y

PIC12(L)F1840       (2)               4K                             256                   256                 6         4                4              1            2/1                 1       1                0/1/0                                        Y         I/H       Y

PIC16(L)F1823       (1)               2K                             256                   128                 12        8                8              2            2/1                 1       1                1/0/0                                        Y         I/H       Y

PIC16(L)F1824       (3)               4K                             256                   256                 12        8                8              2            4/1                 1       1                1/1/2                                        Y         I/H       Y

PIC16(L)F1825       (4)               8K                             256                   1024                12        8                8              2            4/1                 1       1                1/1/2                                        Y         I/H       Y

PIC16(L)F1826       (5)               2K                             256                   256                 16        12               12             2            2/1                 1       1                1/0/0                                        Y         I/H       Y

PIC16(L)F1827       (5)               4K                             256                   384                 16        12               12             2            4/1                 1       2                1/1/2                                        Y         I/H       Y

PIC16(L)F1828       (3)               4K                             256                   256                 18        12               12             2            4/1                 1       1                1/1/2                                        Y         I/H       Y

PIC16(L)F1829       (4)               8K                             256                   1024                18        12               12             2            4/1                 1       2                1/1/2                                        Y         I/H       Y

PIC16(L)F1847       (6)               8K                             256                   1024                16        12               12             2            4/1                 1       2                1/1/2                                        Y         I/H       Y

Note  1:  I - Debugging, Integrated on Chip; H - Debugging, available using Debug Header.

      2:  One pin is input-only.

Data Sheet Index: (Unshaded devices are described in this document.)

      1:  DS41413                     PIC12(L)F1822/PIC16(L)F1823 Data Sheet, 8/14-Pin Flash Microcontrollers.

      2:  DS41441                     PIC12(L)F1840 Data Sheet, 8-Pin Flash Microcontrollers.

      3:  DS41419                     PIC16(L)F1824/1828 Data Sheet, 28/40/44-Pin Flash Microcontrollers.

      4:  DS41440                     PIC16(L)F1825/1829 Data Sheet, 14/20-Pin Flash Microcontrollers.

      5:  DS41391                     PIC16(L)F1826/1827 Data Sheet, 18/20/28-Pin Flash Microcontrollers.

      6:  DS41453                     PIC16(L)F1847 Data Sheet, 18/20/28-Pin Flash Microcontrollers.

   Note:      For  other              small                          form-factor           package                       availability                                 and     marking                information,                                               please              visit

              www.microchip.com/packaging or contact your local sales office.

DS40001440E-page 2                                                                                                                                                                         2010-2015 Microchip Technology Inc.
                                                                                                   PIC16(L)F1825/9

FIGURE 1:  14-PIN  DIAGRAM FOR PIC16(L)F1825

PDIP, SOIC, TSSOP

                                            VDD           1                      14           VSS

                                            RA5           2       PIC16(L)F1825  13           RA0/ICSPDAT

                                            RA4           3                      12           RA1/ICSPCLK

                                       MCLR/VPP/RA3       4                      11           RA2

                                            RC5           5                      10           RC0

                                            RC4           6                           9       RC1

                                            RC3           7                           8       RC2

FIGURE 2:  16-PIN  DIAGRAM FOR PIC16(L)F1825

QFN, UQFN

                                               VDD           NC   NC                     VSS

                                       RA5           16      15                  14      13

                                            1                                                 12   RA0/ICSPDAT

                                       RA4  2        PIC16(L)F1825                            11   RA1/ICSPCLK

                   MCLR/VPP/RA3             3                                                 10   RA2

                                       RC5  4                                                 9    RC0

                                               5             6                   7       8

                                                     RC4     RC3                 RC2     RC1

 2010-2015 Microchip Technology Inc.                                                                           DS40001440E-page 3
PIC16(L)F1825/9

TABLE 1:                                           14-PIN AND 16-PIN ALLOCATION TABLE (PIC16(L)F1825)

I/O       14-Pin PDIP/SOIC/TSSOP  16-Pin QFN/UQFN  A/D      Reference   Cap Sense  Comparator  SR Latch  Timers   ECCP     EUSART  MSSP     Interrupt  Modulator  Pull-up  Basic

RA0       13                      12               AN0      VREF-       CPS0       C1IN+       —         —        —        TX(1)   —        IOC        —          Y        ICSPDAT

                                                            DACOUT                                                         CK(1)                                           ICDDAT

RA1       12                      11               AN1      VREF+       CPS1       C12IN0-     SRI       —        —        RX(1)   —        IOC        —          Y        ICSPCLK

                                                                                                                           DT(1)                                           ICDCLK

RA2       11                      10               AN2      —           CPS2       C1OUT       SRQ       T0CKI    CCP3     —       —        INT/       —          Y        —

                                                                                                                  FLT0                      IOC

RA3       4                       3                —        —           —          —           —         T1G(1)   —        —       SS1(1)   IOC        —          Y        MCLR

                                                                                                                                                                           VPP

RA4       3                       2                AN3      —           CPS3       —           —         T1G(1)   P2B(1)   —       SDO1(1)  IOC        —          Y        OSC2

                                                                                                         T1OSO                                                             CLKOUT

                                                                                                                                                                           CLKR

RA5       2                       1                —        —           —          —           —         T1CKI    CCP2     —       —        IOC        —          Y        OSC1

                                                                                                         T1OSI    P2A(1)                                                   CLKIN

RC0       10                      9                AN4      —           CPS4       C2IN+       —         —        P1D(1)   —       SCL      —          —          Y        —

                                                                                                                                   SCK

RC1       9                       8                AN5      —           CPS5       C12IN1-     —         —        CCP4     —       SDA      —          —          Y        —

                                                                                                                  P1C(1)           SDI

RC2       8                       7                AN6      —           CPS6       C12IN2-     —         —        P1D(1)   —       SDO1(1)  —          MDCIN1     Y        —

                                                                                                                  P2B(1)

RC3       7                       6                AN7      —           CPS7       C12IN3-     —         —        CCP2(1)  —       SS1(1)   —          MDMIN      Y        —

                                                                                                                  P1C(1)

                                                                                                                  P2A(1)

RC4       6                       5                —        —           —          C2OUT       SRNQ      —        P1B      TX(1)   —        —          MDOUT      Y        —

                                                                                                                           CK(1)

RC5       5                       4                —        —           —          —           —         —        CCP1     RX(1)   —        —          MDCIN2     Y        —

                                                                                                                  P1A      DT(1)

VDD       1                       16               —        —           —          —           —         —        —        —       —        —          —          —        VDD

VSS       14                      13               —        —           —          —           —         —        —        —       —        —          —          —        VSS

Note  1:      Pin function                              is  selectable  via the APFCON0 or     APFCON1 register.

DS40001440E-page 4                                                                                                                  2010-2015         Microchip  Technology Inc.
                                                                                                  PIC16(L)F1825/9

FIGURE 3:  20-PIN  DIAGRAM FOR PIC16(L)F1829

PDIP, SOIC, SSOP

                                                        VDD       1                      20  VSS

                                                     RA5          2                      19  RA0/ICSPDAT

                                                     RA4          3                      18  RA1/ICSPCLK

                                       MCLR/VPP/RA3               4    PIC16(L)F1829     17  RA2

                                                     RC5          5                      16  RC0

                                                     RC4          6                      15  RC1

                                                     RC3          7                      14  RC2

                                                     RC6          8                      13  RB4

                                                     RC7          9                      12  RB5

                                                     RB7          10                     11  RB6

FIGURE 4:  20-PIN  DIAGRAM FOR PIC16(L)F1829

QFN, UQFN

                                                        RA4  RA5  VDD  Vss  ICSPDAT/RA0

                                       MCLR/VPP/RA3  1  20   19   18   17   16           15  RA1/ICSPCLK

                                       RC5           2                                   14  RA2

                                       RC4           3 PIC16(L)F1829 13                      RC0

                                       RC3           4                                   12  RC1

                                       RC6           5                      10           11  RC2

                                                        6    7    8    9

                                                        RC7  RB7  RB6  RB5  RB4

 2010-2015 Microchip Technology Inc.                                                                     DS40001440E-page 5
PIC16(L)F1825/9

TABLE 2:                                      20-PIN ALLOCATION TABLE (PIC16(L)F1829)

I/O   20-Pin PDIP/SOIC/SSOP  20-Pin QFN/UQFN  A/D   Reference  Cap Sense  Comparator  SR Latch  Timers  CCP      EUSART  SSP      Interrupt  Modulator  Pull-up  Basic

RA0   19                     16               AN0   VREF-      CPS0       C1IN+       —         —       —        —       —        IOC        —          Y        ICSPDAT/

                                                    DACOUT                                                                                                       ICDDAT

RA1   18                     15               AN1   VREF+      CPS1       C12IN0-     SRI       —       —        —       —        IOC        —          Y        ICSPCLK/

                                                                                                                                                                 ICDCLK

RA2   17                     14               AN2   —          CPS2       C1OUT       SRQ       T0CKI   CCP3     —       —        INT/       —          Y        —

                                                                                                        FLT0                      IOC

RA3   4                      1                      —          —          —           —         T1G(1)  —        —       —        IOC        —          Y(4)     MCLR

                                                                                                                                                                 VPP

RA4   3                      20               AN3   —          CPS3       —           —         T1G(1)  P2B(1)   —       SS2(1)   IOC        —          Y        OSC2

                                                                                                T1OSO                                                            CLKOUT

                                                                                                                                                                 CLKR

RA5   2                      19               —     —          —          —           —         T1CKI   CCP2(1)  —       SDO2(1)  IOC        —          Y        OSC1
                                                                                                        P2A(1)
                                                                                                T1OSI                                                            CLKIN

RB4   13                     10               AN10  —          CPS10      —                     —       —        —       SDA1     IOC        —          Y        —

                                                                                                                         SDI1

RB5   12                     9                AN11  —          CPS11      —           —         —       —        RX(1)   SDA2     IOC        —          Y        —
                                                                                                                 DT(1)
                                                                                                                         SDI2

RB6   11                     8                —     —          —          —           —         —       —        —       SCL1     IOC        —          Y        —

                                                                                                                         SCK1

RB7   10                     7                —     —          —          —           —         —       —        TX(1)   SCL2     IOC        —          Y        —
                                                                                                                 CK(1)
                                                                                                                         SCK2

RC0   16                     13               AN4   —          CPS4       C2IN+       —         —       P1D(1)   —       SS2(1)   —          —          Y        —

RC1   15                     12               AN5   —          CPS5       C12IN1-     —         —       P1C(1)   —       SDO2(1)  —          —          Y        —

RC2   14                     11               AN6   —          CPS6       C12IN2-     —         —       P1D(1)   —       —        —          MDCIN1     Y        —
                                                                                                        P2B(1)

RC3   7                      4                AN7   —          CPS7       C12IN3-     —         —       P1C(1)   —       —        —          MDMIN      Y        —
                                                                                                        CCP2(1)
                                                                                                        P2A(1)

RC4   6                      3                —     —          —          C2OUT       SRNQ      —       P1B      TX(1)   —        —          MDOUT      Y        —
                                                                                                                 CK(1)

RC5   5                      2                —     —          —          —           —         —       CCP1     RX(1)   —        —          MDCIN2     Y        —
                                                                                                                 DT(1)
                                                                                                        P1A

RC6   8                      5                AN8   —          CPS8       —           —         —       CCP4     —       SS1      —          —          Y        —

RC7   9                      6                AN9   —          CPS9       —           —         —       —        —       SDO1     —          —          Y        —

VDD   1                      18               —     —          —          —           —         —       —        —       —        —          —          —        VDD

Vss   20                     17               —     —          —          —           —         —       —        —       —        —          —          —        VSS

Note  1:                        Pin function is selectable via the APFCON0 or APFCON1 register.

DS40001440E-page 6                                                                                                        2010-2015 Microchip Technology Inc.
                                       PIC16(L)F1825/9

Table of Contents

1.0   Device Overview .......................................................................................................................................................................... 9

2.0   Enhanced Mid-range CPU ......................................................................................................................................................... 17

3.0   Memory Organization ................................................................................................................................................................. 19

4.0   Device Configuration .................................................................................................................................................................. 47

5.0   Oscillator Module (With Fail-Safe Clock Monitor)....................................................................................................................... 53

6.0   Reference Clock Module ............................................................................................................................................................ 71

7.0   Resets ........................................................................................................................................................................................ 74

8.0   Interrupts .................................................................................................................................................................................... 82

9.0   Power-Down Mode (Sleep) ........................................................................................................................................................ 96

10.0  Watchdog Timer ......................................................................................................................................................................... 98

11.0  Data EEPROM and Flash Program Memory Control ............................................................................................................... 102

12.0  I/O Ports ................................................................................................................................................................................... 116

13.0  Interrupt-on-Change ................................................................................................................................................................. 136

14.0  Fixed Voltage Reference (FVR) ............................................................................................................................................... 141

15.0  Temperature Indicator Module ................................................................................................................................................. 143

16.0  Analog-to-Digital Converter (ADC) Module .............................................................................................................................. 144

17.0  Digital-to-Analog Converter (DAC) Module .............................................................................................................................. 157

18.0  SR Latch................................................................................................................................................................................... 162

19.0  Comparator Module.................................................................................................................................................................. 167

20.0  Timer0 Module ......................................................................................................................................................................... 174

21.0  Timer1 Module with Gate Control............................................................................................................................................. 177

22.0  Timer2/4/6 Modules.................................................................................................................................................................. 188

23.0  Data Signal Modulator.............................................................................................................................................................. 192

24.0  Capture/Compare/PWM Modules ............................................................................................................................................ 201

25.0  Master Synchronous Serial Port (MSSP1 and MSSP2) Module .............................................................................................. 229

26.0  Enhanced Universal Synchronous Asynchronous Receiver Transmitter (EUSART) ............................................................... 281

27.0  Capacitive Sensing (CPS) Module ........................................................................................................................................... 309

28.0  In-Circuit Serial Programming™ (ICSP™) ............................................................................................................................... 317

29.0  Instruction Set Summary .......................................................................................................................................................... 320

30.0  Electrical Specifications............................................................................................................................................................ 334

31.0  DC and AC Characteristics Graphs and Charts ....................................................................................................................... 370

32.0  Development Support............................................................................................................................................................... 401

33.0  Packaging Information.............................................................................................................................................................. 405

Appendix A: Data Sheet Revision History.......................................................................................................................................... 432

Appendix B: Migrating From Other PIC® Devices ............................................................................................................................. 432

The Microchip Web Site ..................................................................................................................................................................... 433

Customer Change Notification Service .............................................................................................................................................. 433

Customer Support .............................................................................................................................................................................. 433

Product Identification System ............................................................................................................................................................ 434

 2010-2015 Microchip Technology Inc.  DS40001440E-page 7
PIC16(L)F1825/9

                              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@microchip.com. 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., DS30000000A is version A of document DS30000000).

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)

When contacting a sales office, 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 to receive the most current information on all of our products.

DS40001440E-page 8                                             2010-2015 Microchip Technology Inc.
                                                                                       PIC16(L)F1825/9

1.0      DEVICE OVERVIEW

The  PIC16(L)F1825/9   are       described    within         this  data

sheet.   They  are    available  in  14/20    pin            packages.

Figure 1-1     shows   a    block        diagram             of                   the

PIC16(L)F1825/9 devices. Tables 1-2 and 1-3 show the

pinout descriptions.

Reference   Table 1-1  for       peripherals  available                           per

device.

TABLE 1-1:            DEVICE PERIPHERAL

                      SUMMARY

Peripheral                                    PIC16(L)F1825        PIC16(L)F1829

ADC                                           ●                    ●

Capacitive Sensing (CPS) Module               ●                    ●

Data EEPROM                                   ●                    ●

Digital-to-Analog Converter (DAC)             ●                    ●

Digital Signal Modulator (DSM)                ●                    ●

EUSART                                        ●                    ●

Fixed Voltage Reference (FVR)                 ●                    ●

SR Latch                                      ●                    ●

Capture/Compare/PWM Modules

                                 ECCP1        ●                    ●

                                 ECCP2        ●                    ●

                                 CCP3         ●                    ●

                                 CCP4         ●                    ●

Comparators

                                     C1       ●                    ●

                                     C2       ●                    ●

Master Synchronous Serial Ports

                                 MSSP1        ●                    ●

                                 MSSP2                             ●

Timers

                                 Timer0       ●                    ●

                                 Timer1       ●                    ●

                                 Timer2       ●                    ●

                                 Timer4       ●                    ●

                                 Timer6       ●                    ●

 2010-2015 Microchip Technology Inc.                                                  DS40001440E-page 9
PIC16(L)F1825/9

FIGURE 1-1:          PIC16(L)F1825/9 BLOCK DIAGRAM

                                                  Program

                                                  Flash Memory

CLKR                                                                                       RAM          EEPROM

                 Clock

             Reference

OSC2/CLKOUT      Timing                                                                                 PORTA
             Generation

OSC1/CLKIN       INTRC                            CPU

             Oscillator                                                                                 PORTB(3)

                                                  (Figure 2-1)

                 MCLR                                                                                   PORTC

                 ADC     Timer0           Timer1  Timer2        Timer4             Timer6  Comparators

                 10-Bit

                     SR  ECCP1            ECCP2   CCP3          CCP4               MSSP    EUSART

                 Latch

Note         1:      See applicable chapters for more information on peripherals.

             2:      See Table 1-1 for peripherals available on specific devices.

             3:      PIC16(L)F1829 only.

DS40001440E-page 10                                                                         2010-2015  Microchip Technology  Inc.
                                                                                     PIC16(L)F1825/9

TABLE 1-2:         PIC16(L)F1825 PINOUT DESCRIPTION

             Name                    Function  Input  Output                                Description

                                               Type   Type

RA0/AN0/CPS0/C1IN+/VREF-/              RA0     TTL    CMOS     General purpose I/O.

DACOUT/TX(1)/CK(1)/                    AN0     AN          —   A/D Channel 0 input.

ICSPDAT/ICDDAT                       CPS0      AN          —   Capacitive sensing input 0.

                                     C1IN+     AN          —   Comparator C1 positive input.

                                     VREF-     AN          —   A/D and DAC Negative Voltage Reference input.

                                     DACOUT       —        AN  Digital-to-Analog Converter output.

                                       TX         —   CMOS     USART asynchronous transmit.

                                       CK      ST     CMOS     USART synchronous clock.

                                     ICSPDAT   ST     CMOS     ICSP™ Data I/O.

                                     ICDDAT    ST     CMOS     In-Circuit Data I/O.

RA1/AN1/CPS1/C12IN0-/VREF+/            RA1     TTL    CMOS     General purpose I/O.

SRI/RX(1)/DT(1)/ICSPCLK/               AN1     AN          —   A/D Channel 1 input.

ICDCLK                               CPS1      AN          —   Capacitive sensing input 1.

                                     C12IN0-   AN          —   Comparator C1 or C2 negative input.

                                     VREF+     AN          —   A/D and DAC Positive Voltage Reference input.

                                       SRI     ST          —   SR Latch input.

                                       RX      ST          —   USART asynchronous input.

                                       DT      ST     CMOS     USART synchronous data.

                                     ICSPCLK   ST          —   Serial Programming Clock.

                                     ICDCLK    ST          —   In-Circuit Debug Clock.

RA2/AN2/CPS2/T0CKI/INT/                RA2     ST     CMOS     General purpose I/O.

C1OUT/SRQ/CCP3/FLT0                    AN2     AN          —   A/D Channel 2 input.

                                     CPS2      AN          —   Capacitive sensing input 2.

                                     T0CKI     ST          —   Timer0 clock input.

                                       INT     ST          —   External interrupt.

                                     C1OUT        —   CMOS     Comparator C1 output.

                                       SRQ        —   CMOS     SR Latch non-inverting output.

                                     CCP3      ST     CMOS     Capture/Compare/PWM3.

                                       FLT0    ST          —   ECCP Auto-Shutdown Fault input.

RA3/SS1(1)/T1G(1)/VPP/MCLR             RA3     TTL         —   General purpose input.

                                       SS1     ST          —   Slave Select input.

                                       T1G     ST          —   Timer1 Gate input.

                                       VPP     HV          —   Programming voltage.

                                     MCLR      ST          —   Master Clear with internal pull-up.

Legend:  AN  = Analog input or output  CMOS = CMOS compatible input or output               OD      = Open Drain
                                                                                            I2C™ = Schmitt Trigger               I2C
         TTL = TTL compatible input    ST      = Schmitt Trigger input with CMOS levels                             input  with

         HV  = High Voltage            XTAL    =  Crystal                                           levels

Note 1:  Pin functions can be moved using the APFCON0 or APFCON1 register.

2:       Default function location.

 2010-2015 Microchip Technology Inc.                                                                       DS40001440E-page 11
PIC16(L)F1825/9

TABLE 1-2:         PIC16(L)F1825 PINOUT DESCRIPTION (CONTINUED)

             Name                    Function  Input  Output                                 Description

                                               Type       Type

RA4/AN3/CPS3/OSC2/                     RA4     TTL    CMOS      General purpose I/O.

CLKOUT/T1OSO/CLKR/                     AN3     AN         —     A/D Channel 3 input.

SDO1(1)/P2B(1)/T1G(1,2)              CPS3      AN         —     Capacitive sensing input 3.

                                     OSC2      —      CMOS      Comparator C2 output.

                                     CLKOUT    —      CMOS      FOSC/4 output.

                                     T1OSO     XTAL   XTAL      Timer1 oscillator connection.

                                     CLKR      —      CMOS      Clock Reference output.

                                     SDO1      —      CMOS      SPI data output.

                                       P2B     —      CMOS      PWM output.

                                       T1G     ST         —     Timer1 Gate input.

RA5/CLKIN/OSC1/T1OSI/                  RA5     TTL    CMOS      General purpose I/O.

T1CKI/P2A(1)/CCP2(1)                 CLKIN     CMOS       —     External clock input (EC mode).

                                     OSC1      XTAL       —     Crystal/Resonator (LP, XT, HS modes).

                                     T1OSI     XTAL   XTAL      Timer1 oscillator connection.

                                     T1CKI     ST         —     Timer1 clock input.

                                       P2A     —      CMOS      PWM output.

                                     CCP2      ST     CMOS      Capture/Compare/PWM2.

RC0/AN4/CPS4/C2IN+/SCL/              RC0       TTL    CMOS      General purpose I/O.

SCK/P1D(1)                             AN4     AN         —     A/D Channel 4 input.

                                     CPS4      AN         —     Capacitive sensing input 4.

                                     C2IN+     AN         —     Comparator C2 positive input.

                                       SCL     I2C        OD    I2C™ clock.

                                     SCK       ST     CMOS      SPI clock.

                                       P1D     —      CMOS      PWM output.

RC1/AN5/CPS5/C12IN1-/SDA/            RC1       TTL    CMOS      General purpose I/O.

SDI/P1C(1)/CCP4                        AN5     AN         —     A/D Channel 5 input.

                                     CPS5      AN         —     Capacitive sensing input 5.

                                     C12IN1-   AN         —     Comparator C1 or C2 negative input.

                                     SDA       I2C        OD    I2C data input/output.

                                       SDI     CMOS       —     SPI data input.

                                       P1C     —      CMOS      PWM output.

                                     CCP4      AN         —     Capture/Compare/PWM4.

RC2/AN6/CPS6/C12IN2-/                RC2       TTL    CMOS      General purpose I/O.

P1D(1,2)/P2B(1,2)/SDO1(1,2)/           AN6     AN         —     A/D Channel 6 input.

MDCIN1                               CPS6      AN         —     Capacitive sensing input 6.

                                     C12IN2-   AN         —     Comparator C1 or C2 negative input.

                                       P1D     —      CMOS      PWM output.

                                       P2B     —      CMOS      PWM output.

                                     SDO1      —      CMOS      SPI data output.

                                     MDCIN1    ST         —     Modulator Carrier Input 1.

Legend:  AN  = Analog input or output  CMOS = CMOS compatible input or output                OD  = Open Drain
                                                                                             I2C™ = Schmitt Trigger               I2C
         TTL = TTL compatible input    ST      = Schmitt Trigger input with CMOS levels                              input  with

         HV  = High Voltage            XTAL    = Crystal                                         levels

Note 1:  Pin functions can be moved using the APFCON0 or APFCON1 register.

2:       Default function location.

DS40001440E-page 12                                                                           2010-2015 Microchip Technology Inc.
                                                                                   PIC16(L)F1825/9

TABLE 1-2:         PIC16(L)F1825 PINOUT DESCRIPTION (CONTINUED)

             Name                    Function  Input  Output                               Description

                                               Type   Type

RC3/AN7/CPS7/C12IN3-/                  RC3     TTL    CMOS    General purpose I/O.

P2A(1,2)/CCP2(1,2)/P1C(1,2)/           AN7     AN          —  A/D Channel 7 input.

SS1(1,2)/MDMIN                       CPS7      AN          —  Capacitive sensing input 7.

                                     C12IN3-   AN          —  Comparator C1 or C2 negative input.

                                       P2A        —   CMOS    PWM output.

                                     CCP2      AN          —  Capture/Compare/PWM2.

                                       P1C        —   CMOS    PWM output.

                                       SS1     ST          —  Slave Select input.

                                     MDMIN     ST          —  Modulator source input.

RC4/C2OUT/SRNQ/P1B/TX(1,2)/            RC4     TTL    CMOS    General purpose I/O.

CK(1,2)/MDOUT                        C2OUT        —   CMOS    Comparator C2 output.

                                     SRNQ         —   CMOS    SR Latch inverting output.

                                       P1B        —   CMOS    PWM output.

                                       TX         —   CMOS    USART asynchronous transmit.

                                       CK      ST     CMOS    USART synchronous clock.

                                     MDOUT        —   CMOS    Modulator output.

RC5/P1A/CCP1/DT(1,2)/RX(1,2)/          RC5     TTL    CMOS    General purpose I/O.

MDCIN2                                 P1A        —   CMOS    PWM output.

                                     CCP1      ST     CMOS    Capture/Compare/PWM1.

                                       RX      ST          —  USART asynchronous input.

                                       DT      ST     CMOS    USART synchronous data.

                                     MDCIN2    ST          —  Modulator Carrier Input 2.

VDD                                    VDD     Power       —  Positive supply.

VSS                                    VSS     Power       —  Ground reference.

Legend:  AN  = Analog input or output  CMOS = CMOS compatible input or output              OD  = Open Drain
                                                                                           I2C™ = Schmitt Trigger               I2C
         TTL = TTL compatible input    ST      = Schmitt Trigger input with CMOS levels                            input  with

         HV  = High Voltage            XTAL    =  Crystal                                      levels

Note 1:  Pin functions can be moved using the APFCON0 or APFCON1 register.

     2:  Default function location.

 2010-2015 Microchip Technology Inc.                                                                   DS40001440E-page 13
PIC16(L)F1825/9

TABLE 1-3:         PIC16(L)F1829 PINOUT DESCRIPTION

             Name                    Function    Input  Output                                 Description

                                                 Type       Type

RA0/AN0/CPS0/C1IN+/VREF-/                  RA0   TTL    CMOS      General purpose I/O.

DACOUT/ICSPDAT/ICDDAT                      AN0   AN         —     A/D Channel 0 input.

                                     CPS0        AN         —     Capacitive sensing input 0.

                                     C1IN+       AN         —     Comparator C1 positive input.

                                     VREF-       AN         —     A/D and DAC Negative Voltage Reference input.

                                     DACOUT      —          AN    Digital-to-Analog Converter output.

                                     ICSPDAT     ST     CMOS      ICSP™ Data I/O.

                                     ICDDAT      ST     CMOS      In-Circuit Data I/O.

RA1/AN1/CPS1/C12IN0-/VREF+/                RA1   TTL    CMOS      General purpose I/O.

SRI/ICSPCLK/ICDCLK                         AN1   AN         —     A/D Channel 1 input.

                                     CPS1        AN         —     Capacitive sensing input 1.

                                     C12IN0-     AN         —     Comparator C1 or C2 negative input.

                                     VREF+       AN         —     A/D and DAC Positive Voltage Reference input.

                                           SRI   ST         —     SR Latch input.

                                     ICSPCLK     ST         —     Serial Programming Clock.

                                     ICDCLK      ST         —     In-Circuit Debug Clock.

RA2/AN2/CPS2/T0CKI/INT/                    RA2   ST     CMOS      General purpose I/O.

C1OUT/SRQ/CCP3/FLT0                        AN2   AN         —     A/D Channel 2 input.

                                     CPS2        AN         —     Capacitive sensing input 2.

                                     T0CKI       ST         —     Timer0 clock input.

                                           INT   ST         —     External interrupt.

                                     C1OUT       —      CMOS      Comparator C1 output.

                                     SRQ         —      CMOS      SR Latch non-inverting output.

                                     CCP3        ST     CMOS      Capture/Compare/PWM3.

                                     FLT0        ST         —     ECCP Auto-Shutdown Fault input.

RA3/T1G(1)/VPP/MCLR                        RA3   TTL        —     General purpose input.

                                           T1G   ST         —     Timer1 Gate input.

                                           VPP   HV         —     Programming voltage.

                                     MCLR        ST         —     Master Clear with internal pull-up.

RA4/AN3/CPS3/OSC2/                         RA4   TTL    CMOS      General purpose I/O.

CLKOUT/T1OSO/CLKR/SS2(1)/                  AN3   AN         —     A/D Channel 3 input.

P2B(1)/T1G(1,2)                      CPS3        AN         —     Capacitive sensing input 3.

                                     OSC2        —      CMOS      Comparator C2 output.

                                     CLKOUT      —      CMOS      FOSC/4 output.

                                     T1OSO       XTAL   XTAL      Timer1 oscillator connection.

                                     CLKR        —      CMOS      Clock Reference output.

                                           SS2   ST         —     Slave Select input 2.

                                           P2B   —      CMOS      PWM output.

                                           T1G   ST         —     Timer1 Gate input.

Legend:  AN      = Analog input or output  CMOS = CMOS compatible input or output              OD      = Open Drain
                                                                                               I2C™ = Schmitt Trigger               I2C
         TTL = TTL compatible input        ST    = Schmitt Trigger input with CMOS levels                              input  with

         HV      = High Voltage            XTAL  = Crystal                                             levels

Note 1:  Pin functions can be moved using the APFCON0 or APFCON1 register.

2:       Default function location.

DS40001440E-page 14                                                                             2010-2015 Microchip Technology Inc.
                                                                                      PIC16(L)F1825/9

TABLE 1-3:           PIC16(L)F1829 PINOUT DESCRIPTION (CONTINUED)

               Name                    Function  Input  Output                                Description

                                                 Type   Type

RA5/CLKIN/OSC1/T1OSI/                    RA5     TTL    CMOS     General purpose I/O.

SD02(1)/T1CKI/P2A(1)/CCP2(1)           CLKIN     CMOS        —   External clock input (EC mode).

                                       OSC1      XTAL        —   Crystal/Resonator (LP, XT, HS modes).

                                       T1OSI     XTAL   XTAL     Timer1 oscillator connection.

                                       SD02         —   CMOS     SPI data output 2.

                                       T1CKI     ST          —   Timer1 clock input.

                                         P2A        —   CMOS     PWM output.

                                       CCP2      ST     CMOS     Capture/Compare/PWM2.

RB4/AN10/CPS10/SDA1/SDI1                 RB4     TTL    CMOS     General purpose I/O.

                                       AN10      AN          —   A/D Channel 10 input.

                                       CPS10     AN          —   Capacitive sensing input 10.

                                       SDA1      I2C         OD  I2C™ data input/output.

                                       SDI1      CMOS        —   SPI data input.

RB5/AN11/CPS11/RX(1,2)/                  RB5     TTL    CMOS     General purpose I/O.

DT(1,2)/SDA2/SDI2                      AN11      AN          —   A/D Channel 11 input.

                                       CPS11     AN          —   Capacitive sensing input 11.

                                         RX      ST          —   USART asynchronous input.

                                         DT      ST     CMOS     USART synchronous data.

                                       SDA2      I2C         OD  I2C data input/output 2.

                                       SDI2      CMOS        —   SPI data input 2.

RB6/SCL1/SCK1                            RB6     TTL    CMOS     General purpose I/O.

                                       SCL1      I2C         OD  I2C™ clock 1.

                                       SCK1      ST     CMOS     SPI clock 1.

RB7/TX(1,2)/CK(1,2)/SCL2/SCK2            RB7     TTL    CMOS     General purpose I/O.

                                         TX         —   CMOS     USART asynchronous transmit.

                                         CK      ST     CMOS     USART synchronous clock.

                                       SCL2      I2C         OD  I2C™ clock 2.

                                       SCK2      ST     CMOS     SPI clock 2.

RC0/AN4/CPS4/C2IN+/P1D(1)/             RC0       TTL    CMOS     General purpose I/O.

SS2(1,2)                                 AN4     AN          —   A/D Channel 4 input.

                                       CPS4      AN          —   Capacitive sensing input 4.

                                       C2IN+     AN          —   Comparator C2 positive input.

                                         P1D        —   CMOS     PWM output.

                                         SS2     ST          —   Slave Select input 2.

RC1/AN5/CPS5/C12IN1-/P1C(1)/           RC1       TTL    CMOS     General purpose I/O.

SD02(1,2)                                AN5     AN          —   A/D Channel 5 input.

                                       CPS5      AN          —   Capacitive sensing input 5.

                                       C12IN1-   AN          —   Comparator C1 or C2 negative input.

                                         P1C        —   CMOS     PWM output.

                                       SDO2         —   CMOS     SPI data output 2.

Legend:    AN  = Analog input or output  CMOS = CMOS compatible input or output               OD  = Open Drain
                                                                                              I2C™ = Schmitt Trigger               I2C
           TTL = TTL compatible input    ST      = Schmitt Trigger input with CMOS levels                             input  with

           HV  = High Voltage            XTAL    =  Crystal                                       levels

Note 1:    Pin functions can be moved using the APFCON0 or APFCON1 register.

2:         Default function location.

 2010-2015 Microchip Technology Inc.                                                                      DS40001440E-page 15
PIC16(L)F1825/9

TABLE 1-3:         PIC16(L)F1829 PINOUT DESCRIPTION (CONTINUED)

             Name                    Function  Input  Output                                 Description

                                               Type       Type

RC2/AN6/CPS6/C12IN2-/                RC2       TTL    CMOS      General purpose I/O.

P1D(1,2)/P2B(1,2)/MDCIN1               AN6     AN         —     A/D Channel 6 input.

                                     CPS6      AN         —     Capacitive sensing input 6.

                                     C12IN2-   AN         —     Comparator C1 or C2 negative input.

                                       P1D     —      CMOS      PWM output.

                                       P2B     —      CMOS      PWM output.

                                     MDCIN1    ST         —     Modulator Carrier Input 1.

RC3/AN7/CPS7/C12IN3-/                RC3       TTL    CMOS      General purpose I/O.

P2A(1,2)/CCP2(1,2)/P1C(1,2)/           AN7     AN         —     A/D Channel 7 input.

MDMIN                                CPS7      AN         —     Capacitive sensing input 7.

                                     C12IN3-   AN         —     Comparator C1 or C2 negative input.

                                       P2A     —      CMOS      PWM output.

                                     CCP2      AN         —     Capture/Compare/PWM2.

                                       P1C     —      CMOS      PWM output.

                                     MDMIN     ST         —     Modulator source input.

RC4/C2OUT/SRNQ/P1B/TX(1)/            RC4       TTL    CMOS      General purpose I/O.

CK(1)/MDOUT                          C2OUT     —      CMOS      Comparator C2 output.

                                     SRNQ      —      CMOS      SR Latch inverting output.

                                       P1B     —      CMOS      PWM output.

                                       TX      —      CMOS      USART asynchronous transmit.

                                       CK      ST     CMOS      USART synchronous clock.

                                     MDOUT     —      CMOS      Modulator output.

RC5/P1A/CCP1/DT(1)/RX(1)/            RC5       TTL    CMOS      General purpose I/O.

MDCIN2                                 P1A     —      CMOS      PWM output.

                                     CCP1      ST     CMOS      Capture/Compare/PWM1.

                                       RX      ST         —     USART asynchronous input.

                                       DT      ST     CMOS      USART synchronous data.

                                     MDCIN2    ST         —     Modulator Carrier Input 2.

RC6/AN8/CPS8/CCP4/SS1                RC6       TTL    CMOS      General purpose I/O.

                                       AN8     AN         —     A/D Channel 8 input.

                                     CPS8      AN         —     Capacitive sensing input 8.

                                     CCP4      AN         —     Capture/Compare/PWM4.

                                       SS1     ST         —     Slave Select input.

RC7/AN9/CPS9/SDO1                    RC7       TTL    CMOS      General purpose I/O.

                                       AN9     AN         —     A/D Channel 9 input.

                                     CPS9      AN         —     Capacitive sensing input 9.

                                     SDO1      —      CMOS      SPI data output.

VDD                                    VDD     Power      —     Positive supply.

VSS                                    VSS     Power      —     Ground reference.

Legend:  AN  = Analog input or output  CMOS = CMOS compatible input or output                OD  = Open Drain
                                                                                             I2C™ = Schmitt Trigger               I2C
         TTL = TTL compatible input    ST      = Schmitt Trigger input with CMOS levels                              input  with

         HV  = High Voltage            XTAL    = Crystal                                         levels

Note 1:  Pin functions can be moved using the APFCON0 or APFCON1 register.

     2:  Default function location.

DS40001440E-page 16                                                                           2010-2015 Microchip Technology Inc.
                                                                          PIC16(L)F1825/9

2.0          ENHANCED MID-RANGE CPU

This family of devices contain an enhanced mid-range

8-bit CPU core. The CPU has 49 instructions. Interrupt

capability   includes      automatic      context     saving.     The

hardware stack is 16 levels deep and has Overflow and

Underflow     Reset        capability.  Direct,       Indirect,   and

Relative     Addressing    modes        are  available.      Two  File

Select    Registers    (FSRs)       provide    the  ability  to   read

program and data memory.

•  Automatic Interrupt Context Saving

•  16-level Stack with Overflow and Underflow

•  File Select Registers

•  Instruction Set

2.1          Automatic Interrupt Context

             Saving

During    interrupts,   certain     registers    are  automatically

saved in shadow registers and restored when returning

from the interrupt. This saves stack space and user

code. See Section 8.5 “Automatic Context Saving”,

for more information.

2.2          16-level Stack with Overflow and

             Underflow

These devices have an external stack memory 15 bits

wide    and   16    words       deep.   A    Stack    Overflow        or

Underflow    will  set     the  appropriate      bit  (STKOVF         or

STKUNF) in the PCON register, and if enabled will

cause     a  software      Reset.   See      section  Section 3.4

“Stack” for more details.

2.3          File Select Registers

There are two 16-bit File Select Registers (FSR). FSRs

can   access  all    file  registers    and    program       memory,

which allows one Data Pointer for all memory. When an

FSR points to program memory, there is one additional

instruction cycle in instructions using INDF to allow the

data to be fetched. General purpose memory can now

also  be     addressed     linearly,    providing     the    ability  to

access contiguous data larger than 80 bytes. There are

also   new    instructions      to  support      the  FSRs.       See

Section 3.5 “Indirect Addressing” for more details.

2.4          Instruction Set

There are 49 instructions for the enhanced mid-range

CPU     to   support       the  features     of  the  CPU.        See

Section 29.0 “Instruction Set Summary” for more

details.

 2010-2015 Microchip Technology Inc.                                     DS40001440E-page 17
PIC16(L)F1825/9

FIGURE 2-1:           CORE BLOCK DIAGRAM

15                            Configuration

                                                                15                                            Data Bus       8

                                                                    Program Counter

                              Flash

             MUX              Program

                              Memory                                186-LLeevveel lSStatacckk                  RAM

                                                                          (153-bit)

             Program          14                                    Program Memory                                  12   RAM Addr

                     Bus                                            Read (PMR)

                                                                                                              Addr MUX

                              IInnssttrruuccttiioonn Rreegg               7                                    Indirect

                                                             Direct Addr                                           Addr

                                                                                               5               12        12

                  15                                                                           BFSSRR Rreegg

                                                                                                                    FSR0reRgeg

                                                                                               FFSSRR1 rReegg

                          15                                                                                   SSTTAATTUUSS Rreegg

                                                             8

                                                                    Power-up                      3                   MUX

                                                                    Timer

                              Instruction                           Oscillator
                                                                    Start-up Timer
                              DDeeccooddeea&nd                                                                 ALU
                              Control
                                                                    Power-on
OSC1/CLKIN                                                          Reset                      8

OSC2/CLKOUT                   Timing                                Watchdog                                   W Reg
                              Generation
                                                                    Timer

                                                                    Brown-out

                                                                    Reset

                              Internal
                              Oscillator

                              Block

                                                                    VDD      VSS

DS40001440E-page 18                                                                                             2010-2015 Microchip Technology Inc.
                                                                               PIC16(L)F1825/9

3.0   MEMORY ORGANIZATION                                         The following features are associated with access and

These devices contain the following    types  of  memory:         control of program memory and data memory:

•  Program Memory                                                 •  PCL and PCLATH

   -  Configuration Words                                         •  Stack

   -  Device ID                                                   •  Indirect Addressing

   -  User ID                                                     3.1       Program Memory Organization

   -  Flash Program Memory                                        The enhanced mid-range core has a 15-bit program

•  Data Memory                                                    counter   capable  of   addressing   32K  x  14  program

   -  Core Registers                                              memory    space.   Table 3-1  shows  the  memory  sizes

   -  Special Function Registers                                  implemented for the PIC16(L)F1825/9 family. Accessing

   -  General Purpose RAM                                         a  location  above     these  boundaries  will   cause    a

   -  Common RAM                                                  wrap-around within the implemented memory space.

•  Data EEPROM memory(1)                                          The Reset vector is at 0000h and the interrupt vector is

                                                                  at 0004h (See Figure 3-1).

      Note 1:  The  Data   EEPROM      Memory     and  the

               method to access Flash memory through

               the  EECON  registers   is  described   in

               Section 11.0 “Data EEPROM and Flash

               Program Memory Control”.

TABLE 3-1:          DEVICE SIZES AND ADDRESSES

                 Device                Program Memory Space (Words)                  Last Program Memory Address

   PIC16(L)F1825                                           8,192                                7FFFh

   PIC16(L)F1829

 2010-2015 Microchip Technology Inc.                                                                 DS40001440E-page 19
PIC16(L)F1825/9

FIGURE 3-1:          PROGRAM MEMORY MAP       3.1.1       READING PROGRAM MEMORY AS

                     AND STACK FOR                        DATA

                     PIC16(L)F1825/9          There  are  two  methods         of  accessing    constants  in

                                              program memory. The first method is to use tables of

                     PC<14:0>                 RETLW instructions. The second method is to set an

                                              FSR to point to the program memory.

         CALL,  CALLW          15

RETURN,         RETLW                         3.1.1.1         RETLW Instruction

Interrupt,      RETFIE

                     Stack Level 0            The RETLW instruction can be used to provide access

                     Stack Level 1            to tables of constants. The recommended way to create

                                              such a table is shown in Example 3-1.

                     Stack Level 15           EXAMPLE 3-1:             RETLW INSTRUCTION

                                              constants

                     Reset Vector      0000h       BRW                         ;Add      Index  in  W  to

                                                                               ;program  counter       to

                                                                               ;select   data

                     Interrupt Vector  0004h       RETLW     DATA0             ;Index0   data

                                       0005h       RETLW     DATA1             ;Index1   data

                       Page 0                      RETLW     DATA2

                                       07FFh       RETLW     DATA3

                                       0800h

On-chip                Page 1                 my_function

                                       0FFFh       ;…   LOTS  OF    CODE…

Program                                1000h       MOVLW            DATA_INDEX

Memory                 Page 2                      call   constants

                                       17FFh       ;…   THE   CONSTANT     IS  IN  W

                       Page 3          1800h  The  BRW    instruction  makes       this  type   of  table  very

                                              simple to implement. If your code must remain portable

                                       1FFFh  with previous generations of microcontrollers, then the

                Rollover to Page 0     2000h  BRW instruction is not available so the older table read

                                              method must be used.

                Rollover to Page 3     7FFFh

DS40001440E-page 20                                                  2010-2015 Microchip Technology Inc.
                                                                                        PIC16(L)F1825/9

3.1.1.2             Indirect Read with FSR                                 3.2.1        CORE REGISTERS

The program memory can be accessed as data by                              The core registers contain the registers that directly

setting bit 7 of the FSRxH register and reading the                        affect  the  basic  operation  of  the  PIC16(L)F1825/9.

matching INDFx register. The MOVIW instruction will                        These registers are listed below:

place the lower eight bits of the addressed word in the                    •  INDF0

W register. Writes to the program memory cannot be                         •  INDF1

performed     via    the    INDF      registers.    Instructions     that  •  PCL

access the program memory via the FSR require one

extra    instruction        cycle  to  complete.          Example 3-2      •  STATUS

demonstrates accessing the program memory via an                           •  FSR0 Low

FSR.                                                                       •  FSR0 High

The High directive will set bit<7> if a label points to a                  •  FSR1 Low

location in program memory.                                                •  FSR1 High

EXAMPLE 3-2:                    ACCESSING PROGRAM                          •  BSR

                                MEMORY VIA FSR                             •  WREG

   constants                                                               •  PCLATH

       RETLW        DATA0              ;Index0      data                   •  INTCON

       RETLW        DATA1              ;Index1      data                      Note:     The    core  registers  are  the  first  12

       RETLW        DATA2                                                               addresses of every data memory bank.

       RETLW        DATA3

   my_function

       ;…  LOTS     OF     CODE…

       MOVLW        LOW     constants

       MOVWF        FSR1L

       MOVLW        HIGH    constants

       MOVWF        FSR1H

       MOVIW        0[FSR1]

   ;THE  PROGRAM     MEMORY        IS  IN   W

3.2           Data Memory Organization

The data memory is partitioned in 32 memory banks

with     128  bytes     in  a   bank.  Each         bank  consists   of

(Figure 3-2):

•  12 core registers

•  20 Special Function Registers (SFR)

•  Up to 80 bytes of General Purpose RAM (GPR)

•  16 bytes of common RAM

The active bank is selected by writing the bank number

into the Bank Select Register (BSR). Unimplemented

memory        will  read    as  ‘0’.   All  data    memory      can  be

accessed either directly (via instructions that use the

file  registers)    or     indirectly  via     the  two   File  Select

Registers           (FSR).      See    Section 3.5        “Indirect

Addressing” for more information.

Data Memory uses a 12-bit address. The upper seven

bits of the address define the Bank address and the

lower five bits select the registers/RAM in that bank.

 2010-2015 Microchip Technology Inc.                                                                           DS40001440E-page 21
PIC16(L)F1825/9

3.2.1.1              STATUS Register                                    For example, CLRF        STATUS will clear the upper three

The STATUS register, shown in Register 3-1, contains:                   bits and set the Z bit. This leaves the STATUS register

•  the arithmetic status of the ALU                                     as ‘000u       u1uu’ (where u = unchanged).

•  the Reset status                                                     It is recommended, therefore, that only BCF,             BSF,

                                                                        SWAPF and MOVWF instructions are used to alter the

The STATUS register can be the destination for any                      STATUS register, because these instructions do not

instruction,     like  any  other   register.  If  the  STATUS          affect     any  Status   bits.  For  other   instructions  not

register is the destination for an instruction that affects             affecting      any   Status   bits  (Refer   to  Section 29.0

the Z, DC or C bits, then the write to these three bits is              “Instruction Set Summary”).

disabled. These bits are set or cleared according to the                Note 1:         The C and DC bits operate as Borrow

device logic. Furthermore, the TO and PD bits are not                                   and Digit Borrow out bits, respectively, in

writable. Therefore, the result of an instruction with the                              subtraction.

STATUS register as destination may be different than

intended.

REGISTER 3-1:               STATUS: STATUS REGISTER

           U-0              U-0               U-0         R-1/q         R-1/q             R/W-0/u           R/W-0/u      R/W-0/u

           —                —                  —          TO            PD                    Z              DC(1)       C(1)

   bit 7                                                                                                                           bit 0

   Legend:

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

   u = Bit is unchanged             x = Bit is unknown            -n/n = Value at POR and BOR/Value at all other Resets

   ‘1’ = Bit is set                 ‘0’ = Bit is cleared          q = Value depends on condition

   bit  7-5            Unimplemented: Read as ‘0’

   bit  4              TO: Time-out bit

                       1 = After power-up, CLRWDT instruction or SLEEP instruction

                       0 = A WDT time-out occurred

   bit  3              PD: Power-down bit

                       1 = After power-up or by the CLRWDT instruction

                       0 = By execution of the SLEEP instruction

   bit  2              Z: Zero bit

                       1 = The result of an arithmetic or logic operation is zero

                       0 = The result of an arithmetic or logic operation is not zero

   bit  1              DC: Digit Carry/Digit Borrow bit (ADDWF, ADDLW, SUBLW, SUBWF instructions)(1)

                       1 = A carry-out from the 4th low-order bit of the result occurred

                       0 = No carry-out from the 4th low-order bit of the result

   bit  0              C: Carry/Borrow bit(1) (ADDWF, ADDLW, SUBLW, SUBWF          instructions)(1)

                       1 = A carry-out from the Most Significant bit of the result occurred

                       0 = No carry-out from the Most Significant bit of the result occurred

   Note      1:  For Borrow, the polarity is reversed. A subtraction is executed by adding the two’s complement of the

                 second operand. For rotate (RRF, RLF) instructions, this bit is loaded with either the high-order or low-order

                 bit of the source register.

DS40001440E-page 22                                                                               2010-2015 Microchip Technology Inc.
                                                                      PIC16(L)F1825/9

3.2.2      SPECIAL FUNCTION REGISTER                           FIGURE 3-2:         BANKED MEMORY

The  Special    Function  Registers    (FSR)   are  registers                      PARTITIONING

used by the application to control the desired operation

of  peripheral  functions    in  the  device.  The  Special    7-bit Bank Offset   Memory Region

Function Registers occupy the 20 bytes after the core

registers  of   every  data  memory    bank    (addresses                     00h

x0Ch/x8Ch through x1Fh/x9Fh). The registers associ-

ated with the operation of the peripherals are described                           Core Registers

in the appropriate peripheral chapter of this data sheet.                     0Bh         (12 bytes)

3.2.3      GENERAL PURPOSE RAM                                                0Ch

There are up to 80 bytes of GPR in each data memory                                Special Function Registers

bank. The Special Function Registers occupy the 20                                 (20 bytes maximum)

bytes after the core registers of every data memory                           1Fh

bank (addresses x0Ch/x8Ch through x1Fh/x9Fh).                                 20h

3.2.3.1         Linear Access to GPR

The  general    purpose    RAM   can   be  accessed  in    a

non-banked method via the FSRs. This can simplify

access to large memory structures. See Section 3.5.2

“Linear Data Memory” for more information.                                         General Purpose RAM

3.2.4      COMMON RAM                                                              (80 bytes maximum)

There are 16 bytes of common RAM accessible from all

banks.

                                                                              6Fh

                                                                              70h

                                                                                   Common RAM

                                                                                          (16 bytes)

                                                                              7Fh

                                                               3.2.5          DEVICE MEMORY MAPS

                                                               The memory maps for the device family are as shown

                                                               in Table 3-2.

                                                               TABLE 3-2:         MEMORY  MAP TABLES

                                                                      Device              Banks       Table    No.

                                                               PIC16(L)F1825              0-7         Table    3-3

                                                               PIC16(L)F1829              8-15        Table    3-4

                                                                                          16-23       Table    3-5

                                                                                          24-31       Table    3-6

                                                                                          31          Table    3-7

 2010-2015 Microchip Technology Inc.                                                     DS40001440E-page 23
DS40001440E-page 24                    TABLE    3-3:      PIC16(L)F1825/9 MEMORY MAP, BANKS                     0-7                                                                                  PIC16(L)F1825/9

                                                BANK 0            BANK 1                BANK 2                       BANK 3          BANK 4             BANK 5           BANK 6           BANK 7

                                       000h     INDF0       080h  INDF0           100h  INDF0             180h       INDF0     200h  INDF0        280h  INDF0      300h  INDF0      380h  INDF0

                                       001h     INDF1       081h  INDF1           101h  INDF1             181h       INDF1     201h  INDF1        281h  INDF1      301h  INDF1      381h  INDF1

                                       002h     PCL         082h  PCL             102h  PCL               182h       PCL       202h  PCL          282h  PCL        302h  PCL        382h  PCL

                                       003h     STATUS      083h  STATUS          103h  STATUS            183h       STATUS    203h  STATUS       283h  STATUS     303h  STATUS     383h  STATUS

                                       004h     FSR0L       084h  FSR0L           104h  FSR0L             184h       FSR0L     204h  FSR0L        284h  FSR0L      304h  FSR0L      384h  FSR0L

                                       005h     FSR0H       085h  FSR0H           105h  FSR0H             185h       FSR0H     205h  FSR0H        285h  FSR0H      305h  FSR0H      385h  FSR0H

                                       006h     FSR1L       086h  FSR1L           106h  FSR1L             186h       FSR1L     206h  FSR1L        286h  FSR1L      306h  FSR1L      386h  FSR1L

                                       007h     FSR1H       087h  FSR1H           107h  FSR1H             187h       FSR1H     207h  FSR1H        287h  FSR1H      307h  FSR1H      387h  FSR1H

                                       008h     BSR         088h  BSR             108h  BSR               188h       BSR       208h  BSR          288h  BSR        308h  BSR        388h  BSR

                                       009h     WREG        089h  WREG            109h  WREG              189h       WREG      209h  WREG         289h  WREG       309h  WREG       389h  WREG

                                       00Ah     PCLATH      08Ah  PCLATH          10Ah  PCLATH            18Ah       PCLATH    20Ah  PCLATH       28Ah  PCLATH     30Ah  PCLATH     38Ah  PCLATH

                                       00Bh     INTCON      08Bh  INTCON          10Bh  INTCON            18Bh       INTCON    20Bh  INTCON       28Bh  INTCON     30Bh  INTCON     38Bh  INTCON

                                       00Ch     PORTA       08Ch  TRISA           10Ch  LATA              18Ch       ANSELA    20Ch  WPUA         28Ch  —          30Ch  —          38Ch  INLVLA

                                       00Dh     PORTB(1)    08Dh  TRISB(1)        10Dh  LATB(1)           18Dh  ANSELB(1)      20Dh  WPUB(1)      28Dh  —          30Dh  —          38Dh  INLVLB(1)

                                       00Eh     PORTC       08Eh  TRISC           10Eh  LATC              18Eh       ANSELC    20Eh  WPUC         28Eh  —          30Eh  —          38Eh  INLVLC

                                       00Fh     —           08Fh  —               10Fh  —                 18Fh       —         20Fh  —            28Fh  —          30Fh  —          38Fh  —

                                       010h     —           090h  —               110h  —                 190h       —         210h  —            290h  —          310h  —          390h  —

                                       011h     PIR1        091h  PIE1            111h  CM1CON0           191h       EEADRL    211h  SSP1BUF      291h  CCPR1L     311h  CCPR3L     391h  IOCAP

                                       012h     PIR2        092h  PIE2            112h  CM1CON1           192h       EEADRH    212h  SSP1ADD      292h  CCPR1H     312h  CCPR3H     392h  IOCAN

                                       013h     PIR3        093h  PIE3            113h  CM2CON0           193h       EEDATL    213h  SSP1MSK      293h  CCP1CON    313h  CCP3CON    393h  IOCAF

                                       014h     PIR4(1)     094h  PIE4(1)         114h  CM2CON1           194h       EEDATH    214h  SSP1STAT     294h  PWM1CON    314h  —          394h  IOCBP(1)

                                       015h     TMR0        095h  OPTION_REG      115h  CMOUT             195h       EECON1    215h  SSP1CON1     295h  CCP1AS     315h  —          395h  IOCBN(1)

                                       016h     TMR1L       096h  PCON            116h  BORCON            196h       EECON2    216h  SSP1CON2     296h  PSTR1CON   316h  —          396h  IOCBF(1)

                                       017h     TMR1H       097h  WDTCON          117h  FVRCON            197h       —         217h  SSP1CON3     297h  —          317h  —          397h  —

                                       018h     T1CON       098h  OSCTUNE         118h  DACCON0           198h       —         218h  —            298h  CCPR2L     318h  CCPR4L     398h  —

                                       019h     T1GCON      099h  OSCCON          119h  DACCON1           199h       RCREG     219h  SSP2BUF(1)   299h  CCPR2H     319h  CCPR4H     399h  —

                                       01Ah     TMR2        09Ah  OSCSTAT         11Ah  SRCON0            19Ah       TXREG     21Ah  SSP2ADD(1)   29Ah  CCP2CON    31Ah  CCP4CON    39Ah  CLKRCON

                                       01Bh     PR2         09Bh  ADRESL          11Bh  SRCON1            19Bh       SPBRGL    21Bh  SSP2MSK(1)   29Bh  PWM2CON    31Bh  —          39Bh  —

                                       01Ch     T2CON       09Ch  ADRESH          11Ch  —                 19Ch       SPBRGH    21Ch  SSP2STAT(1)  29Ch  CCP2AS     31Ch  —          39Ch  MDCON

                                       01Dh     —           09Dh  ADCON0          11Dh  APFCON0           19Dh       RCSTA     21Dh  SSP2CON1(1)  29Dh  PSTR2CON   31Dh  —          39Dh  MDSRC

                                       01Eh     CPSCON0     09Eh  ADCON1          11Eh  APFCON1           19Eh       TXSTA     21Eh  SSP2CON2(1)  29Eh  CCPTMRS    31Eh  —          39Eh  MDCARL

 2010-2015 Microchip Technology Inc.  01Fh     CPSCON1     09Fh  —               11Fh  —                 19Fh  BAUDCON        21Fh  SSP2CON3(1)  29Fh  —          31Fh  —          39Fh  MDCARH

                                       020h                 0A0h                  120h                    1A0h                 220h               2A0h             320h             3A0h

                                                General           General               General                      General         General            General          General          General

                                                Purpose           Purpose               Purpose                      Purpose         Purpose            Purpose          Purpose          Purpose

                                                Register          Register              Register                     Register        Register           Register         Register         Register

                                                96 Bytes          80 Bytes              80 Bytes                     80 Bytes        80 Bytes           80 Bytes         80 Bytes         80 Bytes

                                       06Fh                 0EFh                  16Fh                    1EFh                 26Fh               2EFh             36Fh             3EFh

                                       070h                 0F0h                  170h                    1F0h                 270h               2F0h             370h             3F0h

                                                Common RAM        Accesses              Accesses                     Accesses        Accesses           Accesses         Accesses         Accesses

                                                                  70h – 7Fh             70h – 7Fh               70h – 7Fh            70h – 7Fh          70h – 7Fh        70h – 7Fh        70h – 7Fh

                                       07Fh                 0FFh                  17Fh                    1FFh                 27Fh               2FFh             37Fh             3FFh

                                       Legend:        = Unimplemented data memory locations, read as ‘0’

                                       Note 1:  Available only on PIC16(L)F1829.
 2010-2015 Microchip Technology Inc.  TABLE    3-4:       PIC16(L)F1825/9  MEMORY MAP, BANKS                   8-15

                                                BANK 8           BANK 9           BANK 10                       BANK 11          BANK 12                BANK 13              BANK 14              BANK 15

                                       400h     INDF0      480h  INDF0      500h  INDF0                   580h  INDF0      600h  INDF0            680h  INDF0          700h  INDF0          780h  INDF0

                                       401h     INDF1      481h  INDF1      501h  INDF1                   581h  INDF1      601h  INDF1            681h  INDF1          701h  INDF1          781h  INDF1

                                       402h     PCL        482h  PCL        502h  PCL                     582h        PCL  602h  PCL              682h  PCL            702h  PCL            782h  PCL

                                       403h     STATUS     483h  STATUS     503h  STATUS                  583h  STATUS     603h  STATUS           683h  STATUS         703h  STATUS         783h  STATUS

                                       404h     FSR0L      484h  FSR0L      504h  FSR0L                   584h  FSR0L      604h  FSR0L            684h  FSR0L          704h  FSR0L          784h  FSR0L

                                       405h     FSR0H      485h  FSR0H      505h  FSR0H                   585h  FSR0H      605h  FSR0H            685h  FSR0H          705h  FSR0H          785h  FSR0H

                                       406h     FSR1L      486h  FSR1L      506h  FSR1L                   586h  FSR1L      606h  FSR1L            686h  FSR1L          706h  FSR1L          786h  FSR1L

                                       407h     FSR1H      487h  FSR1H      507h  FSR1H                   587h  FSR1H      607h  FSR1H            687h  FSR1H          707h  FSR1H          787h  FSR1H

                                       408h     BSR        488h  BSR        508h  BSR                     588h        BSR  608h  BSR              688h  BSR            708h  BSR            788h  BSR

                                       409h     WREG       489h  WREG       509h  WREG                    589h  WREG       609h  WREG             689h  WREG           709h  WREG           789h  WREG

                                       40Ah     PCLATH     48Ah  PCLATH     50Ah  PCLATH                  58Ah  PCLATH     60Ah  PCLATH           68Ah  PCLATH         70Ah  PCLATH         78Ah  PCLATH

                                       40Bh     INTCON     48Bh  INTCON     50Bh  INTCON                  58Bh  INTCON     60Bh  INTCON           68Bh  INTCON         70Bh  INTCON         78Bh  INTCON

                                       40Ch     —          48Ch  —          50Ch  —                       58Ch        —    60Ch  —                68Ch  —              70Ch  —              78Ch  —

                                       40Dh     —          48Dh  —          50Dh  —                       58Dh        —    60Dh  —                68Dh  —              70Dh  —              78Dh  —

                                       40Eh     —          48Eh  —          50Eh  —                       58Eh        —    60Eh  —                68Eh  —              70Eh  —              78Eh  —

                                       40Fh     —          48Fh  —          50Fh  —                       58Fh        —    60Fh  —                68Fh  —              70Fh  —              78Fh  —

                                       410h     —          490h  —          510h  —                       590h        —    610h  —                690h  —              710h  —              790h  —

                                       411h     —          491h  —          511h  —                       591h        —    611h  —                691h  —              711h  —              791h  —

                                       412h     —          492h  —          512h  —                       592h        —    612h  —                692h  —              712h  —              792h  —

                                       413h     —          493h  —          513h  —                       593h        —    613h  —                693h  —              713h  —              793h  —

                                       414h     —          494h  —          514h  —                       594h        —    614h  —                694h  —              714h  —              794h  —

                                       415h     TMR4       495h  —          515h  —                       595h        —    615h  —                695h  —              715h  —              795h  —

                                       416h     PR4        496h  —          516h  —                       596h        —    616h  —                696h  —              716h  —              796h  —

                                       417h     T4CON      497h  —          517h  —                       597h        —    617h  —                697h  —              717h  —              797h  —

                                       418h     —          498h  —          518h  —                       598h        —    618h  —                698h  —              718h  —              798h  —

                                       419h     —          499h  —          519h  —                       599h        —    619h  —                699h  —              719h  —              799h  —

                                       41Ah     —          49Ah  —          51Ah  —                       59Ah        —    61Ah  —                69Ah  —              71Ah  —              79Ah  —

                                       41Bh     —          49Bh  —          51Bh  —                       59Bh        —    61Bh  —                69Bh  —              71Bh  —              79Bh  —

                                       41Ch     TMR6       49Ch  —          51Ch  —                       59Ch        —    61Ch  —                69Ch  —              71Ch  —              79Ch  —

                                       41Dh     PR6        49Dh  —          51Dh  —                       59Dh        —    61Dh  —                69Dh  —              71Dh  —              79Dh  —

                                       41Eh     T6CON      49Eh  —          51Eh  —                       59Eh        —    61Eh  —                69Eh  —              71Eh  —              79Eh  —

                                       41Fh     —          49Fh  —          51Fh  —                       59Fh        —    61Fh  —                69Fh  —              71Fh  —              79Fh  —              PIC16(L)F1825/9

                                       420h                4A0h             520h                          5A0h             620h  General Purpose  6A0h                 720h                 7A0h

                                                General          General          General                       General          Register

                                                Purpose          Purpose          Purpose                       Purpose    64Fh  48 Bytes               Unimplemented        Unimplemented        Unimplemented

                                                Register         Register         Register                      Register   650h  Unimplemented          Read as ‘0’          Read as ‘0’          Read as ‘0’

                                                80 Bytes         80 Bytes         80 Bytes                      80 Bytes         Read as ‘0’

                                       46Fh                4EFh             56Fh                          5EFh             66Fh                   6EFh                 76Fh                 7EFh

                                       470h                4F0h             570h                          5F0h             670h                   6F0h                 770h                 7F0h

                                                Accesses         Accesses         Accesses                      Accesses         Accesses               Accesses             Accesses             Accesses

DS40001440E-page 25                             70h – 7Fh        70h – 7Fh        70h – 7Fh                     70h – 7Fh        70h – 7Fh              70h – 7Fh            70h – 7Fh            70h – 7Fh

                                       47Fh                4FFh             57Fh                          5FFh             67Fh                   6FFh                 77Fh                 7FFh

                                       Legend:        = Unimplemented data memory locations, read as ‘0’
DS40001440E-page 26                    TABLE    3-5:         PIC16(L)F1825/9      MEMORY MAP, BANKS              16-23                                                                                              PIC16(L)F1825/9

                                                BANK 16              BANK 17              BANK 18                BANK 19              BANK 20              BANK 21              BANK 22              BANK 23

                                       800h     INDF0          880h  INDF0          900h  INDF0            980h  INDF0          A00h  INDF0          A80h  INDF0          B00h  INDF0          B80h  INDF0

                                       801h     INDF1          881h  INDF1          901h  INDF1            981h  INDF1          A01h  INDF1          A81h  INDF1          B01h  INDF1          B81h  INDF1

                                       802h     PCL            882h  PCL            902h  PCL              982h  PCL            A02h  PCL            A82h  PCL            B02h  PCL            B82h  PCL

                                       803h     STATUS         883h  STATUS         903h  STATUS           983h  STATUS         A03h  STATUS         A83h  STATUS         B03h  STATUS         B83h  STATUS

                                       804h     FSR0L          884h  FSR0L          904h  FSR0L            984h  FSR0L          A04h  FSR0L          A84h  FSR0L          B04h  FSR0L          B84h  FSR0L

                                       805h     FSR0H          885h  FSR0H          905h  FSR0H            985h  FSR0H          A05h  FSR0H          A85h  FSR0H          B05h  FSR0H          B85h  FSR0H

                                       806h     FSR1L          886h  FSR1L          906h  FSR1L            986h  FSR1L          A06h  FSR1L          A86h  FSR1L          B06h  FSR1L          B86h  FSR1L

                                       807h     FSR1H          887h  FSR1H          907h  FSR1H            987h  FSR1H          A07h  FSR1H          A87h  FSR1H          B07h  FSR1H          B87h  FSR1H

                                       808h     BSR            888h  BSR            908h  BSR              988h  BSR            A08h  BSR            A88h  BSR            B08h  BSR            B88h  BSR

                                       809h     WREG           889h  WREG           909h  WREG             989h  WREG           A09h  WREG           A89h  WREG           B09h  WREG           B89h  WREG

                                       80Ah     PCLATH         88Ah  PCLATH         90Ah  PCLATH           98Ah  PCLATH         A0Ah  PCLATH         A8Ah  PCLATH         B0Ah  PCLATH         B8Ah  PCLATH

                                       80Bh     INTCON         88Bh  INTCON         90Bh  INTCON           98Bh  INTCON         A0Bh  INTCON         A8Bh  INTCON         B0Bh  INTCON         B8Bh  INTCON

                                       80Ch     —              88Ch  —              90Ch  —                98Ch         —       A0Ch  —              A8Ch  —              B0Ch  —              B8Ch  —

                                       80Dh     —              88Dh  —              90Dh  —                98Dh         —       A0Dh  —              A8Dh  —              B0Dh  —              B8Dh  —

                                       80Eh     —              88Eh  —              90Eh  —                98Eh         —       A0Eh  —              A8Eh  —              B0Eh  —              B8Eh  —

                                       80Fh     —              88Fh  —              90Fh  —                98Fh         —       A0Fh  —              A8Fh  —              B0Fh  —              B8Fh  —

                                       810h     —              890h  —              910h  —                990h         —       A10h  —              A90h  —              B10h  —              B90h  —

                                       811h     —              891h  —              911h  —                991h         —       A11h  —              A91h  —              B11h  —              B91h  —

                                       812h     —              892h  —              912h  —                992h         —       A12h  —              A92h  —              B12h  —              B92h  —

                                       813h     —              893h  —              913h  —                993h         —       A13h  —              A93h  —              B13h  —              B93h  —

                                       814h     —              894h  —              914h  —                994h         —       A14h  —              A94h  —              B14h  —              B94h  —

                                       815h     —              895h  —              915h  —                995h         —       A15h  —              A95h  —              B15h  —              B95h  —

                                       816h     —              896h  —              916h  —                996h         —       A16h  —              A96h  —              B16h  —              B96h  —

                                       817h     —              897h  —              917h  —                997h         —       A17h  —              A97h  —              B17h  —              B97h  —

                                       818h     —              898h  —              918h  —                998h         —       A18h  —              A98h  —              B18h  —              B98h  —

                                       819h     —              899h  —              919h  —                999h         —       A19h  —              A99h  —              B19h  —              B99h  —

                                       81Ah     —              89Ah  —              91Ah  —                99Ah         —       A1Ah  —              A9Ah  —              B1Ah  —              B9Ah  —

                                       81Bh     —              89Bh  —              91Bh  —                99Bh         —       A1Bh  —              A9Bh  —              B1Bh  —              B9Bh  —

                                       81Ch     —              89Ch  —              91Ch  —                99Ch         —       A1Ch  —              A9Ch  —              B1Ch  —              B9Ch  —

                                       81Dh     —              89Dh  —              91Dh  —                99Dh         —       A1Dh  —              A9Dh  —              B1Dh  —              B9Dh  —

                                       81Eh     —              89Eh  —              91Eh  —                99Eh         —       A1Eh  —              A9Eh  —              B1Eh  —              B9Eh  —

 2010-2015 Microchip Technology Inc.  81Fh     —              89Fh  —              91Fh  —                99Fh         —       A1Fh  —              A9Fh  —              B1Fh  —              B9Fh  —

                                       820h                    8A0h                 920h                   9A0h                 A20h                 AA0h                 B20h                 BA0h

                                                Unimplemented        Unimplemented        Unimplemented          Unimplemented        Unimplemented        Unimplemented        Unimplemented        Unimplemented

                                                Read as ‘0’          Read as ‘0’          Read as ‘0’            Read as ‘0’          Read as ‘0’          Read as ‘0’          Read as ‘0’          Read as ‘0’

                                       86Fh                    8EFh                 96Fh                   9EFh                 A6Fh                 AEFh                 B6Fh                 BEFh

                                       870h                    8F0h                 970h                   9F0h                 A70h                 AF0h                 B70h                 BF0h

                                                Accesses             Accesses             Accesses               Accesses             Accesses             Accesses             Accesses             Accesses

                                                70h – 7Fh            70h – 7Fh            70h – 7Fh              70h – 7Fh            70h – 7Fh            70h – 7Fh            70h – 7Fh            70h – 7Fh

                                       87Fh                    8FFh                 97Fh                   9FFh                 A7Fh                 AFFh                 B7Fh                 BFFh

                                       Legend:        = Unimplemented data memory locations, read as ‘0’.
 2010-2015 Microchip Technology Inc.  TABLE    3-6:         PIC16(L)F1825/9 MEMORY       MAP, BANKS 24-31

                                                BANK 24              BANK 25              BANK 26                BANK 27              BANK 28              BANK 29              BANK 30              BANK 31

                                       C00h     INDF0          C80h  INDF0          D00h  INDF0            D80h  INDF0          E00h  INDF0          E80h  INDF0          F00h  INDF0          F80h  INDF0

                                       C01h     INDF1          C81h  INDF1          D01h  INDF1            D81h  INDF1          E01h  INDF1          E81h  INDF1          F01h  INDF1          F81h  INDF1

                                       C02h     PCL            C82h  PCL            D02h  PCL              D82h  PCL            E02h  PCL            E82h  PCL            F02h  PCL            F82h  PCL

                                       C03h     STATUS         C83h  STATUS         D03h  STATUS           D83h  STATUS         E03h  STATUS         E83h  STATUS         F03h  STATUS         F83h  STATUS

                                       C04h     FSR0L          C84h  FSR0L          D04h  FSR0L            D84h  FSR0L          E04h  FSR0L          E84h  FSR0L          F04h  FSR0L          F84h  FSR0L

                                       C05h     FSR0H          C85h  FSR0H          D05h  FSR0H            D85h  FSR0H          E05h  FSR0H          E85h  FSR0H          F05h  FSR0H          F85h  FSR0H

                                       C06h     FSR1L          C86h  FSR1L          D06h  FSR1L            D86h  FSR1L          E06h  FSR1L          E86h  FSR1L          F06h  FSR1L          F86h  FSR1L

                                       C07h     FSR1H          C87h  FSR1H          D07h  FSR1H            D87h  FSR1H          E07h  FSR1H          E87h  FSR1H          F07h  FSR1H          F87h  FSR1H

                                       C08h     BSR            C88h  BSR            D08h  BSR              D88h  BSR            E08h  BSR            E88h  BSR            F08h  BSR            F88h  BSR

                                       C09h     WREG           C89h  WREG           D09h  WREG             D89h  WREG           E09h  WREG           E89h  WREG           F09h  WREG           F89h  WREG

                                       C0Ah     PCLATH         C8Ah  PCLATH         D0Ah  PCLATH           D8Ah  PCLATH         E0Ah  PCLATH         E8Ah  PCLATH         F0Ah  PCLATH         F8Ah  PCLATH

                                       C0Bh     INTCON         C8Bh  INTCON         D0Bh  INTCON           D8Bh  INTCON         E0Bh  INTCON         E8Bh  INTCON         F0Bh  INTCON         F8Bh  INTCON

                                       C0Ch     —              C8Ch  —              D0Ch  —                D8Ch  —              E0Ch  —              E8Ch  —              F0Ch  —              F8Ch

                                       C0Dh     —              C8Dh  —              D0Dh  —                D8Dh  —              E0Dh  —              E8Dh  —              F0Dh  —              F8Dh

                                       C0Eh     —              C8Eh  —              D0Eh  —                D8Eh  —              E0Eh  —              E8Eh  —              F0Eh  —              F8Eh

                                       C0Fh     —              C8Fh  —              D0Fh  —                D8Fh  —              E0Fh  —              E8Fh  —              F0Fh  —              F8Fh

                                       C10h     —              C90h  —              D10h  —                D90h  —              E10h  —              E90h  —              F10h  —              F90h

                                       C11h     —              C91h  —              D11h  —                D91h  —              E11h  —              E91h  —              F11h  —              F91h

                                       C12h     —              C92h  —              D12h  —                D92h  —              E12h  —              E92h  —              F12h  —              F92h

                                       C13h     —              C93h  —              D13h  —                D93h  —              E13h  —              E93h  —              F13h  —              F93h

                                       C14h     —              C94h  —              D14h  —                D94h  —              E14h  —              E94h  —              F14h  —              F94h

                                       C15h     —              C95h  —              D15h  —                D95h  —              E15h  —              E95h  —              F15h  —              F95h

                                       C16h     —              C96h  —              D16h  —                D96h  —              E16h  —              E96h  —              F16h  —              F96h

                                       C17h     —              C97h  —              D17h  —                D97h  —              E17h  —              E97h  —              F17h  —              F97h  See Table 3-7 for

                                       C18h     —              C98h  —              D18h  —                D98h  —              E18h  —              E98h  —              F18h  —              F98h  register mapping

                                       C19h     —              C99h  —              D19h  —                D99h  —              E19h  —              E99h  —              F19h  —              F99h  details

                                       C1Ah     —              C9Ah  —              D1Ah  —                D9Ah  —              E1Ah  —              E9Ah  —              F1Ah  —              F9Ah

                                       C1Bh     —              C9Bh  —              D1Bh  —                D9Bh  —              E1Bh  —              E9Bh  —              F1Bh  —              F9Bh

                                       C1Ch     —              C9Ch  —              D1Ch  —                D9Ch  —              E1Ch  —              E9Ch  —              F1Ch  —              F9Ch                     PIC16(L)F1825/9

                                       C1Dh     —              C9Dh  —              D1Dh  —                D9Dh  —              E1Dh  —              E9Dh  —              F1Dh  —              F9Dh

                                       C1Eh     —              C9Eh  —              D1Eh  —                D9Eh  —              E1Eh  —              E9Eh  —              F1Eh  —              F9Eh

                                       C1Fh     —              C9Fh  —              D1Fh  —                D9Fh  —              E1Fh  —              E9Fh  —              F1Fh  —              F9Fh

                                       C20h                    CA0h                 D20h                   DA0h                 E20h                 EA0h                 F20h                 FA0h

                                                Unimplemented        Unimplemented        Unimplemented          Unimplemented        Unimplemented        Unimplemented        Unimplemented

                                                Read as ‘0’          Read as ‘0’          Read as ‘0’            Read as ‘0’          Read as ‘0’          Read as ‘0’          Read as ‘0’

DS40001440E-page 27                    C6Fh                    CEFh                 D6Fh                   DEFh                 E6Fh                 EEFh                 F6Fh                 FEFh

                                       C70h                    CF0h                 D70h                   DF0h                 E70h                 EF0h                 F70h                 FF0h

                                                Accesses             Accesses             Accesses               Accesses             Accesses             Accesses             Accesses             Accesses

                                                70h – 7Fh            70h – 7Fh            70h – 7Fh              70h – 7Fh            70h – 7Fh            70h – 7Fh            70h – 7Fh            70h – 7Fh

                                       CFFh                    CFFh                 D7Fh                   DFFh                 E7Fh                 EFFh                 F7Fh                 FFFh

                                       Legend:        = Unimplemented data memory locations, read as ‘0’.
PIC16(L)F1825/9

TABLE 3-7:  PIC16(L)F1825/9 MEMORY                     3.2.6  SPECIAL FUNCTION REGISTERS

            MAP, BANK 31                                      SUMMARY

            Bank 31(1)                                 The Special Function Register summary for the device

F8Ch                                                   family are as follows:

            Unimplemented                                     Device           Bank(s)  Page No.

            Read as ‘0’                                                        0        29

FE3h                                                                           1        30

FE4h        STATUS_SHAD                                                        2        31

FE5h        WREG_SHAD

FE6h        BSR_SHAD                                                           3        32

FE7h        PCLATH_SHAD                                                        4        33

FE8h        FSR0L_SHAD                                 PIC16(L)F1825           5        34

FE9h        FSR0H_SHAD                                 PIC16(L)F1829

FEAh        FSR1L_SHAD                                                         6        35

FEBh        FSR1H_SHAD                                                         7        36

FECh                      —

FEDh                 STKPTR                                                    8        37

FEEh                 TOSL                                                      9-30     38

FEFh                 TOSH                                                      31       39

Legend:     = Unimplemented  data  memory  locations,

            read as ‘0’.

DS40001440E-page 28                                                    2010-2015 Microchip Technology Inc.
                                                                                                    PIC16(L)F1825/9

TABLE 3-8:             SPECIAL FUNCTION REGISTER SUMMARY

                                                                                                                              Value on    Value on all

Address         Name   Bit 7              Bit 6    Bit 5             Bit 4   Bit 3                  Bit 2     Bit 1   Bit 0   POR, BOR     other

                                                                                                                                           Resets

Bank 0

000h(1)      INDF0     Addressing this location uses contents of FSR0H/FSR0L to address data memory                           xxxx  xxxx  xxxx  xxxx

                       (not a physical register)

001h(1)      INDF1     Addressing this location uses contents of FSR1H/FSR1L to address data memory                           xxxx  xxxx  xxxx  xxxx

                       (not a physical register)

002h(1)      PCL       Program Counter (PC) Least Significant Byte                                                            0000  0000  0000  0000

003h(1)      STATUS    —                  —        —                 TO      PD                     Z         DC      C       ---1  1000  ---q  quuu

004h(1)      FSR0L     Indirect Data Memory Address 0 Low Pointer                                                             0000  0000  uuuu  uuuu

005h(1)      FSR0H     Indirect Data Memory Address 0 High Pointer                                                            0000  0000  0000  0000

006h(1)      FSR1L     Indirect Data Memory Address 1 Low Pointer                                                             0000  0000  uuuu  uuuu

007h(1)      FSR1H     Indirect Data Memory Address 1 High Pointer                                                            0000  0000  0000  0000

008h(1)      BSR       —                  —        —                                                BSR<4:0>                  ---0  0000  ---0  0000

009h(1)      WREG      Working Register                                                                                       0000  0000  uuuu  uuuu

00Ah(1)      PCLATH    —                  Write Buffer for the upper 7 bits of the Program Counter                            -000  0000  -000  0000

00Bh(1)      INTCON    GIE                PEIE     TMR0IE            INTE    IOCIE                  TMR0IF    INTF    IOCIF   0000  0000  0000  0000

00Ch         PORTA     —                  —        RA5               RA4     RA3                    RA2       RA1     RA0     --xx  xxxx  --xx  xxxx

00Dh         PORTB(2)  RB7                RB6      RB5               RB4     —                      —         —       —       xxxx  ----  xxxx  ----

00Eh         PORTC     RC7(2)             RC6(2)   RC5               RC4     RC3                    RC2       RC1     RC0     xxxx  xxxx  xxxx  xxxx

00Fh         —         Unimplemented                                                                                          —            —

010h         —         Unimplemented                                                                                          —            —

011h         PIR1      TMR1GIF            ADIF     RCIF              TXIF    SSP1IF                 CCP1IF    TMR2IF  TMR1IF  0000  0000  0000  0000

012h         PIR2      OSFIF              C2IF     C1IF              EEIF    BCL1IF                 —         —       CCP2IF  0000  0--0  0000  0--0

013h         PIR3      —                  —        CCP4IF            CCP3IF  TMR6IF                 —         TMR4IF  —       --00  0-0-  --00  0-0-

014h         PIR4(2)   —                  —        —                 —       —                      —         BCL2IF  SSP2IF  ----  --00  ----  --00

015h         TMR0      Timer0 Module Register                                                                                 xxxx  xxxx  uuuu  uuuu

016h         TMR1L     Holding Register for the Least Significant Byte of the 16-bit TMR1 Register                            xxxx  xxxx  uuuu  uuuu

017h         TMR1H     Holding Register for the Most Significant Byte of the 16-bit TMR1 Register                             xxxx  xxxx  uuuu  uuuu

018h         T1CON     TMR1CS1            TMR1CS0             T1CKPS<1:0>    T1OSCEN                T1SYNC    —       TMR1ON  0000  00-0  uuuu  uu-u

019h         T1GCON    TMR1GE             T1GPOL   T1GTM             T1GSPM  T1GGO/                 T1GVAL      T1GSS<1:0>    0000  0x00  uuuu  uxuu

                                                                             DONE

01Ah         TMR2      Timer2 Module Register                                                                                 0000  0000  0000  0000

01Bh         PR2       Timer2 Period Register                                                                                 1111  1111  1111  1111

01Ch         T2CON     —                           T2OUTPS<3:0>                                     TMR2ON    T2CKPS<1:0>     -000  0000  -000  0000

01Dh         —         Unimplemented                                                                                          —            —

01Eh         CPSCON0   CPSON              CPSRM    —                 —       CPSRNG<1:0>                      CPSOUT  T0XCS   00--  0000  00--  0000

01Fh         CPSCON1   —                  —        —                 —                              CPSCH<3:0>                ----  0000  ----  0000

Legend:      x = unknown, u = unchanged, q = value depends on condition, - = unimplemented, r = reserved.

                   Shaded locations are unimplemented, read as ‘0’.

Note     1:  These registers can be addressed from any bank.

         2:  PIC16(L)F1829 only.

         3:  PIC16(L)F1825 only.

         4:  Unimplemented, read as ‘1’.

 2010-2015 Microchip Technology Inc.                                                                                 DS40001440E-page 29
PIC16(L)F1825/9

TABLE 3-8:             SPECIAL FUNCTION REGISTER SUMMARY (CONTINUED)

                                                                                                                               Value on    Value on all

Address         Name     Bit 7             Bit 6     Bit 5               Bit 4  Bit 3               Bit 2     Bit 1    Bit 0   POR, BOR           other

                                                                                                                                                  Resets

Bank 1

080h(1)      INDF0       Addressing this location uses contents of FSR0H/FSR0L to address data memory                          xxxx  xxxx  xxxx   xxxx

                         (not a physical register)

081h(1)      INDF1       Addressing this location uses contents of FSR1H/FSR1L to address data memory                          xxxx  xxxx  xxxx   xxxx

                         (not a physical register)

082h(1)      PCL         Program Counter (PC) Least Significant Byte                                                           0000  0000  0000   0000

083h(1)      STATUS      —                 —         —                   TO     PD                  Z         DC           C   ---1  1000  ---q   quuu

084h(1)      FSR0L       Indirect Data Memory Address 0 Low Pointer                                                            0000  0000  uuuu   uuuu

085h(1)      FSR0H       Indirect Data Memory Address 0 High Pointer                                                           0000  0000  0000   0000

086h(1)      FSR1L       Indirect Data Memory Address 1 Low Pointer                                                            0000  0000  uuuu   uuuu

087h(1)      FSR1H       Indirect Data Memory Address 1 High Pointer                                                           0000  0000  0000   0000

088h(1)      BSR         —                 —         —                                              BSR<4:0>                   ---0  0000  ---0   0000

089h(1)      WREG        Working Register                                                                                      0000  0000  uuuu   uuuu

08Ah(1)      PCLATH      —                Write Buffer for the upper 7 bits of the Program Counter                             -000  0000  -000   0000

08Bh(1)      INTCON      GIE               PEIE      TMR0IE              INTE   IOCIE               TMR0IF    INTF     IOCIF   0000  0000  0000   0000

08Ch         TRISA       —                 —         TRISA5           TRISA4    TRISA3              TRISA2    TRISA1   TRISA0  --11  1111  --11   1111

08Dh         TRISB(2)    TRISB7           TRISB6     TRISB5           TRISB4    —                   —         —            —   1111  ----  1111   ----

08Eh         TRISC       TRISC7(2)        TRISC6(2)  TRISC5           TRISC4    TRISC3              TRISC2    TRISC1   TRISC0  1111  1111  1111   1111

08Fh         —           Unimplemented                                                                                         —                  —

090h         —           Unimplemented                                                                                         —                  —

091h         PIE1        TMR1GIE           ADIE      RCIE                TXIE   SSP1IE              CCP1IE    TMR2IE   TMR1IE  0000  0000  0000   0000

092h         PIE2        OSFIE             C2IE      C1IE             EEIE      BCL1IE              —         —        CCP2IE  0000  0--0  0000   0--0

093h         PIE3        —                 —         CCP4IE           CCP3IE    TMR6IE              —         TMR4IE       —   --00  0-0-  --00   0-0-

094h         PIE4(2)     —                 —         —                   —      —                   —         BCL2IE   SSP2IE  ----  --00  ----   --00

095h         OPTION_REG  WPUEN            INTEDG     TMR0CS           TMR0SE    PSA                           PS<2:0>          1111  1111  1111   1111

096h         PCON        STKOVF           STKUNF     —                   —      RMCLR               RI        POR      BOR     00--  11qq  qq--   qquu

097h         WDTCON      —                 —                                    WDTPS<4:0>                             SWDTEN  --01  0110  --01   0110

098h         OSCTUNE     —                 —                                    TUN<5:0>                                       --00  0000  --00   0000

099h         OSCCON      SPLLEN                               IRCF<3:0>                             —            SCS<1:0>      0011  1-00  0011   1-00

09Ah         OSCSTAT     T1OSCR            PLLR      OSTS             HFIOFR    HFIOFL              MFIOFR    LFIOFR   HFIOFS  10q0  0q00  qqqq   qq0q

09Bh         ADRESL      A/D Result Register Low                                                                               xxxx  xxxx  uuuu   uuuu

09Ch         ADRESH      A/D Result Register High                                                                              xxxx  xxxx  uuuu   uuuu

09Dh         ADCON0      —                                           CHS<4:0>                                 GO/DONE  ADON    -000  0000  -000   0000

09Eh         ADCON1      ADFM                        ADCS<2:0>                  —                   ADNREF    ADPREF<1:0>      0000  -000  0000   -000

09Fh         —           Unimplemented                                                                                         —                  —

Legend:      x = unknown, u = unchanged, q = value depends on condition, - = unimplemented, r = reserved.

                   Shaded locations are unimplemented, read as ‘0’.

Note     1:  These registers can be addressed from any bank.

         2:  PIC16(L)F1829 only.

         3:  PIC16(L)F1825 only.

         4:  Unimplemented, read as ‘1’.

DS40001440E-page 30                                                                                         2010-2015 Microchip Technology Inc.
                                                                                                    PIC16(L)F1825/9

TABLE 3-8:            SPECIAL FUNCTION REGISTER SUMMARY (CONTINUED)

                                                                                                                                   Value on    Value on all

Address         Name  Bit 7               Bit 6       Bit 5          Bit 4      Bit 3               Bit 2      Bit 1      Bit 0    POR, BOR    other

                                                                                                                                               Resets

Bank 2

100h(1)      INDF0    Addressing this location uses contents of FSR0H/FSR0L to address data memory                                 xxxx  xxxx  xxxx  xxxx

                      (not a physical register)

101h(1)      INDF1    Addressing this location uses contents of FSR1H/FSR1L to address data memory                                 xxxx  xxxx  xxxx  xxxx

                      (not a physical register)

102h(1)      PCL      Program Counter (PC) Least Significant Byte                                                                  0000  0000  0000  0000

103h(1)      STATUS   —                   —           —              TO         PD                  Z          DC         C        ---1  1000  ---q  quuu

104h(1)      FSR0L    Indirect Data Memory Address 0 Low Pointer                                                                   0000  0000  uuuu  uuuu

105h(1)      FSR0H    Indirect Data Memory Address 0 High Pointer                                                                  0000  0000  0000  0000

106h(1)      FSR1L    Indirect Data Memory Address 1 Low Pointer                                                                   0000  0000  uuuu  uuuu

107h(1)      FSR1H    Indirect Data Memory Address 1 High Pointer                                                                  0000  0000  0000  0000

108h(1)      BSR      —                   —           —                                             BSR<4:0>                       ---0  0000  ---0  0000

109h(1)      WREG     Working Register                                                                                             0000  0000  uuuu  uuuu

10Ah(1)      PCLATH   —                   Write Buffer for the upper 7 bits of the Program Counter                                 -000  0000  -000  0000

10Bh(1)      INTCON   GIE                 PEIE        TMR0IE         INTE       IOCIE               TMR0IF     INTF       IOCIF    0000  0000  0000  0000

10Ch         LATA     —                   —           LATA5          LATA4      —                   LATA2      LATA1      LATA0    --xx  -xxx  --uu  -uuu

10Dh         LATB(2)  LATB7               LATB6       LATB5          LATB4      —                   —          —          —        xxxx  ----  xxxx  ----

10Eh         LATC     LATC7(2)            LATC6(2)    LATC5          LATC4      LATC3               LATC2      LATC1      LATC0    xxxx  xxxx  uuuu  uuuu

10Fh         —        Unimplemented                                                                                                —           —

110h         —        Unimplemented                                                                                                —           —

111h         CM1CON0  C1ON                C1OUT       C1OE           C1POL      —                   C1SP       C1HYS      C1SYNC   0000  -100  0000  -100

112h         CM1CON1  C1INTP              C1INTN              C1PCH<1:0>        —                   —          C1NCH1     C1NCH0   0000  ---0  0000  ---0

113h         CM2CON0  C2ON                C2OUT       C2OE           C2POL      —                   C2SP       C2HYS      C2SYNC   0000  -100  0000  -100

114h         CM2CON1  C2INTP              C2INTN              C2PCH<1:0>        —                   —          C2NCH<1:0>          0000  --00  0000  --00

115h         CMOUT    —                   —           —                   —     —                   —          MC2OUT     MC1OUT   ----  --00  ----  --00

116h         BORCON   SBOREN              —           —                   —     —                   —          —          BORRDY   1---  ---q  u---  ---u

117h         FVRCON   FVREN               FVRRDY      TSEN           TSRNG      CDAFVR<1:0>                    ADFVR<1:0>          0q00  0000  0q00  0000

118h         DACCON0  DACEN               DACLPS      DACOE               —     DACPSS<1:0>                    —          DACNSS   000-  00-0  000-  00-0

119h         DACCON1  —                   —           —                                             DACR<4:0>                      ---0  0000  ---0  0000

11Ah         SRCON0   SRLEN                           SRCLK<2:0>                SRQEN               SRNQEN     SRPS       SRPR     0000  0000  0000  0000

11Bh         SRCON1   SRSPE               SRSCKE      SRSC2E(2)      SRSC1E     SRRPE               SRRCKE     SRRC2E(2)  SRRC1E   0000  0000  0000  0000

11Ch         —        Unimplemented                                                                                                —           —

11Dh         APFCON0  RXDTSEL             SDO1SEL(3)  SS1SEL(3)           —     T1GSEL              TXCKSEL    —          —        000-  0000  000-  0000

11Eh         APFCON1  —                   —           SDO2SEL(2)     SS2SEL(2)  P1DSEL              P1CSEL     P2BSEL     CCP2SEL  --00  0000  --00  0000

11Fh         —        Unimplemented                                                                                                —           —

Legend:      x = unknown, u = unchanged, q = value depends on condition, - = unimplemented, r = reserved.

                   Shaded locations are unimplemented, read as ‘0’.

Note     1:  These registers can be addressed from any bank.

         2:  PIC16(L)F1829 only.

         3:  PIC16(L)F1825 only.

         4:  Unimplemented, read as ‘1’.

 2010-2015 Microchip Technology Inc.                                                                                     DS40001440E-page 31
PIC16(L)F1825/9

TABLE 3-8:              SPECIAL FUNCTION REGISTER SUMMARY (CONTINUED)

                                                                                                                                   Value on    Value on all

Address         Name    Bit 7             Bit 6       Bit 5          Bit 4   Bit 3                  Bit 2     Bit 1     Bit 0      POR, BOR         other

                                                                                                                                                    Resets

Bank 3

180h(1)      INDF0      Addressing this location uses contents of FSR0H/FSR0L to address data memory                               xxxx  xxxx  xxxx  xxxx

                        (not a physical register)

181h(1)      INDF1      Addressing this location uses contents of FSR1H/FSR1L to address data memory                               xxxx  xxxx  xxxx  xxxx

                        (not a physical register)

182h(1)      PCL        Program Counter (PC) Least Significant Byte                                                                0000  0000  0000  0000

183h(1)      STATUS     —                 —           —              TO      PD                     Z         DC        C          ---1  1000  ---q  quuu

184h(1)      FSR0L      Indirect Data Memory Address 0 Low Pointer                                                                 0000  0000  uuuu  uuuu

185h(1)      FSR0H      Indirect Data Memory Address 0 High Pointer                                                                0000  0000  0000  0000

186h(1)      FSR1L      Indirect Data Memory Address 1 Low Pointer                                                                 0000  0000  uuuu  uuuu

187h(1)      FSR1H      Indirect Data Memory Address 1 High Pointer                                                                0000  0000  0000  0000

188h(1)      BSR        —                 —           —                                             BSR<4:0>                       ---0  0000  ---0  0000

189h(1)      WREG       Working Register                                                                                           0000  0000  uuuu  uuuu

18Ah(1)      PCLATH     —                 Write Buffer for the upper 7 bits of the Program Counter                                 -000  0000  -000  0000

18Bh(1)      INTCON     GIE               PEIE        TMR0IE         INTE    IOCIE                  TMR0IF    INTF      IOCIF      0000  0000  0000  0000

18Ch         ANSELA     —                 —           —              ANSA4   —                      ANSA2     ANSA1     ANSA0      ---1  -111  ---1  -111

18Dh         ANSELB(2)  —                 —           ANSB5          ANSB4   —                      —         —         —          --11  ----  --11  ----

18Eh         ANSELC     ANSC7(2)          ANSC6(2)    —              —       ANSC3                  ANSC2     ANSC1     ANSC0      11--  1111  11--  1111

18Fh         —          Unimplemented                                                                                              —                —

190h         —          Unimplemented                                                                                              —                —

191h         EEADRL     EEPROM / Program Memory Address Register Low Byte                                                          0000  0000  0000  0000

192h         EEADRH     —(4)              EEPROM / Program Memory Address Register High Byte                                       1000  0000  1000  0000

193h         EEDATL     EEPROM / Program Memory Read Data Register Low Byte                                                        xxxx  xxxx  uuuu  uuuu

194h         EEDATH     —                 —         EEPROM / Program Memory Read Data Register High Byte                           --xx  xxxx  --uu  uuuu

195h         EECON1     EEPGD             CFGS        LWLO           FREE    WRERR                  WREN      WR        RD         0000  x000  0000  q000

196h         EECON2     EEPROM control register 2                                                                                  0000  0000  0000  0000

197h         —          Unimplemented                                                                                              —                —

198h         —          Unimplemented                                                                                              —                —

199h         RCREG      USART Receive Data Register                                                                                0000  0000  0000  0000

19Ah         TXREG      USART Transmit Data Register                                                                               0000  0000  0000  0000

19Bh         SPBRGL     Baud Rate Generator Data Register Low                                                                      0000  0000  0000  0000

19Ch         SPBRGH     Baud Rate Generator Data Register High                                                                     0000  0000  0000  0000

19Dh         RCSTA      SPEN              RX9         SREN           CREN    ADDEN                  FERR      OERR      RX9D       0000  000x  0000  000x

19Eh         TXSTA      CSRC              TX9         TXEN           SYNC    SENDB                  BRGH      TRMT      TX9D       0000  0010  0000  0010

19Fh         BAUDCON    ABDOVF            RCIDL       —              SCKP    BRG16                  —         WUE       ABDEN      01-0  0-00  01-0  0-00

Legend:      x = unknown, u = unchanged, q = value depends on condition, - = unimplemented, r = reserved.

                  Shaded locations are unimplemented, read as ‘0’.

Note     1:  These registers can be addressed from any bank.

         2:  PIC16(L)F1829 only.

         3:  PIC16(L)F1825 only.

         4:  Unimplemented, read as ‘1’.

DS40001440E-page 32                                                                                         2010-2015  Microchip  Technology Inc.
                                                                                                    PIC16(L)F1825/9

TABLE 3-8:               SPECIAL FUNCTION REGISTER SUMMARY (CONTINUED)

                                                                                                                            Value on    Value on all

Address         Name      Bit 7             Bit 6    Bit 5             Bit 4        Bit 3           Bit 2     Bit 1  Bit 0  POR, BOR      other

                                                                                                                                          Resets

Bank 4

200h(1)      INDF0        Addressing this location uses contents of FSR0H/FSR0L to address data memory                      xxxx  xxxx  xxxx  xxxx

                          (not a physical register)

201h(1)      INDF1        Addressing this location uses contents of FSR1H/FSR1L to address data memory                      xxxx  xxxx  xxxx  xxxx

                          (not a physical register)

202h(1)      PCL          Program Counter (PC) Least Significant Byte                                                       0000  0000  0000  0000

203h(1)      STATUS       —                 —        —                 TO           PD              Z         DC     C      ---1  1000  ---q  quuu

204h(1)      FSR0L        Indirect Data Memory Address 0 Low Pointer                                                        0000  0000  uuuu  uuuu

205h(1)      FSR0H        Indirect Data Memory Address 0 High Pointer                                                       0000  0000  0000  0000

206h(1)      FSR1L        Indirect Data Memory Address 1 Low Pointer                                                        0000  0000  uuuu  uuuu

207h(1)      FSR1H        Indirect Data Memory Address 1 High Pointer                                                       0000  0000  0000  0000

208h(1)      BSR          —                 —        —                                              BSR<4:0>                ---0  0000  ---0  0000

209h(1)      WREG         Working Register                                                                                  0000  0000  uuuu  uuuu

20Ah(1)      PCLATH       —               Write Buffer for the upper 7 bits of the Program Counter                          -000  0000  -000  0000

20Bh(1)      INTCON       GIE               PEIE     TMR0IE            INTE         IOCIE           TMR0IF    INTF   IOCIF  0000  0000  0000  0000

20Ch         WPUA         —                 —        WPUA5             WPUA4        WPUA3           WPUA2     WPUA1  WPUA0  --11  1111  --11  1111

20Dh         WPUB         WPUB7           WPUB6      WPUB5             WPUB4        —               —          —     —      1111  ----  1111  ----

20Eh         WPUC         WPUC7(2)        WPUC6(2)   WPUC5             WPUC4        WPUC3           WPUC2     WPUC1  WPUC0  1111  1111  1111  1111

20Fh         —            Unimplemented                                                                                     —             —

210h         —            Unimplemented                                                                                     —             —

211h         SSP1BUF      Synchronous Serial Port Receive Buffer/Transmit Register                                          xxxx  xxxx  uuuu  uuuu

212h         SSP1ADD                                                   ADD<7:0>                                             0000  0000  0000  0000

213h         SSP1MSK                                                   MSK<7:0>                                             1111  1111  1111  1111

214h         SSP1STAT     SMP               CKE      D/A               P            S               R/W       UA     BF     0000  0000  0000  0000

215h         SSP1CON1     WCOL            SSPOV      SSPEN             CKP                          SSPM<3:0>               0000  0000  0000  0000

216h         SSP1CON2     GCEN            ACKSTAT    ACKDT             ACKEN        RCEN            PEN       RSEN   SEN    0000  0000  0000  0000

217h         SSP1CON3     ACKTIM            PCIE     SCIE              BOEN         SDAHT           SBCDE     AHEN   DHEN   0000  0000  0000  0000

218h         —            Unimplemented                                                                                     —             —

219h         SSP2BUF(2)   Synchronous Serial Port Receive Buffer/Transmit Register                                          xxxx  xxxx  uuuu  uuuu

21Ah         SSP2ADD(2)                                                ADD<7:0>                                             0000  0000  0000  0000

21Bh         SSP2MSK(2)                                                MSK<7:0>                                             1111  1111  1111  1111

21Ch         SSP2STAT(2)  SMP               CKE      D/A               P            S               R/W       UA     BF     0000  0000  0000  0000

21Dh         SSP2CON1(2)  WCOL            SSPOV      SSPEN             CKP                          SSPM<3:0>               0000  0000  0000  0000

21Eh         SSP2CON2(2)  GCEN            ACKSTAT    ACKDT             ACKEN        RCEN            PEN       RSEN   SEN    0000  0000  0000  0000

21Fh         SSP2CON3(2)  ACKTIM            PCIE     SCIE              BOEN         SDAHT           SBCDE     AHEN   DHEN   0000  0000  0000  0000

Legend:      x = unknown, u = unchanged, q = value depends on condition, - = unimplemented, r = reserved.

                  Shaded locations are unimplemented, read as ‘0’.

Note     1:  These registers can be addressed from any bank.

         2:  PIC16(L)F1829 only.

         3:  PIC16(L)F1825 only.

         4:  Unimplemented, read as ‘1’.

 2010-2015 Microchip Technology Inc.                                                                                DS40001440E-page 33
PIC16(L)F1825/9

TABLE 3-8:             SPECIAL FUNCTION REGISTER SUMMARY (CONTINUED)

                                                                                                                                Value on    Value on all

Address         Name   Bit 7              Bit 6    Bit 5            Bit 4     Bit 3                 Bit 2     Bit 1    Bit 0    POR, BOR          other

                                                                                                                                                  Resets

Bank 5

280h(1)      INDF0     Addressing this location uses contents of FSR0H/FSR0L to address data memory                             xxxx  xxxx  xxxx  xxxx

                       (not a physical register)

281h(1)      INDF1     Addressing this location uses contents of FSR1H/FSR1L to address data memory                             xxxx  xxxx  xxxx  xxxx

                       (not a physical register)

282h(1)      PCL       Program Counter (PC) Least Significant Byte                                                              0000  0000  0000  0000

283h(1)      STATUS    —                    —      —                     TO   PD                    Z         DC       C        ---1  1000  ---q  quuu

284h(1)      FSR0L     Indirect Data Memory Address 0 Low Pointer                                                               0000  0000  uuuu  uuuu

285h(1)      FSR0H     Indirect Data Memory Address 0 High Pointer                                                              0000  0000  0000  0000

286h(1)      FSR1L     Indirect Data Memory Address 1 Low Pointer                                                               0000  0000  uuuu  uuuu

287h(1)      FSR1H     Indirect Data Memory Address 1 High Pointer                                                              0000  0000  0000  0000

288h(1)      BSR       —                    —      —                                                BSR<4:0>                    ---0  0000  ---0  0000

289h(1)      WREG      Working Register                                                                                         0000  0000  uuuu  uuuu

28Ah(1)      PCLATH    —                  Write Buffer for the upper 7 bits of the Program Counter                              -000  0000  -000  0000

28Bh(1)      INTCON    GIE                PEIE     TMR0IE           INTE      IOCIE                 TMR0IF    INTF     IOCIF    0000  0000  0000  0000

28Ch         —         Unimplemented                                                                                            —                 —

28Dh         —         Unimplemented                                                                                            —                 —

28Eh         —         Unimplemented                                                                                            —                 —

28Fh         —         Unimplemented                                                                                            —                 —

290h         —         Unimplemented                                                                                            —                 —

291h         CCPR1L    Capture/Compare/PWM Register 1 (LSB)                                                                     xxxx  xxxx  uuuu  uuuu

292h         CCPR1H    Capture/Compare/PWM Register 1 (MSB)                                                                     xxxx  xxxx  uuuu  uuuu

293h         CCP1CON              P1M<1:0>                    DC1B<1:0>                             CCP1M<3:0>                  0000  0000  0000  0000

294h         PWM1CON   P1RSEN                                                 P1DC<6:0>                                         0000  0000  0000  0000

295h         CCP1AS    CCP1ASE                     CCP1AS<2:0>                PSS1AC<1:0>                     PSS1BD<1:0>       0000  0000  0000  0000

296h         PSTR1CON  —                    —      —                STR1SYNC  STR1D                 STR1C     STR1B    STR1A    ---0  0001  ---0  0001

297h         —         Unimplemented                                                                                            —                 —

298h         CCPR2L    Capture/Compare/PWM Register 2 (LSB)                                                                     xxxx  xxxx  uuuu  uuuu

299h         CCPR2H    Capture/Compare/PWM Register 2 (MSB)                                                                     xxxx  xxxx  uuuu  uuuu

29Ah         CCP2CON   P2M1               P2M0     DC2B1            DC2B0     CCP2M3                CCP2M2    CCP2M1   CCP2M0   0000  0000  0000  0000

29Bh         PWM2CON   P2RSEN             P2DC6    P2DC5            P2DC4     P2DC3                 P2DC2     P2DC1    P2DC0    0000  0000  0000  0000

29Ch         CCP2AS    CCP2ASE            CCP2AS2  CCP2AS1          CCP2AS0   PSS2AC1               PSS2AC0   PSS2BD1  PSS2BD0  0000  0000  0000  0000

29Dh         PSTR2CON  —                    —      —                STR2SYNC  STR2D                 STR2C     STR2B    STR2A    ---0  0001  ---0  0001

29Eh         CCPTMRS   C4TSEL1            C4TSEL0  C3TSEL1          C3TSEL0   C2TSEL1               C2TSEL0   C1TSEL1  C1TSEL0  0000  0000  0000  0000

29Fh         —         Unimplemented                                                                                            —                 —

Legend:      x = unknown, u = unchanged, q = value depends on condition, - = unimplemented, r = reserved.

                  Shaded locations are unimplemented, read as ‘0’.

Note     1:  These registers can be addressed from any bank.

         2:  PIC16(L)F1829 only.

         3:  PIC16(L)F1825 only.

         4:  Unimplemented, read as ‘1’.

DS40001440E-page 34                                                                                         2010-2015 Microchip Technology Inc.
                                                                                                    PIC16(L)F1825/9

TABLE 3-8:            SPECIAL FUNCTION REGISTER SUMMARY (CONTINUED)

                                                                                                                              Value on    Value on all

Address         Name  Bit 7               Bit 6  Bit 5              Bit 4  Bit 3                    Bit 2     Bit 1   Bit 0   POR, BOR     other

                                                                                                                                           Resets

Bank 6

300h(1)      INDF0    Addressing this location uses contents of FSR0H/FSR0L to address data memory                            xxxx  xxxx  xxxx  xxxx

                      (not a physical register)

301h(1)      INDF1    Addressing this location uses contents of FSR1H/FSR1L to address data memory                            xxxx  xxxx  xxxx  xxxx

                      (not a physical register)

302h(1)      PCL      Program Counter (PC) Least Significant Byte                                                             0000  0000  0000  0000

303h(1)      STATUS   —                   —      —                  TO     PD                       Z         DC      C       ---1  1000  ---q  quuu

304h(1)      FSR0L    Indirect Data Memory Address 0 Low Pointer                                                              0000  0000  uuuu  uuuu

305h(1)      FSR0H    Indirect Data Memory Address 0 High Pointer                                                             0000  0000  0000  0000

306h(1)      FSR1L    Indirect Data Memory Address 1 Low Pointer                                                              0000  0000  uuuu  uuuu

307h(1)      FSR1H    Indirect Data Memory Address 1 High Pointer                                                             0000  0000  0000  0000

308h(1)      BSR      —                   —      —                                                  BSR<4:0>                  ---0  0000  ---0  0000

309h(1)      WREG     Working Register                                                                                        0000  0000  uuuu  uuuu

30Ah(1)      PCLATH   —                   Write Buffer for the upper 7 bits of the Program Counter                            -000  0000  -000  0000

30Bh(1)      INTCON   GIE                 PEIE   TMR0IE             INTE   IOCIE                    TMR0IF    INTF    IOCIF   0000  0000  0000  0000

30Ch         —        Unimplemented                                                                                           —            —

30Dh         —        Unimplemented                                                                                           —            —

30Eh         —        Unimplemented                                                                                           —            —

30Fh         —        Unimplemented                                                                                           —            —

310h         —        Unimplemented                                                                                           —            —

311h         CCPR3L   Capture/Compare/PWM Register 3 (LSB)                                                                    xxxx  xxxx  uuuu  uuuu

312h         CCPR3H   Capture/Compare/PWM Register 3 (MSB)                                                                    xxxx  xxxx  uuuu  uuuu

313h         CCP3CON  —                   —      DC3B1              DC3B0  CCP3M3                   CCP3M2    CCP3M1  CCP3M0  --00  0000  --00  0000

314h         —        Unimplemented                                                                                           —            —

315h         —        Unimplemented                                                                                           —            —

316h         —        Unimplemented                                                                                           —            —

317h         —        Unimplemented                                                                                           —            —

318h         CCPR4L   Capture/Compare/PWM Register 4 (LSB)                                                                    xxxx  xxxx  uuuu  uuuu

319h         CCPR4H   Capture/Compare/PWM Register 4 (MSB)                                                                    xxxx  xxxx  uuuu  uuuu

31Ah         CCP4CON  —                   —      DC4B1              DC4B0  CCP4M3                   CCP4M2    CCP4M1  CCP4M0  --00  0000  --00  0000

31Bh         —        Unimplemented                                                                                           —            —

31Ch         —        Unimplemented                                                                                           —            —

31Dh         —        Unimplemented                                                                                           —            —

31Eh         —        Unimplemented                                                                                           —            —

31Fh         —        Unimplemented                                                                                           —            —

Legend:      x = unknown, u = unchanged, q = value depends on condition, - = unimplemented, r = reserved.

                  Shaded locations are unimplemented, read as ‘0’.

Note     1:  These registers can be addressed from any bank.

         2:  PIC16(L)F1829 only.

         3:  PIC16(L)F1825 only.

         4:  Unimplemented, read as ‘1’.

 2010-2015 Microchip Technology Inc.                                                                                 DS40001440E-page 35
PIC16(L)F1825/9

TABLE 3-8:              SPECIAL FUNCTION REGISTER SUMMARY (CONTINUED)

                                                                                                                                     Value on    Value on all

Address         Name    Bit 7             Bit 6    Bit 5             Bit 4    Bit 3                 Bit 2     Bit 1         Bit 0    POR, BOR         other

                                                                                                                                                      Resets

Bank 7

380h(1)      INDF0      Addressing this location uses contents of FSR0H/FSR0L to address data memory                                 xxxx  xxxx  xxxx  xxxx

                        (not a physical register)

381h(1)      INDF1      Addressing this location uses contents of FSR1H/FSR1L to address data memory                                 xxxx  xxxx  xxxx  xxxx

                        (not a physical register)

382h(1)      PCL        Program Counter (PC) Least Significant Byte                                                                  0000  0000  0000  0000

383h(1)      STATUS     —                 —        —                 TO       PD                    Z         DC            C        ---1  1000  ---q  quuu

384h(1)      FSR0L      Indirect Data Memory Address 0 Low Pointer                                                                   0000  0000  uuuu  uuuu

385h(1)      FSR0H      Indirect Data Memory Address 0 High Pointer                                                                  0000  0000  0000  0000

386h(1)      FSR1L      Indirect Data Memory Address 1 Low Pointer                                                                   0000  0000  uuuu  uuuu

387h(1)      FSR1H      Indirect Data Memory Address 1 High Pointer                                                                  0000  0000  0000  0000

388h(1)      BSR        —                 —        —                                                BSR<4:0>                         ---0  0000  ---0  0000

389h(1)      WREG       Working Register                                                                                             0000  0000  uuuu  uuuu

38Ah(1)      PCLATH     —                 Write Buffer for the upper 7 bits of the Program Counter                                   -000  0000  -000  0000

38Bh(1)      INTCON     GIE               PEIE     TMR0IE            INTE     IOCIE                 TMR0IF    INTF          IOCIF    0000  0000  0000  0000

38Ch         INLVLA     —                 —        INLVLA5           INLVLA4  INLVLA3               INLVLA2   INLVLA1       INLVLA0  --00  0100  --00  0100

38Dh         INLVLB(2)  INLVLB7           INLVLB6  INLVLB5           INLVLB4  —                     —          —            —        0000  ----  0000  ----

38Eh         INLVLC(3)  —                 —        INLVLC5           INLVLC4  INLVLC3               INLVLC2   INLVLC1       INLVLC0  --00  0000  --00  0000

             INLVLC(2)  INLVLC7           INLVLC6  INLVLC5           INLVLC4  INLVLC3               INLVLC2   INLVLC1       INLVLC0  1111  1111  1111  1111

38Fh         —          Unimplemented                                                                                                —                —

390h         —          Unimplemented                                                                                                —                —

391h         IOCAP      —                 —        IOCAP5            IOCAP4   IOCAP3                IOCAP2    IOCAP1        IOCAP0   --00  0000  --00  0000

392h         IOCAN      —                 —        IOCAN5            IOCAN4   IOCAN3                IOCAN2    IOCAN1        IOCAN0   --00  0000  --00  0000

393h         IOCAF      —                 —        IOCAF5            IOCAF4   IOCAF3                IOCAF2    IOCAF1        IOCAF0   --00  0000  --00  0000

394h         IOCBP(2)   IOCBP7            IOCBP6   IOCBP5            IOCBP4   —                     —          —            —        0000  ----  0000  ----

395h         IOCBN(2)   IOCBN7            IOCBN6   IOCBN5            IOCBN4   —                     —          —            —        0000  ----  0000  ----

396h         IOCBF(2)   IOCBF7            IOCBF6   IOCBF5            IOCBF4   —                     —          —            —        0000  ----  0000  ----

397h         —          Unimplemented                                                                                                —                —

398h         —          Unimplemented                                                                                                —                —

399h         —          Unimplemented                                                                                                —                —

39Ah         CLKRCON    CLKREN            CLKROE   CLKRSLR           CLKRDC<1:0>                              CLKRDIV<2:0>           0011  0000  0011  0000

39Bh         —          Unimplemented                                                                                                —                —

39Ch         MDCON      MDEN              MDOE     MDSLR             MDOPOL   MDOUT                 —          —            MDBIT    0010  ---0  0010  ---0

39Dh         MDSRC      MDMSODIS          —        —                 —                              MDMS<3:0>                        x---  xxxx  u---  uuuu

39Eh         MDCARL     MDCLODIS          MDCLPOL  MDCLSYNC          —                              MDCL<3:0>                        xxx-  xxxx  uuu-  uuuu

39Fh         MDCARH     MDCHODIS          MDCHPOL  MDCHSYNC          —                              MDCH<3:0>                        xxx-  xxxx  uuu-  uuuu

Legend:      x = unknown, u = unchanged, q = value depends on condition, - = unimplemented, r = reserved.

                  Shaded locations are unimplemented, read as ‘0’.

Note     1:  These registers can be addressed from any bank.

         2:  PIC16(L)F1829 only.

         3:  PIC16(L)F1825 only.

         4:  Unimplemented, read as ‘1’.

DS40001440E-page 36                                                                                          2010-2015 Microchip    Technology Inc.
                                                                                                    PIC16(L)F1825/9

TABLE 3-8:            SPECIAL FUNCTION REGISTER SUMMARY (CONTINUED)

                                                                                                                            Value on    Value on all

Address         Name  Bit 7               Bit 6  Bit 5              Bit 4  Bit 3                    Bit 2     Bit 1  Bit 0  POR, BOR      other

                                                                                                                                          Resets

Bank 8

400h(1)      INDF0    Addressing this location uses contents of FSR0H/FSR0L to address data memory                          xxxx  xxxx  xxxx  xxxx

                      (not a physical register)

401h(1)      INDF1    Addressing this location uses contents of FSR1H/FSR1L to address data memory                          xxxx  xxxx  xxxx  xxxx

                      (not a physical register)

402h(1)      PCL      Program Counter (PC) Least Significant Byte                                                           0000  0000  0000  0000

403h(1)      STATUS   —                   —      —                  TO     PD                       Z         DC     C      ---1  1000  ---q  quuu

404h(1)      FSR0L    Indirect Data Memory Address 0 Low Pointer                                                            0000  0000  uuuu  uuuu

405h(1)      FSR0H    Indirect Data Memory Address 0 High Pointer                                                           0000  0000  0000  0000

406h(1)      FSR1L    Indirect Data Memory Address 1 Low Pointer                                                            0000  0000  uuuu  uuuu

407h(1)      FSR1H    Indirect Data Memory Address 1 High Pointer                                                           0000  0000  0000  0000

408h(1)      BSR      —                   —      —                                                  BSR<4:0>                ---0  0000  ---0  0000

409h(1)      WREG     Working Register                                                                                      0000  0000  uuuu  uuuu

40Ah(1)      PCLATH   —                   Write Buffer for the upper 7 bits of the Program Counter                          -000  0000  -000  0000

40Bh(1)      INTCON   GIE                 PEIE   TMR0IE             INTE   IOCIE                    TMR0IF    INTF   IOCIF  0000  0000  0000  0000

40Ch         —        Unimplemented                                                                                         —             —

40Dh         —        Unimplemented                                                                                         —             —

40Eh         —        Unimplemented                                                                                         —             —

40Fh         —        Unimplemented                                                                                         —             —

410h         —        Unimplemented                                                                                         —             —

411h         —        Unimplemented                                                                                         —             —

412h         —        Unimplemented                                                                                         —             —

413h         —        Unimplemented                                                                                         —             —

414h         —        Unimplemented                                                                                         —             —

415h         TMR4     Timer4 Module Register                                                                                0000  0000  0000  0000

416h         PR4      Timer4 Period Register                                                                                1111  1111  1111  1111

417h         T4CON    —                          T4OUTPS<3:0>                                       TMR4ON    T4CKPS<1:0>   -000  0000  -000  0000

418h         —        Unimplemented                                                                                         —             —

419h         —        Unimplemented                                                                                         —             —

41Ah         —        Unimplemented                                                                                         —             —

41Bh         —        Unimplemented                                                                                         —             —

41Ch         TMR6     Timer6 Module Register                                                                                0000  0000  0000  0000

41Dh         PR6      Timer6 Period Register                                                                                1111  1111  1111  1111

41Eh         T6CON    —                          T6OUTPS<3:0>                                       TMR6ON    T6CKPS<1:0>   -000  0000  -000  0000

41Fh         —        Unimplemented                                                                                         —             —

Legend:      x = unknown, u = unchanged, q = value depends on condition, - = unimplemented, r = reserved.

                  Shaded locations are unimplemented, read as ‘0’.

Note     1:  These registers can be addressed from any bank.

         2:  PIC16(L)F1829 only.

         3:  PIC16(L)F1825 only.

         4:  Unimplemented, read as ‘1’.

 2010-2015 Microchip Technology Inc.                                                                                DS40001440E-page 37
PIC16(L)F1825/9

TABLE 3-8:            SPECIAL FUNCTION REGISTER SUMMARY (CONTINUED)

                                                                                                                                   Value on    Value on all

Address         Name  Bit 7               Bit 6  Bit 5              Bit 4  Bit 3                    Bit 2     Bit 1     Bit 0      POR, BOR         other

                                                                                                                                                    Resets

Banks 9-30

x00h/        INDF0    Addressing this location uses contents of FSR0H/FSR0L to address data memory                                 xxxx  xxxx  xxxx  xxxx

x80h(1)               (not a physical register)

x00h/        INDF1    Addressing this location uses contents of FSR1H/FSR1L to address data memory                                 xxxx  xxxx  xxxx  xxxx

x81h(1)               (not a physical register)

x02h/        PCL      Program Counter (PC) Least Significant Byte                                                                  0000  0000  0000  0000

x82h(1)

x03h/        STATUS   —                   —      —                  TO     PD                       Z         DC        C          ---1  1000  ---q  quuu

x83h(1)

x04h/        FSR0L    Indirect Data Memory Address 0 Low Pointer                                                                   0000  0000  uuuu  uuuu

x84h(1)

x05h/        FSR0H    Indirect Data Memory Address 0 High Pointer                                                                  0000  0000  0000  0000

x85h(1)

x06h/        FSR1L    Indirect Data Memory Address 1 Low Pointer                                                                   0000  0000  uuuu  uuuu

x86h(1)

x07h/        FSR1H    Indirect Data Memory Address 1 High Pointer                                                                  0000  0000  0000  0000

x87h(1)

x08h/        BSR      —                   —      —                                                  BSR<4:0>                       ---0  0000  ---0  0000

x88h(1)

x09h/        WREG     Working Register                                                                                             0000  0000  uuuu  uuuu

x89h(1)

x0Ah/        PCLATH   —                   Write Buffer for the upper 7 bits of the Program Counter                                 -000  0000  -000  0000

x8Ah(1)

x0Bh/        INTCON   GIE                 PEIE   TMR0IE             INTE   IOCIE                    TMR0IF    INTF      IOCIF      0000  0000  0000  0000

x8Bh(1)

x0Ch/        —        Unimplemented                                                                                                —                —

x8Ch



x1Fh/

x9Fh

Legend:      x = unknown, u = unchanged, q = value depends on condition, - = unimplemented, r = reserved.

                  Shaded locations are unimplemented, read as ‘0’.

Note     1:  These registers can be addressed from any bank.

         2:  PIC16(L)F1829 only.

         3:  PIC16(L)F1825 only.

         4:  Unimplemented, read as ‘1’.

DS40001440E-page 38                                                                                         2010-2015  Microchip  Technology Inc.
                                                                                                    PIC16(L)F1825/9

TABLE 3-8:            SPECIAL FUNCTION REGISTER SUMMARY (CONTINUED)

                                                                                                                               Value on    Value on all

Address         Name  Bit 7               Bit 6  Bit 5               Bit 4            Bit 3         Bit 2     Bit 1    Bit 0   POR, BOR     other

                                                                                                                                            Resets

Bank 31

F80h(1)      INDF0    Addressing this location uses contents of FSR0H/FSR0L to address data memory                             xxxx  xxxx  xxxx  xxxx

                      (not a physical register)

F81h(1)      INDF1    Addressing this location uses contents of FSR1H/FSR1L to address data memory                             xxxx  xxxx  xxxx  xxxx

                      (not a physical register)

F82h(1)      PCL      Program Counter (PC) Least Significant Byte                                                              0000  0000  0000  0000

F83h(1)      STATUS   —                   —      —                   TO               PD            Z         DC       C       ---1  1000  ---q  quuu

F84h(1)      FSR0L    Indirect Data Memory Address 0 Low Pointer                                                               0000  0000  uuuu  uuuu

F85h(1)      FSR0H    Indirect Data Memory Address 0 High Pointer                                                              0000  0000  0000  0000

F86h(1)      FSR1L    Indirect Data Memory Address 1 Low Pointer                                                               0000  0000  uuuu  uuuu

F87h(1)      FSR1H    Indirect Data Memory Address 1 High Pointer                                                              0000  0000  0000  0000

F88h(1)      BSR      —                   —      —                                                  BSR<4:0>                   ---0  0000  ---0  0000

F89h(1)      WREG     Working Register                                                                                         0000  0000  uuuu  uuuu

F8Ah(1)      PCLATH   —                   Write Buffer for the upper 7 bits of the Program Counter                             -000  0000  -000  0000

F8Bh(1)      INTCON   GIE                 PEIE   TMR0IE              INTE             IOCIE         TMR0IF    INTF     IOCIF   0000  0000  0000  0000

F8Ch         —        Unimplemented                                                                                            —            —



FE3h

FE4h         STATUS_  —                   —      —                   —                —             Z_SHAD    DC_SHAD  C_SHAD  ----  -xxx  ----  -uuu

             SHAD

FE5h         WREG_    Working Register Shadow                                                                                  0000  0000  uuuu  uuuu

             SHAD

FE6h         BSR_     —                   —      —                   Bank Select Register Shadow                               ---x  xxxx  ---u  uuuu

             SHAD

FE7h         PCLATH_  —                   Program Counter Latch High Register Shadow                                           -xxx  xxxx  uuuu  uuuu

             SHAD

FE8h         FSR0L_   Indirect Data Memory Address 0 Low Pointer Shadow                                                        xxxx  xxxx  uuuu  uuuu

             SHAD

FE9h         FSR0H_   Indirect Data Memory Address 0 High Pointer Shadow                                                       xxxx  xxxx  uuuu  uuuu

             SHAD

FEAh         FSR1L_   Indirect Data Memory Address 1 Low Pointer Shadow                                                        xxxx  xxxx  uuuu  uuuu

             SHAD

FEBh         FSR1H_   Indirect Data Memory Address 1 High Pointer Shadow                                                       xxxx  xxxx  uuuu  uuuu

             SHAD

FECh         —        Unimplemented                                                                                            —            —

FEDh         STKPTR   —                   —      —                   Current Stack pointer                                     ---1  1111  ---1  1111

FEEh         TOSL     Top-of-Stack Low byte                                                                                    xxxx  xxxx  uuuu  uuuu

FEFh         TOSH     —                   Top-of-Stack High byte                                                               -xxx  xxxx  -uuu  uuuu

Legend:      x = unknown, u = unchanged, q = value depends on condition, - = unimplemented, r = reserved.

                   Shaded locations are unimplemented, read as ‘0’.

Note     1:  These registers can be addressed from any bank.

         2:  PIC16(L)F1829 only.

         3:  PIC16(L)F1825 only.

         4:  Unimplemented, read as ‘1’.

 2010-2015 Microchip Technology Inc.                                                                                  DS40001440E-page 39
PIC16(L)F1825/9

3.3       PCL and PCLATH                                                           3.3.2        COMPUTED GOTO

The Program Counter (PC) is 15 bits wide. The low byte                             A computed GOTO is accomplished by adding an offset to

comes from the PCL register, which is a readable and                               the program counter (ADDWF     PCL). When performing a

writable register. The high byte (PC<14:8>) is not directly                        table read using a computed GOTO method, care should

readable or writable and comes from PCLATH. On any                                 be exercised if the table location crosses a PCL memory

Reset,  the   PC     is  cleared.       Figure 3-3         shows   the       five  boundary (each 256-byte block). Refer to the Application

situations for the loading of the PC.                                              Note AN556, “Implementing a Table Read” (DS00556).

FIGURE 3-3:                     LOADING OF PC IN                                   3.3.3        COMPUTED FUNCTION CALLS

                                DIFFERENT SITUATIONS                               A computed function CALL allows programs to maintain

                                                                                   tables of functions and provide another way to execute

              14     PCH                PCL             0  Instruction with        state machines or look-up tables. When performing a

          PC                                                    PCL as             table  read  using  a    computed   function   CALL,    care

                                                            Destination            should be exercised if the table location crosses a PCL

              6      7          0       8                                          memory boundary (each 256-byte block).

     PCLATH                             ALU Result                                 If using the CALL instruction, the PCH<2:0> and PCL

                                                                                   registers  are   loaded  with  the  operand    of  the  CALL

              14     PCH                PCL             0                          instruction. PCH<6:3> is loaded with PCLATH<6:3>.

          PC                                                GOTO,  CALL

                                                                                   The CALLW instruction enables computed calls by com-

              6   4             0   11                                             bining PCLATH and W to form the destination address.

     PCLATH                         OPCODE <10:0>                                  A computed CALLW is accomplished by loading the W

                                                                                   register with the desired address and executing CALLW.

              14     PCH                PCL             0                          The PCL register is loaded with the value of W and

          PC                                                    CALLW              PCH is loaded with PCLATH.

              6      7          0       8                                          3.3.4        BRANCHING

     PCLATH                             W

                                                                                   The branching instructions add an offset to the PC.

              14     PCH                PCL             0                          This allows relocatable code and code that crosses

          PC                                                    BRW                page boundaries. There are two forms of branching,

                                                                                   BRW and BRA. The PC will have incremented to fetch

                                15                                                 the next instruction in both cases. When using either

                                PC + W                                             branching instruction, a PCL memory boundary may be

                                                                                   crossed.

              14     PCH                PCL             0                          If  using  BRW,  load  the  W  register  with  the  desired

          PC                                                    BRA                unsigned address and execute BRW. The entire PC will

                                15                                                 be loaded with the address PC + 1 + W.

                         PC  +  OPCODE  <8:0>                                      If using BRA, the entire PC will be loaded with PC + 1 +,

                                                                                   the signed value of the operand of the BRA instruction.

3.3.1         MODIFYING PCL

Executing any instruction with the PCL register as the

destination   simultaneously            causes             the     Program

Counter PC<14:8> bits (PCH) to be replaced by the

contents of the PCLATH register. This allows the entire

contents  of  the    program        counter         to  be  changed          by

writing the desired upper seven bits to the PCLATH

register. When the lower eight bits are written to the

PCL register, all 15 bits of the program counter will

change to the values contained in the PCLATH register

and those being written to the PCL register.

DS40001440E-page 40                                                                                     2010-2015 Microchip Technology Inc.
                                                                                              PIC16(L)F1825/9

3.4       Stack                                                                 3.4.1         ACCESSING THE STACK

All  devices   have   a  16-level x 15-bit        wide  hardware                The stack is available through the TOSH, TOSL and

stack  (refer  to    Figures 3-4    through 3-7).       The      stack          STKPTR registers. STKPTR is the current value of the

space is not part of either program or data space. The                          Stack Pointer. TOSH:TOSL register pair points to the

PC is PUSHed onto the stack when CALL or CALLW                                  TOP of the stack. Both registers are read/writable. TOS

instructions   are   executed     or  an    interrupt   causes    a             is split into TOSH and TOSL due to the 15-bit size of the

branch. The stack is POPed in the event of a RETURN,                            PC. To access the stack, adjust the value of STKPTR,

RETLW or a RETFIE instruction execution. PCLATH is                              which   will  position  TOSH:TOSL,     then        read/write  to

not affected by a PUSH or POP operation.                                        TOSH:TOSL. STKPTR is five bits to allow detection of

The stack operates as a circular buffer if the STVREN                           overflow and underflow.

bit is programmed to ‘0‘ (Configuration Word 2). This                           Note:         Care should be taken when modifying the

means that after the stack has been PUSHed sixteen                                            STKPTR while interrupts are enabled.

times, the seventeenth PUSH overwrites the value that                           During normal program operation, CALL,              CALLW and

was stored from the first PUSH. The eighteenth PUSH                             Interrupts    will  increment    STKPTR          while  RETLW,

overwrites     the   second    PUSH         (and  so    on).      The           RETURN, and RETFIE will decrement STKPTR. At any

STKOVF        and   STKUNF    flag    bits  will  be    set   on  an            time STKPTR can be inspected to see how much stack

Overflow/Underflow, regardless of whether the Reset is                          is left. The STKPTR always points at the currently used

enabled.                                                                        place on the stack. Therefore, a CALL or CALLW                 will

     Note 1:   There     are  no    instructions/mnemonics                      increment the STKPTR and then write the PC, and a

               called PUSH or POP. These are actions                            return  will  unload    the  PC  and  then       decrement     the

               that  occur    from    the   execution        of  the            STKPTR.

               CALL,     CALLW,       RETURN,     RETLW and                     Reference Figure 3-4 through Figure 3-7 for examples

               RETFIE instructions or the vectoring to                          of accessing the stack.

               an interrupt address.

FIGURE 3-4:              ACCESSING THE STACK EXAMPLE 1

               TOSH:TOSL                                0x0F                            STKPTR = 0x1F        Stack Reset Disabled

                                                                                                             (STVREN = 0)

                                                       0x0E

                                                       0x0D

                                                       0x0C

                                                       0x0B

                                                       0x0A                             Initial Stack Configuration:

                                                        0x09

                                                        0x08                            After Reset, the stack is empty. The

                                                                                        empty stack is initialized so the Stack

                                                        0x07                            Pointer is pointing at 0x1F. If the Stack

                                                                                        Overflow/Underflow Reset is enabled, the

                                                        0x06                            TOSH/TOSL registers will return ‘0’. If

                                                                                        the Stack Overflow/Underflow Reset is

                                                        0x05                            disabled, the TOSH/TOSL registers will

                                                        0x04                            return the contents of stack address 0x0F.

                                                        0x03

                                                        0x02

                                                        0x01

                                                        0x00

               TOSH:TOSL                                0x1F            0x0000          STKPTR = 0x1F    Stack Reset Enabled

                                                                                                         (STVREN = 1)

 2010-2015 Microchip Technology Inc.                                                                                 DS40001440E-page 41
PIC16(L)F1825/9

FIGURE  3-5:         ACCESSING  THE STACK EXAMPLE     2

                                0x0F

                                0x0E

                                0x0D

                                0x0C

                                0x0B

                                0x0A

                                0x09                     This figure shows the stack configuration

                                0x08                     after the first CALL or a single interrupt.

                                                         If a RETURN instruction is executed, the

                                0x07                     return address will be placed in the

                                                         Program Counter and the Stack Pointer

                                0x06                     decremented to the empty state (0x1F).

                                0x05

                                0x04

                                0x03

                                0x02

                                0x01

        TOSH:TOSL               0x00  Return Address     STKPTR = 0x00

FIGURE  3-6:         ACCESSING  THE STACK EXAMPLE     3

                                0x0F

                                0x0E

                                0x0D

                                0x0C                     After seven CALLs or six CALLs and an

                                0x0B                     interrupt, the stack looks like the figure

                                                         on the left.  A series of RETURN instructions

                                0x0A                     will repeatedly place the return addresses

                                0x09                     into the Program Counter and pop the stack.

                                0x08

                                0x07

        TOSH:TOSL               0x06  Return Address     STKPTR = 0x06

                                0x05  Return Address

                                0x04  Return Address

                                0x03  Return Address

                                0x02  Return Address

                                0x01  Return Address

                                0x00  Return Address

DS40001440E-page 42                                                      2010-2015 Microchip Technology  Inc.
                                                                                     PIC16(L)F1825/9

FIGURE     3-7:               ACCESSING             THE    STACK EXAMPLE 4

                                                           0x0F     Return  Address

                                                           0x0E     Return  Address

                                                           0x0D     Return  Address

                                                           0x0C     Return  Address

                                                           0x0B     Return  Address

                                                           0x0A     Return  Address  When the stack is full, the next CALL or

                                                           0x09     Return  Address  an interrupt will set the Stack Pointer to

                                                                                     0x10.  This is identical to address 0x00

                                                           0x08     Return  Address  so the stack will wrap and overwrite the

                                                           0x07     Return  Address  return address at 0x00. If the Stack

                                                                                     Overflow/Underflow Reset is enabled, a

                                                           0x06     Return  Address  Reset will occur and location 0x00 will

                                                                                     not be overwritten.

                                                           0x05     Return  Address

                                                           0x04     Return  Address

                                                           0x03     Return  Address

                                                           0x02     Return  Address

                                                           0x01     Return  Address

                  TOSH:TOSL                                0x00     Return  Address  STKPTR = 0x10

3.4.2         OVERFLOW/UNDERFLOW RESET

If  the    STVREN        bit  in   Configuration           Word  2  is

programmed to ‘1’, the device will be reset if the stack

is  PUSHed        beyond      the  sixteenth        level  or   POPed

beyond     the    first  level,   setting      the  appropriate     bits

(STKOVF       or  STKUNF,          respectively)    in     the   PCON

register.

3.5        Indirect Addressing

The INDFn registers are not physical registers. Any

instruction that accesses an INDFn register actually

accesses the register at the address specified by the

File  Select    Registers        (FSR).    If  the  FSRn        address

specifies one of the two INDFn registers, the read will

return ‘0’ and the write will not occur (though Status bits

may be affected). The FSRn register value is created

by the pair FSRnH and FSRnL.

The FSR registers form a 16-bit address that allows an

addressing space with 65536 locations. These locations

are divided into three memory regions:

•   Traditional Data Memory

•   Linear Data Memory

•   Program Flash Memory

 2010-2015 Microchip Technology Inc.                                                                     DS40001440E-page 43
PIC16(L)F1825/9

FIGURE 3-8:          INDIRECT ADDRESSING

                                          0x0000  0x0000

                                                  Traditional

                                                  Data Memory

                                          0x0FFF  0x0FFF

                                          0x1000  Reserved

                                          0x1FFF

                                          0x2000

                                                  Linear

                                                  Data Memory

                                          0x29AF

                                          0x29B0  Reserved

                     FSR                  0x7FFF

                     Address              0x8000

                     Range                        0x0000

                                                  Program

                                                  Flash Memory

                              0xFFFF              0x7FFF

Note:        Not all memory regions are completely implemented. Consult device memory tables for memory limits.

DS40001440E-page 44                                              2010-2015 Microchip Technology Inc.
                                                                                 PIC16(L)F1825/9

3.5.1  TRADITIONAL DATA MEMORY

The  traditional  data  memory  is     a  region  from  FSR

address 0x000 to FSR address 0xFFF. The addresses

correspond to the absolute addresses of all SFR, GPR

and common registers.

FIGURE 3-9:             TRADITIONAL DATA MEMORY                     MAP

                  Direct Addressing                                              Indirect Addressing

4      BSR        0     6       From Opcode       0          7            FSRxH        0  7           FSRxL  0

                                                                 0  0  0  0

            Bank Select              Location Select                      Bank Select                 Location Select

                                          00000   00001  00010               11111

                                0x00

                                0x7F

                                          Bank 0  Bank 1 Bank 2              Bank 31

 2010-2015 Microchip Technology Inc.                                                                 DS40001440E-page 45
PIC16(L)F1825/9

3.5.2          LINEAR DATA MEMORY                             3.5.3       PROGRAM FLASH MEMORY

The    linear  data  memory     is  the  region  from    FSR  To    make  constant   data        access  easier,  the     entire

address 0x2000 to FSR address 0x29AF. This region is          program Flash memory is mapped to the upper half of

a virtual region that points back to the 80-byte blocks of    the FSR address space. When the MSB of FSRnH is

GPR memory in all the banks.                                  set,   the  lower  15  bits  are   the  address     in  program

Unimplemented memory reads as 0x00. Use of the                memory which will be accessed through INDF. Only the

linear data memory region allows buffers to be larger         lower eight bits of each memory location is accessible

than 80 bytes because incrementing the FSR beyond             via INDF. Writing to the program Flash memory cannot

one bank will go directly to the GPR memory of the next       be     accomplished    via   the   FSR/INDF        interface.  All

bank.                                                         instructions that access program Flash memory via the

The 16 bytes of common memory are not included in             FSR/INDF    interface        will  require     one      additional

the linear data memory region.                                instruction cycle to complete.

FIGURE 3-10:               LINEAR DATA MEMORY                 FIGURE 3-11:                 PROGRAM FLASH

                           MAP                                                             MEMORY MAP

                                                                  7  FSRnH           0     7          FSRnL       0

7         FSRnH      0     7        FSRnL        0                1

0      0  1

                                                                          Location Select                0x8000   0x0000

          Location Select                0x2000  0x020

                                                 Bank 0

                                                 0x06F

                                                 0x0A0

                                                 Bank 1                                                           Program

                                                 0x0EF                                                            Flash

                                                 0x120                                                            Memory

                                                 Bank 2                                                           (low 8

                                                 0x16F                                                            bits)

                                                 0xF20

                                                 Bank 30                                                 0xFFFF   0x7FFF

                                         0x29AF  0xF6F

DS40001440E-page 46                                                                   2010-2015 Microchip Technology Inc.
                                                             PIC16(L)F1825/9

4.0        DEVICE CONFIGURATION

Device Configuration consists of Configuration Word 1

and Configuration Word 2, Code Protection and Device

ID.

4.1        Configuration Words

There are several Configuration Word bits that allow

different  oscillator  and  memory     protection  options.

These are implemented as Configuration Word 1 at

8007h and Configuration Word 2 at 8008h.

Note:      The DEBUG bit in Configuration Word 2 is

           managed          automatically     by   device

           development      tools  including  debuggers

           and     programmers.    For     normal  device

           operation, this bit should be maintained as

           a ‘1’.

 2010-2015 Microchip Technology Inc.                        DS40001440E-page 47
PIC16(L)F1825/9

REGISTER 4-1:         CONFIGURATION WORD 1

                                     R/P-1/1              R/P-1/1          R/P-1/1      R/P-1/1              R/P-1/1        R/P-1/1

                                     FCMEN                 IESO      CLKOUTEN                   BOREN<1:0>                  CPD

                                   bit 13                                                                                        bit 8

     R/P-1/1          R/P-1/1        R/P-1/1              R/P-1/1          R/P-1/1      R/P-1/1              R/P-1/1        R/P-1/1

         CP           MCLRE          PWRTE                    WDTE<1:0>                                  FOSC<2:0

bit 7                                                                                                                            bit 0

Legend:

R = Readable bit                   P = Programmable bit              U = Unimplemented bit, read as ‘1’

‘0’ = Bit is cleared               ‘1’ = Bit is set                  -n = Value when blank or after Bulk Erase

bit  13           FCMEN: Fail-Safe Clock Monitor Enable bit

                  1 = Fail-Safe Clock Monitor is enabled

                  0 = Fail-Safe Clock Monitor is disabled

bit  12           IESO: Internal External Switchover bit

                  1 = Internal/External Switchover mode is enabled

                  0 = Internal/External Switchover mode is disabled

bit  11           CLKOUTEN: Clock Out Enable bit

                  If FOSC configuration bits are set to LP, XT, HS modes:

                      This bit is ignored, CLKOUT function is disabled. Oscillator function on the CLKOUT pin.

                  All other FOSC modes:

                      1 = CLKOUT function is disabled. I/O function on the CLKOUT pin.

                      0 = CLKOUT function is enabled on the CLKOUT pin

bit  10-9         BOREN<1:0>: Brown-out Reset Enable bits(1)

                  11 = BOR enabled

                  10 = BOR enabled during operation and disabled in Sleep

                  01 = BOR controlled by SBOREN bit of the BORCON register

                  00 = BOR disabled

bit  8            CPD: Data Code Protection bit(2)

                  1 = Data memory code protection is disabled

                  0 = Data memory code protection is enabled

bit  7            CP: Code Protection bit(3)

                  1 = Program memory code protection is disabled

                  0 = Program memory code protection is enabled

bit  6            MCLRE: RA3/MCLR/VPP Pin Function Select bit

                  If LVP bit = 1:

                      This bit is ignored.

                  If LVP bit = 0:

                      1 = MCLR/VPP pin function is MCLR; Weak pull-up enabled.

                      0 = MCLR/VPP pin function is digital input; MCLR internally disabled; Weak pull-up under control  of

                      WPUA register.

bit 5             PWRTE: Power-up Timer Enable bit(1)

                  1=  PWRT disabled

                  0=  PWRT enabled

bit 4-3           WDTE<1:0>: Watchdog Timer Enable bit

                  11 = WDT enabled

                  10 = WDT enabled while running and disabled in Sleep

                  01 = WDT controlled by the SWDTEN bit in the WDTCON register

                  00 = WDT disabled

Note     1:   Enabling Brown-out Reset does not automatically enable Power-up Timer.

         2:   The entire data EEPROM will be erased when the code protection is turned off during an erase.

         3:   The entire program memory will be erased when the code protection is turned off.

DS40001440E-page 48                                                                              2010-2015 Microchip Technology Inc.
                                                                                     PIC16(L)F1825/9

REGISTER 4-1:       CONFIGURATION WORD 1 (CONTINUED)

bit 2-0      FOSC<2:0>: Oscillator Selection bits

             111 =  ECH: External Clock, High-Power mode (4-32 MHz): device clock supplied to CLKIN pin

             110 =  ECM: External Clock, Medium-Power mode (0.5-4 MHz): device clock supplied to CLKIN      pin

             101 =  ECL: External Clock, Low-Power mode (0-0.5 MHz): device clock supplied to CLKIN pin

             100 =  INTOSC oscillator: I/O function on CLKIN pin

             011 =  EXTRC oscillator: External RC circuit connected to CLKIN pin

             010 =  HS oscillator: High-speed crystal/resonator connected between OSC1 and OSC2 pins

             001 =  XT oscillator: Crystal/resonator connected between OSC1 and OSC2 pins

             000 =  LP oscillator: Low-power crystal connected between OSC1 and OSC2 pins

Note     1:  Enabling Brown-out Reset does not automatically enable Power-up Timer.

         2:  The entire data EEPROM will be erased when the code protection is turned off during an erase.

         3:  The entire program memory will be erased when the code protection is turned off.

 2010-2015 Microchip Technology Inc.                                                                       DS40001440E-page 49
PIC16(L)F1825/9

REGISTER 4-2:           CONFIGURATION WORD 2

                                      R/P-1/1  R/P-1/1                    U-1     R/P-1/1                 R/P-1/1  R/P-1/1

                                      LVP(1)   DEBUG(2)                        —                 BORV     STVREN   PLLEN

                             bit 13                                                                                           bit          8

         U-1            U-1           U-1                 R-1             U-1                    U-1      R/P-1/1  R/P-1/1

          —             —                —     Reserved                        —                 —                WRT<1:0>

bit 7                                                                                                                         bit          0

Legend:

R = Readable bit             P = Programmable bit                     U = Unimplemented bit, read as ‘1’

‘0’ = Bit is cleared         ‘1’ = Bit is set                         -n = Value when blank or after Bulk Erase

Legend:

bit  13           LVP: Low-Voltage Programming Enable bit(1)

                  1 = Low-voltage programming enabled

                  0 = High-voltage on MCLR must be used for programming

bit  12           DEBUG: In-Circuit Debugger Mode bit(2)

                  1 = In-Circuit Debugger disabled, ICSPCLK and ICSPDAT are general purpose I/O pins

                  0 = In-Circuit Debugger enabled, ICSPCLK and ICSPDAT are dedicated to the debugger

bit  11           Unimplemented: Read as ‘1’

bit  10           BORV: Brown-out Reset Voltage Selection bit(3)

                  1 = Brown-out Reset voltage (Vbor), low trip point selected

                  0 = Brown-out Reset voltage (Vbor), high trip point selected

bit  9            STVREN: Stack Overflow/Underflow Reset Enable bit

                  1 = Stack Overflow or Underflow will cause a Reset

                  0 = Stack Overflow or Underflow will not cause a Reset

bit  8            PLLEN: PLL Enable bit

                  1 = 4xPLL enabled

                  0 = 4xPLL disabled

bit  7-5          Unimplemented: Read as ‘1’

bit  4            Reserved: This location should be programmed to a ‘1’.

bit  3-2          Unimplemented: Read as ‘1’

bit  1-0          WRT<1:0>: Flash Memory Self-Write Protection bits

                  11 =  Write protection off

                  10 =  000h to 1FFh write-protected, 200h to 1FFFh may be modified by EECON control

                  01 =  000h to FFFh write-protected, 1000h to 1FFFh may be modified by EECON control

                  00 =  000h to 1FFFh write-protected, no addresses may be modified by EECON control

Note      1:  The LVP bit cannot be programmed to ‘0’ when Programming mode is entered via LVP.

          2:  The DEBUG bit in Configuration Word is managed automatically by device development tools including   debuggers  and

              programmers. For normal device operation, this bit should be maintained as a ‘1’.

          3:  See Vbor parameter for specific trip point voltages.

DS40001440E-page 50                                                                                  2010-2015 Microchip Technology Inc.
                                                                         PIC16(L)F1825/9

4.2       Code Protection

Code protection allows the device to be protected from

unauthorized access. Program memory protection and

data EEPROM protection are controlled independently.

Internal  access      to   the  program    memory        and     data

EEPROM        are  unaffected          by  any     code  protection

setting.

4.2.1         PROGRAM MEMORY PROTECTION

The entire program memory space is protected from

external reads and writes by the CP bit in Configuration

Word 1. When CP = 0, external reads and writes of

program memory are inhibited and a read will return all

‘0’s. The CPU can continue to read program memory,

regardless of the protection bit settings. Writing the

program       memory       is   dependent        upon    the     write

protection       setting.       See        Section 4.3        “Write

Protection” for more information.

4.2.2         DATA EEPROM PROTECTION

The entire data EEPROM is protected from external

reads  and    writes   by      the  CPD    bit.  When    CPD     =  0,

external    reads  and         writes  of  data    EEPROM        are

inhibited. The CPU can continue to read and write data

EEPROM regardless of the protection bit settings.

4.3       Write Protection

Write protection allows the device to be protected from

unintended       self-writes.          Applications,     such       as

bootloader software, can be protected while allowing

other regions of the program memory to be modified.

The WRT<1:0> bits in Configuration Word 2 define the

size of the program memory block that is protected.

4.4       User ID

Four memory locations (8000h-8003h) are designated as

ID locations where the user can store checksum or other

code   identification      numbers.        These      locations     are

readable    and    writable    during      normal  execution.    See

Section 11.5 “User ID, Device ID and Configuration

Word Access” for more information on accessing these

memory locations. For more information on checksum

calculation,  see  the     “PIC16F/LF182X/PIC12F/LF1822

Memory Programming Specification” (DS41390).

 2010-2015 Microchip Technology Inc.                                    DS40001440E-page 51
PIC16(L)F1825/9

4.5          Device ID and Revision ID

The memory location 8006h is where the Device ID and

Revision ID are stored. The upper nine bits hold the

Device ID. The lower five bits hold the Revision ID. See

Section 11.5 “User ID, Device ID and Configuration

Word     Access”  for  more  information        on    accessing

these memory locations.

Development tools, such as device programmers and

debuggers, may be used to read the Device ID and

Revision ID.

REGISTER 4-3:          DEVICEID: DEVICE ID REGISTER(1)

                                                R                R  R                 R            R          R

                                                DEV8      DEV7      DEV6              DEV5         DEV4       DEV3

                             bit 13                                                                                 bit 8

          R              R                      R                R  R                 R            R          R

       DEV2            DEV1                     DEV0      REV4      REV3              REV2         REV1       REV0

bit 7                                                                                                               bit 0

Legend:

R = Readable bit             ‘0’ = Bit is cleared                   ‘1’ = Bit is set

bit 13-5          DEV<8:0>: Device ID bits

                  100111011 = PIC16F1825

                  100111111 = PIC16F1829

                  101000011 = PIC16LF1825

                  101000111 = PIC16LF1829

bit 4-0           REV<4:0>: Revision ID bits

                  These bits are used to identify the revision.

Note     1:   This location cannot be written.

DS40001440E-page 52                                                                    2010-2015  Microchip  Technology Inc.
                                                                                 PIC16(L)F1825/9

5.0       OSCILLATOR MODULE (WITH                                 The oscillator module can be configured in one of eight

          FAIL-SAFE CLOCK MONITOR)                                clock modes.

                                                                  1.    ECL – External Clock Low-Power mode

5.1       Overview                                                      (0 MHz to 0.5 MHz)

The    oscillator  module   has    a  wide  variety   of   clock  2.    ECM – External Clock Medium-Power mode

sources and selection features that allow it to be used                 (0.5 MHz to 4 MHz)

in  a   wide  range     of  applications    while  maximizing     3.    ECH – External Clock High-Power mode

performance        and  minimizing     power   consumption.             (4 MHz to 32 MHz)

Figure 5-1 illustrates a block diagram of the oscillator          4.    LP – 32 kHz Low-Power Crystal mode.

module.                                                           5.    XT – Medium Gain Crystal or Ceramic Resonator

Clock sources can be supplied from external oscillators,                Oscillator mode (up to 4 MHz)

quartz    crystal  resonators,     ceramic     resonators  and    6.    HS – High Gain Crystal or Ceramic Resonator

Resistor-Capacitor (RC) circuits. In addition, the system               mode (4 MHz to 20 MHz)

clock source can be supplied from one of two internal             7.    RC – External Resistor-Capacitor (RC).

oscillators and PLL circuits, with a choice of speeds             8.    INTOSC – Internal oscillator (31 kHz to 32 MHz).

selectable    via  software.    Additional     clock  features    Clock Source modes are selected by the FOSC<2:0>

include:                                                          bits  in  the  Configuration  Word   1.  The  FOSC      bits

•   Selectable system clock source between external               determine the type of oscillator that will be used when

    or internal sources via software.                             the device is first powered.

•   Two-Speed Start-up mode, which minimizes                      The EC clock mode relies on an external logic level

    latency between external oscillator start-up and              signal as the device clock source. The LP, XT and HS

    code execution.                                               clock modes require an external crystal or resonator to

•   Fail-Safe Clock Monitor (FSCM) designed to                    be connected to the device. Each mode is optimized for

    detect a failure of the external clock source (LP,            a   different  frequency  range.  The    RC   clock  mode

    XT, HS, EC or RC modes) and switch                            requires an external resistor and capacitor to set the

    automatically to the internal oscillator.                     oscillator frequency.

•   Oscillator Start-up Timer (OST) ensures stability             The INTOSC internal oscillator block produces low,

    of crystal oscillator sources                                 medium, and high frequency clock sources, designated

                                                                  LFINTOSC,      MFINTOSC,      and    HFINTOSC.          (see

                                                                  Internal Oscillator Block, Figure 5-1). A wide selection

                                                                  of device clock frequencies may be derived from these

                                                                  three clock sources.

 2010-2015 Microchip Technology Inc.                                                                  DS40001440E-page 53
PIC16(L)F1825/9

FIGURE  5-1:            SIMPLIFIED    PIC®     MCU         CLOCK SOURCE BLOCK DIAGRAM

              External

              Oscillator                                                               LP, XT, HS, RC, EC

OSC2

                          Sleep                                             4  x  PLL

OSC1                                                                                                                 Sleep

              Oscillator  Timer1                           FOSC<2:0> = 100             T1OSC                MUX                  CPU and

T1OSO                                                                                                                          Peripherals

                          T1OSCEN
                          Enable
                          Oscillator                       IRCF<3:0>
T1OSI                                                                                  Internal Oscillator

                                                           16 MHz

                     Internal                              8 MHz

                     Oscillator                            4 MHz

                     Block                                 2 MHz

                                               Postscaler  1 MHz                                            Clock
                                                                                                            Control
                     HFPLL            16 MHz               500 kHz    MUX

                                  (HFINTOSC)               250 kHz

                     500 kHz                               125 kHz                     FOSC<2:0>                 SCS<1:0>

                     Source           500 kHz              62.5 kHz                                         Clock Source Option

                                  (MFINTOSC)               31.25 kHz

                     31 kHz                                31 kHz                                           for other modules

                     Source

                                  31 kHz (LFINTOSC)                                    WDT, PWRT, Fail-Safe Clock Monitor

                                                                                       Two-Speed Start-up and other modules

DS40001440E-page 54                                                                     2010-2015 Microchip Technology                     Inc.
                                                                                     PIC16(L)F1825/9

5.2         Clock Source Types                                          The Oscillator Start-up Timer (OST) is disabled when

Clock sources can be classified as external or internal.                EC mode is selected. Therefore, there is no delay in

                                                                        operation after a Power-on Reset (POR) or wake-up

External clock sources rely on external circuitry for the               from Sleep. Because the PIC® MCU design is fully

clock   source     to  function.      Examples        are:  oscillator  static, stopping the external clock input will have the

modules     (EC    mode),     quartz        crystal   resonators  or    effect of halting the device while leaving all data intact.

ceramic     resonators        (LP,  XT   and     HS   modes)      and   Upon     restarting  the  external    clock,   the   device    will

Resistor-Capacitor (RC) mode circuits.                                  resume operation as if no time had elapsed.

Internal clock sources are contained internally within                  FIGURE 5-2:               EXTERNAL CLOCK (EC)

the oscillator module. The internal oscillator block has

two internal oscillators and a dedicated Phase-Lock                                               MODE OPERATION

Loop (HFPLL) that are used to generate three internal

system      clock  sources:   the     16 MHz         High-Frequency        Clock from                      OSC1/CLKIN

Internal Oscillator (HFINTOSC), 500 kHz (MFINTOSC)                         Ext. System

and    the  31 kHz     Low-Frequency             Internal   Oscillator                                             PIC® MCU

(LFINTOSC).

The system clock can be selected between external or                        FOSC/4 or     I/O(1)           OSC2/CLKOUT

internal    clock  sources    via   the     System    Clock   Select

(SCS) bits in the OSCCON register. See Section 5.3                         Note  1:    Output depends upon CLKOUTEN bit of the

“Clock Switching” for additional information.                                          Configuration Word 1.

5.2.1           EXTERNAL CLOCK SOURCES

An external clock source can be used as the device                      5.2.1.2         LP, XT, HS Modes

system      clock  by  performing           one  of   the   following   The LP, XT and HS modes support the use of quartz

actions:                                                                crystal resonators or ceramic resonators connected to

•  Program the FOSC<2:0> bits in the Configuration                      OSC1 and OSC2 (Figure 5-3). The three modes select

   Word 1 to select an external clock source that will                  a  low,  medium      or   high  gain  setting  of    the  internal

   be used as the default system clock upon a                           inverter-amplifier   to   support  various     resonator  types

   device Reset.                                                        and speed.

•  Write the SCS<1:0> bits in the OSCCON register                       LP Oscillator mode selects the lowest gain setting of the

   to switch the system clock source to:                                internal inverter-amplifier. LP mode current consumption

   -  Timer1 Oscillator during run-time, or                             is the least of the three modes. This mode is designed to

   -  An external clock source determined by the                        drive only 32.768 kHz tuning-fork type crystals (watch

      value of the FOSC bits.                                           crystals).

See     Section 5.3           “Clock        Switching”for     more      XT  Oscillator      mode  selects     the  intermediate        gain

information.                                                            setting  of  the     internal   inverter-amplifier.  XT   mode

                                                                        current consumption is the medium of the three modes.

5.2.1.1            EC Mode                                              This mode is best suited to drive resonators with a

The    External    Clock  (EC)      mode    allows    an    externally  medium drive level specification.

generated     logic    level  signal    to  be   the  system  clock     HS Oscillator mode selects the highest gain setting of the

source. When operating in this mode, an external clock                  internal inverter-amplifier. HS mode current consumption

source      is     connected        to      the      OSC1     input.    is the highest of the three modes. This mode is best

OSC2/CLKOUT is available for general purpose I/O or                     suited for resonators that require a high drive setting.

CLKOUT. Figure 5-2 shows the pin connections for EC                     Figure 5-3     and   Figure 5-4    show    typical   circuits  for

mode.                                                                   quartz crystal and ceramic resonators, respectively.

EC mode has three power modes to select from through

Configuration Word 1:

•  High power, 4-32 MHz (FOSC = 111)

•  Medium power, 0.5-4 MHz (FOSC = 110)

•  Low power, 0-0.5 MHz (FOSC = 101)

 2010-2015 Microchip Technology Inc.                                                                         DS40001440E-page 55
PIC16(L)F1825/9

FIGURE    5-3:          QUARTZ CRYSTAL                             FIGURE 5-4:                   CERAMIC RESONATOR

                        OPERATION (LP, XT OR                                                     OPERATION

                        HS MODE)                                                                 (XT OR HS MODE)

                                 PIC® MCU                                                                     PIC® MCU

                        OSC1/CLKIN                                                                     OSC1/CLKIN

      C1                                         To Internal               C1                                                To Internal

                                                 Logic                                                                       Logic

             Quartz              RF(2)           Sleep                                    RP(3)

             Crystal                                                                                          RF(2)          Sleep

      C2        RS(1)   OSC2/CLKOUT                                                                    OSC2/CLKOUT

                                                                           C2    Ceramic     RS(1)

                                                                                 Resonator

Note  1:  A  series    resistor  (RS)   may  be  required     for

          quartz crystals with low drive level.                    Note      1:  A   series  resistor  (RS)   may        be  required      for

      2:  The value of RF varies with the Oscillator mode                        ceramic resonators with low drive level.

          selected (typically between 2 M to 10 M.                        2:  The value of RF varies with the Oscillator mode

                                                                                 selected (typically between 2 M to 10 M.

Note  1:     Quartz     crystal        characteristics     vary              3:  An   additional    parallel  feedback       resistor  (RP)

             according  to       type,       package          and                may be required for proper ceramic resonator

             manufacturer. The user should consult the                           operation.

             manufacturer data sheets for specifications           5.2.1.3           Oscillator Start-up Timer (OST)

             and recommended application.

      2:     Always verify oscillator performance over             If the oscillator module is configured for LP, XT or HS

             the VDD and temperature range that is                 modes,      the  Oscillator      Start-up  Timer      (OST)         counts

             expected for the application.                         1024 oscillations from OSC1. This occurs following a

      3:     For oscillator design assistance, reference           Power-on Reset (POR) and when the Power-up Timer

             the following Microchip Application Notes:            (PWRT) has expired (if configured), or a wake-up from

          • AN826, “Crystal Oscillator Basics and                  Sleep. During this time, the program counter does not

             Crystal Selection for rfPIC® and PIC®                 increment and program execution is suspended unless

             Devices” (DS00826)                                    either FSCM or Two-Speed Start-up are enabled. In

          • AN849, “Basic PIC® Oscillator Design”                  this  case,   the   code  will    continue        to  execute       at  the

                                                                   selected INTOSC frequency while the OST is counting.

             (DS00849)                                             The OST ensures that the oscillator circuit, using a

          • AN943, “Practical PIC® Oscillator                      quartz    crystal   resonator     or  ceramic         resonator,        has

             Analysis and Design” (DS00943)                        started and is providing a stable system clock to the

          • AN949, “Making Your Oscillator Work”                   oscillator module.

             (DS00949)                                             In order to minimize latency between external oscillator

                                                                   start-up    and    code   execution,       the    Two-Speed         Clock

                                                                   Start-up      mode  can       be  selected        (see    Section 5.4

                                                                   “Two-Speed Clock Start-up Mode”).

DS40001440E-page 56                                                                          2010-2015 Microchip Technology Inc.
                                                                                           PIC16(L)F1825/9

5.2.1.4            4xPLL                                                         Note  1:  Quartz     crystal   characteristics     vary

The oscillator module contains a 4xPLL that can be                                         according      to   type,     package        and

used with both external and internal clock sources to                                      manufacturer. The user should consult the

provide a system clock source. The input frequency for                                     manufacturer data sheets for specifications

the 4xPLL must fall within specifications. See the PLL                                     and recommended application.

Clock     Timing      Specifications           in      Section 30.0                    2:  Always verify oscillator performance over

“Electrical Specifications”.                                                               the  VDD   and  temperature    range   that  is

The 4xPLL        may  be    enabled      for  use  by  one    of    two                    expected for the application.

methods:                                                                               3:  For oscillator design assistance, reference

1.    Program the PLLEN bit in Configuration Word 2                                        the following Microchip Application Notes:

      to a ‘1’.                                                                            • AN826, “Crystal Oscillator Basics and

2.    Write the SPLLEN bit in the OSCCON register to                                        Crystal Selection for rfPIC® and PIC®

      a ‘1’. If the PLLEN bit in Configuration Word 2 is                                    Devices” (DS00826)

      programmed to a ‘1’, then the value of SPLLEN                                        • AN849, “Basic PIC® Oscillator Design”

      is ignored.                                                                           (DS00849)

5.2.1.5            TIMER1 Oscillator                                                       • AN943, “Practical PIC® Oscillator

The Timer1 Oscillator is a separate crystal oscillator                                      Analysis and Design” (DS00943)

that  is  associated        with  the  Timer1      peripheral.      It  is                 • AN949, “Making Your Oscillator Work”

optimized     for  timekeeping      operations     with    a  32.768                        (DS00949)

kHz crystal connected between the T1OSO and T1OSI                                          • TB097, “Interfacing a Micro Crystal

device pins.                                                                                MS1V-T1K 32.768 kHz Tuning Fork

The   Timer1     Oscillator    can     be  used    as  an  alternate                        Crystal to a PIC16F690/SS” (DS91097)

system    clock    source      and     can    be   selected   during                       • AN1288, “Design Practices for

run-time using clock switching. Refer to Section 5.3                                        Low-Power External Oscillators”

“Clock Switching” for more information.                                                     (DS01288)

FIGURE 5-5:                  QUARTZ CRYSTAL                                 5.2.1.6         External RC Mode

                             OPERATION (TIMER1                              The external Resistor-Capacitor (RC) modes support

                             OSCILLATOR)                                    the  use   of  an   external   RC  circuit.  This   allows  the

                                                                            designer maximum flexibility in frequency choice while

                                                                            keeping costs to a minimum when clock accuracy is not

                                         PIC®  MCU                          required.

                                                                            The RC circuit connects to OSC1. OSC2/CLKOUT is

                                  T1OSI                                     available  for  general   purpose   I/O   or  CLKOUT.       The

          C1                                           To Internal          function of the OSC2/CLKOUT pin is determined by the

                                                       Logic                state of the CLKOUTEN bit in Configuration Word 1.

                   32.768 kHz                                               Figure 5-6 shows the external RC mode connections.

                   Quartz

                   Crystal

          C2                      T1OSO

 2010-2015 Microchip Technology Inc.                                                                           DS40001440E-page 57
PIC16(L)F1825/9

FIGURE 5-6:             EXTERNAL RC MODES                 5.2.2        INTERNAL CLOCK SOURCES

                                                          The  device      may   be  configured   to   use  the    internal

         VDD                    PIC® MCU                  oscillator block as the system clock by performing one

                                                          of the following actions:

   REXT                                                   •   Program the FOSC<2:0> bits in Configuration

                      OSC1/CLKIN              Internal        Word 1 to select the INTOSC clock source, which

                                              Clock           will be used as the default system clock upon a

   CEXT                                                       device Reset.

   VSS                                                    •   Write the SCS<1:0> bits in the OSCCON register

                                                              to switch the system clock source to the internal

   FOSC/4 or  I/O(1)  OSC2/CLKOUT                             oscillator during run-time. See Section 5.3

                                                              “Clock Switching”for more information.

                                                          In INTOSC mode, OSC1/CLKIN is available for general

   Recommended values:   10 k  REXT  100 k, <3V       purpose I/O. OSC2/CLKOUT is available for general

                         3 k  REXT  100 k, 3-5V       purpose I/O or CLKOUT.

                         CEXT > 20 pF, 2-5V               The function of the OSC2/CLKOUT pin is determined

   Note  1:   Output depends upon CLKOUTEN bit of the     by the state of the CLKOUTEN bit in Configuration

              Configuration Word 1.                       Word 1.

The RC oscillator frequency is a function of the supply   The    internal   oscillator  block     has  two  independent

voltage, the resistor (REXT) and capacitor (CEXT) values  oscillators and a dedicated Phase-Lock Loop, HFPLL

and the operating temperature. Other factors affecting    that can produce one of three internal system clock

the oscillator frequency are:                             sources.

•  threshold voltage variation                            1.   The  HFINTOSC            (High-Frequency     Internal

•  component tolerances                                        Oscillator) is factory calibrated and operates at

•  packaging variations in capacitance                         16 MHz. The HFINTOSC source is generated

                                                               from the 500 kHz MFINTOSC source and the

The user also needs to take into account variation due         dedicated     Phase-Lock        Loop,   HFPLL.      The

to tolerance of external RC components used.                   frequency        of   the       HFINTOSC     can    be

                                                               user-adjusted via software using the OSCTUNE

                                                               register (Register 5-3).

                                                          2.   The  MFINTOSC            (Medium-Frequency   Internal

                                                               Oscillator) is factory calibrated and operates at

                                                               500 kHz. The frequency of the MFINTOSC can

                                                               be   user-adjusted         via  software     using  the

                                                               OSCTUNE register (Register 5-3).

                                                          3.   The  LFINTOSC              (Low-Frequency    Internal

                                                               Oscillator)   is     uncalibrated  and    operates  at

                                                               31 kHz.

DS40001440E-page 58                                                               2010-2015 Microchip Technology Inc.
                                                                              PIC16(L)F1825/9

5.2.2.1           HFINTOSC                                        5.2.2.3     Internal Oscillator Frequency

The High-Frequency Internal Oscillator (HFINTOSC) is                          Adjustment

a factory calibrated 16 MHz internal clock source. The            The 500 kHz internal oscillator is factory calibrated.

frequency     of  the    HFINTOSC      can  be     altered  via   This internal oscillator can be adjusted in software by

software using the OSCTUNE register (Register 5-3).               writing to the OSCTUNE register (Register 5-3). Since

The output of the HFINTOSC connects to a postscaler               the  HFINTOSC      and      MFINTOSC        clock   sources        are

and  multiplexer       (see   Figure 5-1).  One    of       nine  derived from the 500 kHz internal oscillator a change in

frequencies   derived    from   the    HFINTOSC    can      be    the OSCTUNE register value will apply to both.

selected via software using the IRCF<3:0> bits of the             The default value of the OSCTUNE register is ‘0’. The

OSCCON        register.  See   Section 5.2.2.7     “Internal      value is a 6-bit two’s complement number. A value of

Oscillator Clock Switch Timing” for more information.             1Fh  will   provide     an  adjustment       to     the  maximum

The HFINTOSC is enabled by:                                       frequency. A value of 20h will provide an adjustment to

•  Configure the IRCF<3:0> bits of the OSCCON                     the minimum frequency.

   register for the desired HF frequency, and                     When the OSCTUNE register is modified, the oscillator

•  FOSC<2:0> = 100, or                                            frequency will begin shifting to the new frequency. Code

•  Set the System Clock Source (SCS) bits of the                  execution   continues       during   this   shift.  There      is  no

   OSCCON register to ‘1x’.                                       indication that the shift has occurred.

The  High-Frequency          Internal  Oscillator  Ready    bit   OSCTUNE does not affect the LFINTOSC frequency.

(HFIOFR) of the OSCSTAT register indicates when the               Operation of features that depend on the LFINTOSC

HFINTOSC is running and can be utilized.                          clock source frequency, such as the Power-up Timer

                                                                  (PWRT),     Watchdog        Timer    (WDT),      Fail-Safe     Clock

The High-Frequency Internal Oscillator Status Locked              Monitor (FSCM) and peripherals, are not affected by the

bit (HFIOFL) of the OSCSTAT register indicates when               change in frequency.

the HFINTOSC is running within 2% of its final value.             5.2.2.4     LFINTOSC

The High-Frequency Internal Oscillator Status Stable

bit (HFIOFS) of the OSCSTAT register indicates when               The Low-Frequency Internal Oscillator (LFINTOSC) is

the HFINTOSC is running within 0.5% of its final value.           an uncalibrated 31 kHz internal clock source.

5.2.2.2           MFINTOSC                                        The output of the LFINTOSC connects to a multiplexer

                                                                  (see Figure 5-1). Select 31 kHz, via software, using the

The      Medium-Frequency              Internal    Oscillator     IRCF<3:0>   bits       of   the     OSCCON          register.      See

(MFINTOSC) is a factory calibrated 500 kHz internal               Section 5.2.2.7    “Internal       Oscillator       Clock   Switch

clock source. The frequency of the MFINTOSC can be                Timing” for more information. The LFINTOSC is also

altered  via  software   using  the    OSCTUNE     register       the  frequency     for     the   Power-up        Timer     (PWRT),

(Register 5-3).                                                   Watchdog    Timer    (WDT)      and   Fail-Safe     Clock   Monitor

The output of the MFINTOSC connects to a postscaler               (FSCM).

and  multiplexer       (see   Figure 5-1).  One    of       nine  The  LFINTOSC          is   enabled   by     selecting      31 kHz

frequencies   derived    from   the    MFINTOSC    can      be    (IRCF<3:0> bits of the OSCCON register = 000) as the

selected via software using the IRCF<3:0> bits of the             system     clock  source    (SCS      bits  of      the  OSCCON

OSCCON        register.  See   Section 5.2.2.7     “Internal      register =  1x),   or   when     any  of    the     following      are

Oscillator Clock Switch Timing” for more information.             enabled:

The MFINTOSC is enabled by:                                       •  Configure the IRCF<3:0> bits of the OSCCON

•  Configure the IRCF<3:0> bits of the OSCCON                        register for the desired LF frequency, and

   register for the desired HF frequency, and                     •  FOSC<2:0> = 100, or

•  FOSC<2:0> = 100, or                                            •  Set the System Clock Source (SCS) bits of the

•  Set the System Clock Source (SCS) bits of the                     OSCCON register to ‘1x’

   OSCCON register to ‘1x’                                        Peripherals that use the LFINTOSC are:

The Medium-Frequency Internal Oscillator Ready bit                •  Power-up Timer (PWRT)

(MFIOFR) of the OSCSTAT register indicates when the               •  Watchdog Timer (WDT)

MFINTOSC is running and can be utilized.                          •  Fail-Safe Clock Monitor (FSCM)

                                                                  The  Low-Frequency          Internal  Oscillator         Ready     bit

                                                                  (LFIOFR) of the OSCSTAT register indicates when the

                                                                  LFINTOSC is running and can be utilized.

 2010-2015 Microchip Technology Inc.                                                                   DS40001440E-page 59
PIC16(L)F1825/9

5.2.2.5         Internal Oscillator Frequency                         5.2.2.6        32 MHz Internal Oscillator

                Selection                                                            Frequency Selection

The system clock speed can be selected via software                   The  Internal  Oscillator  Block    can  be  used    with  the

using   the  Internal      Oscillator  Frequency       Select   bits  4xPLL associated with the External Oscillator Block to

IRCF<3:0> of the OSCCON register.                                     produce a 32 MHz internal system clock source. The

The outputs of the 16 MHz HFINTOSC postscaler and                     following  settings  are   required  to    use  the  32  MHz

the LFINTOSC connect to multiplexer (see Figure 5-1).                 internal clock source:

The     Internal  Oscillator          Frequency        Select   bits  •  The FOSC bits in Configuration Word 1 must be

IRCF<3:0>     of  the       OSCCON          register   select   the      set to use the INTOSC source as the device

frequency output of the internal oscillators. One of the                 system clock (FOSC<2:0> = 100).

following frequencies can be selected via software:                   •  The SCS bits in the OSCCON register must be

•  32 MHz (requires 4xPLL)                                               cleared to use the clock determined by

•  16 MHz                                                                FOSC<2:0> in Configuration Word 1

•  8 MHz                                                                 (SCS<1:0> = 00).

•  4 MHz                                                              •  The IRCF bits in the OSCCON register must be

•  2 MHz                                                                 set to the 8 MHz HFINTOSC set to use

                                                                         (IRCF<3:0> = 1110).

•  1 MHz                                                              •  The SPLLEN bit in the OSCCON register must be

•  500 kHz (default after Reset)                                         set to enable the 4xPLL, or the PLLEN bit of the

•  250 kHz                                                               Configuration Word 2 must be programmed to a

•  125 kHz                                                               ‘1’.

•  62.5 kHz                                                              Note:   When      using  the      PLLEN      bit  of    the

•  31.25 kHz                                                                     Configuration Word 2, the 4xPLL cannot

•  31 kHz (LFINTOSC)                                                             be disabled by software and the 8 MHz

             Following any Reset, the IRCF<3:0> bits                             HFINTOSC         option   will  no   longer     be

   Note:                                                                         available.

             of the OSCCON register are set to ‘0111’                 The 4xPLL is not available for use with the internal

             and      the   frequency       selection  is  set  to    oscillator when the SCS bits of the OSCCON register

             500 kHz. The user can modify the IRCF                    are set to ‘1x’. The SCS bits must be set to ‘00’ to use

             bits to select a different frequency.                    the 4xPLL with the internal oscillator.

The  IRCF<3:0>        bits  of   the   OSCCON    register      allow

duplicate    selections     for  some       frequencies.       These

duplicate choices can offer system design trade-offs.

Lower    power    consumption          can  be  obtained       when

changing     oscillator     sources    for  a  given   frequency.

Faster    transition   times     can   be   obtained       between

frequency changes that use the same oscillator source.

DS40001440E-page 60                                                                         2010-2015 Microchip Technology Inc.
                                                                     PIC16(L)F1825/9

5.2.2.7        Internal Oscillator Clock Switch

               Timing

When switching between the HFINTOSC, MFINTOSC

and the LFINTOSC, the new oscillator may already be

shut down to save power (see Figure 5-7). If this is the

case, there is a delay after the IRCF<3:0> bits of the

OSCCON register are modified before the frequency

selection     takes  place.    The   OSCSTAT        register   will

reflect  the  current      active  status  of  the  HFINTOSC,

MFINTOSC and LFINTOSC oscillators. The sequence

of a frequency selection is as follows:

1.  IRCF<3:0>        bits  of  the  OSCCON       register  are

    modified.

2.  If the new clock is shut down, a clock start-up

    delay is started.

3.  Clock switch circuitry waits for a falling edge of

    the current clock.

4.  The     current   clock    is  held  low   and  the  clock

    switch circuitry waits for a rising edge in the new

    clock.

5.  The new clock is now active.

6.  The OSCSTAT register is updated as required.

7.  Clock switch is complete.

See Figure 5-7 for more details.

If the internal oscillator speed is switched between two

clocks of the same source, there is no start-up delay

before the new frequency is selected. Clock switching

time delays are shown in Table 5-1.

Start-up    delay    specifications      are   located     in  the

oscillator    tables       of      Section 30.0     “Electrical

Specifications”

 2010-2015 Microchip Technology Inc.                                DS40001440E-page 61
PIC16(L)F1825/9

FIGURE 5-7:          INTERNAL OSCILLATOR SWITCH TIMING

HFINTOSC/            LFINTOSC (FSCM and WDT disabled)

MFINTOSC

HFINTOSC/

MFINTOSC                  Oscillator Delay(1)               2-cycle Sync                      Running

LFINTOSC

IRCF <3:0>           0                      0

System Clock

HFINTOSC/            LFINTOSC (Either FSCM or WDT enabled)

MFINTOSC

HFINTOSC/

MFINTOSC                                                    2-cycle Sync                      Running

LFINTOSC

IRCF <3:0>                0                               0

System Clock

LFINTOSC             HFINTOSC/MFINTOSC                           LFINTOSC turns off  unless WDT or FSCM  is  enabled

LFINTOSC

                         Oscillator Delay(1)  2-cycle Sync                           Running

HFINTOSC/

MFINTOSC

IRCF <3:0>           =0                       0

System Clock

Note  1:     See  Table 5-1, “Oscillator Switching Delays”  for  more information.

DS40001440E-page 62                                                                   2010-2015 Microchip Technology  Inc.
                                                                                 PIC16(L)F1825/9

5.3         Clock Switching                                         5.3.3        TIMER1 OSCILLATOR

The system clock source can be switched between                     The Timer1 Oscillator is a separate crystal oscillator

external and internal clock sources via software using              associated with the Timer1 peripheral. It is optimized

the System Clock Select (SCS) bits of the OSCCON                    for timekeeping operations with a 32.768 kHz crystal

register. The following clock sources can be selected               connected    between  the   T1OSO      and  T1OSI     device

using the SCS bits:                                                 pins.

•  Default system oscillator determined by FOSC                     The Timer1 oscillator is enabled using the T1OSCEN

   bits in Configuration Word 1                                     control bit in the T1CON register. See Section 21.0

•  Timer1 32 kHz crystal oscillator                                 “Timer1      Module   with  Gate       Control”  for  more

•  Internal Oscillator Block (INTOSC)                               information about the Timer1 peripheral.

5.3.1           SYSTEM CLOCK SELECT (SCS)                           5.3.4        TIMER1 OSCILLATOR READY

                BITS                                                             (T1OSCR) BIT

The System Clock Select (SCS) bits of the OSCCON                    The    user  must  ensure   that  the  Timer1  Oscillator  is

register selects the system clock source that is used for           ready to be used before it is selected as a system clock

the CPU and peripherals.                                            source. The Timer1 Oscillator Ready (T1OSCR) bit of

                                                                    the OSCSTAT register indicates whether the Timer1

•  When the SCS bits of the OSCCON register = 00,                   oscillator is ready to be used. After the T1OSCR bit is

   the system clock source is determined by value of                set, the SCS bits can be configured to select the Timer1

   the FOSC<2:0> bits in the Configuration Word 1.                  oscillator.

•  When the SCS bits of the OSCCON register = 01,

   the system clock source is the Timer1 oscillator.

•  When the SCS bits of the OSCCON register = 1x,

   the system clock source is chosen by the internal

   oscillator frequency selected by the IRCF<3:0>

   bits of the OSCCON register. After a Reset, the

   SCS bits of the OSCCON register are always

   cleared.

   Note:        Any   automatic  clock  switch,   which        may

                occur  from      Two-Speed       Start-up      or

                Fail-Safe Clock Monitor, does not update

                the SCS bits of the OSCCON register. The

                user   can  monitor  the  OSTS    bit      of  the

                OSCSTAT register to determine the current

                system clock source.

When   switching       between   clock  sources,  a    delay   is

required    to  allow  the  new  clock    to  stabilize.   These

oscillator delays are shown in Table 5-1.

5.3.2           OSCILLATOR START-UP TIMER

                STATUS (OSTS) BIT

The Oscillator Start-up Timer Status (OSTS) bit of the

OSCSTAT register indicates whether the system clock

is running from the external clock source, as defined by

the FOSC<2:0> bits in the Configuration Word 1, or

from   the   internal  clock  source.   In    particular,  OSTS

indicates that the Oscillator Start-up Timer (OST) has

timed out for LP, XT or HS modes. The OST does not

reflect the status of the Timer1 Oscillator.

 2010-2015 Microchip Technology Inc.                                                                      DS40001440E-page 63
PIC16(L)F1825/9

5.4           Two-Speed Clock Start-up Mode                                   5.4.1      TWO-SPEED START-UP MODE

Two-Speed Start-up mode provides additional power                                        CONFIGURATION

savings by minimizing the latency between external                            Two-Speed  Start-up     mode    is  configured  by   the

oscillator start-up and code execution. In applications                       following settings:

that make heavy use of the Sleep mode, Two-Speed                              •  IESO (of the Configuration Word 1) = 1;

Start-up      will  remove      the    external  oscillator    start-up          Internal/External Switchover bit (Two-Speed

time from the time spent awake and can reduce the                                Start-up mode enabled).

overall power consumption of the device. This mode                            •  SCS (of the OSCCON register) = 00.

allows the application to wake-up from Sleep, perform                         •  FOSC<2:0> bits in the Configuration Word 1

a few instructions using the INTOSC internal oscillator                          configured for LP, XT or HS mode.

block as the clock source and go back to Sleep without

waiting for the external oscillator to become stable.                         Two-Speed Start-up mode is entered after:

Two-Speed           Start-up       provides   benefits    when     the        •  Power-on Reset (POR) and, if enabled, after

oscillator    module       is   configured     for  LP,   XT   or  HS            Power-up Timer (PWRT) has expired, or

modes. The Oscillator Start-up Timer (OST) is enabled                         •  Wake-up from Sleep.

for  these      modes      and     must  count   1024     oscillations

before the oscillator can be used as the system clock

source.                                                                          Note:   When      FSCM   is  enabled,    Two-Speed

If  the   oscillator     module    is  configured    for  any  mode                      Start-up will automatically be enabled.

other     than      LP,  XT    or  HS    mode,      then  Two-Speed

Start-up is disabled. This is because the external clock

oscillator does not require any stabilization time after

POR or an exit from Sleep.

If   the  OST       count    reaches     1024    before   the  device

enters Sleep mode, the OSTS bit of the OSCSTAT

register is set and program execution switches to the

external      oscillator.    However,    the     system   may  never

operate from the external oscillator if the time spent

awake is very short.

    Note:       Executing a SLEEP instruction will abort

                the oscillator start-up time and will cause

                the OSTS bit of the OSCSTAT register to

                remain clear.

TABLE 5-1:               OSCILLATOR SWITCHING                      DELAYS

Switch From                              Switch To                 Frequency             Oscillator Delay

                                         LFINTOSC(1)               31 kHz

Sleep/POR                                MFINTOSC(1)               31.25 kHz-500 kHz     Oscillator Warm-up Delay         (TWARM)

                                         HFINTOSC(1)               31.25 kHz-16 MHz

Sleep/POR                                EC, RC(1)                 DC – 32 MHz           2 cycles

LFINTOSC                                 EC, RC(1)                 DC – 32 MHz           1 cycle of each

Sleep/POR                                Timer1 Oscillator         32 kHz-20 MHz         1024 Clock Cycles (OST)

                                         LP, XT, HS(1)

Any clock source                         MFINTOSC(1)               31.25 kHz-500 kHz     2 s (approx.)

                                         HFINTOSC(1)               31.25 kHz-16 MHz

Any clock source                         LFINTOSC(1)               31 kHz                1 cycle of each

Any clock source                         Timer1 Oscillator         32 kHz                1024 Clock Cycles (OST)

PLL inactive                             PLL active                16-32 MHz             2 ms (approx.)

Note      1:    PLL inactive.

DS40001440E-page 64                                                                                 2010-2015 Microchip Technology Inc.
                                                                                PIC16(L)F1825/9

5.4.2        TWO-SPEED START-UP                                 5.4.3           CHECKING TWO-SPEED CLOCK

             SEQUENCE                                                           STATUS

1.  Wake-up from Power-on Reset or Sleep.                       Checking the state of the OSTS bit of the OSCSTAT

2.  Instructions  begin   execution         by  the   internal  register  will  confirm  if  the  microcontroller  is  running

    oscillator at the frequency set in the IRCF<3:0>            from   the  external  clock  source,  as  defined      by  the

    bits of the OSCCON register.                                FOSC<2:0> bits in the Configuration Word 1, or the

3.  OST enabled to count 1024 clock cycles.                     internal oscillator.

4.  OST  timed    out,    wait  for  falling    edge  of   the

    internal oscillator.

5.  OSTS is set.

6.  System clock held low until the next falling edge

    of new clock (LP, XT or HS mode).

7.  System   clock  is    switched      to  external  clock

    source.

FIGURE 5-8:               TWO-SPEED START-UP

         INTOSC

                                     TOST

             OSC1         0          1      1022     1023

             OSC2

Program Counter           PC - N                      PC                        PC + 1

    System Clock

 2010-2015 Microchip Technology Inc.                                                             DS40001440E-page 65
PIC16(L)F1825/9

5.5        Fail-Safe Clock Monitor                                                  5.5.3      FAIL-SAFE CONDITION CLEARING

The Fail-Safe Clock Monitor (FSCM) allows the device                                The    Fail-Safe  condition     is   cleared     after  a    Reset,

to continue operating should the external oscillator fail.                          executing a SLEEP instruction or changing the SCS bits

The FSCM can detect oscillator failure any time after                               of  the    OSCCON  register.    When       the   SCS       bits  are

the Oscillator Start-up Timer (OST) has expired. The                                changed,   the    OST   is  restarted.     While      the    OST  is

FSCM       is  enabled      by  setting   the      FCMEN            bit  in  the    running,   the  device  continues      to   operate        from   the

Configuration Word 1. The FSCM is applicable to all                                 INTOSC selected in OSCCON. When the OST times

external       Oscillator   modes       (LP,   XT,      HS,    EC,       Timer1     out, the Fail-Safe condition is cleared after successfully

Oscillator and RC).                                                                 switching to the external clock source. The OSFIF bit

                                                                                    should be cleared prior to switching to the external

FIGURE 5-9:                     FSCM BLOCK DIAGRAM                                  clock source. If the Fail-Safe condition still exists, the

                                                                                    OSFIF flag will again become set by hardware.

                                         Clock Monitor                              5.5.4      RESET OR WAKE-UP FROM SLEEP

        External                                  Latch

        Clock                                  S         Q                          The FSCM is designed to detect an oscillator failure

                                                                                    after the Oscillator Start-up Timer (OST) has expired.

                                                                                    The OST is used after waking up from Sleep and after

     LFINTOSC               ÷ 64               R            Q                       any type of Reset. The OST is not used with the EC or

     Oscillator                                                                     RC Clock modes so that the FSCM will be active as

        31 kHz              488 Hz                                                  soon as the Reset or wake-up has completed. When

     (~32 s)              (~2 ms)                                                  the FSCM is enabled, the Two-Speed Start-up is also

                                                                                    enabled. Therefore, the device will always be executing

           Sample Clock                                                  Clock      code while the OST is operating.

                                                                    Failure             Note:  Due to the wide range of oscillator start-up

                                                                    Detected                   times,  the      Fail-Safe   circuit   is    not  active

                                                                                               during oscillator start-up (i.e., after exiting

5.5.1           FAIL-SAFE DETECTION                                                            Reset   or       Sleep).  After    an      appropriate

                                                                                               amount of time, the user should check the

The     FSCM       module       detects   a       failed       oscillator    by                Status  bits     in  the  OSCSTAT          register    to

comparing the external oscillator to the FSCM sample                                           verify the oscillator start-up and that the

clock. The sample clock is generated by dividing the                                           system clock switchover has successfully

LFINTOSC           by  64.  See      Figure 5-9.            Inside  the      fail              completed.

detector block is a latch. The external clock sets the

latch on each falling edge of the external clock. The

sample clock clears the latch on each rising edge of the

sample     clock.      A   failure  is  detected        when        an   entire

half-cycle     of    the    sample      clock     elapses        before      the

external clock goes low.

5.5.2           FAIL-SAFE OPERATION

When the external clock fails, the FSCM switches the

device clock to an internal clock source and sets the bit

flag OSFIF of the PIR2 register. Setting this flag will

generate       an    interrupt  if  the  OSFIE          bit    of   the  PIE2

register is also set. The device firmware can then take

steps to mitigate the problems that may arise from a

failed  clock.       The    system      clock     will   continue        to  be

sourced from the internal clock source until the device

firmware       successfully     restarts      the    external       oscillator

and switches back to external operation.

The     internal     clock  source      chosen       by        the  FSCM        is

determined         by  the  IRCF<3:0>          bits     of  the     OSCCON

register.      This    allows   the     internal        oscillator       to  be

configured before a failure occurs.

DS40001440E-page 66                                                                                     2010-2015 Microchip Technology Inc.
                                                                   PIC16(L)F1825/9

FIGURE 5-10:          FSCM TIMING DIAGRAM

Sample Clock

System                                                       Oscillator

              Clock                                          Failure

       Output

Clock Monitor Output

              (Q)                                                                               Failure

                                                                                                Detected

OSCFIF

                                       Test                  Test                               Test

Note:         The system clock is normally at a much higher  frequency than the sample  clock.  The relative frequencies  in

              this example have been chosen for clarity.

 2010-2015 Microchip Technology Inc.                                                           DS40001440E-page 67
PIC16(L)F1825/9

5.6          Oscillator Control Registers

REGISTER          5-1:  OSCCON: OSCILLATOR CONTROL REGISTER

     R/W-0/0            R/W-0/0  R/W-1/1               R/W-1/1  R/W-1/1        U-0       R/W-0/0          R/W-0/0

SPLLEN                                     IRCF<3:0>                           —                    SCS<1:0>

bit 7                                                                                                            bit 0

Legend:

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

u = Bit is unchanged             x = Bit is unknown             -n/n = Value at POR and BOR/Value at all  other  Resets

‘1’ = Bit is set                 ‘0’ = Bit is cleared

bit 7             SPLLEN: Software PLL Enable bit

                  If PLLEN in Configuration Word 2 = 1:

                  SPLLEN bit is ignored. 4xPLL is always enabled (subject to oscillator  requirements)

                  If PLLEN in Configuration Word 2 = 0:

                  1=    4xPLL Is enabled

                  0=    4xPLL is disabled

bit 6-3           IRCF<3:0>: Internal Oscillator Frequency Select bits

                  000x = 31 kHz LF

                  0010 = 31.25 kHz MF

                  0011 = 31.25 kHz HF(1)

                  0100 = 62.5 kHz MF

                  0101 = 125 kHz MF

                  0110 = 250 kHz MF

                  0111  =  500 kHz MF (default upon Reset)

                  1000  =  125 kHz HF(1)

                  1001  =  250 kHz HF(1)

                  1010  =  500 kHz HF(1)

                  1011 = 1 MHz HF

                  1100 = 2 MHz HF

                  1101 = 4 MHz HF

                  1110 = 8 MHz or 32 MHz HF(see Section 5.2.2.1 “HFINTOSC”)

                  1111 = 16 MHz HF

bit 2             Unimplemented: Read as ‘0’

bit 1-0           SCS<1:0>: System Clock Select bits

                  1x = Internal oscillator block

                  01 = Timer1 oscillator

                  00 = Clock determined by FOSC<2:0> in Configuration Word 1.

Note     1:   Duplicate frequency derived from HFINTOSC.

DS40001440E-page 68                                                                       2010-2015 Microchip Technology Inc.
                                                                               PIC16(L)F1825/9

REGISTER 5-2:         OSCSTAT: OSCILLATOR STATUS REGISTER

        R-1/q         R-0/q            R-q/q          R-0/q   R-0/q            R-q/q   R-0/0                R-0/q

     T1OSCR           PLLR             OSTS        HFIOFR     HFIOFL           MFIOFR  LFIOFR               HFIOFS

bit 7                                                                                                       bit 0

Legend:

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

u = Bit is unchanged         x = Bit is unknown               -n/n = Value at POR and BOR/Value at all other Resets

‘1’ = Bit is set             ‘0’ = Bit is cleared             q = Conditional

bit  7            T1OSCR: Timer1 Oscillator Ready bit

                  If T1OSCEN = 1:

                  1=  Timer1 oscillator is ready

                  0=  Timer1 oscillator is not ready

                  If T1OSCEN = 0:

                  1=  Timer1 clock source is always ready

bit  6            PLLR 4xPLL Ready bit

                  1=  4xPLL is ready

                  0=  4xPLL is not ready

bit  5            OSTS: Oscillator Start-up Timer Status bit

                  1=  Running from the clock defined by the FOSC<2:0> bits of  the  Configuration  Word  1

                  0=  Running from an internal oscillator (FOSC<2:0> = 100)

bit  4            HFIOFR: High-Frequency Internal Oscillator Ready bit

                  1=  HFINTOSC is ready

                  0=  HFINTOSC is not ready

bit  3            HFIOFL: High-Frequency Internal Oscillator Locked bit

                  1=  HFINTOSC is at least 2% accurate

                  0=  HFINTOSC is not 2% accurate

bit  2            MFIOFR: Medium-Frequency Internal Oscillator Ready bit

                  1=  MFINTOSC is ready

                  0=  MFINTOSC is not ready

bit  1            LFIOFR: Low-Frequency Internal Oscillator Ready bit

                  1=  LFINTOSC is ready

                  0=  LFINTOSC is not ready

bit  0            HFIOFS: High-Frequency Internal Oscillator Stable bit

                  1=  HFINTOSC is at least 0.5% accurate

                  0=  HFINTOSC is not 0.5% accurate

 2010-2015 Microchip Technology Inc.                                                              DS40001440E-page 69
PIC16(L)F1825/9

REGISTER 5-3:              OSCTUNE: OSCILLATOR TUNING REGISTER

       U-0                U-0          R/W-0/0            R/W-0/0           R/W-0/0   R/W-0/0                   R/W-0/0            R/W-0/0

       —                   —                                                        TUN<5:0>

bit 7                                                                                                                              bit 0

Legend:

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

u = Bit is unchanged            x = Bit is unknown                     -n/n = Value at POR and BOR/Value at all other Resets

‘1’ = Bit is set                ‘0’ = Bit is cleared

bit 7-6             Unimplemented: Read as ‘0’

bit 5-0             TUN<5:0>: Frequency Tuning bits

                    011111 =    Maximum frequency

                    011110 =

                    •

                    •

                    •

                    000001 =

                    000000 = Oscillator module is running          at  the  factory-calibrated      frequency.

                    111111 =

                    •

                    •

                    •

                    100000 =    Minimum frequency

TABLE 5-2:             SUMMARY OF REGISTERS ASSOCIATED WITH CLOCK SOURCES

Name                Bit 7       Bit 6     Bit 5           Bit 4             Bit 3     Bit 2         Bit 1       Bit 0              Register

                                                                                                                                   on Page

OSCCON            SPLLEN                        IRCF<3:0>                             —                         SCS<1:0>           68

OSCSTAT           T1OSCR        PLLR      OSTS            HFIOFR            HFIOFL    MFIOFR        LFIOFR      HFIOFS             69

OSCTUNE                —        —                                           TUN<5:0>                                               70

PIE2                OSFIE       C2IE      C1IE            EEIE              BCL1IE    —             —           CCP2IE             89

PIR2                OSFIF       C2IF      C1IF            EEIF              BCL1IF    —             —           CCP2IF             93

T1CON                  TMR1CS<1:0>        T1CKPS<1:0>                  T1OSCEN        T1SYNC        —           TMR1ON             185

Legend:     —     Unimplemented location, read as ‘0’. Shaded cells are not used by clock sources.

TABLE 5-3:             SUMMARY OF CONFIGURATION WORD WITH CLOCK SOURCES

Name        Bits       Bit -/7  Bit -/6         Bit 13/5   Bit 12/4         Bit 11/3  Bit 10/2      Bit 9/1               Bit 8/0  Register

                                                                                                                                   on Page

CONFIG1     13:8           —           —        FCMEN      IESO             CLKOUTEN                BOREN<1:0>            CPD      48

               7:0         CP   MCLRE           PWRTE              WDTE<1:0>                        FOSC<2:0>

Legend:     —     Unimplemented location, read as ‘0’. Shaded cells are not used by clock sources.

DS40001440E-page 70                                                                                  2010-2015 Microchip Technology Inc.
                                                                                PIC16(L)F1825/9

6.0        REFERENCE CLOCK MODULE                                 6.3           Conflicts with the CLKR Pin

The Reference Clock module provides the ability to                There are two cases when the reference clock output

send a divided clock to the clock output pin of the               signal cannot be output to the CLKR pin, if:

device (CLKR) and provide a secondary internal clock              •   LP, XT or HS Oscillator mode is selected.

source to the modulator module. This module is avail-             •   CLKOUT function is enabled.

able in all oscillator configurations and allows the user         Even if either of these cases are true, the module can

to select a greater range of clock sub-multiples to drive         still be enabled and the reference clock signal may be

external   devices    in  the    application.  The  Reference     used in conjunction with the modulator module.

Clock module includes the following features:

•  System clock is the source                                     6.3.1         OSCILLATOR MODES

•  Available in all oscillator configurations                     If  LP,  XT   or  HS  oscillator  modes  are  selected,  the

•  Programmable clock divider                                     OSC2/CLKR pin must be used as an oscillator input pin

•  Output enable to a port pin                                    and      the  CLKR    output  cannot     be   enabled.   See

•  Selectable duty cycle                                          Section 5.2       “Clock  Source      Types”   for      more

•  Slew rate control                                              information on different oscillator modes.

The    Reference     Clock   module    is   controlled   by  the  6.3.2         CLKOUT FUNCTION

CLKRCON register (Register 6-1) and is enabled when               The CLKOUT function has a higher priority than the

setting the CLKREN bit. To output the divided clock               Reference Clock module. Therefore, if the CLKOUT

signal to the CLKR port pin, the CLKROE bit must be               function is enabled by the CLKOUTEN bit in Configura-

set. The CLKRDIV<2:0> bits enable the selection of                tion Word 1, FOSC/4 will always be output on the port

eight     different       clock    divider     options.      The  pin. Reference Section 4.0 “Device Configuration”

CLKRDC<1:0> bits can be used to modify the duty                   for more information.

cycle of the output clock(1). The CLKRSLR bit controls

slew rate limiting.

   Note 1:  If the base clock rate is selected without            6.4           Operation During Sleep

            a    divider,    the   output   clock  will  always   As the Reference Clock module relies on the system

            have a duty cycle equal to that of the                clock as its source, and the system clock is disabled in

            source clock, unless a 0% duty cycle is               Sleep, the module does not function in Sleep, even if

            selected. If the clock divider is set to base         an external clock source or the Timer1 clock source is

            clock/2, then 25% and 75% duty cycle                  configured as the system clock. The module outputs

            accuracy         will  be  dependent    upon     the  will remain in their current state until the device exits

            source clock.                                         Sleep.

For information on using the reference clock output

with the modulator module, see Section 23.0 “Data

Signal Modulator”.

6.1        Slew Rate

The slew rate limitation on the output port pin can be

disabled. The slew rate limitation can be removed by

clearing the CLKRSLR bit in the CLKRCON register.

6.2        Effects of a Reset

Upon any device Reset, the Reference Clock module is

disabled.   The      user’s  firmware      is  responsible   for

initializing the module before enabling the output. The

registers are reset to their default values.

 2010-2015 Microchip Technology Inc.                                                                   DS40001440E-page 71
PIC16(L)F1825/9

6.5       Reference Clock Control Register

REGISTER 6-1:            CLKRCON: REFERENCE CLOCK CONTROL REGISTER

     R/W-0/0      R/W-0/0   R/W-1/1               R/W-1/1       R/W-0/0  R/W-0/0      R/W-0/0               R/W-0/0

     CLKREN       CLKROE    CLKRSLR                        CLKRDC<1:0>                CLKRDIV<2:0>

bit 7                                                                                                                      bit 0

Legend:

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

u = Bit is unchanged        x = Bit is unknown                -n/n = Value at POR and BOR/Value at all other Resets

‘1’ = Bit is set            ‘0’ = Bit is cleared

bit  7            CLKREN: Reference Clock Module Enable bit

                  1 = Reference Clock module is enabled

                  0 = Reference Clock module is disabled

bit  6            CLKROE: Reference Clock Output Enable bit(3)

                  1 = Reference Clock output is enabled on CLKR pin

                  0 = Reference Clock output disabled on CLKR pin

bit  5            CLKRSLR: Reference Clock Slew Rate Control Limiting    Enable  bit

                  1 = Slew Rate limiting is enabled

                  0 = Slew Rate limiting is disabled

bit  4-3          CLKRDC<1:0>: Reference Clock Duty Cycle bits

                  11 =   Clock outputs duty cycle of 75%

                  10 =   Clock outputs duty cycle of 50%

                  01 =   Clock outputs duty cycle of 25%

                  00 =   Clock outputs duty cycle of 0%

bit  2-0          CLKRDIV<2:0> Reference Clock Divider bits

                  111 =     Base clock value divided by 128

                  110 =     Base clock value divided by 64

                  101 =     Base clock value divided by 32

                  100 =     Base clock value divided by 16

                  011 =     Base clock value divided by 8

                  010 =     Base clock value divided by 4

                  001 =     Base clock value divided by 2(1)

                  000 =     Base clock value(2)

     Note 1:  In this mode, the 25% and 75% duty cycle accuracy will be dependent on the source clock duty cycle.

          2:  In this mode, the duty cycle will always be equal to the source clock duty cycle, unless a duty cycle of 0%

              is selected.

          3:  To route CLKR to pin, CLKOUTEN of Configuration Word 1 = 1 is required. CLKOUTEN of Configuration

              Word 1 = 0 will result in FOSC/4. See Section 6.3 “Conflicts with the CLKR Pin” for details.

DS40001440E-page 72                                                               2010-2015 Microchip Technology Inc.
                                                                     PIC16(L)F1825/9

TABLE 6-1:        SUMMARY OF REGISTERS ASSOCIATED WITH REFERENCE CLOCK SOURCES

Name              Bit 7      Bit 6     Bit 5     Bit 4     Bit 3     Bit 2                             Bit 1    Bit 0    Register

                                                                                                                         on Page

CLKRCON     CLKREN           CLKROE    CLKRSLR   CLKRDC<1:0>                CLKRDIV<2:0>                                 72

Legend:  —  Unimplemented locations read as ‘0’. Shaded cells are not used by reference clock sources.

TABLE 6-2:        SUMMARY OF CONFIGURATION WORD WITH REFERENCE CLOCK SOURCES

Name        Bits  Bit -/7    Bit -/6   Bit 13/5  Bit 12/4  Bit 11/3  Bit 10/2                          Bit 9/1  Bit 8/0  Register

                                                                                                                         on Page

CONFIG1  13:8            —          —  FCMEN     IESO      CLKOUTEN         BOREN<1:0>                          CPD      48

            7:0          CP  MCLRE     PWRTE            WDTE<1:0>              FOSC<2:0>

Legend:  — Unimplemented locations read as ‘0’. Shaded cells are not used by reference clock sources.

 2010-2015 Microchip Technology Inc.                                                                           DS40001440E-page 73
PIC16(L)F1825/9

7.0       RESETS

There are multiple ways to reset this device:

•  Power-on Reset (POR)

•  Brown-out Reset (BOR)

•  MCLR Reset

•  WDT Reset

•  RESET instruction

•  Stack Overflow

•  Stack Underflow

•  Programming mode exit

To allow VDD to stabilize, an optional power-up timer

can be enabled to extend the Reset time after a BOR

or POR event.

A simplified block diagram of the On-Chip Reset Circuit

is shown in Figure 7-1.

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

     Programming Mode Exit

          RESET  Instruction

           Stack      Stack Overflow/Underflow  Reset

           Pointer

                           External Reset

     MCLR                     MCLRE

                    Sleep

                    WDT
                   Time-out

                   Power-on                                                                              Device

                    Reset                                                                                Reset

     VDD

                   Brown-out
                    Reset

                              BOR

                              Enable

                                                                     PWRT

                                                         Zero

                                                                     64 ms

                                                       LFINTOSC

                                                                     PWRTEN

DS40001440E-page 74                                                                2010-2015 Microchip  Technology  Inc.
                                                                                       PIC16(L)F1825/9

7.1           Power-on Reset (POR)                                        7.2       Brown-Out Reset (BOR)

The POR circuit holds the device in Reset until VDD has                   The BOR circuit holds the device in Reset when VDD

reached       an  acceptable      level   for    minimum      operation.  reaches   a  selectable     minimum  level.     Between      the

Slow    rising    VDD,      fast  operating      speeds       or  analog  POR and BOR, complete voltage range coverage for

performance may require greater than minimum VDD.                         execution protection can be implemented.

The PWRT, BOR or MCLR features can be used to                             The       Brown-out  Reset  module   has      four   operating

extend    the     start-up  period        until  all  device  operation   modes     controlled  by    the      BOREN<1:0>        bits  in

conditions have been met.                                                 Configuration Word 1. The four operating modes are:

7.1.1             POWER-UP TIMER (PWRT)                                   •  BOR is always on

The Power-up Timer provides a nominal 64 ms time-                         •  BOR is off when in Sleep

out on POR or Brown-out Reset.                                            •  BOR is controlled by software

The device is held in Reset as long as PWRT is active.                    •  BOR is always off

The PWRT delay allows additional time for the VDD to                      Refer to Table 7-2 for more information.

rise  to  an    acceptable        level.  The    Power-up     Timer  is   The       Brown-out  Reset  voltage  level  is  selectable   by

enabled by clearing the PWRTE bit in Configuration                        configuring the BORV bit in Configuration Word 2.

Word 1.                                                                   A  VDD    noise  rejection  filter  prevents    the  BOR  from

The Power-up Timer starts after the release of the POR                    triggering on small events. If VDD falls below VBOR for

and BOR.                                                                  a duration greater than parameter TBORDC, the device

For   additional  information,       refer       to   Application  Note   will reset. See Figure 7-2 for more information.

AN607, “Power-up Trouble Shooting” (DS00607).

TABLE 7-1:              BOR OPERATING MODES

                                                                                       Device Operation        Device Operation

BOREN<1:0>                  SBOREN                    Device Mode         BOR Mode     upon Release of         upon Wake-up from

                                                                                               POR                        Sleep

          11                      X                           X           Active                Waits for BOR ready(1)

                                                      Awake               Active                Waits for BOR ready

          10                      X                      Sleep            Disabled

                                  1                           X           Active                      Begins immediately

          01                                                  X           Disabled                    Begins immediately

                                  0

          00                      X                           X           Disabled                    Begins immediately

Note      1:   In these specific cases, “Release of POR” and the “Wake-up from Sleep”, there is no delay in start-up. The

               BOR Ready flag (BORRDY = 1) will be set before the CPU is ready to execute instructions because the

               BOR circuit is forced on by the BOREN<1:0> bits.

7.2.1             BOR IS ALWAYS ON                                        7.2.3        BOR CONTROLLED BY SOFTWARE

When the BOREN bits of Configuration Word 1 are set                       When the BOREN bits of Configuration Word 1 are set

to ‘11’, the BOR is always on. The device start-up will                   to ‘01’, the BOR is controlled by the SBOREN bit of the

be delayed until the BOR is ready and VDD is higher                       BORCON register. The device start-up is not delayed

than the BOR threshold.                                                   by the BOR ready condition or the VDD level.

BOR protection is active during Sleep. The BOR does                       BOR protection begins as soon as the BOR circuit is

not delay wake-up from Sleep.                                             ready. The status of the BOR circuit is reflected in the

7.2.2             BOR IS OFF IN SLEEP                                     BORRDY bit of the BORCON register.

                                                                          BOR protection is unchanged by Sleep.

When the BOREN bits of Configuration Word 1 are set

to ‘10’, the BOR is on, except in Sleep. The device

start-up will be delayed until the BOR is ready and VDD

is higher than the BOR threshold.

BOR protection is not active during Sleep. The device

wake-up will be delayed until the BOR is ready.

 2010-2015 Microchip Technology Inc.                                                                          DS40001440E-page 75
PIC16(L)F1825/9

FIGURE 7-2:                  BROWN-OUT    SITUATIONS

                   VDD                                                                           VBOR

                   Internal                                      TPWRT(1)

                   Reset

                   VDD                                                                               VBOR

                   Internal                                   <  TPWRT      TPWRT(1)

                   Reset

                   VDD                                                                               VBOR

                   Internal                                                 TPWRT(1)

                   Reset

         Note  1:  TPWRT     delay only if PWRTE bit is programmed to ‘0’.

REGISTER 7-1:                BORCON: BROWN-OUT RESET CONTROL REGISTER

R/W-1/u                U-0           U-0              U-0                   U-0       U-0            U-0        R-q/u

SBOREN                       —       —                —                     —         —              —          BORRDY

bit 7                                                                                                                         bit  0

Legend:

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

u = Bit is unchanged            x = Bit is unknown               -n/n = Value at POR and BOR/Value at      all  other Resets

‘1’ = Bit is set                ‘0’ = Bit is cleared             q = Value depends on condition

bit 7              SBOREN: Software Brown-out Reset Enable bit

                   If BOREN <1:0> in Configuration Word 1  01:

                   SBOREN is read/write, but has no effect on the BOR.

                   If BOREN <1:0> in Configuration Word 1 = 01:

                   1=  BOR Enabled

                   0=  BOR Disabled

bit 6-1            Unimplemented: Read as ‘0’

bit 0              BORRDY: Brown-out Reset Circuit Ready Status bit

                   1 = The Brown-out Reset circuit is active

                   0 = The Brown-out Reset circuit is inactive

DS40001440E-page 76                                                                       2010-2015 Microchip Technology Inc.
                                                                                PIC16(L)F1825/9

7.3        MCLR                                                   7.7       Programming Mode Exit

The MCLR is an optional external input that can reset             Upon    exit   of  Programming      mode,  the    device  will

the  device.  The  MCLR   function       is  controlled  by  the  behave as if a POR had just occurred.

MCLRE bit of Configuration Word 1 and the LVP bit of

Configuration Word 2 (Table 7-2).                                 7.8       Power-Up Timer

                                                                  The Power-up Timer optionally delays device execution

TABLE 7-2:         MCLR CONFIGURATION                             after a BOR or POR event. This timer is typically used to

     MCLRE                LVP                   MCLR              allow VDD to stabilize before allowing the device to start

                                                Disabled          running.

       0                  0                                       The Power-up Timer is controlled by the PWRTE bit of

       1                  0                     Enabled           Configuration Word 1.

       x                  1                     Enabled

7.3.1         MCLR ENABLED                                        7.9       Start-up Sequence

When MCLR is enabled and the pin is held low, the                 Upon the release of a POR or BOR, the following must

device is held in Reset. The MCLR pin is connected to             occur before the device will begin executing:

VDD through an internal weak pull-up.                             1.   Power-up Timer runs to completion (if enabled).

The device has a noise filter in the MCLR Reset path.             2.   Oscillator start-up timer runs to completion (if

The filter will detect and ignore small pulses.                        required for oscillator source).

Note:         A Reset does not drive the MCLR pin low.            3.   MCLR must be released (if enabled).

                                                                  The total time-out will vary based on oscillator configu-

7.3.2         MCLR DISABLED                                       ration    and      Power-up     Timer  configuration.     See

When MCLR is disabled, the pin functions as a general             Section 5.0        “Oscillator  Module     (With  Fail-Safe

purpose input and the internal weak pull-up is under              Clock Monitor)” for more information.

software control. See Section 12.2 “PORTA Registers”              The Power-up Timer and oscillator start-up timer run

for more information.                                             independently of MCLR Reset. If MCLR is kept low long

                                                                  enough,   the  Power-up      Timer  and    oscillator  start-up

7.4        Watchdog Timer (WDT) Reset                             timer will expire. Upon bringing MCLR high, the device

                                                                  will begin execution immediately (see Figure 7-3). This

The Watchdog Timer generates a Reset if the firmware              is useful for testing purposes or to synchronize more

does not issue a CLRWDT instruction within the time-out           than one device operating in parallel.

period. The TO and PD bits in the STATUS register are

changed to indicate the WDT Reset. See Section 10.0

“Watchdog Timer” for more information.

7.5        RESET Instruction

A RESET instruction will cause a device Reset. The RI

bit in the PCON register will be set to ‘0’. See Table 7-4

for  default  conditions  after  a  RESET    instruction     has

occurred.

7.6        Stack Overflow/Underflow Reset

The  device   can  reset  when      the  Stack  Overflows    or

Underflows. The STKOVF or STKUNF bits of the PCON

register indicate the Reset condition. These Resets are

enabled by setting the STVREN bit in Configuration Word

2. See Section 3.4.2 “Overflow/Underflow Reset” for

more information.

 2010-2015 Microchip Technology Inc.                                                                    DS40001440E-page 77
PIC16(L)F1825/9

FIGURE 7-3:                RESET START-UP     SEQUENCE

                     VDD

Internal POR

                                              TPWRT

Power-Up Timer

MCLR

                                                        TMCLR

Internal RESET

                           Oscillator  Modes

External Crystal                                               TOST

Oscillator Start-Up Timer

Oscillator

                     FOSC

Internal Oscillator

Oscillator

             FOSC

External Clock (EC)

CLKIN

             FOSC

DS40001440E-page 78                                                    2010-2015  Microchip  Technology  Inc.
                                                                                 PIC16(L)F1825/9

7.10      Determining the Cause of a Reset

Upon    any  Reset,  multiple   bits  in  the  STATUS   and

PCON register are updated to indicate the cause of the

Reset.    Table 7-3  and  Table 7-4       show  the  Reset

conditions of these registers.

TABLE 7-3:           RESET STATUS             BITS AND  THEIR  SIGNIFICANCE

STKOVF       STKUNF       RMCLR           RI    POR     BOR    TO            PD                   Condition

0            0               1            1     0       x      1             1   Power-on Reset

0            0               1            1     0       x      0             x   Illegal, TO is set on POR

0            0               1            1     0       x      x             0   Illegal, PD is set on POR

0            0               1            1     u       0      1             1   Brown-out Reset

u            u               u            u     u       u      0             u   WDT Reset

u            u               u            u     u       u      0             0   WDT Wake-up from Sleep

u            u               u            u     u       u      1             0   Interrupt Wake-up from Sleep

u            u               0            u     u       u      u             u   MCLR Reset during normal operation

u            u               0            u     u       u      1             0   MCLR Reset during Sleep

u            u               u            0     u       u      u             u   RESET Instruction Executed

1            u               u            u     u       u      u             u   Stack Overflow Reset (STVREN = 1)

u            1               u            u     u       u      u             u   Stack Underflow Reset (STVREN = 1)

TABLE 7-4:           RESET CONDITION FOR SPECIAL REGISTERS(2)

                          Condition                            Program                 STATUS                  PCON

                                                                  Counter              Register                Register

Power-on Reset                                                     0000h           ---1     1000             00--  110x

MCLR Reset during normal operation                                 0000h           ---u     uuuu             uu--  0uuu

MCLR Reset during Sleep                                            0000h           ---1     0uuu             uu--  0uuu

WDT Reset                                                          0000h           ---0     uuuu             uu--  uuuu

WDT Wake-up from Sleep                                             PC + 1          ---0     0uuu             uu--  uuuu

Brown-out Reset                                                    0000h           ---1     1uuu             00--  11u0

Interrupt Wake-up from Sleep                                   PC + 1(1)           ---1     0uuu             uu--  uuuu

RESET Instruction Executed                                         0000h           ---u     uuuu             uu--  u0uu

Stack Overflow Reset (STVREN = 1)                                  0000h           ---u     uuuu             1u--  uuuu

Stack Underflow Reset (STVREN = 1)                                 0000h           ---u     uuuu             u1--  uuuu

Legend:      u = unchanged,     x = unknown, - = unimplemented bit, reads as ‘0’.

Note 1:   When the wake-up is due to an interrupt and Global Enable bit (GIE) is set,    the return address is pushed    on

          the stack and PC is loaded with the interrupt vector (0004h) after execution      of PC + 1.

      2:  If a Status bit is not implemented, that bit will be read as ‘0’.

 2010-2015 Microchip Technology Inc.                                                                   DS40001440E-page 79
PIC16(L)F1825/9

7.11         Power Control (PCON) Register

The Power Control (PCON) register contains flag bits

to differentiate between a:

•  Power-on Reset (POR)

•  Brown-out Reset (BOR)

•  Reset Instruction Reset (RI)

•  Stack Overflow Reset (STKOVF)

•  Stack Underflow Reset (STKUNF)

•  MCLR Reset (RMCLR)

The PCON register bits are shown in Register 7-2.

REGISTER 7-2:            PCON: POWER CONTROL REGISTER

   R/W/HS-0/q        R/W/HS-0/q     U-0                   U-0  R/W/HC-1/q         R/W/HC-1/q   R/W/HC-q/u   R/W/HC-q/u

        STKOVF       STKUNF         —                     —    RMCLR                   RI          POR      BOR

   bit 7                                                                                                                    bit 0

   Legend:

   HC = Bit is cleared by hardware                             HS = Bit is set by hardware

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

   u = Bit is unchanged             x = Bit is unknown         -m/n = Value at POR and BOR/Value at all other Resets

   ‘1’ = Bit is set                 ‘0’ = Bit is cleared       q = Value depends on condition

   bit  7            STKOVF: Stack Overflow Flag bit

                     1=  A Stack Overflow occurred

                     0=  A Stack Overflow has not occurred or set to ‘0’ by firmware

   bit  6            STKUNF: Stack Underflow Flag bit

                     1=  A Stack Underflow occurred

                     0=  A Stack Underflow has not occurred or set to ‘0’ by firmware

   bit  5-4          Unimplemented: Read as ‘0’

   bit  3            RMCLR: MCLR Reset Flag bit

                     1 = A MCLR Reset has not occurred or set to ‘1’ by firmware

                     0 = A MCLR Reset has occurred (set to ‘0’ in hardware when a MCLR Reset occurs)

   bit  2            RI: RESET Instruction Flag bit

                     1 = A RESET instruction has not been executed or set to ‘1’ by firmware

                     0 = A RESET instruction has been executed (set to ‘0’ in hardware upon executing a RESET instruction)

   bit  1            POR: Power-on Reset Status bit

                     1 = No Power-on Reset occurred

                     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 = No Brown-out Reset occurred

                     0 = A Brown-out Reset occurred (must be set in software after a Power-on Reset or Brown-out Reset

                         occurs)

DS40001440E-page 80                                                                         2010-2015 Microchip Technology Inc.
                                                                 PIC16(L)F1825/9

TABLE 7-5:  SUMMARY OF REGISTERS ASSOCIATED WITH RESETS

Name        Bit 7   Bit 6              Bit 5  Bit 4  Bit 3       Bit 2            Bit 1  Bit 0   Register

                                                                                                 on Page

BORCON      SBOREN  —                  —      —      —           —                —      BORRDY  76

PCON        STKOVF  STKUNF             —      —      RMCLR       RI               POR    BOR     80

STATUS      —       —                  —      TO     PD          Z                DC     C       22

WDTCON      —       —                                WDTPS<4:0>                          SWDTEN  100

Legend:  — Unimplemented bit, reads as ‘0’. Shaded cells are not used by Resets.

 2010-2015 Microchip Technology Inc.                                                    DS40001440E-page 81
PIC16(L)F1825/9

8.0       INTERRUPTS

The interrupt feature allows certain events to preempt

normal program flow. Firmware is used to determine

the source of the interrupt and act accordingly. Some

interrupts can be configured to wake the MCU from

Sleep mode.

This  chapter  contains     the  following    information   for

Interrupts:

•  Operation

•  Interrupt Latency

•  Interrupts During Sleep

•  INT Pin

•  Automatic Context Saving

Many  peripherals     produce    Interrupts.     Refer  to  the

corresponding chapters for details.

A  block  diagram     of  the  interrupt  logic  is  shown  in

Figure 8-1.

FIGURE 8-1:               INTERRUPT LOGIC

                                                                 Wake-up  (If  in  Sleep mode)

                                          TMR0IF

                                          TMR0IE

                                            INTF                                                Interrupt to CPU

                                            INTE

                                            IOCIF

                                          IOCIE

      From Peripheral Interrupt

             Logic (Figure 8-2)

                                            PEIE

                                              GIE

DS40001440E-page 82                                                                 2010-2015 Microchip Technology  Inc.
                                                                                     PIC16(L)F1825/9

8.1       Operation                                                     8.2         Interrupt Latency

Interrupts are disabled upon any device Reset. They                     Interrupt latency is defined as the time from when the

are enabled by setting the following bits:                              interrupt event occurs to the time code execution at the

•  GIE bit of the INTCON register                                       interrupt vector begins. The latency for synchronous

•  Interrupt Enable bit(s) for the specific interrupt                   interrupts   is  three  or    four  instruction  cycles.    For

   event(s)                                                             asynchronous     interrupts,  the   latency  is  three  to  five

•  PEIE bit of the INTCON register (if the Interrupt                    instruction  cycles,    depending   on  when     the  interrupt

   Enable bit of the interrupt event is contained in the                occurs. See Figure 8-2 and Figure 8.3 for more details.

   PIEx register)

The   INTCON,       PIR1,  PIR2,      PIR3    and   PIR4   registers

record    individual    interrupts    via     interrupt    flag  bits.

Interrupt flag bits will be set, regardless of the status of

the GIE, PEIE and individual interrupt enable bits.

The following events happen when an interrupt event

occurs while the GIE bit is set:

•  Current prefetched instruction is flushed

•  GIE bit is cleared

•  Current Program Counter (PC) is pushed onto the

   stack

•  Critical registers are automatically saved to the

   shadow registers (See Section 8.5 “Automatic

   Context Saving”)

•  PC is loaded with the interrupt vector 0004h

The firmware within the Interrupt Service Routine (ISR)

should determine the source of the interrupt by polling

the interrupt flag bits. The interrupt flag bits must be

cleared   before      exiting  the    ISR     to    avoid  repeated

interrupts. Because the GIE bit is cleared, any interrupt

that occurs while executing the ISR will be recorded

through   its  interrupt       flag,  but     will  not   cause  the

processor to redirect to the interrupt vector.

The RETFIE instruction exits the ISR by popping the

previous address from the stack, restoring the saved

context from the shadow registers and setting the GIE

bit.

For   additional    information       on   a  specific     interrupt’s

operation, refer to its peripheral chapter.

      Note 1:  Individual      interrupt      flag  bits   are   set,

               regardless      of     the  state    of    any   other

               enable bits.

          2:   All interrupts will be ignored while the GIE

               bit  is  cleared.      Any     interrupt    occurring

               while the GIE bit is clear will be serviced

               when the GIE bit is set again.

 2010-2015 Microchip Technology Inc.                                                                       DS40001440E-page 83
PIC16(L)F1825/9

FIGURE 8-2:          INTERRUPT LATENCY

OSC1

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

CLKOUT                                  Interrupt Sampled

                                        during Q1

Interrupt

GIE

PC            PC-1   PC                           PC+1               0004h        0005h

Execute    1  Cycle  Instruction at PC  Inst(PC)        NOP          NOP    Inst(0004h)

Interrupt

GIE

PC            PC-1   PC                 PC+1/FSR        New PC/      0004h        0005h

                                        ADDR            PC+1

Execute    2  Cycle  Instruction at PC  Inst(PC)        NOP          NOP    Inst(0004h)

Interrupt

GIE

PC            PC-1   PC                 FSR ADDR        PC+1         PC+2         0004h     0005h

Execute    3  Cycle  Instruction at PC  INST(PC)        NOP          NOP          NOP       Inst(0004h)  Inst(0005h)

Interrupt

GIE

PC            PC-1   PC                 FSR ADDR        PC+1                PC+2            0004h        0005h

Execute    3  Cycle  Instruction at PC  INST(PC)        NOP          NOP          NOP       NOP          Inst(0004h)

DS40001440E-page 84                                                                2010-2015 Microchip Technology Inc.
                                                                                       PIC16(L)F1825/9

FIGURE 8-3:       INT      PIN  INTERRUPT           TIMING

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

OSC1

CLKOUT (3)

                           (4)

INT pin                                    (1)

INTF              (1)           (5)                             Interrupt Latency (2)

GIE

INSTRUCTION FLOW

PC                     PC                       PC + 1              PC + 1                      0004h                 0005h

Instruction       Inst (PC)                Inst (PC + 1)            —                  Inst (0004h)             Inst (0005h)

Fetched

Instruction      Inst (PC – 1)             Inst (PC)                Dummy Cycle        Dummy Cycle                    Inst (0004h)

Executed

Note     1:  INTF flag is sampled here (every Q1).

         2:  Asynchronous interrupt latency = 3-5 TCY. Synchronous latency = 3-4 TCY, where TCY = instruction cycle           time.

             Latency is the same whether Inst (PC) is a single cycle or a 2-cycle instruction.

         3:  CLKOUT not available in all oscillator modes.

         4:  For minimum width of INT pulse, refer to AC specifications in Section 30.0 “Electrical Specifications”.

         5:  INTF is enabled to be set any time during the Q4-Q1 cycles.

 2010-2015 Microchip Technology Inc.                                                                       DS40001440E-page 85
PIC16(L)F1825/9

8.3        Interrupts During Sleep

Some interrupts can be used to wake from Sleep. To

wake     from   Sleep,    the      peripheral  must         be    able   to

operate without the system clock. The interrupt source

must have the appropriate Interrupt Enable bit(s) set

prior to entering Sleep.

On waking from Sleep, if the GIE bit is also set, the

processor will branch to the interrupt vector. Otherwise,

the processor will continue executing instructions after

the SLEEP instruction. The instruction directly after the

SLEEP    instruction      will  always     be       executed      before

branching to the ISR. Refer to the Section 9.0 “Power-

Down Mode (Sleep)” for more details.

8.4        INT Pin

The INT pin can be used to generate an asynchronous

edge-triggered      interrupt.       This  interrupt  is    enabled      by

setting  the    INTE      bit  of    the   INTCON     register.        The

INTEDG bit of the OPTION_REG register determines on

which edge the interrupt will occur. When the INTEDG

bit is set, the rising edge will cause the interrupt. When

the INTEDG bit is clear, the falling edge will cause the

interrupt. The INTF bit of the INTCON register will be set

when a valid edge appears on the INT pin. If the GIE and

INTE     bits  are  also       set,  the   processor        will  redirect

program execution to the interrupt vector.

8.5        Automatic Context Saving

Upon entering an interrupt, the return PC address is

saved on the stack. Additionally, the following registers

are automatically saved in the shadow registers:

•   W register

•   STATUS register (except for TO and PD)

•   BSR register

•   FSR registers

•   PCLATH register

Upon     exiting    the   Interrupt        Service    Routine,    these

registers are automatically restored. Any modifications

to  these      registers  during     the   ISR        will  be    lost.  If

modifications to any of these registers are desired, the

corresponding shadow register should be modified and

the value will be restored when exiting the ISR. The

shadow     registers      are   available  in  Bank         31    and   are

readable       and  writable.        Depending        on    the   user’s

application, other registers may also need to be saved.

DS40001440E-page 86                                                           2010-2015 Microchip Technology Inc.
                                                                               PIC16(L)F1825/9

8.6         Interrupt Control Registers                                        Interrupt flag bits are set when an interrupt

                                                                    Note:

8.6.1         INTCON REGISTER                                                  condition occurs, regardless of the state of

The     INTCON    register  is  a  readable    and   writable                  its corresponding enable bit or the Global

register, that contains the various enable and flag bits                       Enable bit, GIE, of the INTCON register.

for TMR0 register overflow, interrupt-on-change and                            User  software       should      ensure     the

external INT pin interrupts.                                                   appropriate  interrupt   flag  bits  are  clear

                                                                               prior to enabling an interrupt.

REGISTER 8-1:         INTCON: INTERRUPT CONTROL REGISTER

     R/W-0/0      R/W-0/0          R/W-0/0           R/W-0/0        R/W-0/0      R/W-0/0       R/W-0/0              R-0/0

        GIE           PEIE         TMR0IE                INTE       IOCIE        TMR0IF             INTF            IOCIF(1)

bit 7                                                                                                                    bit 0

Legend:

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

u = Bit is unchanged               x = Bit is unknown           -n/n = Value at POR and BOR/Value at all other Resets

‘1’ = Bit is set                   ‘0’ = Bit is cleared

bit  7            GIE: Global Interrupt Enable bit

                  1 = Enables all active interrupts

                  0 = Disables all interrupts

bit  6            PEIE: Peripheral Interrupt Enable bit

                  1 = Enables all active peripheral interrupts

                  0 = Disables all peripheral interrupts

bit  5            TMR0IE: Timer0 Overflow Interrupt Enable bit

                  1 = Enables the Timer0 interrupt

                  0 = Disables the Timer0 interrupt

bit  4            INTE: INT External Interrupt Enable bit

                  1 = Enables the INT external interrupt

                  0 = Disables the INT external interrupt

bit  3            IOCIE: Interrupt-on-Change Enable bit

                  1 = Enables the interrupt-on-change

                  0 = Disables the interrupt-on-change

bit  2            TMR0IF: Timer0 Overflow Interrupt Flag bit

                  1 = TMR0 register has overflowed

                  0 = TMR0 register did not overflow

bit  1            INTF: INT External Interrupt Flag bit

                  1 = The INT external interrupt occurred

                  0 = The INT external interrupt did not occur

bit  0            IOCIF: Interrupt-on-Change Interrupt Flag bit(1)

                  1 = When at least one of the interrupt-on-change pins changed      state

                  0 = None of the interrupt-on-change pins have changed state

Note    1:   The IOCIF Flag bit is read-only and cleared when all the Interrupt-on-Change   flags   in  the  IOCxF  register

             have been cleared by software.

 2010-2015 Microchip Technology Inc.                                                                   DS40001440E-page 87
PIC16(L)F1825/9

8.6.2         PIE1 REGISTER

The PIE1 register contains the interrupt enable bits, as              Note:   Bit PEIE of the INTCON register must be

shown in Register 8-2.                                                        set to enable any peripheral interrupt.

REGISTER 8-2:           PIE1: PERIPHERAL INTERRUPT ENABLE REGISTER 1

     R/W-0/0      R/W-0/0    R/W-0/0               R/W-0/0        R/W-0/0     R/W-0/0  R/W-0/0    R/W-0/0

TMR1GIE               ADIE   RCIE                  TXIE           SSP1IE      CCP1IE   TMR2IE     TMR1IE

bit 7                                                                                                                  bit 0

Legend:

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

u = Bit is unchanged         x = Bit is unknown               -n/n = Value at POR and BOR/Value at all other Resets

‘1’ = Bit is set             ‘0’ = Bit is cleared

bit  7            TMR1GIE: Timer1 Gate Interrupt Enable bit

                  1 = Enables the Timer1 Gate Acquisition interrupt

                  0 = Disables the Timer1 Gate Acquisition interrupt

bit  6            ADIE: A/D Converter (ADC) Interrupt Enable bit

                  1 = Enables the ADC interrupt

                  0 = Disables the ADC interrupt

bit  5            RCIE: USART Receive Interrupt Enable bit

                  1 = Enables the USART receive interrupt

                  0 = Disables the USART receive interrupt

bit  4            TXIE: USART Transmit Interrupt Enable bit

                  1 = Enables the USART transmit interrupt

                  0 = Disables the USART transmit interrupt

bit  3            SSP1IE: Synchronous Serial Port (MSSP) Interrupt    Enable  bit

                  1 = Enables the MSSP interrupt

                  0 = Disables the MSSP interrupt

bit  2            CCP1IE: CCP1 Interrupt Enable bit

                  1 = Enables the CCP1 interrupt

                  0 = Disables the CCP1 interrupt

bit  1            TMR2IE: TMR2 to PR2 Match Interrupt Enable bit

                  1 = Enables the Timer2 to PR2 match interrupt

                  0 = Disables the Timer2 to PR2 match interrupt

bit  0            TMR1IE: Timer1 Overflow Interrupt Enable bit

                  1 = Enables the Timer1 overflow interrupt

                  0 = Disables the Timer1 overflow interrupt

DS40001440E-page 88                                                                 2010-2015 Microchip Technology Inc.
                                                                          PIC16(L)F1825/9

8.6.3         PIE2 REGISTER

The PIE2 register contains the interrupt enable bits, as           Note:  Bit PEIE of the INTCON register must be

shown in Register 8-3.                                                    set to enable any peripheral interrupt.

REGISTER 8-3:           PIE2: PERIPHERAL INTERRUPT ENABLE REGISTER 2

     R/W-0/0      R/W-0/0    R/W-0/0               R/W-0/0       R/W-0/0  U-0                      U-0  R/W-0/0

     OSFIE            C2IE             C1IE        EEIE          BCL1IE   —                        —    CCP2IE

bit 7                                                                                                                 bit 0

Legend:

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

u = Bit is unchanged         x = Bit is unknown                -n/n = Value at POR and BOR/Value at all other Resets

‘1’ = Bit is set             ‘0’ = Bit is cleared

bit  7            OSFIE: Oscillator Fail Interrupt Enable bit

                  1=  Enables the Oscillator Fail interrupt

                  0=  Disables the Oscillator Fail interrupt

bit  6            C2IE: Comparator C2 Interrupt Enable bit

                  1=  Enables the Comparator C2 interrupt

                  0=  Disables the Comparator C2 interrupt

bit  5            C1IE: Comparator C1 Interrupt Enable bit

                  1=  Enables the Comparator C1 interrupt

                  0=  Disables the Comparator C1 interrupt

bit  4            EEIE: EEPROM Write Completion Interrupt Enable bit

                  1=  Enables the EEPROM write completion interrupt

                  0=  Disables the EEPROM write completion interrupt

bit  3            BCL1IE: MSSP Bus Collision Interrupt Enable bit

                  1=  Enables the MSSP bus collision interrupt

                  0=  Disables the MSSP bus collision interrupt

bit  2-1          Unimplemented: Read as ‘0’

bit  0            CCP2IE: CCP2 Interrupt Enable bit

                  1=  Enables the CCP2 interrupt

                  0=  Disables the CCP2 interrupt

 2010-2015 Microchip Technology Inc.                                                              DS40001440E-page 89
PIC16(L)F1825/9

8.6.4        PIE3 REGISTER

The PIE3 register contains the interrupt enable bits, as          Note 1:  Bit PEIE of the INTCON register must be

shown in Register 8-4.                                                     set to enable any peripheral interrupt.

REGISTER 8-4:           PIE3: PERIPHERAL INTERRUPT ENABLE REGISTER 3

        U-0           U-0   R/W-0/0                R/W-0/0      R/W-0/0    U-0  R/W-0/0                      U-0

        —               —   CCP4IE                 CCP3IE       TMR6IE     —    TMR4IE                       —

bit 7                                                                                                               bit  0

Legend:

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

u = Bit is unchanged        x = Bit is unknown              -n/n = Value at POR and BOR/Value at all  other  Resets

‘1’ = Bit is set            ‘0’ = Bit is cleared

bit  7-6          Unimplemented: Read as ‘0’

bit  5            CCP4IE: CCP4 Interrupt Enable bit

                  1=  Enables the CCP4 interrupt

                  0=  Disables the CCP4 interrupt

bit  4            CCP3IE: CCP3 Interrupt Enable bit

                  1=  Enables the CCP3 interrupt

                  0=  Disables the CCP3 interrupt

bit  3            TMR6IE: TMR6 to PR6 Match Interrupt Enable bit

                  1=  Enables the TMR6 to PR6 match interrupt

                  0=  Disables the TMR6 to PR6 match interrupt

bit  2            Unimplemented: Read as ‘0’

bit  1            TMR4IE: TMR4 to PR4 Match Interrupt Enable bit

                  1=  Enables the TMR4 to PR4 match interrupt

                  0=  Disables the TMR4 to PR4 match interrupt

bit  0            Unimplemented: Read as ‘0’

DS40001440E-page 90                                                            2010-2015 Microchip Technology Inc.
                                                                             PIC16(L)F1825/9

8.6.5        PIE4 REGISTER(1)

The PIE4 register contains the interrupt enable bits, as            Note 1:  The PIE4 register is available only on the

shown in Register 8-5.                                                       PIC16(L)F1829 device.

                                                                       2:    Bit PEIE of the INTCON register must be

                                                                             set to enable any peripheral interrupt.

REGISTER 8-5:           PIE4: PERIPHERAL INTERRUPT ENABLE REGISTER 4(1)

       U-0            U-0              U-0          U-0           U-0        U-0         R/W-0/0             R/W-0/0

         —              —              —            —               —        —           BCL2IE              SSP2IE

bit 7                                                                                                                 bit 0

Legend:

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

u = Bit is unchanged       x = Bit is unknown                   -n/n = Value at POR and BOR/Value   at  all  other  Resets

‘1’ = Bit is set           ‘0’ = Bit is cleared

bit 7-2           Unimplemented: Read as ‘0’

bit 1             BCL2IE: MSSP2 Bus Collision Interrupt Enable bit

                  1=  Enables the MSSP2 bus collision interrupt

                  0=  Disables the MSSP2 bus collision interrupt

bit 0             SSP2IE: Master Synchronous Serial Port 2 (MSSP2) Interrupt Enable bit

                  1=  Enables the MSSP2 interrupt

                  0=  Disables the MSSP2 interrupt

Note     1:  This register is only available on PIC16(L)F1829.

 2010-2015 Microchip Technology Inc.                                                               DS40001440E-page 91
PIC16(L)F1825/9

8.6.6         PIR1 REGISTER

The PIR1 register contains the interrupt flag bits, as        Note:          Interrupt flag bits are set when an interrupt

shown in Register 8-6.                                                       condition occurs, regardless of the state of

                                                                             its corresponding enable bit or the Global

                                                                             Enable bit, GIE, of the INTCON register.

                                                                             User  software       should  ensure     the

                                                                             appropriate interrupt flag bits are clear prior

                                                                             to enabling an interrupt.

REGISTER 8-6:           PIR1: PERIPHERAL INTERRUPT REQUEST REGISTER 1

     R/W-0/0      R/W-0/0    R-0/0                 R-0/0      R/W-0/0        R/W-0/0         R/W-0/0      R/W-0/0

TMR1GIF               ADIF   RCIF                  TXIF       SSP1IF         CCP1IF          TMR2IF       TMR1IF

bit 7                                                                                                                bit 0

Legend:

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

u = Bit is unchanged         x = Bit is unknown               -n/n = Value at POR and BOR/Value at all other Resets

‘1’ = Bit is set             ‘0’ = Bit is cleared

bit  7            TMR1GIF: Timer1 Gate Interrupt Flag bit

                  1 = Interrupt is pending

                  0 = Interrupt is not pending

bit  6            ADIF: A/D Converter Interrupt Flag bit

                  1 = Interrupt is pending

                  0 = Interrupt is not pending

bit  5            RCIF: USART Receive Interrupt Flag bit

                  1 = Interrupt is pending

                  0 = Interrupt is not pending

bit  4            TXIF: USART Transmit Interrupt Flag bit

                  1 = Interrupt is pending

                  0 = Interrupt is not pending

bit  3            SSP1IF: Synchronous Serial Port (MSSP) Interrupt Flag bit

                  1 = Interrupt is pending

                  0 = Interrupt is not pending

bit  2            CCP1IF: CCP1 Interrupt Flag bit

                  1 = Interrupt is pending

                  0 = Interrupt is not pending

bit  1            TMR2IF: Timer2 to PR2 Interrupt Flag bit

                  1 = Interrupt is pending

                  0 = Interrupt is not pending

bit  0            TMR1IF: Timer1 Overflow Interrupt Flag bit

                  1 = Interrupt is pending

                  0 = Interrupt is not pending

DS40001440E-page 92                                                                 2010-2015 Microchip Technology Inc.
                                                                           PIC16(L)F1825/9

8.6.7         PIR2 REGISTER

The PIR2 register contains the interrupt flag bits, as              Note:  Interrupt flag bits are set when an interrupt

shown in Register 8-7.                                                     condition occurs, regardless of the state of

                                                                           its corresponding enable bit or the Global

                                                                           Enable bit, GIE, of the INTCON register.

                                                                           User     software     should    ensure  the

                                                                           appropriate interrupt flag bits are clear prior

                                                                           to enabling an interrupt.

REGISTER 8-7:           PIR2: PERIPHERAL INTERRUPT REQUEST REGISTER 2

     R/W-0/0      R/W-0/0    R/W-0/0               R/W-0/0       R/W-0/0   U-0                   U-0       U-0

     OSFIF            C2IF             C1IF        EEIF          BCL1IF          —               —         CCP2IF

bit 7                                                                                                              bit      0

Legend:

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

u = Bit is unchanged         x = Bit is unknown              -n/n = Value at POR and BOR/Value at     all  other Resets

‘1’ = Bit is set             ‘0’ = Bit is cleared

bit  7            OSFIF: Oscillator Fail Interrupt Flag bit

                  1 = Interrupt is pending

                  0 = Interrupt is not pending

bit  6            C2IF: Comparator C2 Interrupt Flag bit

                  1 = Interrupt is pending

                  0 = Interrupt is not pending

bit  5            C1IF: Comparator C1 Interrupt Flag bit

                  1 = Interrupt is pending

                  0 = Interrupt is not pending

bit  4            EEIF: EEPROM Write Completion Interrupt Flag bit

                  1 = Interrupt is pending

                  0 = Interrupt is not pending

bit  3            BCL1IF: MSSP Bus Collision Interrupt Flag bit

                  1 = Interrupt is pending

                  0 = Interrupt is not pending

bit  2-1          CCP2IF: CCP2 Interrupt Flag bit

                  1 = Interrupt is pending

                  0 = Interrupt is not pending

bit  0            Unimplemented: Read as ‘0’

 2010-2015 Microchip Technology Inc.                                                            DS40001440E-page 93
PIC16(L)F1825/9

8.6.8        PIR3 REGISTER

The PIR3 register contains the interrupt flag bits, as                Note 1:  Interrupt   flag    bits  are      set    when  an

shown in Register 8-8.                                                         interrupt condition occurs, regardless of

                                                                               the state of its corresponding enable bit

                                                                               or     the  Global  Enable    bit,  GIE,  of    the

                                                                               INTCON register. User software should

                                                                               ensure the appropriate interrupt flag bits

                                                                               are clear prior to enabling an interrupt.

REGISTER 8-8:           PIR3: PERIPHERAL INTERRUPT REQUEST REGISTER 3

        U-0           U-0   R/W-0/0                R/W-0/0  R/W-0/0                  U-0           R/W-0/0               U-0

        —               —   CCP4IF                 CCP3IF   TMR6IF                    —            TMR4IF                —

bit 7                                                                                                                          bit 0

Legend:

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

u = Bit is unchanged        x = Bit is unknown              -n/n      = Value at POR  and BOR/Value      at  all  other  Resets

‘1’ = Bit is set            ‘0’ = Bit is cleared

bit  7-6          Unimplemented: Read as ‘0’

bit  5            CCP4IF: CCP4 Interrupt Flag bit

                  1 = Interrupt is pending

                  0 = Interrupt is not pending

bit  4            CCP3IF: CCP3 Interrupt Flag bit

                  1 = Interrupt is pending

                  0 = Interrupt is not pending

bit  3            TMR6IF: TMR6 to PR6 Match Interrupt       Flag bit

                  1 = Interrupt is pending

                  0 = Interrupt is not pending

bit  2            Unimplemented: Read as ‘0’

bit  1            TMR4IF: TMR4 to PR4 Match Interrupt       Flag bit

                  1 = Interrupt is pending

                  0 = Interrupt is not pending

bit  0            Unimplemented: Read as ‘0’

DS40001440E-page 94                                                                       2010-2015 Microchip Technology Inc.
                                                                                    PIC16(L)F1825/9

8.6.9        PIR4 REGISTER(1)

The PIR4 register contains the interrupt      flag   bits,  as        Note 1:       The PIR4 register is available only on the

shown in Register 8-9.                                                              PIC16(L)F1829 device.

                                                                                2:  Interrupt      flag   bits  are    set  when    an

                                                                                    interrupt condition occurs, regardless of

                                                                                    the state of its corresponding enable bit

                                                                                    or  the      Global   Enable  bit,  GIE,  of   the

                                                                                    INTCON register. User software should

                                                                                    ensure the appropriate interrupt flag bits

                                                                                    are clear prior to enabling an interrupt.

REGISTER 8-9:            PIR4: PERIPHERAL INTERRUPT REQUEST REGISTER 4(1)

       U-0            U-0                U-0            U-0           U-0               U-0              R/W/HS-0/0     R/W/HS-0/0

         —              —                 —                 —         —                 —                 BCL2IF            SSP2IF

bit 7                                                                                                                             bit 0

Legend:

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

u = Bit is unchanged              x = Bit is unknown                  -n/n = Value at POR and BOR/Value at all other Resets

‘1’ = Bit is set                  ‘0’ = Bit is cleared                HS = Bit is set by hardware

bit 7-6           Unimplemented: Read as ‘0’

bit 1             BCL2IF: MSSP2 Bus Collision Interrupt Flag bit

                  1=  A Bus Collision was detected (must be cleared in software)

                  0=  No Bus collision was detected

bit 0             SSP2IF: Master Synchronous Serial Port 2 (MSSP2) Interrupt Flag bit

                  1=  The Transmission/Reception/Bus Condition is complete (must be cleared in software)

                  0=  Waiting to Transmit/Receive/Bus Condition in progress

Note     1:  This register is only available on PIC16(L)F1829.

TABLE 8-1:        SUMMARY OF REGISTERS ASSOCIATED WITH INTERRUPTS

       Name       Bit 7           Bit 6       Bit 5            Bit 4  Bit 3         Bit 2          Bit 1        Bit 0       Register

                                                                                                                            on Page

INTCON                GIE         PEIE        TMR0IE           INTE   IOCIE         TMR0IF         INTF         IOCIF         87

OPTION_REG        WPUEN           INTEDG      TMR0CS        TMR0SE    PSA                        PS<2:0>                      176

PIE1              TMR1GIE         ADIE        RCIE             TXIE   SSP1IE        CCP1IE       TMR2IE         TMR1IE        88

PIE2              OSFIE           C2IE        C1IE             EEIE   BCL1IE        —              —            CCP2IE        89

PIE3                  —           —           CCP4IE        CCP3IE    TMR6IE        —            TMR4IE           —           90

PIE4(1)               —           —           —                 —     —             —            BCL2IE         SSP2IE        91

PIR1              TMR1GIF         ADIF        RCIF             TXIF   SSP1IF        CCP1IF       TMR2IF         TMR1IF        92

PIR2              OSFIF           C2IF        C1IF             EEIF   BCL1IF        —              —            CCP2IF        93

PIR3                  —           —           CCP4IF        CCP3IF    TMR6IF        —            TMR4IF           —           94

PIR4(1)               —           —           —                 —     —             —            BCL2IF         SSP2IF        95

Legend:      — Unimplemented locations read as ‘0’. Shaded cells are  not used  by  interrupts.

Note     1:  PIC16(L)F1829 only.

 2010-2015 Microchip Technology Inc.                                                                           DS40001440E-page 95
PIC16(L)F1825/9

9.0         POWER-DOWN MODE (SLEEP)                                    9.1        Wake-up from Sleep

The  Power-Down         mode  is  entered       by  executing       a  The device can wake-up from Sleep through one of the

SLEEP instruction.                                                     following events:

Upon entering Sleep mode, the following conditions exist:              1.     External Reset input on MCLR pin, if enabled

1.   WDT     will  be    cleared  but     keeps     running,    if     2.     BOR Reset, if enabled

     enabled for operation during Sleep.                               3.     POR Reset

2.   PD bit of the STATUS register is cleared.                         4.     Watchdog Timer, if enabled

3.   TO bit of the STATUS register is set.                             5.     Any external interrupt

4.   CPU clock is disabled.                                            6.     Interrupts  by  peripherals   capable   of  running

5.   31 kHz LFINTOSC is unaffected and peripherals                            during Sleep (see individual peripheral for more

     that operate from it may continue operation in                           information)

     Sleep.                                                            The first three events will cause a device Reset. The

6.   Timer1 oscillator is unaffected and peripherals                   last   three   events  are    considered  a  continuation     of

     that operate from it may continue operation in                    program    execution.     To  determine   whether  a   device

     Sleep.                                                            Reset      or    wake-up      event  occurred,     refer      to

7.   ADC is unaffected, if the dedicated FRC clock is                  Section 7.10 “Determining the Cause of a Reset”.

     selected.                                                         When the SLEEP instruction is being executed, the next

8.   Capacitive Sensing oscillator is unaffected.                      instruction (PC + 1) is prefetched. For the device to

9.   I/O ports maintain the status they had before                     wake-up through an interrupt event, the corresponding

     SLEEP   was        executed  (driving      high,  low      or     interrupt  enable    bit  must  be   enabled.  Wake-up     will

     high-impedance).                                                  occur regardless of the state of the GIE bit. If the GIE

10.  Resets  other      than  WDT    are    not  affected     by       bit is disabled, the device continues execution at the

     Sleep mode.                                                       instruction after the SLEEP instruction. If the GIE bit is

                                                                       enabled, the device executes the instruction after the

Refer   to   individual  chapters      for  more       details  on     SLEEP instruction, the device will then call the Interrupt

peripheral operation during Sleep.                                     Service Routine. In cases where the execution of the

To   minimize      current    consumption,       the   following       instruction following SLEEP     is not desirable, the user

conditions should be considered:                                       should have a NOP after the SLEEP instruction.

•   I/O pins should not be floating                                    The WDT is cleared when the device wakes up from

•   External circuitry sinking current from I/O pins                   Sleep, regardless of the source of wake-up.

•   Internal circuitry sourcing current from I/O pins                  9.1.1          WAKE-UP USING INTERRUPTS

•   Current draw from pins with internal weak pull-ups                 When global interrupts are disabled (GIE cleared) and

•   Modules using 31 kHz LFINTOSC                                      any interrupt source has both its interrupt enable bit

•   Modules using Timer1 oscillator                                    and interrupt flag bit set, one of the following will occur:

I/O  pins   that   are  high-impedance      inputs     should   be     •   If the interrupt occurs before the execution of a

pulled  to  VDD    or   VSS   externally    to  avoid  switching           SLEEP instruction

currents caused by floating inputs.                                        -  SLEEP instruction will execute as a NOP.

Examples of internal circuitry that might be sourcing                      -  WDT and WDT prescaler will not be cleared

current include modules such as the DAC and FVR                            -  TO bit of the STATUS register will not be set

modules.     See        Section 17.0        “Digital-to-Analog             -  PD bit of the STATUS register will not be

Converter (DAC) Module” and Section 14.0 “Fixed                               cleared.

Voltage    Reference     (FVR)”   for  more      information    on     •   If the interrupt occurs during or after the

these modules.                                                             execution of a SLEEP instruction

                                                                           -  SLEEP instruction will be completely

                                                                              executed

                                                                           -  Device will immediately wake-up from Sleep

                                                                           -  WDT and WDT prescaler will be cleared

                                                                           -  TO bit of the STATUS register will be set

                                                                           -  PD bit of the STATUS register will be cleared.

DS40001440E-page 96                                                                            2010-2015 Microchip Technology Inc.
                                                                                                       PIC16(L)F1825/9

Even if the flag bits were checked before executing a

SLEEP instruction, it may be possible for flag bits to

become set before the SLEEP instruction completes. To

determine whether a SLEEP instruction executed, test

the PD bit. If the PD bit is set, the SLEEP instruction

was executed as a NOP.

FIGURE 9-1:                  WAKE-UP FROM SLEEP THROUGH INTERRUPT

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

         OSC1(1)

CLKOUT(2)                                                              TOST(3)

Interrupt flag                                                                  Interrupt Latency(4)

GIE bit                                                  Processor in
(INTCON reg.)
                                                           Sleep

Instruction Flow

             PC          PC                PC + 1                 PC + 2                PC + 2             PC + 2          0004h                   0005h

Instruction       Inst(PC) = Sleep      Inst(PC + 1)                            Inst(PC + 2)                               Inst(0004h)    Inst(0005h)
Fetched

Instruction           Inst(PC - 1)         Sleep                                Inst(PC + 1)        Dummy Cycle           Dummy Cycle         Inst(0004h)
Executed

Note      1:      XT, HS or LP Oscillator mode assumed.

          2:      CLKOUT is not available in XT, HS, or LP Oscillator modes, but shown here for timing reference.

          3:      TOST = 1024 TOSC (drawing not to scale). This delay applies only to XT, HS or LP Oscillator modes.

          4:      GIE = 1 assumed. In this case after wake-up, the processor calls the ISR at 0004h. If GIE = 0, execution will continue in-line.

TABLE 9-1:            SUMMARY OF REGISTERS ASSOCIATED WITH POWER-DOWN MODE

Name              Bit 7             Bit 6          Bit 5          Bit 4         Bit 3               Bit 2          Bit 1       Bit 0               Register  on

                                                                                                                                                   Page

INTCON            GIE               PEIE           TMR0IE         INTE          IOCIE           TMR0IF             INTF        IOCIF               87

IOCAF                 —             —              IOCAF5       IOCAF4          IOCAF3          IOCAF2     IOCAF1              IOCAF0              138

IOCAN                 —             —              IOCAN5       IOCAN4          IOCAN3          IOCAN2     IOCAN1              IOCAN0              138

IOCAP                 —             —              IOCAP5       IOCAP4          IOCAP3          IOCAP2     IOCAP1              IOCAP0              137

IOCBF(1)          IOCBF7            IOCBF6         IOCBF5       IOCBF4              —               —              —              —                139

IOCBN(1)          IOCBN7            IOCBN6         IOCBN5       IOCBN4              —               —              —              —                139

IOCBP(1)          IOCBP7            IOCBP6         IOCBP5       IOCBP4              —               —              —              —                138

PIE1              TMR1GIE           ADIE           RCIE           TXIE          SSP1IE          CCP1IE     TMR2IE              TMR1IE              88

PIE2              OSFIE             C2IE           C1IE           EEIE          BCL1IE              —              —           CCP2IE              89

PIE4(1)               —             —                 —           —                 —               —      BCL2IE              SSP2IE              91

PIR1              TMR1GIF           ADIF           RCIF           TXIF          SSP1IF          CCP1IF     TMR2IF              TMR1IF              92

PIR2              OSFIF             C2IF           C1IF           EEIF          BCL1IF              —              —           CCP2IF              93

PIR4(1)               —             —                 —           —                 —               —          BCL2IF          SSP2IF              95

STATUS                —             —                 —           TO                PD              Z              DC              C               22

WDTCON                —             —                                         WDTPS<4:0>                                       SWDTEN              100

Legend:       — Unimplemented, read as      ‘0’.  Shaded cells  are not used  in Power-Down  mode.

Note     1:   PIC16(L)F1829 only.

 2010-2015 Microchip Technology Inc.                                                                                              DS40001440E-page 97
PIC16(L)F1825/9

10.0       WATCHDOG TIMER

The Watchdog Timer is a system timer that generates

a  Reset   if  the  firmware  does  not    issue  a  CLRWDT

instruction within the time-out period. The Watchdog

Timer  is  typically  used    to  recover  the  system  from

unexpected events.

The WDT has the following features:

•  Independent clock source

•  Multiple operating modes

   -  WDT is always on

   -  WDT is off when in Sleep

   -  WDT is controlled by software

   -  WDT is always off

•  Configurable time-out period is from 1 ms to 256

   seconds (typical)

•  Multiple Reset conditions

•  Operation during Sleep

FIGURE 10-1:               WATCHDOG TIMER BLOCK               DIAGRAM

      WDTE<1:0> = 01

               SWDTEN

      WDTE<1:0> = 11                                          LFINTOSC  23-bit Programmable  WDT Time-out

                                                                        Prescaler WDT

      WDTE<1:0> = 10

                    Sleep                                               WDTPS<4:0>

DS40001440E-page 98                                                      2010-2015          Microchip Technology  Inc.
                                                                                   PIC16(L)F1825/9

10.1    Independent Clock Source                                      10.3       Time-Out Period

The   WDT   derives   its  time        base  from    the  31 kHz      The     WDTPS     bits  of  the  WDTCON      register        set  the

LFINTOSC    internal      oscillator.  Time  intervals      in  this  time-out period from 1 ms to 256 seconds (nominal). After

chapter are based on a nominal interval of 1 ms. See                  a Reset, the default time-out period is two seconds.

Section 25.0    “Electrical   Specifications”             for   the

LFINTOSC tolerances.                                                  10.4       Clearing the WDT

10.2    WDT Operating Modes                                           The     WDT   is  cleared      when    any   of     the      following

                                                                      conditions occur:

The Watchdog Timer module has four operating modes                    •  Any Reset

controlled  by  the  WDTE<1:0>         bits  in  Configuration        •  CLRWDT instruction is executed

Word 1. See Table 10-1.                                               •  Device enters Sleep

10.2.1      WDT IS ALWAYS ON                                          •  Device wakes up from Sleep

When the WDTE bits of Configuration Word 1 are set to                 •  Oscillator fail event

‘11’, the WDT is always on.                                           •  WDT is disabled

WDT protection is active during Sleep.                                •  Oscillator Start-up TImer (OST) is running

10.2.2      WDT IS OFF IN SLEEP                                       See Table 10-2 for more information.

When the WDTE bits of Configuration Word 1 are set to                 10.5       Operation During Sleep

‘10’, the WDT is on, except in Sleep.                                 When the device enters Sleep, the WDT is cleared. If

WDT protection is not active during Sleep.                            the WDT is enabled during Sleep, the WDT resumes

10.2.3      WDT CONTROLLED BY SOFTWARE                                counting.

When the WDTE bits of Configuration Word 1 are set to                 When    the  device     exits  Sleep,   the  WDT         is  cleared

‘01’, the WDT is controlled by the SWDTEN bit of the                  again.  The    WDT      remains      clear   until  the      OST,  if

WDTCON register.                                                      enabled,     completes.     See  Section 5.0        “Oscillator

                                                                      Module     (With  Fail-Safe      Clock  Monitor)”        for  more

WDT     protection    is   unchanged         by     Sleep.      See   information on the OST.

Table 10-1 for more details.