0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心
发布
  • 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
PIC16F18313-I/MS

PIC16F18313-I/MS

  • 厂商:

    ACTEL(微芯科技)

  • 封装:

    TSSOP-8

  • 描述:

    PIC PIC® XLP™ 16F Microcontroller IC 8-Bit 32MHz 3.5KB (2K x 14) FLASH 8-MSOP

  • 数据手册
  • 价格&库存
PIC16F18313-I/MS 数据手册
PIC16(L)F18313/18323 Full-Featured, Low Pin Count Microcontrollers with XLP Description PIC16(L)F18313/18323 microcontrollers feature Analog, Core Independent Peripherals and Communication Peripherals, combined with eXtreme Low Power (XLP) for a wide range of general purpose and low-power applications. The Peripheral Pin Select (PPS) functionality enables pin mapping when using the digital peripherals (CLC, CWG, CCP, PWM and communications) to add flexibility to the application design. Core Features Power-Saving Functionality • C Compiler Optimized RISC Architecture • Only 48 Instructions • Operating Speed: - DC – 32 MHz clock input - 125 ns minimum instruction cycle • Interrupt Capability • 16-Level Deep Hardware Stack • Up to Four 8-bit Timers • Up to Three 16-bit Timers • Low-Current Power-on Reset (POR) • Power-up Timer (PWRT) • Brown-out Reset (BOR) • Low-Power BOR (LPBOR) Option • Extended Watchdog Timer (WDT) with Dedicated On-Chip Oscillator for Reliable Operation • Programmable Code Protection • Idle mode: ability to put the CPU core to Sleep while internal peripherals continue operating from the system clock • Doze mode: ability to run the CPU core slower than the system clock used by the internal peripherals • Sleep mode: Lowest Power Consumption • Peripheral Module Disable (PMD): peripheral power disable hardware module to minimize power consumption of unused peripherals Memory • • • • 3.5 Kbytes Program Flash Memory 256B Data SRAM Memory 256B of EEPROM Direct, Indirect and Relative Addressing Modes Operating Characteristics • Operating Voltage Range: - 1.8V to 3.6V (PIC16LF18313/18323) - 2.3V to 5.5V (PIC16F18313/18323) • Temperature Range: - Industrial: -40°C to 85°C - Extended: -40°C to 125°C eXtreme Low-Power (XLP) Features • • • • Sleep mode: 40 nA @ 1.8V, typical Watchdog Timer: 250 nA @ 1.8V, typical Secondary Oscillator: 300 nA @ 32 kHz Operating Current: - 8 A @ 32 kHz, 1.8V, typical - 37 A/MHz @ 1.8V, typical  2015-2019 Microchip Technology Inc. Digital Peripherals • Configurable Logic Cell (CLC): - Two CLCs - Integrated combinational and sequential logic • Complementary Waveform Generator (CWG): - Rising and falling edge dead-band control - Full-bridge, half-bridge, 1-channel drive - Multiple signal sources • Capture/Compare/PWM (CCP) modules: - Two CCPs - 16-bit resolution for Capture/Compare modes - 10-bit resolution for PWM mode • Pulse-Width Modulators (PWM) - Two 10-bit PWMs • Numerically Controlled Oscillator (NCO): - Precision linear frequency generator (@50% duty cycle) with 0.0001% step size of source input clock - Input Clock: 0 Hz < FNCO < 32 MHz - Resolution: FNCO/220 • Serial Communications: - EUSART - RS-232, RS-485, LIN compatible - Auto-Baud Detect, auto-wake-up on start - Master Synchronous Serial Port (MSSP) - SPI - I2C, SMBus, PMBus™ compatible • Data Signal Modulator (DSM): - Modulates a carrier signal with digital data to create custom carrier synchronized output waveforms DS40001799F-page 1 PIC16(L)F18313/18323 • Up to 12 I/O Pins: - Individually programmable pull-ups - Slew rate control - Interrupt-on-change with edge-select - Input level selection control (ST or TTL) - Digital open-drain enable • Peripheral Pin Select (PPS): - I/O pin remapping of digital peripherals • Timer modules: - Timer0: - 8/16-bit timer/counter - Synchronous or asynchronous operation - Programmable prescaler/postscaler - Time base for capture/compare function - Timer1 with gate control: - 16-bit timer/counter - Programmable internal or external clock sources - Multiple gate sources - Multiple gate modes - Time base for capture/compare function - Timer2: - 8-bit timers - Programmable prescaler/postscaler - Time base for PWM function Flexible Oscillator Structure • High-Precision Internal Oscillator: - Software-selectable frequency range up to 32 MHz - ±2% at nominal 4 MHz calibration point • 4x PLL with External Sources • Low-Power Internal 31 kHz Oscillator (LFINTOSC) • External Low-Power 32 kHz Crystal Oscillator (SOSC) • External Oscillator Block with: - Three Crystal/Resonator modes up to 20 MHz - Three External Clock modes up to 32 MHz - Fail-Safe Clock Monitor - Detects clock source failure - Oscillator Start-up Timer (OST) - Ensures stability of crystal oscillator sources Analog Peripherals • 10-bit Analog-to-Digital Converter (ADC): - Up to 11 external channels - Conversion available during Sleep • Comparator: - Up to two comparators - Fixed Voltage Reference at non-inverting input(s) - Comparator outputs externally accessible • 5-bit Digital-to-Analog Converter (DAC): - 5-bit resolution, rail-to-rail - Positive Reference Selection - Unbuffered I/O pin output - Internal connections to ADCs and comparators • Voltage Reference: - Fixed Voltage Reference with 1.024V, 2.048V and 4.096V output levels  2015-2019 Microchip Technology Inc. DS40001799F-page 2 PIC16(L)F18313/18323 1 1/1 2 1 Y Y Y Y I 1 1/1 2 1 Y Y Y Y I PIC16(L)F18324 (2) 4096 7 256 512 12 11 1 2 2 1 4/3 4 2 1 1 1/1 4 1 Y Y Y Y I PIC16(L)F18325 (3) 8192 14 256 1024 12 11 1 2 2 1 4/3 4 2 1 1 2/2 4 1 Y Y Y Y I PIC16(L)F18326 (4) 16384 28 256 2048 12 15 1 2 2 1 4/3 4 2 1 1 2/2 4 1 Y Y Y Y I Debug(1) 1 1 Idle and Doze 2 2 XLP 2 2 PMD 2/1 2/1 PPS 1 1 CLC 1 1 DSM 1 2 I2C/SPI 1 1 EUSART 5 12 11 NCO 6 256 10-bit PWM 10-bit ADC (ch) 256 256 CCP I/Os(2) 256 3.5 Timers (8/16-bit) Data SRAM (bytes) 3.5 2048 Clock Ref Data Memory (bytes) 2048 (1) CWG Program Flash Memory (Kbytes) (1) PIC16(L)F18323 5-bit DAC Program Flash Memory (Words) PIC16(L)F18313 High-Speed/ Comparators Device Data Sheet Index PIC16(L)F183XX Family Types PIC16(L)F18344 (2) 4096 7 256 512 18 17 1 2 2 1 4/3 4 2 1 1 1/1 4 1 Y Y Y Y I PIC16(L)F18345 (3) 8192 14 256 1024 18 17 1 2 2 1 4/3 4 2 1 1 2/2 4 1 Y Y Y Y I PIC16(L)F18346 (4) 16384 28 256 2048 18 21 1 2 2 1 4/3 4 2 1 1 2/2 4 1 Y Y Y Y I Note 1: Debugging Methods: (I) – Integrated on Chip; 2: One pin is input-only. Data Sheet Index: (Unshaded devices are described in this document.) 1: DS40001799 PIC16(L)F18313/18323 Data Sheet, Full-Featured, Low Pin Count Microcontrollers with XLP 2: DS40001800 PIC16(L)F18324/18344 Data Sheet, Full Featured, Low Pin Count Microcontrollers with XLP 3: DS40001795 PIC16(L)F18325/18345 Data Sheet, Full Featured, Low Pin Count Microcontrollers with XLP 4: DS40001839 PIC16(L)F18326/18346 Data Sheet, Full Featured, Low Pin Count Microcontrollers with XLP Note: For other small form-factor package availability and marking information, please visit http://www.microchip.com/packaging or contact your local sales office.  2015-2019 Microchip Technology Inc. DS40001799F-page 3 PIC16(L)F18313/18323 Pin Diagrams 1 RA5 2 RA4 3 VPP/MCLR/RA3 4 8 VSS 7 RA0/ICSPDAT 6 RA1/ICSPCLK 5 RA2 14-PIN PDIP, SOIC, TSSOP VDD RA5 RA4 VPP/MCLR/RA3 RC5 RC4 RC3 1 2 3 4 5 6 7 14 13 12 11 10 9 8 VSS RA0/ICSPDAT RA1/ICSPCLK RA2 RC0 RC1 RC2 16-PIN UQFN 16 15 14 13 VDD NC FIGURE 3: PIC16(L)F18313 VDD PIC16(L)F18323 FIGURE 2: 8-PIN PDIP, SOIC, UDFN NC VSS FIGURE 1: 1 2 PIC16(L)F18323 3 4 12 11 10 9 RA0/ICSPDAT RA1/ICSPCLK RA2 RC0 RC4 RC3 RC2 RC1 5 6 7 8 RA5 RA4 RA3/MCLR/VPP RC5 Note 1: It is recommended that the exposed bottom pad be connected to VSS, but must not be the main VSS connection to the device.  2015-2019 Microchip Technology Inc. DS40001799F-page 4 ADC Reference Comparator NCO DAC DSM Timers CCP PWM CWG MSSP EUSART CLC CLKR Interrupt Pull-up Basic RA0 8-PIN ALLOCATION TABLE (PIC16(L)F18313) PDIP/SOIC/UDFN I/O(2)  2015-2019 Microchip Technology Inc. TABLE 1: 7 ANA0 — C1IN0+ — DAC1OUT MDCIN1(1) — — — — — — CLCIN3(1) — IOC Y ICDDAT/ ICSPDAT ANA1 VREF+ C1IN0- — DAC1REF+ MDMIN(1) — — — — SCK1(1) SCL1(1,3,4) RX(1) CLCIN2(1) — IOC Y ICDCLK/ ICSPCLK RA1 5 ANA2 VREF- — — DAC1REF- — T0CKI(1) — — CWG1IN(1) SDA1(1,3,4) SDI1(1) — — — INT(1) IOC Y — RA3 4 — — — — — — — — — — SS1(1) — CLCIN0(1) — IOC Y MCLR VPP RA4 3 ANA4 — C1IN1- — — — T1G(1) SOSCO — — — — — — — IOC Y CLKOUT OSC2 RA5 2 ANA5 — — — — MDCIN2(1) T1CKI(1) SOSCIN SOSCI CCP1(1) CCP2(1) — — — — CLCIN1(1) — IOC Y CLKIN OSC1 VDD 1 — — — — — — — — — — — — — — — — VDD VSS 8 — — — — — — — — — — — — — — — — VSS — — — C1OUT NCO — DSM TMR0 CCP1 PWM5 CWG1A SDA1(3) CK CLC1OUT CLKR — — — PWM6 CWG1B SCL1(3) DT CLC2OUT OUT(2) Note 1: 2: 3: 4: — — — — — — — — CCP2 — — — — — — — — — — — — — — CWG1C SDO1 TX — — — — — — — — — — — — — — — CWG1D SCK1 — — — — — — Default peripheral input. Input can be moved to any other pin with the PPS input selection registers. See Register 13-1. All pin outputs default to PORT latch data. Any pin can be selected as a digital peripheral output with the PPS output selection registers. See Register 13-2. These peripheral functions are bidirectional. The output pin selections must be the same as the input pin selections. These pins are configured for I2C logic levels as described in Section 13.3 “Bidirectional Pins”; clock and data signals may be assigned to any of these pins. Assignments to the other pins (e.g., RA5) will operate, but logic levels will be standard TTL/ST as selected by the INLVL register. DS40001799F-page 5 PIC16(L)F18313/18323 RA2 PDIP/SOIC/TSSOP UQFN ADC Reference Comparator NCO DAC DSM Timers CCP PWM CWG MSSP EUSART CLC CLKR Interrupt Pull-up Basic  2015-2019 Microchip Technology Inc. I/O(2) 14/16-PIN ALLOCATION TABLE (PIC16(L)F18323) RA0 13 12 ANA0 — C1IN0+ — DAC1OUT — — — — — — — — — IOC Y ICDDAT/ ICSPDAT RA1 12 11 ANA1 VREF+ C1IN0C2IN0- — DAC1REF+ — — — — — — — — — IOC Y ICDCLK/ ICSPCLK RA2 11 10 ANA2 VREF- — — DAC1REF- — T0CKI(1) — — CWG1IN(1) — — — — INT(1) IOC Y — RA3 4 3 — — — — — — — — — — — — — — IOC Y MCLR VPP RA4 3 2 ANA4 — — — — — T1G(1) SOSCO — — — — — — — IOC Y CLKOUT OSC2 RA5 2 1 ANA5 — — — — — T1CKI(1) SOSCIN SOSCI — — — — — CLCIN3(1) — IOC Y CLKIN OSC1 RC0 10 9 ANC0 — C2IN0+ — — — — — — — SCK1(1) SCL1(1,3,4) — — — IOC Y — RC1 9 8 ANC1 — C1IN1C2IN1- — — — — — — — SDI1(1) SDA1(1,3,4) — CLCIN2(1) — IOC Y — RC2 8 7 ANC2 — C1IN2C2IN2- — — MDCIN1(1) — — — — — — — — IOC Y — RC3 7 6 ANC3 — C1IN3C2IN3- — — MDMIN(1) — CCP2(1) — — SS1(1) — CLCIN0(1) — IOC Y — RC4 6 5 ANC4 — — — — — — — — — — — CLCIN1(1) — IOC Y — — CCP1(1) — — — RX(1) — — IOC Y — — — — — — — — — — — VDD RC5 5 4 ANC5 — — — — MDCIN2(1) VDD 1 16 — — — — — — VSS 14 13 — — — — — — — — — — — — — — — — VSS — — — — C1OUT NCO — DSM TMR0 CCP1 PWM5 CWG1A SDA1(3) CK CLC1OUT CLKR — — — — — — — C2OUT — — — — CCP2 PWM6 CWG1B SCL1(3) DT CLC2OUT — — — — — — — — — — — — — OUT(2) Note 1: 2: 3: 4: — — — — — — — — — — — CWG1C SDO1 TX — — — — — — — — — — — CWG1D SCK1 — Default peripheral input. Input can be moved to any other pin with the PPS input selection registers. See Register 13-1. All pin outputs default to PORT latch data. Any pin can be selected as a digital peripheral output with the PPS output selection registers. See Register 13-2. These peripheral functions are bidirectional. The output pin selections must be the same as the input pin selections. These pins are configured for I2C logic levels as described in Section 13.3 “Bidirectional Pins”; clock and data signals may be assigned to any of these pins. Assignments to other pins (e.g. RA5) will operate, but logic levels will be standard TTL/ST as selected by the INLVL register. PIC16(L)F18313/18323 DS40001799F-page 6 TABLE 2: PIC16(L)F18313/18323 Table of Contents 1.0 Device Overview .......................................................................................................................................................................... 9 2.0 Guidelines for Getting Started With PIC16(L)F183XX Microcontrollers ..................................................................................... 16 3.0 Enhanced Mid-Range CPU ........................................................................................................................................................ 19 4.0 Memory Organization ................................................................................................................................................................. 21 5.0 Device Configuration .................................................................................................................................................................. 51 6.0 Resets ........................................................................................................................................................................................ 58 7.0 Oscillator Module........................................................................................................................................................................ 66 8.0 Interrupts .................................................................................................................................................................................... 85 9.0 Power-Saving Operation Modes .............................................................................................................................................. 101 10.0 Watchdog Timer (WDT) ........................................................................................................................................................... 107 11.0 Nonvolatile Memory (NVM) Control.......................................................................................................................................... 111 12.0 I/O Ports ................................................................................................................................................................................... 128 13.0 Peripheral Pin Select (PPS) Module ........................................................................................................................................ 142 14.0 Peripheral Module Disable ....................................................................................................................................................... 148 15.0 Interrupt-on-Change ................................................................................................................................................................. 154 16.0 Fixed Voltage Reference (FVR) .............................................................................................................................................. 160 17.0 Temperature Indicator Module ................................................................................................................................................. 163 18.0 Comparator Module.................................................................................................................................................................. 165 19.0 Pulse-Width Modulation (PWM) ............................................................................................................................................... 174 20.0 Complementary Waveform Generator (CWG) Module ............................................................................................................ 180 21.0 Configurable Logic Cell (CLC).................................................................................................................................................. 202 22.0 Analog-to-Digital Converter (ADC) Module .............................................................................................................................. 217 23.0 Numerically Controlled Oscillator (NCO1) Module ................................................................................................................... 231 24.0 5-bit Digital-to-Analog Converter (DAC1) Module .................................................................................................................... 242 25.0 Data Signal Modulator (DSM) Module...................................................................................................................................... 246 26.0 Timer0 Module ......................................................................................................................................................................... 257 27.0 Timer1 Module with Gate Control............................................................................................................................................. 264 28.0 Timer2 Module ......................................................................................................................................................................... 277 29.0 Capture/Compare/PWM Modules ............................................................................................................................................ 282 30.0 Master Synchronous Serial Port (MSSP1) Module .................................................................................................................. 293 31.0 Enhanced Universal Synchronous Asynchronous Receiver Transmitter (EUSART1) ............................................................. 346 32.0 Reference Clock Output Module .............................................................................................................................................. 371 33.0 In-Circuit Serial Programming™ (ICSP™) ............................................................................................................................... 374 34.0 Instruction Set Summary .......................................................................................................................................................... 376 35.0 Electrical Specifications............................................................................................................................................................ 390 36.0 DC and AC Characteristics Graphs and Charts ....................................................................................................................... 420 37.0 Development Support............................................................................................................................................................... 441 38.0 Packaging Information.............................................................................................................................................................. 445 Appendix A: Data Sheet Revision History ........................................................................................................................................ 467 The Microchip WebSite ..................................................................................................................................................................... 468 Customer Change Notification Service ............................................................................................................................................. 468 Customer Support ............................................................................................................................................................................. 468 Product Identification System ........................................................................................................................................................... 469  2015-2019 Microchip Technology Inc. DS40001799F-page 7 PIC16(L)F18313/18323 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 Website 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 Website; 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 website at www.microchip.com to receive the most current information on all of our products.  2015-2019 Microchip Technology Inc. DS40001799F-page 8 PIC16(L)F18313/18323 DEVICE OVERVIEW Figure 1-1 shows a block diagram of the PIC16(L)F18313/18323 devices. Table 1-2 shows the pinout descriptions. Reference Table 1-1 for peripherals available per device. TABLE 1-1: DEVICE PERIPHERAL SUMMARY Peripheral PIC16(L)F18323 The PIC16(L)F18313/18323 are described within this data sheet. The PIC16(L)F18313 is available in 8-pin PDIP, SOIC and UDFN packages, and the PIC16(L)F18323 is available in 14-pin PDIP, SOIC and TSSOP packages and 16-pin UQFN packages. PIC16(L)F18313 1.0 Analog-to-Digital Converter (ADC) ● ● Temperature Indicator ● ● DAC1 ● ● ADCFVR ● ● CDAFVR ● ● DSM1 ● ● NCO1 ● ● CCP1 ● ● CCP2 ● ● C1 ● ● Digital-to-Analog Converter (DAC) Fixed Voltage Reference (FVR) Digital Signal Modulator (DSM) Numerically Controlled Oscillator (NCO) Capture/Compare/PWM Modules (CCP) Comparators C2 ● Complementary Waveform Generator (CWG) CWG1 ● ● CLC1 ● ● CLC2 ● ● Configurable Logic Cell (CLC) Enhanced Universal Synchronous/Asynchronous Receiver/ Transmitter (EUSART) EUSART1 ● ● MSSP1 ● ● PWM5 ● ● PWM6 ● ● TMR0 ● ● TMR1 ● ● TMR2 ● ● Master Synchronous Serial Port (MSSP) Pulse-Width Modulator (PWM) Timers (TMR)  2015-2019 Microchip Technology Inc. DS40001799F-page 9  2015-2019 Microchip Technology Inc. FIGURE 1-1: PIC16(L)F18313/18323 BLOCK DIAGRAM Program Flash Memory Rev. 10-000039Z 5/25/2017 RAM Timing Generation CLKOUT/OSC2 PORTA EXTOSC Oscillator CLKIN/OSC1 CPU PORTC(2) (Note 3) Secondary Oscillator (SOSC) SOSCI SOSCO MCLR EUSART1 NCO1 PWM5 Temp Indicator Timer2 CWG2 Timer1 CWG1 DS40001799F-page 10 Note 1: See available chapters for more information on peripherals. 2: Available on PIC16(L)F18323 only. 3: See Figure 4-1. Timer0 CLC2 C2(2) ADC 10-bit C1 CLC1 WDT MSSP1 DAC1 CCP2 FVR CCP1 PIC16(L)F18313/18323 PWM6 PIC16(L)F18313/18323 TABLE 1-2: PIC16(L)F18313 PINOUT DESCRIPTION Name RA0/ANA0/C1IN0+/ DAC1OUT/CLCIN3(1)/MDCIN1(1)/ ICSPDAT/ICDDAT Function Input Type Output Type Description RA0 TTL/ST CMOS ANA0 AN — General purpose I/O. C1IN0+ AN — Comparator C1 positive input. DAC1OUT — AN Digital-to-Analog Converter output. ADC Channel A0 input. CLCIN3 TTL/ST — Configurable Logic Cell source input. MDCIN1 TTL/ST — Modular Carrier input 1. ICSPDAT TTL/ST — ICSP™ Data I/O. ICDDAT TTL/ST — RA1 TTL/ST CMOS ANA1 AN — RA1/ANA1/VREF+/C1IN0-/ MDMIN(1)/CLCIN2(1)/SCK1(3)/ SCL1(3)/RX(1)/DAC1REF+/ ICSPCLK/ICDCLK In-Circuit Debug Data I/O. General purpose I/O. ADC Channel A1 input. VREF+ AN — ADC Voltage Reference Positive input. C1IN0- AN — Comparator C1 negative input. MDMIN TTL/ST — Modulator Source Input. CLCIN2 TTL/ST — Configurable Logic Cell source input. SCK1 TTL/ST — SPI clock. SCL1 I2C OD I2C clock input/output. RX TTL/ST — EUSART asynchronous input. DAC1REF+ AN — Digital-to-Analog Converter positive reference voltage input. ICSPCLK — CMOS Serial Programming Clock. ICDCLK — CMOS In-Circuit Debug Clock. General purpose I/O. RA2/ANA2/VREF-/DAC1REF-/ SDI1(1,3)/SDA1(1,3)/T0CKI(1)/ CWG1IN(1)/INT(1) RA2 TTL/ST CMOS ANA2 AN — VREF- AN — ADC Voltage Reference Negative input. DAC1REF- AN — Digital-to-Analog Converter negative reference voltage input. ADC Channel A3 input. SDI1 TTL/ST — SPI Data Input. SDA1 I2C OD I2C clock input/output. TMR0 clock input. T0CKI TTL/ST — CWG1IN TTL/ST — Complementary Waveform Generator input. INT TTL/ST — External interrupt. RA3 TTL/ST CMOS MCLR TTL/ST — Master Clear with internal pull-up. VPP HV — Programming voltage. RA3/MCLR/VPP/SS1(1)/CLCIN0(1) General purpose I/O. SS1 TTL/ST — Slave Select input. CLCIN0 TTL/ST — Configurable Logic Cell source input. Legend: AN = Analog input or output CMOS = CMOS compatible input or output OD = Open-Drain TTL = TTL compatible input ST = Schmitt Trigger input with CMOS levels I2C = Schmitt Trigger input with I2C HV = High Voltage XTAL = Crystal levels Note 1: Default peripheral input. Input can be moved to any other pin with the PPS input selection registers. See Register 13-1. 2: All pin outputs default to PORT latch data. Any pin can be selected as a digital peripheral output with the PPS output selection registers. See Register 13-2. 3: These I2C functions are bidirectional. The output pin selections must be the same as the input pin selections.  2015-2019 Microchip Technology Inc. DS40001799F-page 11 PIC16(L)F18313/18323 TABLE 1-2: PIC16(L)F18313 PINOUT DESCRIPTION (CONTINUED) Name Function Input Type Output Type RA4 TTL/ST CMOS RA4/ANA4/C1IN1-/T1G(1)/ SOSCO/OSC2/CLKOUT RA5/ANA5/MDCIN2(1)/T1CKI(1)/ SOSCIN/SOSCI/CLCIN1(1)/ CCP1(1)/CCP2(2)/OSC1/CLKIN OUT(2) Description General purpose I/O. ANA4 AN — ADC Channel A4 input. C1IN1- AN — Comparator C1 negative input. T1G TTL/ST — SOSCO — XTAL TMR1 gate input. Secondary Oscillator Connection. OSC2 — XTAL Crystal/Resonator (LP, XT, HS modes). CLKOUT — CMOS FOSC/4 output. RA5 TTL/ST CMOS General purpose I/O. ANA5 AN — ADC Channel A5 input. MDCIN2 TTL/ST — Modular Carrier input 2. T1CKI TTL/ST — TMR1 clock input. SOSCIN TTL/ST — Secondary Oscillator Input Connection. SOSCI XTAL — Secondary Oscillator Connection. CLCIN1 TTL/ST — Configurable Logic Cell source input. CCP1 TTL/ST — Capture/Compare/PWM1 input. CCP2 TTL/ST — Capture/Compare/PWM2 input. OSC1 XTAL — Crystal/Resonator (LP, XT, HS modes). External clock input. CLKIN TTL/ST — C1OUT — CMOS Comparator output. NCO1 — CMOS NCO output. CCP1 — CMOS Capture/Compare/PWM1 output. CCP2 — CMOS Capture/Compare/PWM2 output. PWM5 — CMOS PWM5 output. PWM6 — CMOS PWM6 output. CWG1A — CMOS Complementary Waveform Generator Output A. CWG1B — CMOS Complementary Waveform Generator Output B. CWG1C — CMOS Complementary Waveform Generator Output C. CWG1D — CMOS Complementary Waveform Generator Output D. SDA1(3) — OD I2C data input/output. SDO1 — CMOS SPI data output. SCK1 — CMOS SPI clock output. SCL1(3) — OD I2C clock output. TX/CK — CMOS EUSART asynchronous TX data/synchronous clock output. DT — CMOS EUSART synchronous data output. CLC1OUT — CMOS Configurable Logic Cell 1 source output. CLC2OUT — CMOS Configurable Logic Cell 2 source output. DSM — CMOS Modulator output. TMR0 — CMOS TMR0 output. CLKR — CMOS Clock reference output. Legend: AN = Analog input or output CMOS = CMOS compatible input or output OD = Open-Drain TTL = TTL compatible input ST = Schmitt Trigger input with CMOS levels I2C = Schmitt Trigger input with I2C HV = High Voltage XTAL = Crystal levels Note 1: Default peripheral input. Input can be moved to any other pin with the PPS input selection registers. See Register 13-1. 2: All pin outputs default to PORT latch data. Any pin can be selected as a digital peripheral output with the PPS output selection registers. See Register 13-2. 3: These I2C functions are bidirectional. The output pin selections must be the same as the input pin selections.  2015-2019 Microchip Technology Inc. DS40001799F-page 12 PIC16(L)F18313/18323 TABLE 1-3: PIC16(L)F18323 PINOUT DESCRIPTION Name RA0/ANA0/C1IN0+/ DAC1OUT/ICSPDAT/ICDDAT RA1/ANA1/VREF+/C1IN0-/ C2IN0-/DAC1REF+/ICSPCLK/ ICDCLK RA2/ANA2/VREF-/DAC1REF-/ T0CKI(1)/CWG1IN(1)/INT(1) RA3/MCLR/VPP RA4/ANA4/T1G(1)/SOSCO/ OSC2/CLKOUT RA5/ANA5/T1CKI(1)/CLCIN3(1)/ SOSCI/SOSCIN/OSC1/CLKIN Function Input Type Output Type Description RA0 TTL/ST CMOS ANA0 AN — ADC Channel A0 input. General purpose I/O. C1IN0+ AN — Comparator C1 positive input. DAC1OUT — AN Digital-to-Analog Converter output. ICSPDAT TTL/ST — ICSP™ Data I/O. ICDDAT TTL/ST — In-Circuit Debug Data I/O. RA1 TTL/ST CMOS ANA1 AN — General purpose I/O. VREF+ AN — ADC Voltage Reference input. C1IN0- AN — Comparator C1 negative input. Comparator C2 negative input. ADC Channel A1 input. C2IN0- AN — DAC1REF+ AN — Digital-to-Analog Converter positive reference voltage input. ICSPCLK TTL/ST — Serial Programming Clock. ICDCLK TTL/ST — In-Circuit Debug Clock. RA2 TTL/ST CMOS ANA2 AN — ADC Channel A2 input. General purpose I/O. VREF- AN — ADC Negative Voltage Reference input. DAC1REF- AN — Digital-to-Analog Converter negative reference voltage input. T0CKI TTL/ST — TMR0 clock input. CWG1IN TTL/ST — Complementary Waveform Generator input. INT TTL/ST — RA3 TTL/ST CMOS MCLR TTL/ST — Master Clear with internal pull-up. VPP HV — Programming voltage. RA4 TTL/ST CMOS ANA4 AN — External interrupt. General purpose I/O. General purpose I/O. ADC Channel A4 input. T1G TTL/ST — SOSCO — XTAL Secondary Oscillator Connection. TMR1 gate input. Crystal/Resonator (LP, XT, HS modes). OSC2 — XTAL CLKOUT — CMOS FOSC/4 output. RA5 TTL/ST CMOS General purpose I/O. ANA5 AN — ADC Channel A5 input. T1CKI TTL/ST — TMR1 clock input. CLCIN3 TTL/ST — Configurable Logic Cell source input. SOSCI XTAL — Secondary Oscillator Connection. SOSCIN TTL/ST — Secondary Oscillator Input Connection. OSC1 XTAL — Crystal/Resonator (LP, XT, HS modes). CLKIN TTL/ST — External clock input. Legend: AN = Analog input or output CMOS = CMOS compatible input or output OD = Open-Drain TTL = TTL compatible input ST = Schmitt Trigger input with CMOS levels I2C = Schmitt Trigger input with I2C HV = High Voltage XTAL = Crystal levels Note 1: Default peripheral input. Input can be moved to any other pin with the PPS input selection registers. See Register 13-1. 2: All pin outputs default to PORT latch data. Any pin can be selected as a digital peripheral output with the PPS output selection registers. See Register 13-2. 3: These I2C functions are bidirectional. The output pin selections must be the same as the input pin selections.  2015-2019 Microchip Technology Inc. DS40001799F-page 13 PIC16(L)F18313/18323 TABLE 1-3: PIC16(L)F18323 PINOUT DESCRIPTION (CONTINUED) Name RC0/ANC0/C2IN0+/SCL1(1)/ SCK1(1) RC1/ANC1/C1IN1-/C2IN1-/ SDA1(1)/SDI1(1)/CLCIN2(1) RC2/ANC2/C1IN2-/C2IN2-/ MDCIN1(1) RC3/ANC3/C1IN3-/C2IN3-/ MDMIN(1)/CCP2(1)/CLCIN0(1)/ SS1(1) RC4/ANC4/CLCIN1 (1) RC5/ANC5/MDCIN2(1)/CCP1(1)/ RX(1) Function Input Type Output Type RC0 TTL/ST CMOS Description General purpose I/O. ANC0 AN — ADC Channel C0 input. C2IN0+ AN — Comparator positive input. SCL1 I 2C OD I2C clock. SCK1 TTL/ST — SPI clock. RC1 TTL/ST CMOS ANC1 AN — ADC Channel C1 input. General purpose I/O. C1IN1- AN — Comparator C1 negative input. C2IN1- AN — Comparator C2 negative input. SDA1 2 OD I2C data. I C SDI1 TTL/ST — SPI data input. CLCIN2 TTL/ST — Configurable Logic Cell source input. RC2 TTL/ST CMOS General purpose I/O. ANC2 AN — ADC Channel C2 input. C1IN2- AN — Comparator C1 negative input. C2IN2- AN — Comparator C2 negative input. MDCIN1 TTL/ST — Modular Carrier input 1. RC3 TTL/ST CMOS ANC3 AN — ADC Channel C3 input. C1IN3- AN — Comparator C1 negative input. C2IN3- AN — Comparator C2 negative input. MDMIN TTL/ST — Modular Source input. CCP2 TTL/ST — Capture/Compare/PWM2. CLCIN0 TTL/ST — Configurable Logic Cell source input. SS1 TTL/ST — Slave Select input. RC4 TTL/ST CMOS ANC4 AN — ADC Channel C4 input. Configurable Logic Cell source input. CLCIN1 TTL/ST — RC5 TTL/ST CMOS General purpose I/O. General purpose I/O. General purpose I/O. ANC5 AN — ADC Channel C5 input. MDCIN2 TTL/ST — Modular Carrier input 2. CCP1 TTL/ST — Capture/Compare/PWM1. RX TTL/ST — EUSART asynchronous input. 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 TTL = TTL compatible input ST = Schmitt Trigger input with CMOS levels I2C = Schmitt Trigger input with I2C HV = High Voltage XTAL = Crystal levels Note 1: Default peripheral input. Input can be moved to any other pin with the PPS input selection registers. See Register 13-1. 2: All pin outputs default to PORT latch data. Any pin can be selected as a digital peripheral output with the PPS output selection registers. See Register 13-2. 3: These I2C functions are bidirectional. The output pin selections must be the same as the input pin selections.  2015-2019 Microchip Technology Inc. DS40001799F-page 14 PIC16(L)F18313/18323 TABLE 1-3: PIC16(L)F18323 PINOUT DESCRIPTION (CONTINUED) Name OUT(2) Function Input Type Output Type C1OUT — CMOS Comparator output. C2OUT — CMOS Comparator output. CCP1 — CMOS Capture/Compare/PWM1 output. CCP2 — CMOS Capture/Compare/PWM2 output. PWM5 — CMOS PWM5 output. Description PWM6 — CMOS PWM6 output. CWG1A — CMOS Complementary Waveform Generator Output A. CWG1B — CMOS Complementary Waveform Generator Output B. CWG1C — CMOS Complementary Waveform Generator Output C. CWG1D — CMOS SDA1(3) — OD SDO1 — CMOS SPI data output. SCK1 — CMOS SPI clock output. — OD I2C clock output. SCL1 (3) Complementary Waveform Generator Output D. I2C data input/output. TX/CK — CMOS EUSART asynchronous TX data/synchronous clock output. DT — CMOS EUSART synchronous data output. CLC1OUT — CMOS Configurable Logic Cell 1 source output. CLC2OUT — CMOS Configurable Logic Cell 2 source output. NCO1 — CMOS Numerically controlled oscillator output. DSM — CMOS Data Signal Modulator output. TMR0 — CMOS TMR0 clock output. Legend: AN = Analog input or output CMOS = CMOS compatible input or output OD = Open-Drain TTL = TTL compatible input ST = Schmitt Trigger input with CMOS levels I2C = Schmitt Trigger input with I2C HV = High Voltage XTAL = Crystal levels Note 1: Default peripheral input. Input can be moved to any other pin with the PPS input selection registers. See Register 13-1. 2: All pin outputs default to PORT latch data. Any pin can be selected as a digital peripheral output with the PPS output selection registers. See Register 13-2. 3: These I2C functions are bidirectional. The output pin selections must be the same as the input pin selections.  2015-2019 Microchip Technology Inc. DS40001799F-page 15 PIC16(L)F18313/18323 2.0 GUIDELINES FOR GETTING STARTED WITH PIC16(L)F183XX MICROCONTROLLERS 2.1 Basic Connection Requirements Getting started with the PIC16(L)F183XX family of 8-bit microcontrollers requires attention to a minimal set of device pin connections before proceeding with development. The following pins must always be connected: • All VDD and VSS pins (see Section 2.2 “Power Supply Pins”) • MCLR pin (when configured for external operation) (see Section 2.3 “Master Clear (MCLR) Pin”) These pins must also be connected if they are being used in the end application: • ICSPCLK/ICSPDAT pins used for In-Circuit Serial Programming™ (ICSP™) and debugging purposes (see Section 2.4 “ICSP™ Pins”) • OSC1 and OSC2 pins when an external oscillator source is used (see Section 2.5 “External Oscillator Pins”) Additionally, the following pins may be required: • VREF+/VREF- pins are used when external voltage reference for analog modules is implemented The minimum mandatory connections are shown in Figure 2-1. FIGURE 2-1: RECOMMENDED MINIMUM CONNECTIONS (Note 1) C2 R1 VSS VDD VDD R2 MCLR/VPP C1 PIC16(L)F1xxx VSS Key (all values are recommendations): C1 and C2: 0.1 PF, 20V ceramic R1: 10 kȍ R2: 100ȍ to 470ȍ Note1: Only when MCLRE configuration bit is 1 and the MCLR pin does not have a weak pull-up.  2015-2019 Microchip Technology Inc. 2.2 2.2.1 Power Supply Pins DECOUPLING CAPACITORS The use of decoupling capacitors on every pair of power supply pins (VDD and VSS) is required. All VDD and VSS pins must be connected. None can be left floating. Consider the following criteria when using decoupling capacitors: • Value and type of capacitor: A 0.1 µF (100 nF), 10-20V capacitor is recommended. The capacitor should be a low-ESR device, with a resonance frequency in the range of 200 MHz and higher. Ceramic capacitors are recommended. • Placement on the printed circuit board: The decoupling capacitors should be placed as close to the pins as possible. It is recommended to place the capacitors on the same side of the board as the device. If space is constricted, the capacitor can be placed on another layer on the PCB using a via; however, ensure that the trace length from the pin to the capacitor is no greater than 0.25 inch (6 mm). • Handling high-frequency noise: If the board is experiencing high-frequency noise (upward of tens of MHz), add a second ceramic type capacitor in parallel to the above described decoupling capacitor. The value of the second capacitor can be in the range of 0.01 µF to 0.001 µF. Place this second capacitor next to each primary decoupling capacitor. In high-speed circuit designs, consider implementing a decade pair of capacitances as close to the power and ground pins as possible (e.g., 0.1 µF in parallel with 0.001 µF). • Maximizing performance: On the board layout from the power supply circuit, run the power and return traces to the decoupling capacitors first, and then to the device pins. This ensures that the decoupling capacitors are first in the power chain. Equally important is to keep the trace length between the capacitor and the power pins to a minimum, thereby reducing PCB trace inductance. 2.2.2 TANK CAPACITORS On boards with power traces running longer than six inches in length, it is suggested to use a tank capacitor for integrated circuits, including microcontrollers, to supply a local power source. The value of the tank capacitor should be determined based on the trace resistance that connects the power supply source to the device, and the maximum current drawn by the device in the application. In other words, select the tank capacitor so that it meets the acceptable voltage sag at the device. Typical values range from 4.7 µF to 47 µF. DS40001799F-page 16 PIC16(L)F18313/18323 2.3 Master Clear (MCLR) Pin The MCLR pin provides three specific device functions: • Device Reset (when MCLRE = 1) • Digital input pin (when MCLRE = 0) • Device Programming and Debugging If programming and debugging are not required in the end application then either set the MCLRE configuration bit to ‘1’ and use the pin as a digital input or clear the MCLRE Configuration bit and leave the pin open to use the internal weak pull-up. The addition of other components, to help increase the application’s resistance to spurious Resets from voltage sags, may be beneficial. A typical configuration is shown in Figure 2-1. Other circuit designs may be implemented, depending on the application’s requirements. During programming and debugging, the resistance and capacitance that can be added to the pin must be considered. Device programmers and debuggers drive the MCLR pin. Consequently, specific voltage levels (VIH and VIL) and fast signal transitions must not be adversely affected. Therefore, the programmer MCLR/VPP output should be connected directly to the pin so that R1 isolates the capacitor, C1 from the MCLR pin during programming and debugging operations. Any components associated with the MCLR pin should be placed within 0.25 inch (6 mm) of the pin. 2.4 ICSP™ Pins The ICSPCLK and ICSPDAT pins are used for In-Circuit Serial Programming™ (ICSP™) and debugging purposes. It is recommended to keep the trace length between the ICSP connector and the ICSP pins on the device as short as possible. If the ICSP connector is expected to experience an ESD event, a series resistor is recommended, with the value in the range of a few tens of ohms, not to exceed 100Ω. Pull-up resistors, series diodes and capacitors on the ICSPCLK and ICSPDAT pins are not recommended as they will interfere with the programmer/debugger communications to the device. If such discrete components are an application requirement, they should be isolated from the programmer by resistors between the application and the device pins or removed from the circuit during programming. Alternatively, refer to the AC/DC characteristics and timing requirements information in the respective device Flash programming specification for information on capacitive loading limits, and pin input voltage high (VIH) and input low (VIL) requirements. For device emulation, ensure that the “Communication Channel Select” (i.e., ICSPCLK/ICSPDAT pins), programmed into the device, matches the physical connections for the ICSP to the Microchip debugger/ emulator tool. For more information on available Microchip development tools connection requirements, refer to Section 37.0 “Development Support”.  2015-2019 Microchip Technology Inc. DS40001799F-page 17 PIC16(L)F18313/18323 2.5 External Oscillator Pins Many microcontrollers have options for at least two oscillators: a high-frequency primary oscillator and a low-frequency secondary oscillator (refer to Section 7.0 “Oscillator Module” for details). The oscillator circuit should be placed on the same side of the board as the device. Place the oscillator circuit close to the respective oscillator pins with no more than 0.5 inch (12 mm) between the circuit components and the pins. The load capacitors should be placed next to the oscillator itself, on the same side of the board. Use a grounded copper pour around the oscillator circuit to isolate it from surrounding circuits. The grounded copper pour should be routed directly to the MCU ground. Do not run any signal traces or power traces inside the ground pour. Also, if using a two-sided board, avoid any traces on the other side of the board where the crystal is placed. Layout suggestions are shown in Figure 2-2. In-line packages may be handled with a single-sided layout that completely encompasses the oscillator pins. With fine-pitch packages, it is not always possible to completely surround the pins and components. A suitable solution is to tie the broken guard sections to a mirrored ground layer. In all cases, the guard trace(s) must be returned to ground. 2.6 Unused I/Os Unused I/O pins should be configured as outputs and driven to a logic low state. Alternatively, connect a 1 kΩ to 10 kΩ resistor to VSS on unused pins and drive the output logic low. FIGURE 2-2: Single-Sided and In-Line Layouts: Copper Pour (tied to ground) Primary Oscillator Crystal DEVICE PINS Primary Oscillator OSC1 C1 ` OSC2 GND C2 ` SOSCO SOSCI Secondary Oscillator (SOSC) Crystal In planning the application’s routing and I/O assignments, ensure that adjacent port pins, and other signals in close proximity to the oscillator, are benign (i.e., free of high frequencies, short rise and fall times, and other similar noise). ` SOSC: C1 For additional information and design guidance on oscillator circuits, please refer to these Microchip Application Notes, available at the corporate website (www.microchip.com): • AN826, “Crystal Oscillator Basics and Crystal Selection for rfPIC™ and PICmicro® Devices” • AN849, “Basic PICmicro® Oscillator Design” • AN943, “Practical PICmicro® Oscillator Analysis and Design” • AN949, “Making Your Oscillator Work” SUGGESTED PLACEMENT OF THE OSCILLATOR CIRCUIT SOSC: C2 Fine-Pitch (Dual-Sided) Layouts: Top Layer Copper Pour (tied to ground) Bottom Layer Copper Pour (tied to ground) OSCO C2 Oscillator Crystal GND C1 OSCI DEVICE PINS  2015-2019 Microchip Technology Inc. DS40001799F-page 18 PIC16(L)F18313/18323 3.0 ENHANCED MID-RANGE CPU 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. This family of devices contains an enhanced mid-range 8-bit CPU core. The CPU has 48 instructions. Interrupt capability includes automatic context saving. FIGURE 3-1: CORE DATA PATH BLOCK DIAGRAM Rev. 10-000055B 8/23/2016 15 Configuration 15 MUX Flash Program Memory Data Bus 16-Level Stack (15-bit) RAM 14 Program Bus 8 Program Counter 12 Program Memory Read (PMR) RAM Addr Addr MUX Instruction Reg Direct Addr 7 5 Indirect Addr 12 12 BSR Reg 15 FSR0 Reg 15 FSR1 Reg STATUS Reg 8 Instruction Decode and Control OSC1/CLKIN OSC2/CLKOUT SOSCI Timing Generation Power-up Timer Power-on Reset Watchdog Timer Brown-out Reset 3 8 MUX ALU W Reg SOSCO VDD VSS Internal Oscillator Block  2015-2019 Microchip Technology Inc. DS40001799F-page 19 PIC16(L)F18313/18323 3.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. 3.2 16-Level Stack with Overflow and Underflow These devices have a hardware stack memory 15 bits wide and 16 words deep. A Stack Overflow or Underflow will set the appropriate bit (STKOVF or STKUNF) in the PCON0 register, and if enabled, will cause a software Reset. See Section 4.4 “Stack” for more details. 3.3 File Select Registers There are two 16-bit File Select Registers (FSR). FSRs can access all file registers, program memory, and data EEPROM, 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. See Section 4.5 “Indirect Addressing” for more details. 3.4 Instruction Set There are 48 instructions for the enhanced mid-range CPU to support the features of the CPU. See Section 34.0 “Instruction Set Summary” for more details.  2015-2019 Microchip Technology Inc. DS40001799F-page 20 PIC16(L)F18313/18323 4.0 MEMORY ORGANIZATION These devices contain the following types of memory: • Program Memory - Configuration Words - Device ID - Revision ID - User ID - Program Flash Memory • Data Memory - Core Registers - Special Function Registers - General Purpose RAM - Common RAM • Data EEPROM 4.1 Program Memory Organization The enhanced mid-range core has a 15-bit program counter capable of addressing 32K x 14 program memory space. Table 4-1 shows the memory sizes implemented. Accessing a location above these boundaries will cause a wrap-around within the implemented memory space. The Reset vector is at 0000h and the interrupt vector is at 0004h (see Figure 4-1). TABLE 4-1: DEVICE SIZES AND ADDRESSES Device PIC16(L)F18313/18323  2015-2019 Microchip Technology Inc. Program Memory Size (Words) Last Program Memory Address 2048 07FFh DS40001799F-page 21 PIC16(L)F18313/18323 FIGURE 4-1: PROGRAM MEMORY MAP AND STACK FOR PIC16(L)F18313/18323 PC[14:0] CALL, CALLW RETURN, RETLW Interrupt, RETFIE 15 Stack Level 0 Stack Level 1 Interrupt Vector On-chip Program Memory 0000h 0004h 0005h 07FFh 0800h Wraps to Page 0  2015-2019 Microchip Technology Inc. EXAMPLE 4-1: constants BRW RETLW RETLW RETLW RETLW DATA0 DATA1 DATA2 DATA3 RETLW INSTRUCTION ;Add Index in W to ;program counter to ;select data ;Index0 data ;Index1 data my_function ;… LOTS OF CODE… MOVLW DATA_INDEX call constants ;… THE CONSTANT IS IN W Wraps to Page 0 Rollover to Page 0 RETLW Instruction The RETLW instruction can be used to provide access to tables of constants. The recommended way to create such a table is shown in Example 4-1. Page 0-3 Rollover to Page 0 Wraps to Page 0 READING PROGRAM MEMORY AS DATA There are three methods of accessing constants in program memory. The first method is to use tables of RETLW instructions. The second method is to set an FSR to point to the program memory. The third method is to use the NVMCON registers to access the program memory. 4.1.1.1 Stack Level 15 Reset Vector 4.1.1 The BRW instruction makes this type of table very simple to implement. If your code must remain portable with previous generations of microcontrollers, computed GOTO method must be used because the BRW instruction is not available in some devices, such as the PIC16F6XX, PIC16F7XX, PIC16F8XX, and PIC16F9XX devices. 7FFFh DS40001799F-page 22 PIC16(L)F18313/18323 4.1.1.2 Indirect Read with FSR The program memory can be accessed as data by setting bit 7 of an FSRxH register and reading the matching INDFx register. The MOVIW instruction will place the lower eight bits of the addressed word in the W register. Writes to the program memory cannot be performed via the INDF registers. Instructions that read the program memory via the FSR require one extra instruction cycle to complete. Example 4-2 demonstrates reading the program memory via an FSR. Data memory uses a 12-bit address. The upper five bits of the address define the Bank address and the lower seven bits select the registers/RAM in that bank. FIGURE 4-2: 00h ACCESSING PROGRAM MEMORY VIA FSR Special Function Registers 1Fh 4.2 Data Memory Organization The data memory is partitioned into 32 memory banks with 128 bytes in each bank. Each bank consists of (Figure 4-2): • • • • 12 core registers Special Function Registers (SFR) Up to 80 bytes of General Purpose RAM (GPR) 16 bytes of common RAM 4.2.1 20h General Purpose RAM (80 bytes maximum) 6Fh 70h Common RAM (16 bytes) NVMREG Access The NVMREG interface allows read/write access to all locations accessible by the FSRs, User ID locations, and EEPROM. The NVMREG interface also provides read-only access to Device ID, Revision ID, and Configuration data. See Section 11.4 “NVMREG Access” for more information. BANK SELECTION 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 4.5 “Indirect Addressing”” for more information.  2015-2019 Microchip Technology Inc. Core Registers (12 bytes) 0Bh 0Ch constants RETLW DATA0 ;Index0 data RETLW DATA1 ;Index1 data RETLW DATA2 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 4.1.1.3 Memory Region 7-bit Bank Offset The HIGH directive will set bit 7 if a label points to a location in the program memory. EXAMPLE 4-2: BANKED MEMORY PARTITIONING 7Fh 4.2.2 CORE REGISTERS The core registers contain the registers that directly affect basic operation. The core registers occupy the first 12 addresses of every data memory bank (addresses x00h/x80h through x0Bh/x8Bh). These registers are listed below in Table 4-2. For detailed information, see Table 4-4. TABLE 4-2: CORE REGISTERS Addresses BANKx x00h or x80h x01h or x81h x02h or x82h x03h or x83h x04h or x84h x05h or x85h x06h or x86h x07h or x87h x08h or x88h x09h or x89h x0Ah or x8Ah x0Bh or x8Bh INDF0 INDF1 PCL STATUS FSR0L FSR0H FSR1L FSR1H BSR WREG PCLATH INTCON DS40001799F-page 23 PIC16(L)F18313/18323 4.2.2.1 STATUS Register The STATUS register, shown in Register 4-1, contains: • The arithmetic status of the ALU • The Reset status The STATUS register can be the destination for any instruction, like any other register. If the STATUS register is the destination for an instruction that affects the Z, DC or C bits, then the write to these three bits is disabled. These bits are set or cleared according to the device logic. Furthermore, the TO and PD bits are not writable. Therefore, the result of an instruction with the STATUS register as destination may be different than intended. REGISTER 4-1: U-0 It is recommended, therefore, that only BCF, BSF, SWAPF and MOVWF instructions are used to alter the STATUS register, because these instructions do not affect any Status bits. For other instructions not affecting any Status bits (Refer to Section 34.0 “Instruction Set Summary”). Note 1: The C and DC bits operate as Borrow and Digit Borrow out bits, respectively, in subtraction. STATUS: STATUS REGISTER U-0 — For example, CLRF STATUS will clear the upper three bits and set the Z bit. This leaves the STATUS register as ‘000u u1uu’ (where u = unchanged). U-0 — R-1/q — TO R-1/q PD R/W-0/u R/W-0/u R/W-0/u 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.  2015-2019 Microchip Technology Inc. DS40001799F-page 24 PIC16(L)F18313/18323 4.2.3 SPECIAL FUNCTION REGISTERS 4.2.5 The Special Function Registers are registers used by the application to control the desired operation of peripheral functions in the device. The Special Function Registers occupy the 20 bytes after the core registers of every data memory bank (addresses x0Ch/x8Ch through x1Fh/x9Fh), with the exception of banks 27, 28, and 29 (PPS and CLC registers). The registers associated with the operation of the peripherals are described in the appropriate peripheral chapter of this data sheet. 4.2.4 COMMON RAM There are 16 bytes of common RAM accessible from all banks. 4.2.6 DEVICE MEMORY MAPS The memory maps for PIC16(L)F18313/18323 are as shown in Table 4-4. GENERAL PURPOSE RAM There are up to 80 bytes of GPR in each data memory bank. 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 4.5.2 “Linear Data Memory” for more information. TABLE 4-3: Bank Offset Name SPECIAL FUNCTION REGISTER SUMMARY BANKS 0-31 (ALL BANKS) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Value on: POR, BOR Value on all other Resets All Banks 000h INDF0 Addressing this location uses contents of FSR0H/FSR0L to address data memory (not a physical register) xxxx xxxx xxxx xxxx 001h INDF1 Addressing this location uses contents of FSR1H/FSR1L to address data memory (not a physical register) xxxx xxxx xxxx xxxx 002h PCL 003h STATUS 004h FSR0L Indirect Data Memory Address 0 Low Pointer 0000 0000 uuuu uuuu 005h FSR0H Indirect Data Memory Address 0 High Pointer 0000 0000 0000 0000 006h FSR1L Indirect Data Memory Address 1 Low Pointer 0000 0000 uuuu uuuu 007h FSR1H Indirect Data Memory Address 1 High Pointer 008h BSR 009h WREG 00Ah PCLATH Program Counter (PC) Least Significant Byte — — — — — TO 0000 0000 0000 0000 PD Z DC C 0000 0000 0000 0000 — BSR4 BSR3 — — — BSR2 BSR1 BSR0 Working Register — — ---1 1000 ---q quuu ---0 0000 ---0 0000 0000 0000 uuuu uuuu Write Buffer for the upper three bits ---- -000 ---- -000 of the Program Counter 00Bh Legend: Note 1: INTCON GIE PEIE — — — — — INTEDG 00-- ---1 00-- ---1 x = unknown, u = unchanged, q =depends on condition, - = unimplemented, read as ‘0’, r = reserved. Shaded locations unimplemented, read as ‘0’. These Registers can be accessed from any bank  2015-2019 Microchip Technology Inc. DS40001799F-page 25 Name PIC16(L)F18323 Address SPECIAL FUNCTION REGISTER SUMMARY BANKS 0-31 PIC16(L)F18313  2015-2019 Microchip Technology Inc. TABLE 4-4: Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Value on: POR, BOR Value on all other Resets RA1 RA0 --xx xxxx --uu uuuu Bank 0 CPU CORE REGISTERS; see Table 4-2 for specifics 00Ch PORTA 00Dh 00Eh ― ― PORTC X 010h RA5 RA4 ― ― 00Fh ― ― ― X ― ― RC5 RA3 ― ― Unimplemented ― ― --xx xxxx --uu uuuu RC4 ― RA2 Unimplemented RC3 RC2 RC1 RC0 Unimplemented PIR0 ― ― TMR0IF TMR1GIF ADIF ― ― ― ― INTF --00 ---0 --00 ---0 IOCIF ― ― ― RCIF TXIF SSP1IF BCL1IF TMR2IF TMR1IF 0000 0000 0000 0000 C1IF NVMIF ― ― ― NCO1IF 0000 0000 0000 0000 PIR1 012h PIR2 ― C2IF C1IF NVMIF ― ― ― NCO1IF 0000 0000 0000 0000 013h PIR3 OSFIF CSWIF ― ― ― ― CLC2IF CLC1IF 0000 0000 0000 0000 014h PIR4 ― CWG1IF ― ― ― ― CCP2IF CCP1IF 0000 0000 0000 0000 015h TMR0L TMR0[7:0] 0000 0000 0000 0000 016h TMR0H TMR0[15:8] 1111 1111 1111 1111 017h T0CON0 0-00 0000 018h T0CON1 019h TMR1L 01Ah TMR1H 01Bh T1CON 01Ch T1GCON 01Dh TMR2 01Eh PR2 X ― ― X T0EN ― T0OUT T0CS[2:0] T016BIT T0OUTPS[3:0] 0-00 0000 T0ASYNC T0CKPS[3:0] 0000 0000 0000 0000 xxxx xxxx uuuu uuuu xxxx xxxx uuuu uuuu TMR1L[7:0] TMR1H[7:0] TMR1CS[1:0] TMR1GE T1GPOL T1CKPS[1:0] T1GTM T1GSPM T1SOSC T1SYNC T1GGO/ DONE T1GVAL ― TMR1ON T1GSS[1:0] uuuu uxuu DS40001799F-page 26 0000 0000 0000 0000 PR2[7:0] 1111 1111 1111 1111 -000 0000 -000 0000 T2CON Legend: Note 1: x = unknown, u = unchanged, q =depends on condition, - = unimplemented, read as ‘0’, r = reserved. Shaded locations unimplemented, read as ‘0’. Only on PIC16F18313/18323. T2OUTPS[3:0] uuuu uu-u 0000 0x00 TMR2[7:0] 01Fh ― 0000 00-0 TMR2ON T2CKPS[1:0] PIC16(L)F18313/18323 011h PIC16(L)F18323 Name PIC16(L)F18313 Address SPECIAL FUNCTION REGISTER SUMMARY BANKS 0-31 (CONTINUED) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Value on: POR, BOR Value on all other Resets TRISA1 TRISA0 Bank 1 CPU CORE REGISTERS; see Table 4-2 for specifics 08Ch TRISA 08Dh 08Eh ― ― TRISC 08Fh X ― ― X ― 090h PIE0 091h PIE1 092h PIE2 093h PIE3 094h PIE4 ― TRISA5 TRISA4 ― TRISA2 --11 -111 --11 -111 ― ― Unimplemented ― ― --11 1111 ― ― TRISC5 TRISC4 ― ― TMR0IE IOCIE ― ― Unimplemented TRISC3 TRISC2 TRISC1 TRISC0 --11 1111 ― ― ― ― ― INTE --00 ---0 --00 ---0 Unimplemented TMR1GIE ADIE RCIE TXIE SSP1IE BCL1IE TMR2IE TMR1IE 0000 0000 0000 0000 X ― ― ― C1IE NVMIE ― ― ― NCO1IE 0000 0000 0000 0000 ― X ― C2IE C1IE NVMIE ― ― ― NCO1IE 0000 0000 0000 0000 OSFIE CSWIE ― ― ― ― CLC2IE CLC1IE 0000 0000 0000 0000 ― CWG1IE ― ― ― ― CCP2IE CCP1IE 0000 0000 0000 0000 095h ― ― Unimplemented ― ― 096h ― ― Unimplemented ― ― --01 0110 --01 0110 097h WDTCON ― ― WDTPS[4:0] SWDTEN 098h ― ― Unimplemented ― ― 099h ― ― Unimplemented ― ― 09Ah ― ― Unimplemented ― ― 09Bh ADRESL ADRESL[7:0] xxxx xxxx uuuu uuuu  2015-2019 Microchip Technology Inc. 09Ch ADRESH 09Dh ADCON0 ADRESH[7:0] 09Eh ADCON1 09Fh ADACT Legend: Note 1: x = unknown, u = unchanged, q =depends on condition, - = unimplemented, read as ‘0’, r = reserved. Shaded locations unimplemented, read as ‘0’. Only on PIC16F18313/18323. CHS[5:0] ADFM ― GO/DONE ADCS[2:0] ― ― ― ― ADNREF ADON ADPREF[1:0] ADACT[3:0] xxxx xxxx uuuu uuuu 0000 0000 0000 0000 0000 -000 0000 -000 ---- 0000 ---- 0000 PIC16(L)F18313/18323 DS40001799F-page 27 TABLE 4-4: Name PIC16(L)F18323 Address SPECIAL FUNCTION REGISTER SUMMARY BANKS 0-31 (CONTINUED) PIC16(L)F18313  2015-2019 Microchip Technology Inc. TABLE 4-4: Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Value on: POR, BOR Value on all other Resets LATA1 LATA0 Bank 2 CPU CORE REGISTERS; see Table 4-2 for specifics 10Ch LATA 10Dh 10Eh ― ― LATC ― LATA5 ― X ― ― X ― ― LATC5 LATA4 ― LATA2 --xx -xxx --uu -uuu Unimplemented ― ― Unimplemented ― ― --xx xxxx --uu uuuu ― LATC4 LATC3 LATC2 LATC1 LATC0 10Fh ― ― Unimplemented ― 110h ― ― Unimplemented ― ― 00-0 -100 00-0 -100 0000 0000 0000 0000 111h CM1CON0 112h CM1CON1 113h CM2CON0 115h CM2CON1 CMOUT ― ― X C1OUT C1INTP C1INTN ― C1POL ― C1SP C1PCH[2:0] C1NCH[2:0] C2ON C2OUT ― C2POL ― C2SP C2SYNC ― 00-0 -100 00-0 -100 X ― X C2INTP C2INTN X ― ― ― ― ― ― ― ― MC1OUT ---- ---0 ---- ---0 ― X ― ― ― ― ― ― MC2OUT MC1OUT ---- --00 ---- --00 ― ― ― BORRDY 1--- ---q u--- ---u 0q00 0000 0q00 0000 0-0- 00-0 0-0- 00-0 ---0 0000 ---0 0000 ― ― Unimplemented C2PCH[2:0] C2NCH[2:0] BORCON SBOREN Reserved ― ― FVRCON FVREN FVRRDY TSEN TSRNG CDAFVR[1:0] 118h DACCON0 DAC1EN ― DAC1OE ― DAC1PSS[1:0] 119h DACCON1 ― ― ― Legend: Note 1: C2HYS ― ― 117h ― C1SYNC Unimplemented 116h 11Ah-11Fh C1HYS ― ADFVR[1:0] ― DAC1NSS DAC1R[4:0] Unimplemented x = unknown, u = unchanged, q =depends on condition, - = unimplemented, read as ‘0’, r = reserved. Shaded locations unimplemented, read as ‘0’. Only on PIC16F18313/18323. ― ― 0000 0000 0000 0000 DS40001799F-page 28 PIC16(L)F18313/18323 114h X C1ON PIC16(L)F18323 Name PIC16(L)F18313 Address SPECIAL FUNCTION REGISTER SUMMARY BANKS 0-31 (CONTINUED) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Value on: POR, BOR Value on all other Resets ANSA1 ANSA0 Bank 3 CPU CORE REGISTERS; see Table 4-2 for specifics 18Ch ANSELA 18Dh ― 18Eh ANSELC ― ― ANSA5 ― X ― ― X ― ― ANSC5 ANSA4 ― ANSA2 --11 -111 --11 -111 Unimplemented ― ― Unimplemented ― ― --11 1111 --11 1111 ANSC4 ANSC3 ANSC2 ANSC1 ANSC0 18Fh ― ― Unimplemented ― ― 190h ― ― Unimplemented ― ― 191h ― ― Unimplemented ― ― 192h ― ― Unimplemented ― ― 193h ― ― Unimplemented ― ― 194h ― ― Unimplemented ― ― 195h ― ― Unimplemented ― ― 196h ― ― Unimplemented ― ― 197h VREGCON(1) ---- --01 ---- --01 198h ― 199h RC1REG ― ― ― ― ― ― ― VREGPM Reserved Unimplemented ― ― RC1REG[7:0] 0000 0000 0000 0000 0000 0000  2015-2019 Microchip Technology Inc. 19Ah TX1REG TX1REG[7:0] 0000 0000 19Bh SP1BRGL SP1BRG[7:0] 0000 0000 0000 0000 19Ch SP1BRGH SP1BRG[15:8] 0000 0000 0000 0000 19Dh RC1STA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000x 0000 000x 19Eh TX1STA CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9D 0000 0010 0000 0010 19Fh BAUD1CON ABDOVF RCIDL ― SCKP BRG16 ― WUE ABDEN 01-0 0-00 01-0 0-00 Legend: Note 1: x = unknown, u = unchanged, q =depends on condition, - = unimplemented, read as ‘0’, r = reserved. Shaded locations unimplemented, read as ‘0’. Only on PIC16F18313/18323. PIC16(L)F18313/18323 DS40001799F-page 29 TABLE 4-4: Name PIC16(L)F18323 Address SPECIAL FUNCTION REGISTER SUMMARY BANKS 0-31 (CONTINUED) PIC16(L)F18313  2015-2019 Microchip Technology Inc. TABLE 4-4: Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 1 Bit 0 Value on: POR, BOR Value on all other Resets WPUA1 WPUA0 Bit 2 Bank 4 CPU CORE REGISTERS; see Table 4-2 for specifics 20Ch WPUA 20Dh 20Eh ― ― WPUC ― WPUA5 WPUA4 ― X ― ― X ― ― WPUC5 WPUA3 WPUA2 --00 0000 --00 0000 Unimplemented ― ― Unimplemented ― ― --00 0000 --00 0000 ― WPUC4 WPUC3 WPUC2 WPUC1 WPUC0 20Fh ― ― Unimplemented ― 210h ― ― Unimplemented ― ― SSP1BUF[7:0] xxxx xxxx uuuu uuuu SSP1BUF 212h SSP1ADD SSP1ADD[7:0] 0000 0000 0000 0000 213h SSP1MSK SSP1MSK[7:0] 1111 1111 1111 1111 0000 0000 0000 0000 0000 0000 0000 0000 214h SSP1STAT SMP CKE D/A P 215h SSP1CON1 WCOL SSPOV SSPEN CKP 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-21Fh Legend: Note 1: ― ― S R/W UA BF SSPM[3:0] Unimplemented x = unknown, u = unchanged, q =depends on condition, - = unimplemented, read as ‘0’, r = reserved. Shaded locations unimplemented, read as ‘0’. Only on PIC16F18313/18323. DS40001799F-page 30 PIC16(L)F18313/18323 211h PIC16(L)F18323 Name PIC16(L)F18313 Address SPECIAL FUNCTION REGISTER SUMMARY BANKS 0-31 (CONTINUED) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Value on: POR, BOR Value on all other Resets ODCA1 ODCA0 Bank 5 CPU CORE REGISTERS; see Table 4-2 for specifics 28Ch ODCONA 28Dh ― 28Eh ODCONC ― ― ODCA5 ― X ― ― X ― ― ODCC5 ODCA4 ― ODCA2 --00 -000 --00 -000 Unimplemented ― ― Unimplemented ― ― --00 0000 --00 0000 ― ODCC4 ODCC3 ODCC2 ODCC1 ODCC0 28Fh ― ― Unimplemented ― 290h ― ― Unimplemented ― ― 291h CCPR1L CCPR1[7:0] xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 0-x0 0000 0-x0 0000 ---- 0000 ---- xxxx 292h CCPR1H 293h CCP1CON CCP1EN ― CCP1OUT CCP1FMT CCPR1[15:8] 294h CCP1CAP ― ― ― ― 295h CCPR2L CCPR2[7:0] xxxx xxxx xxxx xxxx 296h CCPR2H CCPR2[15:8] xxxx xxxx xxxx xxxx 297h CCP2CON CCP2EN ― CCP2OUT CCP2FMT 0-x0 0000 0-x0 0000 298h CCP2CAP ― ― ― ― ---- -000 ---- -xxx CCP1MODE[3:0] ― CCP1CTS[2:0] CCP2MODE[3:0] ― CCP2CTS[2:0]  2015-2019 Microchip Technology Inc. 299h ― ― Unimplemented ― ― 29Ah ― ― Unimplemented ― ― 29Bh ― ― Unimplemented ― ― 29Ch ― ― Unimplemented ― ― 29Dh ― ― Unimplemented ― ― 29Eh ― ― Unimplemented ― ― 29Fh ― ― Unimplemented ― ― Bank 6 30Ch 30Dh 30Eh 30Fh-31Fh Legend: Note 1: SLRCONA — — SLRCONC — — SLRA5 — X — — X — — — SLRC5 SLRA4 — SLRA2 SLRA1 SLRA0 --11 -111 --11 -111 Unimplemented — — Unimplemented — — --11 1111 --11 1111 — — SLRC4 SLRC3 SLRC2 SLRC1 Unimplemented x = unknown, u = unchanged, q =depends on condition, - = unimplemented, read as ‘0’, r = reserved. Shaded locations unimplemented, read as ‘0’. Only on PIC16F18313/18323. SLRC0 PIC16(L)F18313/18323 DS40001799F-page 31 TABLE 4-4: Name PIC16(L)F18323 Address SPECIAL FUNCTION REGISTER SUMMARY BANKS 0-31 (CONTINUED) PIC16(L)F18313  2015-2019 Microchip Technology Inc. TABLE 4-4: Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 1 Bit 0 Value on: POR, BOR Value on all other Resets INLVLA1 INLVLA0 Bit 2 Bank 7 CPU CORE REGISTERS; see Table 4-2 for specifics 38Ch INLVLA 38Dh 38Eh ― ― INLVLC ― INLVLA5 ― X ― ― X ― ― INLVLC5 INLVLA4 INLVLA3 INLVLA2 --11 1111 --11 1111 Unimplemented ― ― Unimplemented ― ― --11 1111 --11 1111 ― INLVLC4 INLVLC3 INLVLC2 INLVLC1 INLVLC0 38Fh ― ― Unimplemented ― 390h ― ― Unimplemented ― ― --00 0000 --00 0000 391h IOCAP ― ― IOCAP5 IOCAP4 IOCAP3 IOCAP2 IOCAP1 IOCAP0 392h IOCAN ― ― IOCAN5 IOCAN4 IOCAN3 IOCAN2 IOCAN1 IOCAN0 --00 0000 --00 0000 393h IOCAF ― ― IOCAF5 IOCAF4 IOCAF3 IOCAF2 IOCAF1 IOCAF0 --00 0000 --00 0000 ― ― Unimplemented ― ― 395h ― ― Unimplemented ― ― 396h ― ― Unimplemented ― ― Unimplemented ― ― --00 0000 397h 398h 399h 39Ah 39Bh 39Ch IOCCP IOCCN IOCCF X ― ― X X ― ― X X ― ― X CLKRCON ― ― ― IOCCP5 IOCCP4 ― ― IOCCN5 IOCCN4 ― ― IOCCF5 IOCCF4 CLKREN ― ― IOCCP3 IOCCP2 IOCCP1 IOCCP0 --00 0000 ― ― IOCCN2 IOCCN1 IOCCN0 --00 0000 --00 0000 ― ― IOCCF2 IOCCF1 IOCCF0 --00 0000 --00 0000 0--1 0000 0--1 0000 Unimplemented IOCCN3 Unimplemented ― IOCCF3 CLKRDC[1:0] CLKRDIV[2:0] Unimplemented MDCON MDEN ― ― MDOPOL MDOUT ― ― MDBIT ― ― 0--0 0--0 0--0 0--0 DS40001799F-page 32 39Dh MDSRC ― ― ― ― MDMS[3:0] ---- xxxx ---- uuuu 39Eh MDCARH ― MDCHPOL MDCHSYNC ― MDCH[3:0] -xx- xxxx -uu- uuuu 39Fh MDCARL ― MDCLPOL MDCLSYNC ― MDCL[3:0] -xx- xxxx -uu- uuuu Legend: Note 1: x = unknown, u = unchanged, q =depends on condition, - = unimplemented, read as ‘0’, r = reserved. Shaded locations unimplemented, read as ‘0’. Only on PIC16F18313/18323. PIC16(L)F18313/18323 394h PIC16(L)F18323 Name PIC16(L)F18313 Address SPECIAL FUNCTION REGISTER SUMMARY BANKS 0-31 (CONTINUED) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Value on: POR, BOR Value on all other Resets — — Bank 8 CPU CORE REGISTERS; see Table 4-2 for specifics 40Ch-41Fh — — Unimplemented — — Unimplemented — — NCO1ACC[7:0] 0000 0000 0000 0000 Bank 9 48Ch-497h 498h NCO1ACCL 499h NCO1ACCH 49Ah NCO1ACCU NCO1ACC[15:8] 49Bh NCO1INCL 49Ch NCO1INCH 49Dh NCO1INCU ― 49Eh NCO1CON N1EN 49Fh NCO1CLK Legend: Note 1: x = unknown, u = unchanged, q =depends on condition, - = unimplemented, read as ‘0’, r = reserved. Shaded locations unimplemented, read as ‘0’. Only on PIC16F18313/18323. ― ― ― 0000 0000 0000 0000 ---- 0000 ---- 0000 NCO1INC[7:0] 0000 0001 0000 0001 NCO1INC[15:8] 0000 0000 0000 0000 ---- 0000 ---- 0000 ― NCO1ACC[19:16] ― ― ― ― N1OUT N1POL ― ― ― ― ― N1PWS[2:0] NCO1INC[19:16] ― N1PFM N1CKS[1:0] 0-00 ---0 0-00 ---0 000- --00 000- --00 PIC16(L)F18313/18323 DS40001799F-page 33 TABLE 4-4:  2015-2019 Microchip Technology Inc. Name PIC16(L)F18323 Address SPECIAL FUNCTION REGISTER SUMMARY BANKS 0-31 (CONTINUED) PIC16(L)F18313  2015-2019 Microchip Technology Inc. TABLE 4-4: Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Value on: POR, BOR Value on all other Resets Bank 10-11 CPU CORE REGISTERS; see Table 4-2 for specifics 50Ch-51Fh — — Unimplemented — — 58Ch-59Fh — — Unimplemented — — 60Ch ― ― Unimplemented ― ― 60Dh ― ― Unimplemented ― ― 60Eh ― ― Unimplemented ― ― 60Fh ― ― Unimplemented ― ― 610h ― ― Unimplemented ― ― 611h ― ― Unimplemented ― ― 612h ― ― Unimplemented ― ― 613h ― ― Unimplemented ― ― 614h ― ― Unimplemented ― ― 615h ― ― Unimplemented ― ― 616h ― ― Unimplemented ― ― xx-- ---- uu-- ---- Bank 12 PWM5DCL 618h PWM5DCH 619h PWM5CON 61Ah PWM6DCL 61Bh PWM6DCH 61Ch PWM6CON 61Dh-61Fh Legend: Note 1: ― PWM5DC[1:0] ― ― ― PWM5OUT PWM5POL ― ― ― ― ― xxxx xxxx uuuu uuuu ― ― ― ― 0-00 ---- 0-00 ---- ― ― ― ― xx-- ---- uu-- ---- xxxx xxxx uuuu uuuu 0-00 ---- 0-00 ---- ― ― PWM5DC[9:2] PWM5EN ― PWM6DC[1:0] PWM6DC[9:2] PWM6EN ― ― PWM6OUT PWM6POL ― ― ― Unimplemented x = unknown, u = unchanged, q =depends on condition, - = unimplemented, read as ‘0’, r = reserved. Shaded locations unimplemented, read as ‘0’. Only on PIC16F18313/18323. ― DS40001799F-page 34 PIC16(L)F18313/18323 617h PIC16(L)F18323 Name PIC16(L)F18313 Address SPECIAL FUNCTION REGISTER SUMMARY BANKS 0-31 (CONTINUED) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Value on: POR, BOR Value on all other Resets Bank 13 CPU CORE REGISTERS; see Table 4-2 for specifics 68Ch ― ― Unimplemented ― ― 68Dh ― ― Unimplemented ― ― 68Eh ― ― Unimplemented ― ― 68Fh ― ― Unimplemented ― ― 690h ― ― Unimplemented ― ― 691h CWG1CLKCON ― ― ― ― ---- ---0 ---- ---0 692h CWG1DAT ― ― ― ― 693h CWG1DBR ― ― ― ― ― CS DAT[3:0] DBR[5:0] 694h CWG1DBF ― ― 695h CWG1CON0 EN LD ― ― ― 696h CWG1CON1 ― ― IN ― POLD DBF[5:0] POLC POLB --00 0000 --00 0000 00-- -000 00-- -000 POLA --x- 0000 --x- 0000 697h CWG1AS0 SHUTDOWN REN ― ― 0001 01-- 0001 01-- CWG1AS1 ― ― ― ― AS3E AS2E(1) AS1E AS0E ---0 0000 ---0 0000 699h CWG1STR OVRD OVRC OVRB OVRA STRD STRC STRB STRA 0000 0000 0000 0000 ― ― Legend: Note 1: ― ― LSAC[1:0] ---- 0000 --00 0000 698h 69Ah-69Fh LSBD[1:0] MODE[2:0] ---- 0000 --00 0000 Unimplemented x = unknown, u = unchanged, q =depends on condition, - = unimplemented, read as ‘0’, r = reserved. Shaded locations unimplemented, read as ‘0’. Only on PIC16F18313/18323. PIC16(L)F18313/18323 DS40001799F-page 35 TABLE 4-4:  2015-2019 Microchip Technology Inc. Name PIC16(L)F18323 Address SPECIAL FUNCTION REGISTER SUMMARY BANKS 0-31 (CONTINUED) PIC16(L)F18313  2015-2019 Microchip Technology Inc. TABLE 4-4: Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Value on: POR, BOR Value on all other Resets Banks 14-16 CPU CORE REGISTERS; see Table 4-2 for specifics 70Ch-71Fh — — Unimplemented — — 78Ch-79Fh — — Unimplemented — — 80Ch-81Fh — — Unimplemented — — 88Ch ― ― Unimplemented ― ― 88Dh ― ― Unimplemented ― ― 88Eh ― ― Unimplemented ― ― 88Fh ― ― Unimplemented ― ― 890h ― ― Unimplemented ― ― NVMADR[7:0] 0000 0000 0000 0000 1000 0000 1000 0000 Bank 17 891h NVMADRL NVMADRH NVMDATL 894h NVMDATH ― ― 895h NVMCON1 ― NVMREGS 896h NVMCON2 ― NVMADR[14:8] NVMDAT[7:0] NVMDAT[13:8] LWLO FREE WRERR WREN WR RD 0000 0000 0000 0000 --00 0000 --00 0000 -000 x000 -000 q000 NVMCON2[7:0] 0000 0000 0000 0000 897h ― ― Unimplemented ― ― 898h ― ― Unimplemented ― ― 899h ― ― Unimplemented ― ― 89Ah ― ― Unimplemented ― ― 00-1 110q qq-q qquu ― ― 89Bh 89Ch-89Fh Legend: Note 1: PCON0 ― STKOVF ― STKUNF ― RWDT RMCLR RI POR Unimplemented x = unknown, u = unchanged, q =depends on condition, - = unimplemented, read as ‘0’, r = reserved. Shaded locations unimplemented, read as ‘0’. Only on PIC16F18313/18323. BOR DS40001799F-page 36 PIC16(L)F18313/18323 892h 893h PIC16(L)F18323 Name PIC16(L)F18313 Address SPECIAL FUNCTION REGISTER SUMMARY BANKS 0-31 (CONTINUED) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Value on: POR, BOR Value on all other Resets Bank 18 CPU CORE REGISTERS; see Table 4-2 for specifics 90Ch ― ― Unimplemented ― ― 90Dh ― ― Unimplemented ― ― 90Eh ― ― Unimplemented ― ― 90Fh ― ― Unimplemented ― ― 910h ― ― Unimplemented ― ― 00-- -000 00-- -000 911h PMD0 912h PMD1 913h PMD2 914h PMD3 915h PMD4 916h PMD5 917h 918h SYSCMD ― FVRMD ― ― ― NVMMD CLKRMD IOCMD NCOMD ― ― ― ― TMR2MD TMR1MD TMR0MD 0--- -000 0--- -000 X ― ― DACMD ADCMD ― ― ― CMP1MD ― -00- --0- -00- --0- ― X ― DACMD ADCMD ― ― CMP2MD CMP1MD ― -00- -00- -00- -00- ― CWG1MD PWM6MD PWM5MD ― ― CCP2MD CCP1MD -000 --00 -000 --00 ― ― UART1MD ― ― ― MSSP1MD ― --0- --0- --0- --0- ― ― ― ― ― CLC2MD CLC1MD DSMMD ---- -000 ---- -000 ― Unimplemented CPUDOZE IDLEN DOZEN ROI DOE ― DOZE[2:0] ― ― 000- -000 000- -000 -qqq 0000  2015-2019 Microchip Technology Inc. 919h OSCCON1 ― NOSC[2:0] NDIV[3:0] -qqq 0000 91Ah OSCCON2 ― COSC[2:0] CDIV[3:0] -qqq 0000 -qqq 0000 91Bh OSCCON3 CSWHOLD 0000 0--- 0000 0--- 91Ch OSCSTAT1 91Dh OSCEN 91Eh 91Fh Legend: Note 1: x = unknown, u = unchanged, q =depends on condition, - = unimplemented, read as ‘0’, r = reserved. Shaded locations unimplemented, read as ‘0’. Only on PIC16F18313/18323. SOSCPWR SOSCBE ORDY NOSCR ― ― ― EXTOR HFOR ― LFOR SOR ADOR ― PLLR qq-q qq-q qq-q qq-q EXTOEN HFOEN ― LFOEN SOSCEN ADOEN ― ― 00-0 00-- 00-0 00-- OSCTUNE ― ― --10 0000 --10 0000 OSCFRQ ― ― ― ― ---- 0110 ---- 0110 HFTUN[5:0] HFFRQ[3:0] PIC16(L)F18313/18323 DS40001799F-page 37 TABLE 4-4: Name PIC16(L)F18323 Address SPECIAL FUNCTION REGISTER SUMMARY BANKS 0-31 (CONTINUED) PIC16(L)F18313  2015-2019 Microchip Technology Inc. TABLE 4-4: Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Value on: POR, BOR Value on all other Resets Banks 19-27 CPU CORE REGISTERS; see Table 4-2 for specifics 98Ch-9EFh — — Unimplemented — — A0Ch-A6Fh — — Unimplemented — — A8Ch-AEFh — — Unimplemented — — B0Ch-B6Fh — — Unimplemented — — B8Ch-BEFh — — Unimplemented — — C0Ch-C1Fh — — Unimplemented — — C8Ch-CEFh — — Unimplemented — — D0Ch-D6Fh — — Unimplemented — — D8Ch-D6Fh — — Unimplemented — — x = unknown, u = unchanged, q =depends on condition, - = unimplemented, read as ‘0’, r = reserved. Shaded locations unimplemented, read as ‘0’. Only on PIC16F18313/18323. DS40001799F-page 38 PIC16(L)F18313/18323 Legend: Note 1: PIC16(L)F18323 Name PIC16(L)F18313 Address SPECIAL FUNCTION REGISTER SUMMARY BANKS 0-31 (CONTINUED) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Value on: POR, BOR Value on all other Resets Banks 28 CPU CORE REGISTERS; see Table 4-2 for specifics E0Ch — — Unimplemented — — E0Dh — — Unimplemented — — E0Eh — — Unimplemented — — ---- ---0 ---- ---0 E0Fh E10h PPSLOCK — — — INTPPS — — — INTPPS[4:0] ---0 0010 ---u uuuu E11h T0CKIPPS — — — T0CKIPPS[4:0] ---0 0010 ---u uuuu E12h T1CKIPPS — — — T1CKIPPS[4:0] ---0 0101 ---u uuuu E13h T1GPPS — — — T1GPPS[4:0] ---0 0100 ---u uuuu ---u uuuu E14h E15h CCP1PPS CCP2PPS — — — — PPSLOCKED X — — — — CCP1PPS[4:0] ---0 0101 — X — — — CCP1PPS[4:0] ---1 0101 ---u uuuu X — — — — CCP2PPS[4:0] ---0 0101 ---u uuuu — X — — — CCP2PPS[4:0] ---1 0011 ---u uuuu — E16h — — Unimplemented — E17h — — Unimplemented — — CWG1PPS[4:0] ---0 0010 ---u uuuu E18h E19h E1Ah  2015-2019 Microchip Technology Inc. E1Bh E1Ch — — — — — — — — — MDCIN1PPS[4:0] ---0 0000 ---u uuuu — X — — — MDCIN1PPS[4:0] ---1 0010 ---u uuuu X — — — — MDCIN2PPS[4:0] ---0 0101 ---u uuuu — X — — — MDCIN2PPS[4:0] ---1 0101 ---u uuuu X — — — — MDMINPPS[4:0] ---0 0001 ---u uuuu — X — — — MDMINPPS[4:0] ---1 0011 ---u uuuu CWG1PPS — MDCIN1PPS MDCIN2PPS MDMINPPS — X Unimplemented E1Dh — — Unimplemented — — E1Eh — — Unimplemented — — E1Fh — — Unimplemented — — ---u uuuu ---u uuuu E20h Legend: Note 1: SSP1CLKPPS X — — — — SSP1CLKPPS[4:0] ---0 0001 — X — — — SSP1CLKPPS[4:0] ---1 0000 x = unknown, u = unchanged, q =depends on condition, - = unimplemented, read as ‘0’, r = reserved. Shaded locations unimplemented, read as ‘0’. Only on PIC16F18313/18323. PIC16(L)F18313/18323 DS40001799F-page 39 TABLE 4-4: E21h E22h E23h E24h E25h Name SSP1DATPPS SSP1SSPPS PIC16(L)F18323 Address SPECIAL FUNCTION REGISTER SUMMARY BANKS 0-31 (CONTINUED) PIC16(L)F18313  2015-2019 Microchip Technology Inc. TABLE 4-4: Bit 7 X — — — — SSP1DATPPS[4:0] ---0 0010 ---u uuuu — X — — — SSP1DATPPS[4:0] ---1 0001 ---u uuuu X — — — — SSP1SSPPS[4:0] ---0 0011 ---u uuuu — X — — — SSP1SSPPS[4:0] ---1 0011 ---u uuuu — RXPPS TXPPS Bit 6 Bit 5 — X Bit 4 Bit 3 Bit 2 Bit 1 Unimplemented Bit 0 Value on: POR, BOR Value on all other Resets — — — — — — RXPPS[4:0] ---0 0001 ---u uuuu — X — — — RXPPS[4:0] ---0 0101 ---u uuuu X — — — — TXPPS[4:0] ---0 0000 ---u uuuu — X — — — TXPPS[4:0] ---1 0100 ---u uuuu — E26h — — Unimplemented — E27h — — Unimplemented — — E28h E29h Legend: Note 1: CLCIN1PPS — — — — — CLCIN0PPS[4:0] ---0 0011 ---u uuuu — X — — — CLCIN0PPS[4:0] ---1 0011 ---u uuuu X — — — — CLCIN1PPS[4:0] ---0 0101 ---u uuuu — X — — — CLCIN1PPS[4:0] ---1 0100 ---u uuuu — — — Unimplemented x = unknown, u = unchanged, q =depends on condition, - = unimplemented, read as ‘0’, r = reserved. Shaded locations unimplemented, read as ‘0’. Only on PIC16F18313/18323. DS40001799F-page 40 PIC16(L)F18313/18323 E2Ah-E6Fh CLCIN0PPS X PIC16(L)F18323 Name PIC16(L)F18313 Address SPECIAL FUNCTION REGISTER SUMMARY BANKS 0-31 (CONTINUED) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Value on: POR, BOR Value on all other Resets Bank 29 CPU CORE REGISTERS; see Table 4-2 for specifics E8Ch-E8Fh — — — RA0PPS — — — RA0PPS[4:0] ---0 0000 ---u uuuu RA1PPS — — — RA1PPS[4:0] ---0 0000 ---u uuuu — — — RA2PPS[4:0] ---0 0000 ---u uuuu E90h E91h E92h RA2PPS E93h — E94h RA4PPS E95h RA5PPS E96h-E9Fh EA0h EA1h — — Unimplemented — Unimplemented — — — — — — — RA4PPS[4:0] RA5PPS[4:0] Unimplemented — — ---0 0000 ---u uuuu ---0 0000 ---u uuuu ---0 0000 ---u uuuu RC0PPS — — — RC0PPS[4:0] ---0 0000 ---u uuuu RC1PPS — — — RC1PPS[4:0] ---0 0000 ---u uuuu EA2h RC2PPS — — — RC2PPS[4:0] ---0 0000 ---u uuuu EA3h RC3PPS — — — RC3PPS[4:0] ---0 0000 ---u uuuu EA4h RC4PPS — — — RC4PPS[4:0] ---0 0000 ---u uuuu EA5h RC5PPS — — — RC5PPS[4:0] ---0 0000 ---u uuuu E97h — ---0 0000 ---u uuuu Legend: Note 1: — Unimplemented x = unknown, u = unchanged, q =depends on condition, - = unimplemented, read as ‘0’, r = reserved. Shaded locations unimplemented, read as ‘0’. Only on PIC16F18313/18323. PIC16(L)F18313/18323 DS40001799F-page 41 TABLE 4-4:  2015-2019 Microchip Technology Inc. Name PIC16(L)F18323 Address SPECIAL FUNCTION REGISTER SUMMARY BANKS 0-31 (CONTINUED) PIC16(L)F18313  2015-2019 Microchip Technology Inc. TABLE 4-4: Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Value on: POR, BOR Value on all other Resets Bank 30 CPU CORE REGISTERS; see Table 4-2 for specifics F0Ch — — Unimplemented — — F0Dh — — Unimplemented — — F0Eh — — Unimplemented — — ---- --00 ---- --00 0-00 0000 0-00 0000 0--- xxxx 0--- uuuu F0Fh CLCDATA — — — — — — MLC2OUT MLC1OUT CLC1CON LC1EN — LC1OUT LC1INPT LC1INTN CLC1POL LC1POL — — — LC1G4POL F12h CLC1SEL0 — — — LC1D1S[4:0] ---x xxxx ---u uuuu F13h CLC1SEL1 — — — LC1D2S[4:0] ---x xxxx ---u uuuu F14h CLC1SEL2 — — — LC1D3S[4:0] ---x xxxx ---u uuuu F15h CLC1SEL3 — — — LC1D4S[4:0] ---x xxxx ---u uuuu F16h CLC1GLS0 LC1G1D4T LC1G1D4N LC1G1D3T LC1G1D3N LC1G1D2T LC1G1D2N LC1G1D1T LC1G1D1N xxxx xxxx uuuu uuuu F17h CLC1GLS1 LC1G2D4T LC1G2D4N LC1G2D3T LC1G2D3N LC1G2D2T LC1G2D2N LC1G2D1T LC1G2D1N xxxx xxxx uuuu uuuu F18h CLC1GLS2 LC1G3D4T LC1G3D4N LC1G3D3T LC1G3D3N LC1G3D2T LC1G3D2N LC1G3D1T LC1G3D1N xxxx xxxx uuuu uuuu F19h CLC1GLS3 LC1G4D4T LC1G4D4N LC1G4D3T LC1G4D3N LC1G4D2T LC1G4D2N LC1G4D1T LC1G4D1N xxxx xxxx uuuu uuuu F1Ah CLC2CON LC2EN — LC2OUT LC2INPT LC2INTN 0-00 0000 0-00 0000 F1Bh CLC2POL LC2POL — — — LC2G4POL 0--- xxxx 0--- uuuu F1Ch CLC2SEL0 — — — LC2D1S[4:0] ---x xxxx ---u uuuu F1Dh CLC2SEL1 — — — LC2D2S[4:0] ---x xxxx ---u uuuu F1Eh CLC2SEL2 — — — LC2D3S[4:0] ---x xxxx ---u uuuu F1Fh CLC2SEL3 — — — LC2D4S[4:0] ---x xxxx ---u uuuu F20h CLC2GLS0 LC2G1D4T LC2G1D4N LC2G1D3T LC2G1D3N LC2G1D2T LC2G1D2N LC2G1D1T LC2G1D1N xxxx xxxx uuuu uuuu F21h CLC2GLS1 LC2G2D4T LC2G2D4N LC2G2D3T LC2G2D3N LC2G2D2T LC2G2D2N LC2G2D1T LC2G2D1N xxxx xxxx uuuu uuuu F22h CLC2GLS2 LC2G3D4T LC2G3D4N LC2G3D3T LC2G3D3N LC2G3D2T LC2G3D2N LC2G3D1T LC2G3D1N xxxx xxxx uuuu uuuu F23h CLC2GLS3 LC2G4D4T LC2G4D4N LC2G4D3T LC2G4D3N LC2G4D2T LC2G4D2N LC2G4D1T LC2G4D1N xxxx xxxx uuuu uuuu Legend: Note 1: x = unknown, u = unchanged, q =depends on condition, - = unimplemented, read as ‘0’, r = reserved. Shaded locations unimplemented, read as ‘0’. Only on PIC16F18313/18323. LC1MODE[2:0] LC1G3POL LC1G2POL LC1G1POL LC2MODE[2:0] LC2G3POL LC2G2POL LC2G1POL PIC16(L)F18313/18323 DS40001799F-page 42 F10h F11h PIC16(L)F18323 Name PIC16(L)F18313 Address SPECIAL FUNCTION REGISTER SUMMARY BANKS 0-31 (CONTINUED) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Value on: POR, BOR Value on all other Resets — — DC C ---- -xxx ---- -uuu xxxx xxxx uuuu uuuu ---x -xxx ---- -uuu Bank 31 — only accessible from Debug Executive, unless otherwise specified CPU CORE REGISTERS; see Table 4-2 for specifics F8Ch-FE3h — FE4h(2) STATUS_SHAD FE5h(2) WREG_SHAD FE6h(2) — Unimplemented — — — BSR_SHAD — — — FE7h(2) PCLATH_SHAD — FE8h(2) FSR0L_SHAD FE9h(2) FEAh(2) FEBh(2) — — Z Working Register Normal (Non-ICD) Shadow Bank Select Register Normal (Non-ICD) Shadow Program Counter Latch High Register Normal (Non-ICD) Shadow -xxx xxxx -uuu uuuu Indirect Data Memory Address 0 Low Pointer Normal (Non-ICD) Shadow xxxx xxxx uuuu uuuu FSR0H_SHAD Indirect Data Memory Address 0 High Pointer Normal (Non-ICD) Shadow xxxx xxxx uuuu uuuu FSR1L_SHAD Indirect Data Memory Address 1 Low Pointer Normal (Non-ICD) Shadow xxxx xxxx uuuu uuuu FSR1H_SHAD Indirect Data Memory Address 1 High Pointer Normal (Non-ICD) Shadow xxxx xxxx uuuu uuuu Unimplemented — — ---x xxxx ---1 1111 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx FECh — — FEDh(2) STKPTR FEEh(2) TOSL FEFh(2) TOSH Legend: Note 1: x = unknown, u = unchanged, q =depends on condition, - = unimplemented, read as ‘0’, r = reserved. Shaded locations unimplemented, read as ‘0’. Only on PIC16F18313/18323. — — — Current Stack Pointer Top of Stack Low Byte — Top of Stack Low Byte PIC16(L)F18313/18323 DS40001799F-page 43 TABLE 4-4:  2015-2019 Microchip Technology Inc. PIC16(L)F18313/18323 4.3 PCL and PCLATH 4.3.2 The Program Counter (PC) is 15-bits wide. The low byte comes from the PCL register, which is a readable and writable register. The high byte (PC[14:8]) is not directly readable or writable and comes from PCLATH. On any Reset, the PC is cleared. Figure 4-3 shows the five situations for the loading of the PC. FIGURE 4-3: 14 LOADING OF PC IN DIFFERENT SITUATIONS PCH PCL 0 PC 6 7 8 0 PCLATH Instruction with PCL as Destination ALU Result 14 PCH PCL 0 PC 6 4 0 PCLATH GOTO, CALL 11 OPCODE 14 PCH PCL 0 PC 6 7 0 PCLATH CALLW W 14 PCH PCL 0 PC BRW 15 PC + W 14 PCH PCL PC 0 BRA 15 PC + OPCODE 4.3.1 A computed GOTO is accomplished by adding an offset to the program counter (ADDWF PCL). When performing a table read using a computed GOTO method, care should be exercised if the table location crosses a PCL memory boundary (each 256-byte block). Refer to Application Note AN556, “Implementing a Table Read” (DS00556). 4.3.3 MODIFYING PCL COMPUTED FUNCTION CALLS A computed function CALL allows programs to maintain tables of functions and provide another way to execute state machines or look-up tables. When performing a table read using a computed function CALL, care should be exercised if the table location crosses a PCL memory boundary (each 256-byte block). If using the CALL instruction, the PCH[2:0] and PCL registers are loaded with the operand of the CALL instruction. PCH[6:3] is loaded with PCLATH[6:3]. The CALLW instruction enables computed calls by combining PCLATH and W to form the destination address. A computed CALLW is accomplished by loading the W register with the desired address and executing CALLW. The PCL register is loaded with the value of W and PCH is loaded with PCLATH. 4.3.4 8 COMPUTED GOTO BRANCHING The branching instructions add an offset to the PC. This allows relocatable code and code that crosses page boundaries. There are two forms of branching, BRW and BRA. The PC will have incremented to fetch the next instruction in both cases. When using either branching instruction, a PCL memory boundary may be crossed. If using BRW, load the W register with the desired unsigned address and execute BRW. The entire PC will be loaded with the address PC + 1 + W. If using BRA, the signed 9-bit literal value ('k') of the operand of the BRA instruction is added to the PC. Since the PC will have incremented to fetch the next instruction, the new address will be PC + 1 + k. 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.  2015-2019 Microchip Technology Inc. DS40001799F-page 44 PIC16(L)F18313/18323 4.4 Stack All devices have a 16-level x 15-bit wide hardware stack (refer to Figure 4-4 through Figure 4-7). The stack space is not part of either program or data space. The PC is PUSHed onto the stack when CALL or CALLW instructions are executed or an interrupt causes a branch. The stack is POPed in the event of a RETURN, RETLW or a RETFIE instruction execution. PCLATH is not affected by a PUSH or POP operation. The stack operates as a circular buffer and does not cause a Reset when either a Stack Overflow or Underflow occur if the STVREN bit is programmed to ‘0‘ (Configuration Words). This means that after the stack has been PUSHed sixteen times, the seventeenth PUSH overwrites the value that was stored from the first PUSH. The eighteenth PUSH overwrites the second PUSH (and so on). The STKOVF and STKUNF flag bits will be set on an Overflow/Underflow, regardless of whether the Reset is enabled. If the STVREN bit in Configuration Words 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. 4.4.1 ACCESSING THE STACK The stack is accessible through the TOSH, TOSL and STKPTR registers. STKPTR is the current value of the Stack Pointer. TOSH:TOSL register pair points to the TOP of the stack. Both registers are read/writable. TOS is split into TOSH and TOSL due to the 15-bit size of the PC. To access the stack, adjust the value of STKPTR, which will position TOSH:TOSL, then read/write to TOSH:TOSL. STKPTR is five bits to allow detection of overflow and underflow. Note: Care should be taken when modifying the STKPTR while interrupts are enabled. During normal program operation, CALL, CALLW and Interrupts will increment STKPTR while RETLW, RETURN, and RETFIE will decrement STKPTR. At any time, STKPTR can be read to see how many levels remain available on the stack. The STKPTR always points at the currently used place on the stack. Therefore, a CALL or CALLW will increment the STKPTR and then write the PC, and a return will write the PC and then decrement the STKPTR. Reference Figure 4-4 through Figure 4-7 for examples of accessing the stack. Note 1: There are no instructions/mnemonics called PUSH or POP. These are actions that occur from the execution of the CALL, CALLW, RETURN, RETLW and RETFIE instructions or the vectoring to an interrupt address.  2015-2019 Microchip Technology Inc. DS40001799F-page 45 PIC16(L)F18313/18323 FIGURE 4-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 After Reset, the stack is empty. The empty stack is initialized so the Stack Pointer is pointing at 0x1F - 1. If the Stack Overflow/Underflow Reset is enabled, the TOSH/TOSL registers will return ‘0’. If the Stack Overflow/Underflow Reset is disabled, the TOSH/TOSL registers will return the contents of stack address 0x0F. 0x08 0x07 0x06 0x05 0x04 0x03 0x02 0x01 0x00 TOSH:TOSL FIGURE 4-5: 0x1F 0x0000 STKPTR = 0x1F Stack Reset Enabled (STVREN = 1) ACCESSING THE STACK EXAMPLE 2 0x0F 0x0E 0x0D 0x0C 0x0B 0x0A 0x09 This figure shows the stack configuration after the first CALL or a single interrupt. If a RETURN instruction is executed, the return address will be placed in the Program Counter and the Stack Pointer decremented to the empty state (0x1F). 0x08 0x07 0x06 0x05 0x04 0x03 0x02 0x01 TOSH:TOSL  2015-2019 Microchip Technology Inc. 0x00 Return Address STKPTR = 0x00 DS40001799F-page 46 PIC16(L)F18313/18323 FIGURE 4-6: ACCESSING THE STACK EXAMPLE 3 0x0F 0x0E 0x0D 0x0C After seven CALLs or six CALLs and an interrupt, the stack looks like the figure on the left. A series of RETURN instructions will repeatedly place the return addresses into the Program Counter and pop the stack. 0x0B 0x0A 0x09 0x08 0x07 TOSH:TOSL FIGURE 4-7: 0x06 Return Address 0x05 Return Address 0x04 Return Address 0x03 Return Address 0x02 Return Address 0x01 Return Address 0x00 Return Address STKPTR = 0x06 ACCESSING THE STACK EXAMPLE 4 TOSH:TOSL  2015-2019 Microchip Technology Inc. 0x0F Return Address 0x0E Return Address 0x0D Return Address 0x0C Return Address 0x0B Return Address 0x0A Return Address 0x09 Return Address 0x08 Return Address 0x07 Return Address 0x06 Return Address 0x05 Return Address 0x04 Return Address 0x03 Return Address 0x02 Return Address 0x01 Return Address 0x00 Return Address When the stack is full, the next CALL or an interrupt will set the Stack Pointer to 0x10. This is identical to address 0x00 so the stack will wrap and overwrite the return address at 0x00. If the Stack Overflow/Underflow Reset is enabled, a Reset will occur and location 0x00 will not be overwritten. STKPTR = 0x10 DS40001799F-page 47 PIC16(L)F18313/18323 4.5 Indirect Addressing 4.5.1 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. TRADITIONAL/BANKED DATA MEMORY The banked 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. The FSR registers form a 16-bit address that allows an addressing space with 65536 locations. These locations are divided into four memory regions: • • • • Traditional/Banked Data Memory Linear Data Memory Program Flash Memory EEPROM FIGURE 4-8: INDIRECT ADDRESSING Rev. 10-000044F 1/13/2017 0x0000 0x0000 Traditional Data Memory 0x1FFF 0x2000 Linear Data Memory 0X2FEF 0X2FF0 Reserved FSR Address Range 0x7FFF 0x8000 PC value = 0x000 Program Flash Memory 0x87FF  2015-2019 Microchip Technology Inc. PC value = 0x7FF DS40001799F-page 48 PIC16(L)F18313/18323 FIGURE 4-9: TRADITIONAL/BANKED DATA MEMORY MAP Direct Addressing 4 BSR 0 6 Indirect Addressing From Opcode 0 7 0 Bank Select Location Select 0x00 FSRxH 0 0 0 7 FSRxL 0 0 Bank Select 00000 00001 00010 11111 Bank 0 Bank 1 Bank 2 Bank 31 Location Select 0x7F  2015-2019 Microchip Technology Inc. DS40001799F-page 49 PIC16(L)F18313/18323 4.5.2 4.5.3 LINEAR DATA MEMORY The linear data memory is the region from FSR address 0x2000 to FSR address 0x29AF. This region is a virtual region that points back to the 80-byte blocks of GPR memory in all the banks. Unimplemented memory reads as 0x00. Use of the linear data memory region allows buffers to be larger than 80 bytes because incrementing the FSR beyond one bank will go directly to the GPR memory of the next bank. The 16 bytes of common memory are not included in the linear data memory region. FIGURE 4-10: 7 FSRnH 0 0 1 LINEAR DATA MEMORY MAP 0 7 FSRnL 0 PROGRAM FLASH MEMORY To make constant data access easier, the entire program Flash memory is mapped to the upper half of the FSR address space. When the MSB of FSRnH is set, the lower 15 bits are the address in program memory which will be accessed through INDF. Only the lower eight bits of each memory location is accessible via INDF. Writing to the program Flash memory cannot be accomplished via the FSR/INDF interface. All instructions that access program Flash memory via the FSR/INDF interface will require one additional instruction cycle to complete. FIGURE 4-11: 7 1 FSRnH PROGRAM FLASH MEMORY MAP 0 Location Select Location Select 0x2000 7 FSRnL 0x8000 0 0x0000 0x020 Bank 0 0x06F 0x0A0 Bank 1 0x0EF 0x120 Program Flash Memory (low 8 bits) Bank 2 0x16F 0xF20 Bank 30 0x29AF 0xFFFF 0xF6F 4.5.4 0x7FFF DATA EEPROM MEMORY The EEPROM memory can be read or written through the NVMCON register interface (see Section 11.2 “Data EEPROM”). However, to make access to the EEPROM easier, read-only access to the EEPROM contents are also available through indirect addressing via an FSR. When the MSB of the FSR (ex: FSRxH) is set to 0x70, the lower 8-bit address value (in FSRxL) determines the EEPROM location that may be read (via the INDF register). In other words, the EEPROM address range 0x00-0xFF is mapped into the FSR address space between 0x7000 and 0x70FF. Writing to the EEPROM cannot be accomplished via the FSR/INDF interface. Reads from the EEPROM through the FSR/INDF interface will require one additional instruction cycle to complete.  2015-2019 Microchip Technology Inc. DS40001799F-page 50 PIC16(L)F18313/18323 5.0 DEVICE CONFIGURATION Device configuration consists of Configuration Words, Code Protection and Device ID. 5.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, Configuration Word 2 at 8008h, Configuration Word 3 at 8009h, and Configuration Word 4 at 800Ah. Note: The DEBUG bit in Configuration Words is managed automatically by device development tools including debuggers and programmers. For normal device operation, this bit should be maintained as a ‘1’.  2015-2019 Microchip Technology Inc. DS40001799F-page 51 PIC16(L)F18313/18323 5.2 Register Definitions: Configuration Words REGISTER 5-1: CONFIGURATION WORD 1: OSCILLATORS R/P-1 U-1 R/P-1 U-1 U-1 R/P-1 FCMEN — CSWEN — — CLKOUTEN bit 13 U-1 R/P-1 — R/P-1 bit 8 R/P-1 U-1 RSTOSC[2:0] R/P-1 — R/P-1 R/P-1 FEXTOSC[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 bit 13 FCMEN: Fail-Safe Clock Monitor Enable bit 1 = ON FSCM timer enabled 0 = OFF FSCM timer disabled bit 12 Unimplemented: Read as ‘1’ bit 11 CSWEN: Clock Switch Enable bit 1 = ON Writing to NOSC and NDIV is allowed 0 = OFF The NOSC and NDIV bits cannot be changed by user software bit 10-9 Unimplemented: Read as ‘1’ bit 8 CLKOUTEN: Clock Out Enable bit If FEXTOSC = EC, HS, HT or LP, then this bit is ignored; otherwise: 1 = OFF CLKOUT function is disabled; I/O or oscillator function on OSC2 0 = ON CLKOUT function is enabled; FOSC/4 clock appears at OSC2 bit 7 Unimplemented: Read as ‘1’ bit 6-4 RSTOSC[2:0]: Power-up Default Value for COSC bits This value is the Reset default value for COSC, and selects the oscillator first used by user software 111 = EXT1X EXTOSC operating per FEXTOSC[2:0] bits 110 = HFINT1 HFINTOSC (1 MHz) 101 = Reserved 100 = LFINT LFINTOSC 011 = SOSC SOSC (32.768 kHz) 010 = Reserved 001 = EXT4X EXTOSC with 4x PLL; EXTOSC operating per FEXTOSC[2:0] bits 000 = HFINT32 HFINTOSC (32 MHz) bit 3 Unimplemented: Read as ‘1’ bit 2-0 FEXTOSC[2:0]: FEXTOSC External Oscillator Mode Selection bits 111 = ECH EC(External Clock) above 8 MHz 110 = ECM EC(External Clock) for 500 kHz to 8 MHz 101 = ECL EC(External Clock) below 500 kHz 100 = OFF Oscillator not enabled 011 = Unimplemented 010 = HS HS(Crystal oscillator) above 4 MHz 001 = XT HT(Crystal oscillator) above 100 kHz, below 4 MHz 000 = LP LP(Crystal oscillator) optimized for 32.768 kHz  2015-2019 Microchip Technology Inc. DS40001799F-page 52 PIC16(L)F18313/18323 REGISTER 5-2: CONFIGURATION WORD 2: SUPERVISORS R/P-1 R/P-1 R/P-1 U-1 R/P-1 U-1 DEBUG STVREN PPS1WAY — BORV — bit 13 R/P-1 R/P-1 BOREN[1:0] bit 8 R/P-1 LPBOREN U-1 (3) R/P-1 — R/P-1 WDTE[1:0] R/P-1 R/P-1 PWRTE MCLRE 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 bit 13 DEBUG: Debugger Enable bit(1) 1 = OFF Background debugger disabled; ICSPCLK and ICSPDAT are general purpose I/O pins 0 = ON Background debugger enabled; ICSPCLK and ICSPDAT are dedicated to the debugger bit 12 STVREN: Stack Overflow/Underflow Reset Enable bit 1 = ON Stack Overflow or Underflow will cause a Reset 0 = OFF Stack Overflow or Underflow will not cause a Reset bit 11 PPS1WAY: PPSLOCK One-Way Set Enable bit 1 = ON The PPSLOCK bit can be cleared and set only once; PPS registers remain locked after one clear/set cycle 0 = OFF The PPSLOCK bit can be set and cleared repeatedly (subject to the unlock sequence) bit 10 Unimplemented: Read as ‘1’ bit 9 BORV: Brown-out Reset Voltage Selection bit(2) 1 = LOW Brown-out Reset voltage (VBOR) set to 1.9V on LF, and 2.45V on F devices 0 = HIGH Brown-out Reset voltage (VBOR) set to 2.7V The higher voltage setting is recommended for operation at or above 16 MHz. bit 8 Unimplemented: Read as ‘1’ bit 7-6 BOREN[1:0]: Brown-out Reset Enable bits When enabled, Brown-out Reset Voltage (VBOR) is set by the BORV bit 11 = ON Brown-out Reset is enabled; SBOREN bit is ignored 10 = SLEEP Brown-out Reset is enabled while running, disabled in Sleep; SBOREN bit is ignored 01 = SBOREN Brown-out Reset is enabled according to SBOREN 00 = OFF Brown-out Reset is disabled bit 5 LPBOREN: Low-Power BOR Enable bit(3) 1 = OFF ULPBOR is disabled 0 = ON ULPBOR is enabled bit 4 Unimplemented: Read as ‘1’ bit 3-2 WDTE[1:0]: Watchdog Timer Enable bit 11 = ON WDT is enabled; SWDTEN is ignored 10 = SLEEP WDT is enabled while running and disabled in Sleep/Idle; SWDTEN is ignored 01 = SWDTEN WDT is controlled by the SWDTEN bit in the WDTCON register 00 = OFF WDT is disabled; SWDTEN is ignored bit 1 PWRTE: Power-up Timer Enable bit 1 = OFF PWRT is disabled 0 = ON PWRT is enabled bit 0 MCLRE: Master Clear (MCLR) Enable bit If LVP = 1: RA3 pin function is MCLR. If LVP = 0: 1 = ON MCLR pin is MCLR. 0 = OFF MCLR pin function is port-defined function. Note 1: 2: 3: The DEBUG bit in Configuration Words is managed automatically by device development tools including debuggers and programmers. For normal device operation, this bit should be maintained as a ‘1’. See VBOR parameter for specific trip point voltages. PIC16LF18313/18323 devices only.  2015-2019 Microchip Technology Inc. DS40001799F-page 53 PIC16(L)F18313/18323 REGISTER 5-3: CONFIGURATION WORD 3: MEMORY R/P-1 (1) LVP U-1 U-1 U-1 U-1 U-1 — — — — — bit 13 bit 8 U-1 U-1 U-1 U-1 U-1 U-1 — — — — — — R/P-1 R/P-1 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 bit 13 LVP: Low-Voltage Programming Enable bit(1) 1 = ON Low-Voltage Programming is enabled. MCLR/VPP pin function is MCLR. MCLRE Configuration bit is ignored. 0 = OFF HV on MCLR/VPP must be used for programming. bit 12-2 Unimplemented: Read as ‘1’ bit 1-0 WRT[1:0]: User NVM Self-Write Protection bits 11 = OFF Write protection off 10 = BOOT 0000h to 01FFh write-protected, 0200h to 07FFh may be modified 01 = HALF 0000h to 03FFh write-protected, 0400h to 07FFh may be modified 00 = ALL 0000h to 07FFh write-protected, no addresses may be modified WRT applies only to the self-write feature of the device; writing through ICSP™ is never protected. Note 1: The LVP bit cannot be programmed to ‘0’ when Programming mode is entered via LVP.  2015-2019 Microchip Technology Inc. DS40001799F-page 54 PIC16(L)F18313/18323 REGISTER 5-4: CONFIGURATION WORD 4: CODE PROTECTION U-1 U-1 U-1 U-1 U-1 U-1 — — — — — — bit 13 bit 8 U-1 U-1 U-1 U-1 U-1 U-1 R/P-1 R/P-1 — — — — — — CPD CP 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-2 Unimplemented: Read as ‘1’ bit 1 CPD: Data EEPROM Memory Code Protection bit 1 = OFF Data EEPROM code protection disabled 0 = ON Data EEPROM code protection enabled bit 0 CP: Program Memory Code Protection bit 1 = OFF Program Memory code protection disabled 0 = ON Program Memory code protection enabled  2015-2019 Microchip Technology Inc. DS40001799F-page 55 PIC16(L)F18313/18323 5.3 Code Protection Code protection allows the device to be protected from unauthorized access. Program memory protection and data memory are controlled independently. Internal access to the program memory is unaffected by any code protection setting. 5.3.1 PROGRAM MEMORY PROTECTION The entire program memory space is protected from external reads and writes by the CP bit in Configuration Words. 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. Self-write writing the program memory is dependent upon the write protection setting. See Section 5.4 “Write Protection” for more information. 5.3.2 DATA MEMORY PROTECTION The entire data EEPROM is protected from external reads and writes by the CPD bit in the Configuration Words. When CPD = 0, external reads and writes of EEPROM memory are inhibited and a read will return all ‘0’s. The CPU can continue to read and write EEPROM memory, regardless of the protection bit settings. 5.4 Write Protection Write protection allows the device to be protected from unintended self-writes. Applications, such as boot loader software, can be protected while allowing other regions of the program memory to be modified. The WRT[1:0> bits in Configuration Words define the size of the program memory block that is protected. 5.5 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.4.7 “NVMREG EEPROM, User ID, Device ID and Configuration Word Access” for more information on accessing these memory locations. For more information on checksum calculation, see the “PIC16(L)F183XX Memory Programming Specification” (DS40001738). 5.6 Device ID and Revision ID The 14-bit device ID word is located at 8006h and the 14-bit revision ID is located at 8005h. These locations are read-only and cannot be erased or modified. See Section 11.4.7 “NVMREG EEPROM, 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.  2015-2019 Microchip Technology Inc. DS40001799F-page 56 PIC16(L)F18313/18323 5.7 Register Definitions: Device and Revision REGISTER 5-5: DEVID: DEVICE ID REGISTER R R R R R R DEV[13:8] bit 13 R R bit 8 R R R R R R DEV[7:0] bit 7 bit 0 Legend: R = Readable bit ‘1’ = Bit is set bit 13-0 ‘0’ = Bit is cleared DEV[13:0]: Device ID bits Device DEVID[13:0] Values PIC16F18313 11 0000 0110 0110 (3066h) PIC16LF18313 11 0000 0110 1000 (3068h) PIC16F18323 11 0000 0110 0111 (3067h) PIC16LF18323 11 0000 0110 1001 (3069h) REGISTER 5-6: REVID: REVISION ID REGISTER R-1 R-0 R R R R REV[13:8] bit 13 R R bit 8 R R R R R R REV[7:0] bit 7 bit 0 Legend: R = Readable bit ‘1’ = Bit is set bit 13-0 Note: ‘0’ = Bit is cleared REV[13:0]: Revision ID bits The upper two bits of the Revision ID Register will always read ‘10’.  2015-2019 Microchip Technology Inc. DS40001799F-page 57 PIC16(L)F18313/18323 6.0 RESETS There are multiple ways to reset this device: • • • • • • • • • Power-On Reset (POR) Brown-Out Reset (BOR) Low-Power Brown-Out Reset (LPBOR) 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 6-1. FIGURE 6-1: SIMPLIFIED BLOCK DIAGRAM OF ON-CHIP RESET CIRCUIT Rev. 10-000006A 8/14/2013 ICSP™ Programming Mode Exit RESET Instruction Stack Underflow Stack Overlfow MCLRE VPP/MCLR Sleep WDT Time-out Device Reset Power-on Reset VDD BOR Active(1) Brown-out Reset LPBOR Reset Note 1: R LFINTOSC Power-up Timer PWRTE See Table 6-1 for BOR active conditions.  2015-2019 Microchip Technology Inc. DS40001799F-page 58 PIC16(L)F18313/18323 6.1 Power-on Reset (POR) The POR circuit holds the device in Reset until VDD has reached an acceptable level for minimum operation. Slow rising VDD, fast operating speeds or analog performance may require greater than minimum VDD. The PWRT, BOR or MCLR features can be used to extend the start-up period until all device operation conditions have been met. 6.2 Brown-out Reset (BOR) The BOR circuit holds the device in Reset while VDD is below a selectable minimum level. Between the POR and BOR, complete voltage range coverage for execution protection can be implemented. The Brown-out Reset module has four operating modes controlled by the BOREN[1:0] bits in Configuration Words. The four operating modes are: • • • • BOR is always on BOR is off when in Sleep BOR is controlled by software BOR is always off Refer to Table 6-1 for more information. The Brown-out Reset voltage level is selectable by configuring the BORV bit in Configuration Words. A VDD noise rejection filter prevents the BOR from triggering on small events. If VDD falls below VBOR for a duration greater than parameter TBORDC, the device will reset, and the BOR bit of the PCON0 register will be cleared, indicating that a Brown-out Reset condition occurred. See Figure 6-2 for more information. TABLE 6-1: BOR OPERATING MODES Instruction Execution upon: Release of POR or Wake-up from Sleep BOREN[1:0] SBOREN Device Mode BOR Mode 11 X X Active In these specific cases, “Release of POR” and “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. 10 X Awake Active Waits for release of BOR (BORRDY = 1) Sleep Disabled Active 1 X 01 00 0 X Disabled X X Disabled  2015-2019 Microchip Technology Inc. BOR ignored when asleep In these specific cases, “Release of POR” and “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. Begins immediately (BORRDY = x) DS40001799F-page 59 PIC16(L)F18313/18323 6.2.1 BOR IS ALWAYS ON 6.2.3 When the BOREN bits of Configuration Words are programmed to ‘11’, the BOR is always on. The device start-up will be delayed until the BOR is ready and VDD is higher than the BOR threshold. When the BOREN bits of Configuration Words are programmed to ‘01’, the BOR is controlled by the SBOREN bit of the BORCON register. The device wake from Sleep is not delayed by the BOR Ready condition or the VDD level only when the SBOREN bit is cleared in software and the device is starting up from a non POR/BOR Reset event. BOR protection is active during Sleep. The BOR does not delay wake-up from Sleep. 6.2.2 BOR CONTROLLED BY SOFTWARE BOR IS OFF IN SLEEP BOR protection begins as soon as the BOR circuit is ready. The status of the BOR circuit is reflected in the BORRDY bit of the BORCON register. When the BOREN bits of Configuration Words are programmed 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 unchanged by Sleep. BOR protection is not active during Sleep, but device wake-up will be delayed until the BOR can determine that VDD is higher than the BOR threshold. The device wake-up will be delayed until the BOR is ready. FIGURE 6-2: BROWN-OUT SITUATIONS VDD Internal Reset VBOR TPWRT(1) VDD Internal Reset VBOR < TPWRT TPWRT(1) VDD Internal Reset Note 1: 6.2.4 VBOR TPWRT(1) TPWRT delay only if PWRTE bit is programmed to ‘0’. BOR ALWAYS OFF When the BOREN bits of Configuration Word 2 are programmed to ‘00’, the BOR is always disable. In the configuration, setting the SWBOREN bit will have no affect on BOR operation.  2015-2019 Microchip Technology Inc. DS40001799F-page 60 PIC16(L)F18313/18323 6.3 Low-Power Brown-out Reset (LPBOR)(PIC16LF18313/18323 Devices Only) The Low-Power Brown-Out Reset (LPBOR) circuit provides alternative protection against Brown-out conditions for the PIC16LF18313/18323 devices only. When VDD falls below the LPBOR threshold, the device is held in Reset. When this occurs, the BOR bit of the PCON0 register is cleared to indicate that a Brown-out Reset occurred. The BOR bit will be cleared when either the BOR or the LPBOR circuitry detects a BOR condition. The LPBOR feature can be used with or without BOR enabled. When used while BOR is enabled, the LPBOR can be used as a secondary protection circuit in case the BOR circuit fails to detect the BOR condition. Additionally, when BOR is enabled except while in Sleep (BOREN[1:0] = 10), the LPBOR circuit will hold the device in Reset while VDD is lower than the LPBOR threshold, and will also re-arm the POR. (See Table 35-11 for LPBOR Reset voltage levels). The device has a noise filter in the MCLR Reset path. The filter will detect and ignore small pulses. Note: 6.4.2 A Reset does not drive the MCLR pin low. MCLR DISABLED When MCLR is disabled, the pin functions as a general purpose input and the internal weak pull-up is under software control. See Section 12.2 “PORTA Registers” for more information. 6.5 Watchdog Timer (WDT) Reset The Watchdog Timer generates a Reset if the firmware does not issue a CLRWDT instruction within the time-out period. The TO and PD bits in the STATUS register as well as the RWDT bit in the PCON0 register, are changed to indicate the WDT Reset. See Section 10.0 “Watchdog Timer (WDT)” for more information. 6.6 RESET Instruction When used without BOR enabled, the LPBOR circuit provides a single Reset trip point with the benefit of reduced current consumption. A RESET instruction will cause a device Reset. The RI bit in the PCON0 register will be set to ‘0’. See Table 6-4 for default conditions after a RESET instruction has occurred. 6.3.1 6.7 ENABLING LPBOR The LPBOR is controlled by the LPBOR bit of Configuration Words. When the device is erased, the LPBOR module defaults to disabled. 6.3.1.1 LPBOR Module Output The output of the LPBOR module is a signal indicating whether or not a Reset is to be asserted. This signal is OR’d together with the Reset signal of the BOR module to provide the generic BOR signal, which goes to the PCON0 register and to the power control block. 6.4 MCLR The MCLR is an optional external input that can reset the device. The MCLR function is controlled by the MCLRE bit of Configuration Words and the LVP bit of Configuration Words (Table 6-2). TABLE 6-2: MCLR CONFIGURATION MCLRE LVP MCLR 0 0 Disabled 1 0 Enabled x 1 Enabled 6.4.1 Stack Overflow/Underflow Reset The device can reset when the Stack Overflows or Underflows. The STKOVF or STKUNF bits of the PCON0 register indicate the Reset condition. These Resets are enabled by setting the STVREN bit in Configuration Words. See Section 4.4 “Stack” for more information. 6.8 Programming Mode Exit Upon exit of Programming mode, the device will behave as if a device Reset had just occurred. 6.9 Power-up Timer The Power-up Timer provides a nominal 64 ms time-out on POR or Brown-out Reset. The device is held in Reset as long as PWRT is active. The PWRT delay allows additional time for the VDD to rise to an acceptable level. The Power-up Timer is enabled by clearing the PWRTE bit in Configuration Words. The Power-up Timer starts after the release of the POR and BOR. For additional information, refer to Application Note AN607, “Power-up Trouble Shooting” (DS00607). MCLR ENABLED When MCLR is enabled and the pin is held low, the device is held in Reset. The MCLR pin is connected to VDD through an internal weak pull-up.  2015-2019 Microchip Technology Inc. DS40001799F-page 61 PIC16(L)F18313/18323 6.10 Start-up Sequence Upon the release of a POR or BOR, the following must occur before the device will begin executing: 1. 2. 3. Power-up Timer runs to completion (if enabled). MCLR must be released (if enabled). Oscillator start-up timer runs to completion (if required for oscillator source). The Power-up Timer and oscillator start-up timer run independently of MCLR Reset. If MCLR is kept low long enough, the Power-up Timer will expire. Upon bringing MCLR high, the device will begin execution after 10 FOSC cycles (see Figure 6-3). This is useful for testing purposes or to synchronize more than one device operating in parallel. The total time-out will vary based on oscillator configuration and Power-up Timer Configuration. See Section 7.0 “Oscillator Module” for more information. FIGURE 6-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  2015-2019 Microchip Technology Inc. DS40001799F-page 62 PIC16(L)F18313/18323 6.11 Determining the Cause of a Reset Upon any Reset, multiple bits in the STATUS and PCON0 register are updated to indicate the cause of the Reset. Table 6-3 and Table 6-4 show the Reset conditions of these registers. TABLE 6-3: RESET STATUS BITS AND THEIR SIGNIFICANCE STKOVF STKUNF RWDT RMCLR RI POR BOR TO PD Condition 0 0 1 1 1 0 x 1 1 Power-on Reset 0 0 1 1 1 0 x 0 x Illegal, TO is set on POR 0 0 1 1 1 0 x x 0 Illegal, PD is set on POR 0 0 u 1 1 u 0 1 1 Brown-out Reset u u 0 u u u u 0 u WDT Reset u u u u u u u 0 0 WDT Wake-up from Sleep u u u u u u u 1 0 Interrupt Wake-up from Sleep u u u 0 u u u u u MCLR Reset during Normal Operation u u u 0 u u u 1 0 MCLR Reset during Sleep u u u u 0 u u u u RESET Instruction Executed 1 u u u u u u u u Stack Overflow Reset (STVREN = 1) u 1 u u u u u u u Stack Underflow Reset (STVREN = 1) TABLE 6-4: RESET CONDITION FOR SPECIAL REGISTERS Program Counter STATUS Register PCON0 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-0 uuuu WDT Wake-up from Sleep PC + 1 ---0 0uuu uu-u uuuu Brown-out Reset 0000h ---1 1000 00-1 11u0 ---1 0uuu uu-u uuuu Condition Interrupt Wake-up from Sleep PC + 1(1) RESET Instruction Executed 0000h ---u uuuu uu-u u0uu Stack Overflow Reset (STVREN = 1) 0000h ---u uuuu 1u-u uuuu Stack Underflow Reset (STVREN = 1) 0000h ---u uuuu u1-u 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.  2015-2019 Microchip Technology Inc. DS40001799F-page 63 PIC16(L)F18313/18323 REGISTER 6-1: R/W-1/u SBOREN (1) BORCON: BROWN-OUT RESET CONTROL REGISTER R/W-0-0 U-0 U-0 U-0 U-0 U-0 R-q/u Reserved — — — — — 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(1) If BOREN [1:0] in Configuration Words  01: SBOREN is read/write, but has no effect on the BOR. If BOREN [1:0] in Configuration Words = 01: 1 = BOR Enabled 0 = BOR Disabled bit 6 Reserved. Bit must be maintained as ‘0’. bit 5-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 Note 1: 6.12 BOREN[1:0] bits are located in Configuration Words. Power Control (PCON0) Register The Power Control (PCON0) register contains flag bits to differentiate between a: • • • • • • • Power-on Reset (POR) Brown-out Reset (BOR) Reset Instruction Reset (RI) MCLR Reset (RMCLR) Watchdog Timer Reset (RWDT) Stack Underflow Reset (STKUNF) Stack Overflow Reset (STKOVF) The PCON0 register bits are shown in Register 6-2. Hardware will change the corresponding register bit during the Reset process; if the Reset was not caused by the condition, the bit remains unchanged (Table 6-4). Software should reset the bit to the inactive state after the restart (hardware will not reset the bit). Software may also set any PCON0 bit to the active state, so that user code may be tested, but no Reset action will be generated.  2015-2019 Microchip Technology Inc. DS40001799F-page 64 PIC16(L)F18313/18323 6.13 Register Definitions: Power Control REGISTER 6-2: PCON0: POWER CONTROL REGISTER 0 R/W/HS-0/q R/W/HS-0/q U-0 STKOVF STKUNF — R/W/HC-1/q R/W/HC-1/q RWDT R/W/HC-1/q R/W/HC-q/u R/W/HC-q/u RI POR BOR RMCLR 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 has been cleared by firmware bit 6 STKUNF: Stack Underflow Flag bit 1 = A Stack Underflow occurred 0 = A Stack Underflow has not occurred or has been cleared by firmware bit 5 Unimplemented: Read as ‘0’ bit 4 RWDT: Watchdog Timer Reset Flag bit 1 = A Watchdog Timer Reset has not occurred or set to ‘1’ by firmware 0 = A Watchdog Timer Reset has occurred (cleared by hardware) 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 (cleared by hardware) 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 (cleared by hardware) 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) TABLE 6-5: Name SUMMARY OF REGISTERS ASSOCIATED WITH RESETS Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Register on Page BORCON SBOREN Reserved — — — — — BORRDY 64 PCON0 STKOVF STKUNF — RWDT RMCLR RI POR BOR 65 STATUS — — — TO PD Z DC C 24 WDTCON — — SWDTEN 109 WDTPS[4:0] Legend: — = unimplemented location, read as ‘0’. Shaded cells are not used by Resets.  2015-2019 Microchip Technology Inc. DS40001799F-page 65 PIC16(L)F18313/18323 7.0 OSCILLATOR MODULE 7.1 Overview The oscillator module has a wide variety of clock sources and selection features that allow it to be used in a wide range of applications while maximizing performance and minimizing power consumption. Figure 7-1 illustrates a block diagram of the oscillator module. Clock sources can be supplied from external oscillators, quartz-crystal resonators and ceramic resonators. In addition, the system clock source can be supplied from one of two internal oscillators and PLL circuits, with a choice of speeds selectable via software. Additional clock features include: • Selectable system clock source between external or internal sources via software. • Fail-Safe Clock Monitor (FSCM) designed to detect a failure of the external clock source (LP, XT, HS, ECH, ECM, ECL) and switch automatically to the internal oscillator. • Oscillator Start-up Timer (OST) ensures stability of crystal oscillator sources. The RSTOSC bits of Configuration Word 1 determine the type of oscillator that will be used when the device is reset, including when it is first powered-up. The internal clock modes, LFINTOSC, HFINTOSC (set at 1 MHz), or HFINTOSC (set at 32 MHz) can be set through the RSTOSC bits.  2015-2019 Microchip Technology Inc. If an external clock source is selected, the FEXTOSC bits of Configuration Word 1 must be used in conjunction with the RSTOSC bits to select the External Clock mode. The external oscillator module can be configured in one of the following clock modes by setting the FEXTOSC[2:0] bits of Configuration Word 1: 1. 2. 3. 4. 5. 6. ECL – External Clock Low-Power mode (500 kHz) ECM – External Clock Medium-Power mode ( 8 MHz) ECH – External Clock High-Power mode ( 32 MHz) LP – 32 kHz Low-Power Crystal mode. XT – Medium Gain Crystal or Ceramic Resonator Oscillator mode (between 100 kHz and 4 MHz) HS – High Gain Crystal or Ceramic Resonator mode (above 4 MHz) The ECH, ECM, and ECL Clock modes rely on an external logic level signal as the device clock source. The LP, XT, and HS Clock modes require an external crystal or resonator to be connected to the device. Each mode is optimized for a different frequency range. The INTOSC internal oscillator block produces low and high-frequency clock sources, designated LFINTOSC and HFINTOSC. (see Internal Oscillator Block, Figure 7-1). DS40001799F-page 66 CLKIN/ OSC1 Rev. 10-000208L 3/13/2017 External Oscillator (EXTOSC) CLKOUT/ OSC2 CDIV 4x PLL Mode SOSCIN/SOSCI Secondary Oscillator (SOSC) SOSCO LFINTOSC PLL Block 2x PLL Mode 512 1001 111 256 1000 001 128 0111 64 0110 000 011 100 110 010 101 HFINTOSC Sleep System Clock 32 0101 16 0100 8 0011 4 0010 Sleep 2 0001 Idle 1 0000 SYSCMD HFFRQ 1 – 32 MHz Oscillator FSCM To Peripherals DS40001799F-page 67 To Peripherals To Peripherals Peripheral Clock PIC16(L)F18313/18323 31kHz Oscillator COSC 9-bit Postscaler Divider  2015-2019 Microchip Technology Inc. SIMPLIFIED PIC® MCU CLOCK SOURCE BLOCK DIAGRAM FIGURE 7-1: PIC16(L)F18313/18323 7.2 Clock Source Types 7.2.1.1 Clock sources can be classified as external or internal. External clock sources rely on external circuitry for the clock source to function. Examples are: oscillator modules (ECH, ECM, ECL mode), quartz crystal resonators or ceramic resonators (LP, XT and HS modes). There is also a secondary oscillator block which is optimized for a 32.768 kHz external clock source, which can be used as an alternate clock source. There are two internal oscillator blocks: - HFINTOSC - LFINTOSC The HFINTOSC can produce clock frequencies from 1-16 MHz. The LFINTOSC generates a 31 kHz clock frequency. There is a PLL that can be used by the external oscillator. See 7.2.1.4 “4x PLL” for more details. Additionally, there is a PLL that can be used by the HFINTOSC at certain frequencies. See Section 7.2.2.2 “2x PLL” for more details. 7.2.1 EXTERNAL CLOCK SOURCES An external clock source can be used as the device system clock by performing one of the following actions: • Program the RSTOSC[2:0] bits in the Configuration Words to select an external clock source that will be used as the default system clock upon a device Reset. • Write the NOSC[2:0] and NDIV[3:0] bits in the OSCCON1 register to switch the system clock source. See Section 7.3 information. “Clock Switching”  2015-2019 Microchip Technology Inc. for EC Mode The External Clock (EC) mode allows an externally generated logic level signal to be the system clock source. When operating in this mode, an external clock source is connected to the CLKIN input. OSC2/CLKOUT is available for general purpose I/O or CLKOUT. Figure 7-2 shows the pin connections for EC mode. EC mode has three power modes to select from through Configuration Words: • ECH – High power,  32 MHz • ECM – Medium power,  8 MHz • ECL – Low power,  0.5 MHz The Oscillator Start-up Timer (OST) is disabled when EC mode is selected. Therefore, there is no delay in operation after a Power-on Reset (POR) or wake-up from Sleep. Because the PIC® MCU design is fully static, stopping the external clock input will have the effect of halting the device while leaving all data intact. Upon restarting the external clock, the device will resume operation as if no time had elapsed. FIGURE 7-2: Clock from Ext. System FOSC/4 or I/O(1) Note 1: EXTERNAL CLOCK (EC) MODE OPERATION OSC1/CLKIN PIC® MCU OSC2/CLKOUT Output depends upon CLKOUTEN bit of the Configuration Words. more DS40001799F-page 68 PIC16(L)F18313/18323 7.2.1.2 LP, XT, HS Modes The LP, XT and HS modes support the use of quartz crystal resonators or ceramic resonators connected to OSC1 and OSC2 (Figure 7-3). The three modes select a low, medium or high gain setting of the internal inverter-amplifier to support various resonator types and speed. LP Oscillator mode selects the lowest gain setting of the internal inverter-amplifier. LP mode current consumption is the least of the three modes. This mode is designed to drive 32.768 kHz tuning-fork type crystals (watch crystals), but can operate up to 100 kHz. Note 1: Quartz crystal characteristics vary according to type, package and manufacturer. The user should consult the manufacturer data sheets for specifications and recommended application. 2: Always verify oscillator performance over the VDD and temperature range that is expected for the application. 3: For oscillator design assistance, reference the following Microchip Application Notes: • AN826, “Crystal Oscillator Basics and Crystal Selection for rfPIC® and PIC® Devices” (DS00826) • AN849, “Basic PIC® Oscillator Design” (DS00849) • AN943, “Practical PIC® Oscillator Analysis and Design” (DS00943) • AN949, “Making Your Oscillator Work” (DS00949) XT Oscillator mode selects the intermediate gain setting of the internal inverter-amplifier. XT mode current consumption is the medium of the three modes. This mode is best suited to drive crystals and resonators with a frequency range up to 4 MHz. HS Oscillator mode selects the highest gain setting of the internal inverter-amplifier. HS mode current consumption is the highest of the three modes. This mode is best suited for resonators that require operating frequencies up to 20 MHz. FIGURE 7-4: CERAMIC RESONATOR OPERATION (XT OR HS MODE) Figure 7-3 and Figure 7-4 show typical circuits for quartz crystal and ceramic resonators, respectively. FIGURE 7-3: QUARTZ CRYSTAL OPERATION (LP, XT OR HS MODE) PIC® MCU OSC1/CLKIN C1 PIC® MCU RP(3) OSC1/CLKIN C1 RF(2) Sleep To Internal Logic Quartz Crystal RF(2) Sleep C2 Ceramic RS(1) Resonator Note 1: C2 To Internal Logic RS(1) OSC2/CLKOUT Note 1: A series resistor (RS) may be required for quartz crystals with low drive level. 2: The value of RF varies with the Oscillator mode selected (typically between 2 M to 10 M.  2015-2019 Microchip Technology Inc. OSC2/CLKOUT A series resistor (RS) may be required for ceramic resonators with low drive level. 2: The value of RF varies with the Oscillator mode selected (typically between 2 M to 10 M. 3: An additional parallel feedback resistor (RP) may be required for proper ceramic resonator operation. DS40001799F-page 69 PIC16(L)F18313/18323 7.2.1.3 Oscillator Start-up Timer (OST) If the oscillator module is configured for LP, XT or HS modes, the Oscillator Start-up Timer (OST) counts 1024 oscillations from OSC1. This occurs following a Power-on Reset (POR), Brown-out Reset (BOR), or a wake-up from Sleep. The OST ensures that the oscillator circuit, using a quartz crystal resonator or ceramic resonator, has started and is providing a stable system clock to the oscillator module. 7.2.1.4 4x PLL The oscillator module contains a PLL that can be used with external clock sources to provide a system clock source. The input frequency for the PLL must fall within specifications. See the PLL Clock Timing Specifications in Table 35-9. The PLL may be enabled for use by one of two methods: 1. 2. Program the RSTOSC bits in the Configuration Word 1 to enable the EXTOSC with 4x PLL. Write the NOSC[2:0] bits in the OSCCON1 register to enable the EXTOSC with 4x PLL. 7.2.1.5 Secondary Oscillator The secondary oscillator is a separate oscillator block that can be used as an alternate system clock source. The secondary oscillator is optimized for 32.768 kHz, and can be used with an external crystal oscillator connected to the SOSCI and SOSCO device pins, or an external clock source connected to the SOSCIN pin. The secondary oscillator can be selected during run-time using clock switching. Refer to Section 7.3 “Clock Switching” for more information. FIGURE 7-5: Note 1: Quartz crystal characteristics vary according to type, package and manufacturer. The user should consult the manufacturer data sheets for specifications and recommended application. 2: Always verify oscillator performance over the VDD and temperature range that is expected for the application. 3: For oscillator design assistance, reference the following Microchip Application Notes: • AN826, “Crystal Oscillator Basics and Crystal Selection for rfPIC® and PIC® Devices” (DS00826) • AN849, “Basic PICmicro® Oscillator Design” (DS00849) • AN943, “Practical PICmicro® Oscillator Analysis and Design” (DS00943) • AN949, “Making Your Oscillator Work” (DS00949) • TB097, “Interfacing a Micro Crystal MS1V-T1K 32.768 kHz Tuning Fork Crystal to a PIC16F690/SS” (DS91097) • AN1288, “Design Practices for Low-Power External Oscillators” (DS01288) QUARTZ CRYSTAL OPERATION (SECONDARY OSCILLATOR) PIC® MCU SOSCI C1 To Internal Logic 32.768 kHz Quartz Crystal C2 SOSCO  2015-2019 Microchip Technology Inc. DS40001799F-page 70 PIC16(L)F18313/18323 7.2.2 INTERNAL CLOCK SOURCES The device may be configured to use the internal oscillator block as the system clock by performing one of the following actions: • Program the RSTOSC[2:0] bits in Configuration Words to select the INTOSC clock source, which will be used as the default system clock upon a device Reset. • Write the NOSC[2:0] bits in the OSCCON1 register to switch the system clock source to the internal oscillator during run-time. See Section 7.3 “Clock Switching” for more information. The function of the OSC2/CLKOUT pin is determined by the CLKOUTEN bit in Configuration Words. The internal oscillator block has two independent oscillators that can produce two internal system clock sources. 1. 2. The HFINTOSC (High-Frequency Internal Oscillator) is factory calibrated and operates up to 32 MHz. The LFINTOSC (Low-Frequency Internal Oscillator) is factory calibrated and operates at 31 kHz. 7.2.2.1 HFINTOSC The High-Frequency Internal Oscillator (HFINTOSC) is a precision digitally-controlled internal clock source that produces a stable clock up to 32 MHz. The HFINTOSC can be enabled through one of the following methods: • Programming the RSTOSC[2:0] bits in Configuration Word 1 to ‘110’ (1 MHz) or ‘000’ (32 MHz) to set the oscillator upon device Power-up or Reset • Write to the NOSC[2:0] bits of the OSCCON1 register during run-time The HFINTOSC frequency can be selected by setting the HFFRQ[2:0] bits of the OSCFRQ register. The NDIV[3:0] bits of the OSCCON1 register allow for division of the output of the selected clock source by a range between 1:1 and 1:512. 7.2.2.2 2x PLL The oscillator module contains a PLL that can be used with the HFINTOSC clock source to provide a system clock source. The input frequency to the PLL is limited to 8, 12, or 16 MHz, which will yield a system clock source of 16, 24, or 32 MHz, respectively. The PLL may be enabled for use by one of two methods: 1. 2.  2015-2019 Microchip Technology Inc. Program the RSTOSC bits in the Configuration Word 1 to ‘000’ to enable the HFINTOSC (32 MHz). This setting configures the HFFRQ[2:0] bits to ‘110’ (16 MHz) and activates the 2x PLL. Write ‘000’ the NOSC[2:0] bits in the OSCCON1 register to enable the 2x PLL, and write the correct value into the HFFRQ[3:0] bits of the OSCFRQ register to select the desired system clock frequency. See Register 6-6 for more information. DS40001799F-page 71 PIC16(L)F18313/18323 7.2.2.3 Internal Oscillator Frequency Adjustment The HFINTOSC and LFINTOSC internal oscillators are both factory-calibrated. The HFINTOSC oscillator can be adjusted in software by writing to the OSCTUNE register (Register 7-3). OSCTUNE does not affect the LFINTOSC frequency. The default value of the OSCTUNE register is 00h. The value is a 6-bit two’s complement number. A value of 1Fh will provide an adjustment to the maximum frequency. A value of 20h will provide an adjustment to the minimum frequency. When the OSCTUNE register is modified, the HFINTOSC oscillator frequency will begin shifting to the new frequency. Code execution continues during this shift. There is no indication that the shift has occurred. 7.2.2.4 LFINTOSC The Low-Frequency Internal Oscillator (LFINTOSC) is a factory calibrated 31 kHz internal clock source. The LFINTOSC is the clock source for the Power-up Timer (PWRT), Watchdog Timer (WDT) and Fail-Safe Clock Monitor (FSCM). The LFINTOSC can also be used as the system clock, or as a clock or input source to certain peripherals. The LFINTOSC is selected as the clock source through one of the following methods: • Programming the RSTOSC[2:0] bits of Configuration Word 1 to enable LFINTOSC. • Write to the NOSC[2:0] bits of the OSCCON1 register. 7.2.2.5 Oscillator Status and Manual Enable The ‘ready’ status of each oscillator is displayed in the OSCSTAT1 register (Register 7-4). The oscillators can also be manually enabled through the OSCEN register (Register 7-5). Manual enables make it possible to verify the operation of the EXTOSC or SOSC crystal oscillators. This can be achieved by enabling the selected oscillator, then watching the corresponding ‘ready’ state of the oscillator in the OSCSTAT1 register.  2015-2019 Microchip Technology Inc. DS40001799F-page 72 PIC16(L)F18313/18323 7.3 Clock Switching The system clock source can be switched between external and internal clock sources via software using the New Oscillator Source (NOSC) and New Divider Selection Request (NDIV) bits of the OSCCON1 register. The following clock sources can be selected: • • • • • • External Oscillator (EXTOSC) High-Frequency Internal Oscillator (HFINTOSC) Low-Frequency Internal Oscillator (LFINTOSC) Secondary Oscillator (SOSC) EXTOSC with 4x PLL HFINTOSC with 2x PLL 7.3.1 NEW OSCILLATOR SOURCE (NOSC) AND NEW DIVIDER SELECTION REQUEST (NDIV) BITS The New Oscillator Source (NOSC) and New Divider Selection Request (NDIV) bits of the OSCCON1 register select the system clock source and frequencies that are used for the CPU and peripherals. When the new values of NOSC[2:0] and NDIV[3:0] are written to OSCCON1, the current oscillator selection will continue to operate as the system clock while waiting for the new source to indicate that it is stable and ready. In some cases, the newly requested source may already be in use, and is ready immediately. In the case of a divider-only change, the new and old sources are the same and are ready immediately. The device may enter Sleep while waiting for the switch as described in Section 7.3.3 “Clock Switch and Sleep”. When the new oscillator is ready, the New Oscillator is Ready (NOSCR) bit of OSCCON3 and the Clock Switch Interrupt Flag (CSWIF) bit of PIR3 become set (CSWIF = 1). If Clock Switch Interrupts are enabled (CSWIE = 1), an interrupt will be generated at that time. The Oscillator Ready (ORDY) bit of OSCCON3 can also be polled to determine when the oscillator is ready in lieu of an interrupt. If the Clock Switch Hold (CSWHOLD) bit of OSCCON3 is clear, the oscillator switch will occur when the New Oscillator Ready bit (NOSCR) is set and the interrupt (if enabled) will be serviced at the new oscillator setting. If CSWHOLD is set, the oscillator switch is suspended, while execution continues using the current (old) clock source. When the NOSCR bit is set, software should: • set CSWHOLD = 0 so the switch can complete, or • copy COSC into NOSC[2:0] to abandon the switch.  2015-2019 Microchip Technology Inc. If Doze is in effect, the switch occurs on the next clock cycle, whether or not the CPU is operating during that cycle. Changing the clock post-divider without changing the clock source (i.e., changing FOSC from 1 MHz to 2 MHz) is handled in the same manner as a clock source change, as described previously. The clock source will already be active, so the switch is relatively quick. CSWHOLD must be clear (CSWHOLD = 0) for the switch to complete. The current COSC and CDIV are indicated in the OSCCON2 register up to the moment when the switch actually occurs, at which time OSCCON2 is updated and ORDY is set. NOSCR is cleared by hardware to indicate that the switch is complete. 7.3.2 PLL INPUT SWITCH Switching between the PLL and any non-PLL source is managed as described above. The input to the PLL is established when NOSC[2:0] selects the PLL, and maintained by the COSC setting. When NOSC[2:0] and COSC select the PLL with different input sources, the system continues to run using the COSC setting, and the new source is enabled per NOSC[2:0]. When the new oscillator is ready (and CSWHOLD = 0), system operation is suspended while the PLL input is switched and the PLL acquires lock. 7.3.3 CLOCK SWITCH AND SLEEP If OSCCON1 is written with a new value and the device is put to Sleep before the switch completes, the switch will not take place and the device will enter Sleep mode. When the device wakes from Sleep and the CSWHOLD bit is clear, the device will wake with the ‘new’ clock active, and the Clock Switch Interrupt Flag bit (CSWIF) will be set. When the device wakes from Sleep and the CSWHOLD bit is set, the device will wake with the ‘old’ clock active and the new clock will be requested again. DS40001799F-page 73 PIC16(L)F18313/18323 FIGURE 7-6: CLOCK SWITCH (CSWHOLD = 0) OSCCON1 WRITTEN OSC #2 OSC #1 ORDY Note 2 NOSCR Note 1 CSWIF CSWHOLD USER CLEAR Note 1: CSWIF is asserted coincident with NOSCR; interrupt is serviced at OSC#2 speed. 2: The assertion of NOSCR is hidden from the user because it appears only for the duration of the switch. FIGURE 7-7: CLOCK SWITCH (CSWHOLD = 1) OSCCON1 WRITTEN OSC #1 OSC #2 ORDY NOSCR CSWIF CSWHOLD Note 1 USER CLEAR Note 1: CSWIF is asserted coincident with NOSCR, and may be cleared before or after clearing CSWHOLD = 0.  2015-2019 Microchip Technology Inc. DS40001799F-page 74 PIC16(L)F18313/18323 FIGURE 7-8: CLOCK SWITCH ABANDONED OSCCON1 WRITTEN OSCCON1 WRITTEN OSC #1 ORDY Note 2 NOSCR CSWIF Note 1 CSWHOLD Note 1: CSWIF may be cleared before or after rewriting OSCCON1; CSWIF is not automatically cleared. 2: ORDY = 0 if OSCCON1 does not match OSCCON2; a new switch will begin.  2015-2019 Microchip Technology Inc. DS40001799F-page 75 PIC16(L)F18313/18323 7.4 Fail-Safe Clock Monitor 7.4.2 The Fail-Safe Clock Monitor (FSCM) allows the device to continue operating should the external oscillator fail. The FSCM is enabled by setting the FCMEN bit in the Configuration Words. The FSCM is applicable to all external Oscillator modes (LP, XT, HS, ECL, ECM, ECH, and Secondary Oscillator). FIGURE 7-9: FSCM BLOCK DIAGRAM Clock Monitor Latch External Clock S Q When the external clock fails, the FSCM switches the device clock to the HFINTOSC at 1 MHz clock frequency and sets the bit flag OSFIF of the PIR3 register. Setting this flag will generate an interrupt if the OSFIE bit of the PIE3 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, by writing to the NOSC[2:0] and NDIV[3:0]bits of the OSCCON1 register. 7.4.3 LFINTOSC Oscillator ÷ 64 31 kHz (~32 s) 488 Hz (~2 ms) R Q Sample Clock 7.4.1 Clock Failure Detected FAIL-SAFE DETECTION The FSCM module detects a failed oscillator by comparing the external oscillator to the FSCM sample clock. The sample clock is generated by dividing the LFINTOSC by 64. See Figure 7-9. Inside the fail 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.  2015-2019 Microchip Technology Inc. FAIL-SAFE OPERATION FAIL-SAFE CONDITION CLEARING The Fail-Safe condition is cleared after a Reset, executing a SLEEP instruction or changing the NOSC[2:0] and NDIV[3:0] bits of the OSCCON1 register. When switching to the external oscillator or external oscillator with PLL, the OST is restarted. While the OST is running, the device continues to operate from the INTOSC selected in OSCCON1. When the OST times out, the Fail-Safe condition is cleared after successfully switching to the external clock source. The OSFIF bit should be cleared prior to switching to the external clock source. If the Fail-Safe condition still exists, the OSFIF flag will again be set by hardware. DS40001799F-page 76 PIC16(L)F18313/18323 7.4.4 RESET OR WAKE-UP FROM SLEEP 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 any type of Reset. The OST is not used with the EC Clock modes so that the external clock signal can be stopped if required. Therefore, the device will always be executing code while the OST is operating when using one of the EC modes. FIGURE 7-10: FSCM TIMING DIAGRAM Sample Clock Oscillator Failure System Clock Output Clock Monitor Output (Q) Failure Detected OSCFIF Test Note: Test Test 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.  2015-2019 Microchip Technology Inc. DS40001799F-page 77 PIC16(L)F18313/18323 7.5 Register Definitions: Oscillator Control REGISTER 7-1: OSCCON1: OSCILLATOR CONTROL REGISTER 1 R/W-f/f(1) U-0 R/W-f/f(1) R/W-f/f(1) R/W-q/q(4) NOSC[2:0](2,3) — R/W-q/q(4) R/W-q/q(4) R/W-q/q(4) NDIV[3:0](2,3) 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 f = determined by fuse setting q = Reset value is determined by hardware bit 7 Unimplemented: Read as ‘0’ bit 6-4 NOSC[2:0]: New Oscillator Source Request bits The setting requests a source oscillator and PLL combination per Table 7-1. POR value = RSTOSC (Register 5.2). bit 3-0 NDIV[3:0]: New Divider Selection Request bits The setting determines the new postscaler division ratio per Table 7-2. Note 1: 2: 3: 4: The default value (f/f) is set equal to the RSTOSC Configuration bits. If NOSC is written with a reserved value (Table 7-1), the HFINTOSC will be automatically selected as the clock source. When CSWEN = 0, this register is read-only and cannot be changed from the POR value. When RSTOSC = 110 (HFINTOSC 1 MHz) the NDIV bits will default to '0010' upon Reset; for all other NOSC settings the NVID bits will default to '0000' upon Reset. REGISTER 7-2: OSCCON2: OSCILLATOR CONTROL REGISTER 2 R-q/q(1) U-0 — R-q/q(1) R-q/q(1) R-q/q(1) COSC[2:0] R-q/q(1) R-q/q(1) R-q/q(1) CDIV[3: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 f = determined by fuse setting q = Reset value is determined by hardware bit 7 Unimplemented: Read as ‘0’ bit 6-4 COSC[2:0]: Current Oscillator Source Select bits (read-only) Indicates the current source oscillator and PLL combination per Table 7-1. bit 3-0 CDIV[3:0]: Current Divider Select bits (read-only) Indicates the current postscaler division ratio per Table 7-2. Note 1: The Reset value (q/q) will match the NOSC[2:0]/NDIV[3:0] bits.  2015-2019 Microchip Technology Inc. DS40001799F-page 78 PIC16(L)F18313/18323 TABLE 7-1: NOSC/COSC BIT SETTINGS TABLE 7-2: NDIV/CDIV BIT SETTINGS NOSC[2:0] COSC[2:0] Clock Source NDIV[3:0] CDIV[3:0] Clock Divider 111 EXTOSC(1) 1111–1010 Reserved 110 HFINTOSC (1 MHz) 1001 512 101 Reserved 1000 256 100 LFINTOSC 0111 128 011 SOSC 0110 64 010 Reserved 0101 32 001 EXTOSC with 4xPLL(1) 0100 16 000 HFINTOSC with 2x PLL (32 MHz) 0011 8 0010 4 0001 2 0000 1 Note 1: EXTOSC configured by the FEXTOSC bits of Configuration Word 1 (Register 5-1). REGISTER 7-3: OSCCON3: OSCILLATOR CONTROL REGISTER 3 R/W/HC-0/0 R/W-0/0 R/W-0/0 R-0/0 R-0/0 U-0 U-0 U-0 CSWHOLD SOSCPWR SOSCBE ORDY NOSCR — — — 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 = Reset value is determined by hardware f = determined by fuse setting HC = Hardware clear bit 7 CSWHOLD: Clock Switch Hold bit 1 = Clock switch will hold (with interrupt) when the oscillator selected by NOSC is ready 0 = Clock switch may proceed when the oscillator selected by NOSC is ready; if this bit is set at the time that NOSCR becomes ‘1’, the switch and interrupt will occur. bit 6 SOSCPWR: Secondary Oscillator Power Mode Select bit If SOSCBE = 0 1 = Secondary oscillator operating in High-Power mode 0 = Secondary oscillator operating in Low-Power mode If SOSCBE = 1 x = Bit is ignored bit 5 SOSCBE: Secondary Oscillator Bypass Enable bit 1 = Secondary oscillator SOSCI is configured as an external clock input (ST-buffer); SOSCO is not used. 0 = Secondary oscillator is configured as a crystal oscillator using SOSCO and SOSCI pins. bit 4 ORDY: Oscillator Ready bit (read-only) 1 = OSCCON1 = OSCCON2; the current system clock is the clock specified by NOSC 0 = A clock switch is in progress bit 3 NOSCR: New Oscillator is Ready bit (read-only) 1 = A clock switch is in progress and the oscillator selected by NOSC indicates a Ready condition 0 = A clock switch is not in progress, or the NOSC-selected oscillator is not yet ready bit 2-0 Unimplemented: Read as ‘0’.  2015-2019 Microchip Technology Inc. DS40001799F-page 79 PIC16(L)F18313/18323 REGISTER 7-4: OSCSTAT1: OSCILLATOR STATUS REGISTER 1 R-q/q R-q/q U-0 R-q/q R-q/q R-q/q U-0 R-q/q EXTOR HFOR — LFOR SOR ADOR — PLLR 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 = Reset value is determined by hardware bit 7 EXTOR: EXTOSC (external) Oscillator Ready 1 = The oscillator is ready to be used 0 = The oscillator is not enabled, or is not yet ready to be used. bit 6 HFOR: HFINTOSC Oscillator Ready 1 = The oscillator is ready to be used 0 = The oscillator is not enabled, or is not yet ready to be used. bit 5 Unimplemented: Read as ‘0’ bit 4 LFOR: LFINTOSC Oscillator Ready 1 = The oscillator is ready to be used 0 = The oscillator is not enabled, or is not yet ready to be used. bit 3 SOR: Secondary Oscillator Ready 1 = The oscillator is ready to be used 0 = The oscillator is not enabled, or is not yet ready to be used. bit 2 ADOR: ADCRC Oscillator Ready 1 = The oscillator is ready to be used 0 = The oscillator is not enabled, or is not yet ready to be used bit 1 Unimplemented: Read as ‘0’ bit 0 PLLR: PLL is ready 1 = The PLL is ready to be used 0 = The PLL is not enabled, the required input source is not ready, or the PLL is not ready.  2015-2019 Microchip Technology Inc. DS40001799F-page 80 PIC16(L)F18313/18323 REGISTER 7-5: OSCEN: OSCILLATOR MANUAL ENABLE REGISTER R/W-0/0 R/W-0/0 U-0 R/W-0/0 R/W-0/0 R/W-0/0 U-0 U-0 EXTOEN HFOEN — LFOEN SOSCEN ADOEN — — 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 EXTOEN: External Oscillator Manual Request Enable bit 1 = EXTOSC is explicitly enabled, operating as specified by FEXTOSC 0 = EXTOSC could be enabled by another module bit 6 HFOEN: HFINTOSC Oscillator Manual Request Enable bit 1 = HFINTOSC is explicitly enabled, operating as specified by OSCFRQ (Register 7-6) 0 = HFINTOSC could be enabled by another module bit 5 Unimplemented: Read as ‘0’ bit 4 LFOEN: LFINTOSC (31 kHz) Oscillator Manual Request Enable bit 1 = LFINTOSC is explicitly enabled 0 = LFINTOSC could be enabled by another module bit 3 SOSCEN: Secondary Oscillator Manual Request Enable bit 1 = Secondary Oscillator is explicitly enabled 0 = Secondary Oscillator could be enabled by another module bit 2 ADOEN: ADOSC (600 kHz) Oscillator Manual Request Enable bit 1 = ADOSC is explicitly enabled 0 = ADOSC could be enabled by another module bit 1 Unimplemented: Read as ‘0’ bit 0 Unimplemented: Read as ‘0’  2015-2019 Microchip Technology Inc. DS40001799F-page 81 PIC16(L)F18313/18323 REGISTER 7-6: OSCFRQ: HFINTOSC FREQUENCY SELECTION REGISTER U-0 U-0 U-0 U-0 — — — — R/W-0/0 R/W-1/1 R/W-1/1 R/W-0/0 HFFRQ[3: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-4 Unimplemented: Read as ‘0’. bit 3-0 HFFRQ[3:0]: HFINTOSC Frequency Selection bits HFFRQ[3:0] Nominal Freq. (MHz) (NOSC = 110) 0000 0001 0010 0011 0100 0101 0110 0111 1xxx 1 2 Reserved 4 8 12 16 32 32  2015-2019 Microchip Technology Inc. 2xPLL Freq. (MHz) (NOSC = 000) Reserved 16 24 32 Reserved DS40001799F-page 82 PIC16(L)F18313/18323 REGISTER 7-7: OSCTUNE: HFINTOSC 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 HFTUN[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 f = determined by fuse setting q = Reset value is determined by hardware bit 7-6 Unimplemented: Read as ‘0’. bit 5-0 HFTUN[5:0]: HFINTOSC Frequency Tuning bits 01 1111 = Maximum frequency 01 1110 • • • 00 0001 00 0000 = Center frequency. Oscillator module is running at the calibrated frequency (default value). 11 1111 • • • 10 0000 = Minimum frequency.  2015-2019 Microchip Technology Inc. DS40001799F-page 83 PIC16(L)F18313/18323 TABLE 7-3: SUMMARY OF REGISTERS ASSOCIATED WITH CLOCK SOURCES Bit 7 OSCCON1 — NOSC[2:0] NDIV[3:0] 78 OSCCON2 — COSC[2:0] CDIV[3:0] 78 OSCCON3 Bit 6 Bit 5 Bit 4 CWSHOLD SOSCPWR SOSCBE OSCSTAT1 EXTOR HFOR — EXTOEN HFOEN — OSCFRQ — — — OSCTUNE — — OSCEN Bit 3 ORDY NOSCR LFOR SOR Bit 2 LFOEN SOSCEN Bit 1 Bit 0 Register on Page Name — — — 79 ADOR — PLLR 80 ADOEN — — 81 HFFRQ[3:0] — 82 HFTUN[5:0] 83 Legend: — = unimplemented location, read as ‘0’. Shaded cells are not used by clock sources. TABLE 7-4: Name CONFIG1 Legend: SUMMARY OF CONFIGURATION WORD WITH CLOCK SOURCES Bits Bit -/7 13:8 — 7:0 — Bit -/6 Bit 13/5 Bit 12/4 Bit 11/3 Bit 10/2 Bit 9/1 Bit 8/0 — FCMEN — CSWEN — — CLKOUTEN RSTOSC2 RSTOSC1 RSTOSC0 — FEXTOSC2 FEXTOSC1 FEXTOSC0 Register on Page 52 — = unimplemented location, read as ‘0’. Shaded cells are not used by clock sources.  2015-2019 Microchip Technology Inc. DS40001799F-page 84 PIC16(L)F18313/18323 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. 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 TMR0IF TMR0IE Peripheral Interrupts (TMR1IF) PIR1 (TMR1IE) PIE1 Wake-up (If in Sleep mode) INTF INTE IOCIF IOCIE Interrupt to CPU PEIE PIRn PIEn  2015-2019 Microchip Technology Inc. GIE DS40001799F-page 85 PIC16(L)F18313/18323 8.1 Operation Interrupts are disabled upon any device Reset. They are enabled by setting the following bits: • GIE bit of the INTCON register • Interrupt Enable bit(s) (PIEx bits) for the specific interrupt event(s) • PEIE bit of the INTCON register 8.2 Interrupt Latency Interrupt latency is defined as the time from when the interrupt event occurs to the time code execution at the interrupt vector begins. The interrupt is sampled during Q1 of the instruction cycle. The actual interrupt latency then depends on the instruction that is executing at the time the interrupt is detected. See Figure 8-2 and Figure 8-3 for more details. The 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.  2015-2019 Microchip Technology Inc. DS40001799F-page 86 PIC16(L)F18313/18323 FIGURE 8-2: INTERRUPT LATENCY Rev. 10-000269E 8/31/2016 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 CLKOUT INT pin Valid Interrupt window(1) Fetch PC - 1 Execute PC - 2 1 Cycle Instruction at PC PC = 0x0004 PC + 1 PC PC - 1 123 PC Indeterminate Latency(2) 123 PC = 0x0005 PC = 0x0006 PC = 0x0004 PC = 0x0005 Latency Note 1: An interrupt may occur at any time during the interrupt window. 2: Since an interrupt may occur any time during the interrupt window, the actual latency can vary. 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) (1) INTF (5) Interrupt Latency (2) GIE INSTRUCTION FLOW PC Instruction Fetched Instruction Executed Note 1: PC Inst (PC) Inst (PC – 1) PC + 1 Inst (PC + 1) Inst (PC) PC + 1 — Forced NOP 0004h Inst (0004h) Forced NOP 0005h Inst (0005h) Inst (0004h) 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 35.0 “Electrical Specifications””. 5: INTF is enabled to be set any time during the Q4-Q1 cycles.  2015-2019 Microchip Technology Inc. DS40001799F-page 87 PIC16(L)F18313/18323 8.3 Interrupts During Sleep All 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 Section 9.0 “Power-Saving Operation Modes” 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 PIE0 register. The INTEDG bit of the INTCON 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 PIR0 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.  2015-2019 Microchip Technology Inc. DS40001799F-page 88 PIC16(L)F18313/18323 8.6 Register Definitions: Interrupt Control REGISTER 8-1: INTCON: INTERRUPT CONTROL REGISTER R/W/HS/HC-0/0 R/W-0/0 U-0 U-0 U-0 U-0 U-0 R-1/1 GIE PEIE — — — — — INTEDG 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 = hardware set HC = Hardware clear 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-1 Unimplemented: Read as ‘0’. bit 0 INTEDG: Interrupt Edge Select bit 1 = Interrupt on rising edge of INT pin 0 = Interrupt on falling edge of INT pin Note: Bit PEIE of the INTCON register must be set to enable any peripheral interrupt.  2015-2019 Microchip Technology Inc. DS40001799F-page 89 PIC16(L)F18313/18323 REGISTER 8-2: PIE0: PERIPHERAL INTERRUPT ENABLE REGISTER 0 U-0 U-0 R/W/HS-0/0 R/W-0/0 U-0 U-0 U-0 R/W/HS-0/0 — — TMR0IE IOCIE — — — INTE 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 = Hardware set bit 7-6 Unimplemented: Read as ‘0’. bit 5 TMR0IE: TMR0 Overflow Interrupt Enable bit 1 = Enables the TMR0 interrupt 0 = Disables the TMR0 interrupt bit 4 IOCIE: Interrupt-on-Change Interrupt Enable bit 1 = Enables the IOC change interrupt 0 = Disables the IOC change interrupt bit 3-1 Unimplemented: Read as ‘0’. bit 0 INTE: INT External Interrupt Flag bit(1) 1 = Enables the INT external interrupt 0 = Disables the INT external interrupt Note 1: Note: The external interrupt INT pin is selected by INTPPS (Register 13-1). Bit PEIE of the INTCON register must be set to enable any peripheral interrupt.  2015-2019 Microchip Technology Inc. DS40001799F-page 90 PIC16(L)F18313/18323 REGISTER 8-3: 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 BCL1IE 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: Analog-to-Digital Converter (ADC) Interrupt Enable bit 1 = Enables the ADC interrupt 0 = Disables the ADC interrupt bit 5 RCIE: EUSART Receive Interrupt Enable bit 1 = Enables the EUSART receive interrupt 0 = Disables the EUSART receive interrupt bit 4 TXIE: EUSART Transmit Interrupt Enable bit 1 = Enables the EUSART transmit interrupt 0 = Disables the EUSART transmit interrupt bit 3 SSP1IE: Synchronous Serial Port (MSSP) Interrupt Enable bit 1 = Enables the MSSP interrupt 0 = Disables the MSSP interrupt bit 2 BCL1IE: MSSP1 Bus Collision Interrupt Enable bit 1 = MSSP bus collision interrupt enabled 0 = MSSP bus collision interrupt not enabled 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 Note: Bit PEIE of the INTCON register must be set to enable any peripheral interrupt.  2015-2019 Microchip Technology Inc. DS40001799F-page 91 PIC16(L)F18313/18323 REGISTER 8-4: PIE2: PERIPHERAL INTERRUPT ENABLE REGISTER 2 U-0 R/W-0/0 R/W-0/0 R/W-0/0 U-0 U-0 U-0 R/W-0/0 — C2IE(1) C1IE NVMIE — — — NCO1IE 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 Unimplemented: Read as ‘0’. bit 6 C2IE: Comparator C2 Interrupt Enable bit(1) 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 NVMIE: NVM Interrupt Enable Bit 1 = NVM task complete interrupt enabled 0 = NVM interrupt not enabled bit 3-1 Unimplemented: Read as ‘0’. bit 0 NCO1IE: NCO Interrupt Enable bit 1 = NCO rollover interrupt enabled 0 = NCO rollover interrupt not enabled Note 1: Note: Comparator C2 not available on PIC16(L)F18313 devices. Bit PEIE of the INTCON register must be set to enable any peripheral interrupt.  2015-2019 Microchip Technology Inc. DS40001799F-page 92 PIC16(L)F18313/18323 REGISTER 8-5: PIE3: PERIPHERAL INTERRUPT ENABLE REGISTER 3 R/W-0/0 R/W-0/0 U-0 U-0 U-0 U-0 R/W-0/0 R/W-0/0 OSFIE CSWIE — — — — CLC2IE CLC1IE 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 CSWIE: Clock Switch Complete Interrupt Enable bit 1 = The clock switch module interrupt is enabled 0 = The clock switch module interrupt is not enabled bit 5-2 Unimplemented: Read as ‘0’. bit 1 CLC2IE: CLC2 Interrupt Enable bit 1 = CLC2 interrupt enabled 0 = CLC2 interrupt disabled bit 0 CLC1IE: CLC1 Interrupt Enable bit 1 = CLC1 interrupt enabled 0 = CLC1 interrupt disabled Note: Bit PEIE of the INTCON register must be set to enable any peripheral interrupt.  2015-2019 Microchip Technology Inc. DS40001799F-page 93 PIC16(L)F18313/18323 REGISTER 8-6: PIE4: PERIPHERAL INTERRUPT ENABLE REGISTER 4 U-0 R/W-0/0 U-0 U-0 U-0 U-0 R/W-0/0 R/W-0/0 — CWG1IE — — — — CCP2IE CCP1IE 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 = Hardware set bit 7 Unimplemented: Read as ‘0’. bit 6 CWG1IE: CWG 1 Interrupt Enable bit 1 = CWG1 interrupt enabled 0 = CWG1 interrupt not enabled bit 5-2 Unimplemented: Read as ‘0’. bit 1 CCP2IE: CCP2 Interrupt Enable bit 1 = CCP2 interrupt is enabled 0 = CCP2 interrupt is not enabled bit 0 CCP1IE: CCP1 Interrupt Enable bit 1 = CCP1 interrupt is enabled 0 = CCP1 interrupt is not enabled Note: Bit PEIE of the INTCON register must be set to enable any peripheral interrupt.  2015-2019 Microchip Technology Inc. DS40001799F-page 94 PIC16(L)F18313/18323 REGISTER 8-7: U-0 PIR0: PERIPHERAL INTERRUPT REQUEST REGISTER 0 U-0 — — R/W/HS-0/0 TMR0IF R-0 IOCIF (1) U-0 U-0 U-0 R/W/HS-0/0 — — — INTF 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= Hardware Set bit 7-6 Unimplemented: Read as ‘0’ bit 5 TMR0IF: TMR0 Overflow Interrupt Flag bit 1 = TMR0 register has overflowed (must be cleared in software) 0 = TMR0 register did not overflow bit 4 IOCIF: Interrupt-on-Change Interrupt Flag bit (read-only) 1 = An enabled edge was detected by the IOC module. One of the IOCF bits is set. 0 = No enabled edge is was detected by the IOC module. None of the IOCF bits is set. Pins are individually masked via IOCxP and IOCxN. bit 3-1 Unimplemented: Read as ‘0’ bit 0 INTF: INT External Interrupt Flag bit(1) 1 = The INT external interrupt occurred (must be cleared in software) 0 = The INT external interrupt did not occur Note 1: Note: The IOCIF bit is the logical OR of all the IOCAF-IOCCF flags. Therefore, to clear the IOCIF flag, application firmware must clear all of the IOCAF-IOCCF register bits. 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.  2015-2019 Microchip Technology Inc. DS40001799F-page 95 PIC16(L)F18313/18323 REGISTER 8-8: PIR1: PERIPHERAL INTERRUPT REQUEST REGISTER 1 R/W/HS-0/0 R/W/HS-0/0 R-0 R-0 R/W/HS-0/0 R/W/HS-0/0 R/W/HS-0/0 R/W/HS-0/0 TMR1GIF ADIF RCIF TXIF SSP1IF BCL1IF 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 HS = Hardware set bit 7 TMR1GIF: Timer1 Gate Interrupt Flag bit 1 = The Timer1 gate has gone inactive (the gate is closed). 0 = The Timer1 gate has not gone inactive. bit 6 ADIF: Analog-to-Digital Converter (ADC) Interrupt Flag bit 1 = The A/D conversion completed 0 = The A/D conversion is not completed bit 5 RCIF: EUSART Receive Interrupt Flag bit (read-only) 1 = The EUSART1 receive buffer is not empty 0 = The EUSART1 receive buffer is empty bit 4 TXIF: EUSART Transmit Interrupt Flag bit (read-only) 1 = The EUSART1 transmit buffer is empty 0 = The EUSART1 transmit buffer is not empty bit 3 SSP1IF: Synchronous Serial Port (MSSP) Interrupt Flag bit 1 = The Transmission/Reception/Bus Condition is complete (must be cleared in software) 0 = Waiting for the Transmission/Reception/Bus Condition in progress bit 2 BCL1IF: MSSP Bus Collision Interrupt Flag bit 1 = A bus collision was detected (must be cleared in software) 0 = No bus collision was detected bit 1 TMR2IF: Timer2 to PR2 Interrupt Flag bit 1 = TMR2 to PR2 match occurred (must be cleared in software) 0 = No TMR2 to PR2 match occurred bit 0 TMR1IF: Timer1 Overflow Interrupt Flag bit 1 = TMR1 overflow occurred (must be cleared in software) 0 = No TMR1 overflow occurred Note: 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.  2015-2019 Microchip Technology Inc. DS40001799F-page 96 PIC16(L)F18313/18323 REGISTER 8-9: U-0 PIR2: PERIPHERAL INTERRUPT REQUEST REGISTER 2 R/W/HS-0/0 — (1) C2IF R/W/HS-0/0 R/W/HS-0/0 C1IF NVMIF U-0 U-0 U-0 R/W/HS-0/0 — — — NCO1IF 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 = Hardware set bit 7 Unimplemented: Read as ‘0’ bit 6 C2IF: Comparator C2 Interrupt Flag bit(1) 1 = Comparator 2 interrupt asserted 0 = Comparator 2 interrupt not asserted bit 5 C1IF: Comparator C1 Interrupt Flag bit 1 = Comparator 1 interrupt asserted 0 = Comparator 1 interrupt not asserted bit 4 NVMIF: NVM Interrupt Flag bit 1 = The NVM has completed a programming task 0 = NVM interrupt not asserted bit 3-1 Unimplemented: Read as ‘0’ bit 0 NCO1IF: NCO Interrupt Flag bit 1 = The NCO has rolled over. 0 = No NCO interrupt is asserted. Note 1: Note: Comparator C2 not available on PIC16(L)F18313 devices. 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.  2015-2019 Microchip Technology Inc. DS40001799F-page 97 PIC16(L)F18313/18323 REGISTER 8-10: PIR3: PERIPHERAL INTERRUPT REQUEST REGISTER 3 R/W/HS-0/0 R/W/HS-0/0 U-0 U-0 U-0 U-0 R/W/HS-0/0 R/W/HS-0/0 OSFIF CSWIF — — — — CLC2IF CLC1IF 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 = Hardware set bit 7 OSFIF: Oscillator Fail-Safe Interrupt Flag bit 1 = Fail-Safe Clock Monitor module has detected a failed oscillator 0 = External oscillator operating normally. bit 6 CSWIF: Clock Switch Complete Interrupt Flag bit 1 = The clock switch module has completed the clock switch; new oscillator is ready 0 = The clock switch module has not completed clock switch. bit 5-2 Unimplemented: Read as ‘0’ bit 1 CLC2IF: CLC2 Interrupt Flag bit 1 = The CLC2OUT interrupt condition has been met 0 = No CLC2 interrupt bit 0 CLC1IF: CLC1 Interrupt Flag bit 1 = The CLC1OUT interrupt condition has been met 0 = No CLC1 interrupt Note: 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.  2015-2019 Microchip Technology Inc. DS40001799F-page 98 PIC16(L)F18313/18323 REGISTER 8-11: PIR4: PERIPHERAL INTERRUPT REQUEST REGISTER 4 U-0 R/W/HS-0/0 U-0 U-0 U-0 U-0 R/W/HS-0/0 R/W/HS-0/0 — CWG1IF — — — — CCP2IF CCP1IF 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 = Hardware set bit 7 Unimplemented: Read as ‘0’ bit 6 CWG1IF: CWG1 Interrupt Flag bit 1 = CWG1 has gone into shutdown 0 = CWG1 is operating normally, or interrupt cleared bit 5-2 Unimplemented: Read as ‘0’ bit 1 CCP2IF: CCP2 Interrupt Flag bit Value 1 0 bit 0 CCPM Mode Capture Capture occurred Compare match occurred (must be cleared in software) (must be cleared in software) Compare match did not Capture did not occur occur PWM Output trailing edge occurred (must be cleared in software) Output trailing edge did not occur CCP1IF: CCP1 Interrupt Flag bit CCPM Mode Value 1 0 Note: Compare Capture Compare Capture occurred Compare match occurred (must be cleared in software) (must be cleared in software) Compare match did not Capture did not occur occur PWM Output trailing edge occurred (must be cleared in software) Output trailing edge did not occur 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.  2015-2019 Microchip Technology Inc. DS40001799F-page 99 PIC16(L)F18313/18323 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 — — — — — INTEDG 89 PIE0 — — TMR0IE IOCIE — — — INTE 90 PIE1 TMR1GIE ADIE RCIE TXIE SSP1IE BCL1IE TMR2IE TMR1IE 91 C1IE NVMIE — — — NCO1IE 92 (1) PIE2 — C2IE PIE3 OSFIE CSWIE — — — — CLC2IE CLC1IE 93 PIE4 — CWG1IE — — — — CCP2IE CCP1IE 94 PIR0 — — TMR0IF IOCIF — — — INTF 95 PIR1 TMR1GIF ADIF RCIF TXIF SSP1IF BCL1IF TMR2IF TMR1IF 96 PIR2 — C2IF(1) C1IF NVMIF — — — NCO1IF 97 PIR3 OSFIF CSWIF — — — — CLC2IF CLC1IF 98 PIR4 — CWG1IF — — — — CCP2IF CCP1IF 99 Legend: — = unimplemented location, read as ‘0’. Shaded cells are not used by interrupts. Note 1: Comparator C2 not available on PIC16(L)F18313 devices.  2015-2019 Microchip Technology Inc. DS40001799F-page 100 PIC16(L)F18313/18323 9.0 POWER-SAVING OPERATION MODES 9.1.1 The Doze operation is illustrated in Figure 9-1. For this example: The purpose of the Power-Down modes is to reduce power consumption. There are three Power-Down modes: Doze mode, Idle mode, and Sleep mode. 9.1 • Doze enable (DOZEN) bit set (DOZEN = 1) • DOZE[2:0] = 001 (1:4) ratio • Recover-on-Interrupt (ROI) bit set (ROI = 1) Doze Mode As with normal operation, the program memory fetches for the next instruction cycle. The instruction clocks to the peripherals continue throughout. Doze mode allows for power savings by reducing CPU operation and program memory access, without affecting peripheral operation. Doze mode differs from Sleep mode because the system oscillators continue to operate, while only the CPU and program memory are affected. The reduced execution saves power by eliminating unnecessary operations within the CPU and memory. 9.1.2 INTERRUPTS DURING DOZE If an interrupt occurs and the Recover-on-Interrupt (ROI) bit is clear (ROI = 0) at the time of the interrupt, the Interrupt Service Routine (ISR) continues to execute at the rate selected by DOZE[2:0]. Interrupt latency is extended by the DOZE[2:0] ratio. When the Doze Enable (DOZEN) bit is set (DOZEN = 1), the CPU executes only one instruction cycle out of every N cycles as defined by the DOZE[2:0] bits of the CPUDOZE register. For example, if DOZE[2:0] = 100, the instruction cycle ratio is 1:32. The CPU and memory execute for one instruction cycle and then lay idle for 31 instruction cycles. During the unused cycles, the peripherals continue to operate at the system clock speed. FIGURE 9-1: DOZE OPERATION If an interrupt occurs and the ROI bit is set (ROI = 1) at the time of the interrupt, the DOZEN bit is cleared and the CPU executes at full speed. The prefetched instruction is executed and then the interrupt vector sequence is executed. In Figure 9-1, the interrupt occurs during the 2nd instruction cycle of the Doze period, and immediately brings the CPU out of Doze. If the Doze-on-Exit (DOE) bit is set (DOE = 1) when the RETFIE operation is executed, DOZEN is set, and the CPU executes at the reduced rate based on the DOZE[2:0] ratio. DOZE MODE OPERATION EXAMPLE System Clock 1 1 2 /ŶƐƚƌƵĐƚŝŽŶ WĞƌŝŽĚƐ 1 2 3 1 2 3 4 1 2 3 4 2 3 4 1 2 3 4 1 1 2 3 4 2 3 4 1 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 2 3 4 4 1 2 3 4 1 2 3 4 PFM Op’s Fetch Fetch Push 0004h Fetch Fetch CPU Op’s Exec Exec Exec(1,2) NOP Exec Exec CPU Clock 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 Exec Interrupt Here (ROI = 1)  2015-2019 Microchip Technology Inc. DS40001799F-page 101 PIC16(L)F18313/18323 9.2 Idle Mode When the Idle Enable (IDLEN) bit is clear (IDLEN = 0), the SLEEP instruction will put the device into full Sleep mode (see Section 9.3 “Sleep Mode”). When IDLEN is set (IDLEN = 1), the SLEEP instruction will put the device into Idle mode. In Idle mode, the CPU and memory operations are halted, but the peripheral clocks continue to run. This mode is similar to Doze mode, except that in Idle, both the CPU and program memory are shut off. Note: Note: 9.2.1 Peripherals using FOSC will continue running while in Idle (but not in Sleep). Peripherals using HFINTOSC, LFINTOSC, or SOSC will continue operation in both Idle and Sleep. If CLKOUT is enabled (CLKOUT = 0, Configuration Word 1), the output will continue operating while in Idle. 9.3 Sleep mode is entered by executing the SLEEP instruction, while the Idle Enable (IDLEN) bit of the CPUDOZE register is clear (IDLEN = 0). If the SLEEP instruction is executed while the IDLEN bit is set (IDLEN = 1), the CPU will enter the Idle mode (Section 9.3.3 “Low-Power Sleep Mode”). Upon entering Sleep mode, the following conditions exist: 1. 2. 3. 4. 5. 6. IDLE AND INTERRUPTS Idle mode ends when an interrupt occurs (even if GIE = 0), but IDLEN is not changed. The device can re-enter Idle by executing the SLEEP instruction. If Recover-on-Interrupt is enabled (ROI = 1), the interrupt that brings the device out of Idle also restores full-speed CPU execution when Doze is also enabled. 9.2.2 IDLE AND WDT When in Idle, the WDT Reset is blocked and will instead wake the device. The WDT wake-up is not an interrupt, therefore ROI does not apply. Note: The WDT can bring the device out of Idle, in the same way it brings the device out of Sleep. The DOZEN bit is not affected. Sleep Mode 7. Resets other than WDT are not affected by Sleep mode; WDT will be cleared but keeps running if enabled for operation during Sleep. The PD bit of the STATUS register is cleared. The TO bit of the STATUS register is set. The CPU and System clocks are disabled. 31 kHz LFINTOSC, HFINTOSC and SOSC will remain enabled if any peripheral has requested them as a clock source or if the HFOEN, LFOEN, or SOSCEN bits of the OSCEN register are set. ADC is unaffected if the dedicated ADCRC oscillator is selected. When the ADC clock source is something other than ADCRC, a SLEEP instruction causes the present conversion to be aborted and the ADC module is turned off, although the ADON bit remains set. I/O ports maintain the status they had before Sleep was executed (driving high, low, or high-impedance) only if no peripheral connected to the I/O port is active. Refer to individual chapters for more details on peripheral operation during Sleep. To minimize current consumption, the following conditions should be considered: - I/O pins should not be floating - External circuitry sinking current from I/O pins - Internal circuitry sourcing current from I/O pins - Current draw from pins with internal weak pull-ups - Modules using any oscillator I/O pins that are high-impedance inputs should be pulled to VDD or VSS externally to avoid switching currents caused by floating inputs. Examples of internal circuitry that might be sourcing current include modules such as the DAC and FVR modules. See Section 24.0 “5-bit Digital-to-Analog Converter (DAC1) Module” and Section 16.0 “Fixed Voltage Reference (FVR)” for more information on these modules.  2015-2019 Microchip Technology Inc. DS40001799F-page 102 PIC16(L)F18313/18323 9.3.1 WAKE-UP FROM SLEEP The device can wake-up from Sleep through one of the following events: 1. 2. 3. 4. 5. External Reset input on MCLR pin, if enabled BOR Reset, if enabled. POR Reset. Watchdog Timer, if enabled Interrupts by peripherals capable of running during Sleep (see individual peripheral for more information). The first three events will cause a device Reset. The last two events are considered a continuation of program execution. To determine whether a device Reset or wake-up event occurred, refer to Section 6.11 “Determining the Cause of a Reset”. The WDT is cleared when the device wakes-up from Sleep, regardless of the source of wake-up. 9.3.2 WAKE-UP USING INTERRUPTS When global interrupts are disabled (GIE cleared) and any interrupt source has both its interrupt enable bit and interrupt flag bit set, one of the following will occur: • If the interrupt occurs before the execution of a SLEEP instruction - SLEEP instruction will execute as a NOP - WDT and WDT prescaler will not be cleared - TO bit of the STATUS register will not be set - PD bit of the STATUS register will not be cleared • If the interrupt occurs during or after the 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 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.  2015-2019 Microchip Technology Inc. DS40001799F-page 103 PIC16(L)F18313/18323 FIGURE 9-2: 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 CLKIN(1) TOST(3) CLKOUT(2) Interrupt Latency (4) Interrupt flag GIE bit (INTCON reg.) Instruction Flow PC Instruction Fetched Instruction Executed Note 9.3.3 1: 2: 3: 4: Processor in Sleep PC Inst(PC) = Sleep Inst(PC - 1) PC + 1 PC + 2 Inst(PC + 1) Inst(PC + 2) Sleep Inst(PC + 1) PC + 2 Forced NOP 0004h 0005h Inst(0004h) Inst(0005h) Forced NOP Inst(0004h) External clock. High, Medium, Low mode assumed. CLKOUT is shown here for timing reference. TOST = 1024 TOSC. This delay does not apply to EC and INTOSC Oscillator modes. GIE = 1 assumed. In this case after wake-up, the processor calls the ISR at 0004h. If GIE = 0, execution will continue in-line. LOW-POWER SLEEP MODE The PIC16F18313/18323 device contains an internal Low Dropout (LDO) voltage regulator, which allows the device I/O pins to operate at voltages up to 5.5V while the internal device logic operates at a lower voltage. The LDO and its associated reference circuitry must remain active when the device is in Sleep mode. The PIC16F18313/18323 allows the user to optimize the operating current in Sleep, depending on the application requirements. Low-Power Sleep mode can be selected by setting the VREGPM bit of the VREGCON register. Depending on the configuration of this bit, the LDO and reference circuitry are placed in a low-power state when the device is in Sleep. 9.3.3.1 PC + 2 Sleep Current vs. Wake-up Time In the default operating mode, the LDO and reference circuitry remain in the normal configuration while in Sleep. The device is able to exit Sleep mode quickly since all circuits remain active. In Low-Power Sleep mode, when waking-up from Sleep, an extra delay time is required for these circuits to return to the normal configuration and stabilize. The Low-Power Sleep mode is beneficial for applications that stay in Sleep mode for long periods of time. The Normal mode is beneficial for applications that need to wake from Sleep quickly and frequently.  2015-2019 Microchip Technology Inc. 9.3.3.2 Peripheral Usage in Sleep Some peripherals that can operate in Sleep mode will not operate properly with the Low-Power Sleep mode selected. The Low-Power Sleep mode is intended for use with these peripherals: • • • • Brown-out Reset (BOR) Watchdog Timer (WDT) External interrupt pin/Interrupt-on-change pins Timer 1 (with external clock source) It is the responsibility of the end user to determine what is acceptable for their application when setting the VREGPM settings in order to ensure operation in Sleep. Note: The PIC16LF18313/18323 does not have a configurable Low-Power Sleep mode. PIC16LF18313/18323 is an unregulated device and is always in the lowest power state when in Sleep, with no wake-up time penalty. This device has a lower maximum VDD and I/O voltage than the PIC16F18313/18323. See Section 35.0 “Electrical Specifications” for more information. DS40001799F-page 104 PIC16(L)F18313/18323 9.4 Register Definitions: Voltage Regulator Control VREGCON: VOLTAGE REGULATOR CONTROL REGISTER(1) REGISTER 9-1: U-0 U-0 U-0 U-0 U-0 U-0 R/W-0/0 R/W-1/1 — — — — — — VREGPM Reserved 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 VREGPM: Voltage Regulator Power Mode Selection bit 1 = Low-Power Sleep mode enabled in Sleep(2); Draws lowest current in Sleep, slower wake-up 0 = Normal-Power Sleep mode enabled in Sleep(2); Draws higher current in Sleep, faster wake-up bit 0 Reserved: Read as ‘1’. Maintain this bit set. Note 1: 2: PIC16F18313/18323 only. See Section 35.0 “Electrical Specifications”. REGISTER 9-2: R/W-0/u CPUDOZE: DOZE AND IDLE REGISTER R/W/HC/HS-0/0 IDLEN DOZEN (1,2) R/W-0/0 R/W-0/0 U-0 ROI DOE — R/W-0/0 R/W-0/0 R/W-0/0 DOZE[2:0] bit 7 bit 0 HS = Hardware Set 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 HC = Hardware clear bit 7 IDLEN: Idle Enable bit 1 = A SLEEP instruction inhibits the CPU clock, but not the peripheral clock(s) 0 = A SLEEP instruction places the device into Full-Sleep mode bit 6 DOZEN: Doze Enable bit(1,2) 1 = The CPU executes instruction cycles according to DOZE setting. 0 = The CPU executes all instruction cycles (fastest, highest power operation). bit 5 ROI: Recover-on-Interrupt bit 1 = Entering the Interrupt Service Routine (ISR) makes DOZEN = 0 bit, bringing the CPU to full-speed operation. 0 = Interrupt entry does not change DOZEN bit 4 DOE: Doze-on-Exit bit 1 = Executing RETFIE makes DOZEN = 1, bringing the CPU to reduced speed operation. 0 = RETFIE does not change DOZEN bit 3 Unimplemented: Read as ‘0’. bit 2-0 DOZE[2:0]: Ratio of CPU Instruction Cycles to Peripheral Instruction Cycles 111 = 1:256 110 = 1:128 101 = 1:64 100 = 1:32 011 = 1:16 010 = 1:8 001 = 1:4 000 = 1:2 Note 1: 2: When ROI = 1 or DOE = 1, DOZEN is changed by hardware interrupt entry and/or exit. Entering ICD overrides DOZEN, returning the CPU to full execution speed; this bit is not affected.  2015-2019 Microchip Technology Inc. DS40001799F-page 105 PIC16(L)F18313/18323 TABLE 9-1: Name SUMMARY OF REGISTERS ASSOCIATED WITH POWER-DOWN MODE Bit 7 Bit 6 GIE PEIE — — — PIE0 — — TMR0IE IOCIE — INTCON Bit 5 Bit 4 Bit 3 Bit 1 Bit 0 Register on Page — — INTEDG 89 — — INTE 90 Bit 2 PIE1 TMR1GIE ADIE RCIE TXIE TMR2IE TMR1IE 91 PIE2 — C2IE(1) C1IE NVMIE — — — NCO1IE 92 PIE3 OSFIE CSWIE — — — — CLC2IE CLC1IE 93 PIE4 — CWG1IE — — — — CCP2IE CCP1IE 94 PIR0 — — TMR0IF IOCIF — — — INTF 95 PIR1 TMR1GIF ADIF RCIF TXIF SSP1IF BCL1IF TMR2IF TMR1IF 96 — C2IF(1) C1IF NVMIF — — — NCO1IF 97 — — — CLC2IF CLC1IF 98 — — — CCP2IF CCP1IF 99 PIR2 SSP1IE BCL1IE PIR3 OSFIF CSWIF — PIR4 — CWG1IF — IOCAP — — IOCAP5 IOCAP4 IOCAP3 IOCAP2 IOCAP1 IOCAP0 156 IOCAN — — IOCAN5 IOCAN4 IOCAN3 IOCAN2 IOCAN1 IOCAN0 156 IOCAF — — IOCAF5 IOCAF4 IOCAF3 IOCAF2 IOCAF1 IOCAF0 157 (1) — — IOCCP5 IOCCP4 IOCCP3 IOCCP2 IOCCP1 IOCCP0 158 (1) IOCCN — — IOCCN5 IOCCN4 IOCCN3 IOCCN2 IOCCN1 IOCCN0 158 IOCCF(1) — — IOCCF5 IOCCF4 IOCCF3 IOCCF2 IOCCF1 IOCCF0 159 — — — TO PD Z DC C 24 VREGCON — — — — — — VREGPM — 105 CPUDOZE IDLEN DOZEN ROI DOE WDTCON — — IOCCP STATUS (2) Legend: Note 1: 2: — WDTPS[4:0] DOZE[2:0] 105 SWDTEN 109 — = unimplemented location, read as ‘0’. Shaded cells are not used in Power-Down mode. PIC16(L)F18323 only. PIC16F18313/18323 only.  2015-2019 Microchip Technology Inc. DS40001799F-page 106 PIC16(L)F18313/18323 10.0 WATCHDOG TIMER (WDT) 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 (nominal) • Multiple WDT clearing conditions • Operation during Sleep FIGURE 10-1: WATCHDOG TIMER BLOCK DIAGRAM WDTE[1:0] = 01 SWDTEN WDTE[1:0] = 11 LFINTOSC 23-bit Programmable Prescaler WDT WDT Time-out WDTE[1:0] = 10 Sleep  2015-2019 Microchip Technology Inc. WDTPS[4:0] DS40001799F-page 107 PIC16(L)F18313/18323 10.1 Independent Clock Source 10.3 Time-out Period The WDT derives its time base from the 31 kHz LFINTOSC internal oscillator. Time intervals in this chapter are based on a nominal interval of 1 ms. See Table 35-8 for the LFINTOSC specification. The WDTPS[4:0] bits of the WDTCON register set the time-out period from 1 ms to 256 seconds (nominal). After a Reset, the default time-out period is two seconds. 10.2 10.4 WDT Operating Modes The Watchdog Timer module has four operating modes controlled by the WDTE[1:0] bits in Configuration Words. See Table 10-1. 10.2.1 WDT IS ALWAYS ON When the WDTE bits of Configuration Words are set to ‘11’, the WDT is always on. WDT protection is active during Sleep. 10.2.2 WDT IS OFF IN SLEEP Clearing the WDT The WDT is cleared when any of the following conditions occur: • • • • • • • Any Reset CLRWDT instruction is executed Device enters Sleep Device wakes up from Sleep due to an interrupt Oscillator fail WDT is disabled Oscillator Start-up Timer (OST) is running When the WDTE bits of Configuration Words are set to ‘10’, the WDT is on, except in Sleep. See Table 10-2 for more information. WDT protection is not active during Sleep. 10.5 10.2.3 WDT CONTROLLED BY SOFTWARE When the WDTE bits of Configuration Words are set to ‘01’, the WDT is controlled by the SWDTEN bit of the WDTCON register. WDT protection is unchanged Table 10-1 for more details. 10.2.4 by Sleep. See WDT IS ALWAYS OFF When the WDTE bits are set to '00', the WDT is disabled, and the SWDTEN bit of the WDTCON is ignored. TABLE 10-1: WDT OPERATING MODES WDTE[1:0] SWDTEN 11 X X 10 X Active Active Sleep Disabled 0 X 00 X X When the device enters Sleep, the WDT is cleared. If the WDT is enabled during Sleep, the WDT resumes counting. When the device exits Sleep, the WDT is cleared again. The WDT remains clear until the OST, if enabled, completes. See Section 7.0 “Oscillator Module” for more information on the OST. When a WDT time-out occurs while the device is in Sleep, no Reset is generated. Instead, the device wakes up and resumes operation. The TO and PD bits in the STATUS register are changed to indicate the event. See STATUS Register (Register 4-1) for more information. WDT Mode Awake 1 01 TABLE 10-2: Device Mode Operation During Sleep Active Disabled Disabled WDT CLEARING CONDITIONS Conditions WDTE = 00 WDTE = 01 and SWDTEN = 0 Exit Sleep due to a Reset + System Clock = XT, HS, LP Exit Sleep due to a Reset + System Clock = HFINTOSC, LFINTOSC, EC, SOSC WDT Cleared and Disabled Cleared until the end of OST Exit Sleep due to an interrupt Enter Sleep CLRWDT Command Cleared Oscillator Failure (see Section 7.4 “Fail-Safe Clock Monitor”) System Reset Any clock switch or divider change (see Section 7.3 “Clock Switching”)  2015-2019 Microchip Technology Inc. Unaffected DS40001799F-page 108 PIC16(L)F18313/18323 10.6 Register Definitions: Watchdog Control REGISTER 10-1: WDTCON: WATCHDOG TIMER CONTROL REGISTER U-0 U-0 — — R/W-0/0 R/W-1/1 R/W-0/0 R/W-1/1 R/W-1/1 WDTPS[4:0](1) bit 7 R/W-0/0 SWDTEN bit 0 Legend: 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 bit 7-6 Unimplemented: Read as ‘0’ bit 5-1 WDTPS[4:0]: Watchdog Timer Period Select bits(1) Bit Value = Prescale Rate 11111 = Reserved. Results in minimum interval (1:32) • • • 10011 = Reserved. Results in minimum interval (1:32) 10010 10001 10000 01111 01110 01101 01100 01011 01010 01001 01000 00111 00110 00101 00100 00011 00010 00001 00000 bit 0 Note 1: = = = = = = = = = = = = = = = = = = = 1:8388608 (223) (Interval 256s nominal) 1:4194304 (222) (Interval 128s nominal) 1:2097152 (221) (Interval 64s nominal) 1:1048576 (220) (Interval 32s nominal) 1:524288 (219) (Interval 16s nominal) 1:262144 (218) (Interval 8s nominal) 1:131072 (217) (Interval 4s nominal) 1:65536 (Interval 2s nominal) (Reset value) 1:32768 (Interval 1s nominal) 1:16384 (Interval 512 ms nominal) 1:8192 (Interval 256 ms nominal) 1:4096 (Interval 128 ms nominal) 1:2048 (Interval 64 ms nominal) 1:1024 (Interval 32 ms nominal) 1:512 (Interval 16 ms nominal) 1:256 (Interval 8 ms nominal) 1:128 (Interval 4 ms nominal) 1:64 (Interval 2 ms nominal) 1:32 (Interval 1 ms nominal) SWDTEN: Software Enable/Disable for Watchdog Timer bit If WDTE[1:0] = 1x: This bit is ignored. If WDTE[1:0] = 01: 1 = WDT is turned on 0 = WDT is turned off If WDTE[1:0] = 00: This bit is ignored. Times are approximate. WDT time is based on 31 kHz LFINTOSC.  2015-2019 Microchip Technology Inc. DS40001799F-page 109 PIC16(L)F18313/18323 TABLE 10-3: SUMMARY OF REGISTERS ASSOCIATED WITH WATCHDOG TIMER Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Register on Page STATUS — — — TO PD Z DC C 24 WDTCON — — SWDTEN 109 Name WDTPS[4:0] Legend: x = unknown, u = unchanged, – = unimplemented locations read as ‘0’. Shaded cells are not used by Watchdog Timer. TABLE 10-4: Name CONFIG2 SUMMARY OF CONFIGURATION WORD WITH WATCHDOG TIMER Bits Bit -/7 Bit -/6 Bit 13/5 Bit 12/4 Bit 11/3 Bit 10/2 Bit 9/1 Bit 8/0 13:8 — — DEBUG STVREN PPS1WAY — BORV — — WDTE1 7:0 BOREN1 BOREN0 LPBOREN WDTE0 PWRTE MCLRE Register on Page 53 Legend: — = unimplemented location, read as ‘0’. Shaded cells are not used by Watchdog Timer.  2015-2019 Microchip Technology Inc. DS40001799F-page 110 PIC16(L)F18313/18323 11.0 NONVOLATILE MEMORY (NVM) CONTROL TABLE 11-1: NVM is separated into two types: Program Flash Memory and Data EEPROM. NVM is accessible by using both the FSR and INDF registers, or through the NVMREG register interface. The write time is controlled by an on-chip timer. The write/erase voltages are generated by an on-chip charge pump rated to operate over the operating voltage range of the device. NVM can be protected in two ways; by either code protection or write protection. Code protection (CP and CPD bits in Configuration Word 4) disables access, reading and writing, to both the program Flash memory and EEPROM via external device programmers. Code protection does not affect the self-write and erase functionality. Code protection can only be Reset by a device programmer performing a Bulk Erase to the device, clearing all nonvolatile memory, Configuration bits, and user IDs. Write protection prohibits self-write and erase to a portion or all of the program Flash memory, as defined by the WRT[1:0] bits of Configuration Word 3. Write protection does not affect a device programmer’s ability to read, write, or erase the device. 11.1 Device PIC16(L)F18325 PIC16(L)F18345 FLASH MEMORY ORGANIZATION BY DEVICE Row Erase (words) Write Latches (words) 32 32 It is important to understand the program Flash memory structure for erase and programming operations. Program Flash memory is arranged in rows. A row consists of 32 14-bit program memory words. A row is the minimum size that can be erased by user software. All or a portion of a row can be programmed. Data to be written into the program memory row is written to 14-bit wide data write latches. These latches are not directly accessible to the user, but may be loaded via sequential writes to the NVMDATH:NVMDATL register pair. Note: Program Flash Memory Program Flash memory consists of 8192 14-bit words as user memory, with additional words for user ID information, Configuration Words, and interrupt vectors. Program Flash memory provides storage locations for: To modify only a portion of a previously programmed row, the contents of the entire row must be read and saved in either RAM or the row’s write latches prior to the erase. Then, the new data and retained data can be written into the write latches to reprogram the row of program Flash memory. Any unprogrammed locations can be written without first erasing the row. In this case, it is not necessary to save and rewrite the other previously programmed locations • User program instructions • User defined data 11.1.1 Program Flash memory data can be read and/or written to through: The program Flash memory is readable and writable during normal operation over the full VDD range. • CPU instruction fetch (read-only) • FSR/INDF indirect access (read-only) (Section 11.3 “FSR and INDF Access”) • NVMREG access (Section 11.4 “NVMREG Access” • External device programmer Read operations return a single word of memory. When write and erase operations are done on a row basis, the row size is defined in Table 11-1. Program Flash memory will erase to a logic ‘1’ and program to a logic ‘0’.  2015-2019 Microchip Technology Inc. 11.1.1.1 PROGRAM MEMORY VOLTAGES Programming Externally The program memory cell and control logic support write and Bulk Erase operations down to the minimum device operating voltage. 11.1.1.2 Self-Programming The program memory cell and control logic will support write and row erase operations across the entire VDD range. Bulk Erase is not available when self-programming. DS40001799F-page 111 PIC16(L)F18313/18323 11.2 Data EEPROM Data EEPROM consists of 256 bytes of user data memory. The EEPROM provides storage locations for 8-bit user defined data. EEPROM can be read and/or written through: • FSR/INDF indirect access (Section 11.3 “FSR and INDF Access”) • NVMREG access (Section 11.4 “NVMREG Access”) • External device programmer Unlike program Flash memory, which must be written to by row, EEPROM can be written to byte by byte. 11.3 FSR and INDF Access The FSR and INDF registers allow indirect access to the program Flash memory or EEPROM. 11.3.1 FSR READ With the intended address loaded into an FSR register, a MOVIW instruction or read of INDF will read data from the Program Flash Memory or EEPROM. The CPU operation is suspended during the read, and resumes immediately after. Read operations return a single word of memory. When the MSB of the FSR (ex: FSRxH) is set to 0x70, the lower 8-bit address value (in FSRxL) determines the EEPROM location that may be read from (through the INDF register). In other words, the EEPROM address range 0x00-0xFF is mapped into the FSR address space between 0x7000-0x70FF. Writing to the EEPROM cannot be accomplished via the FSR/INDF interface. 11.3.2 FSR WRITE Writing/erasing the NVM through the FSR registers (ex. MOVWI instruction) is not supported in the PIC16(L)F18313/18323 devices.  2015-2019 Microchip Technology Inc. DS40001799F-page 112 PIC16(L)F18313/18323 11.4 NVMREG Access FIGURE 11-1: The NVMREG interface allows read/write access to all the locations accessible by FSRs, and also read/write access to the user ID locations and EEPROM, and read-only access to the device identification, revision, and Configuration data. Reading, writing, or erasing of NVM via the NVMREG interface is prevented when the device is code-protected. 11.4.1 Start Read Operation Select Memory: Program Flash Memory, EEPROM, Config. Words, User ID (NVMREGS) NVMREG READ OPERATION To read a NVM location using the NVMREG interface, the user must: 1. 2. 3. PROGRAM FLASH MEMORY READ FLOWCHART Clear the NVMREGS bit of the NVMCON1 register if the user intends to access program Flash memory locations, or set NVMREGS if the user intends to access user ID, Configuration, or EEPROM locations. Write the desired address into the NVMADRH:NVMADRL register pair (Table 11-2). Set the RD bit of the NVMCON1 register to initiate the read. Select Word Address (NVMADRH:NVMADRL) Initiate Read Operation (RD = 1) Data read now in NVMDATH:NVMDATL End Read Operation Once the read control bit is set, the CPU operation is suspended during the read, and resumes immediately after. The data is available in the very next cycle, in the NVMDATH:NVMDATL register pair; therefore, it can be read as two bytes in the following instructions. NVMDATH:NVMDATL register pair will hold this value until another read or until it is written to by the user. Upon completion, the RD bit is cleared by hardware. EXAMPLE 11-1: PROGRAM FLASH MEMORY READ * This code block will read 1 word of program * memory at the memory address: PROG_ADDR_HI : PROG_ADDR_LO * data will be returned in the variables; * PROG_DATA_HI, PROG_DATA_LO BANKSEL MOVLW MOVWF MOVLW MOVWF NVMADRL PROG_ADDR_LO NVMADRL PROG_ADDR_HI NVMADRH ; Select Bank for NVMCON registers ; ; Store LSB of address ; ; Store MSB of address BCF BSF NVMCON1,NVMREGS NVMCON1,RD ; Do not select Configuration Space ; Initiate read MOVF MOVWF MOVF MOVWF NVMDATL,W PROG_DATA_LO NVMDATH,W PROG_DATA_HI ; ; ; ;  2015-2019 Microchip Technology Inc. Get LSB of word Store in user location Get MSB of word Store in user location DS40001799F-page 113 PIC16(L)F18313/18323 11.4.2 NVM UNLOCK SEQUENCE FIGURE 11-2: The unlock sequence is a mechanism that protects the NVM from unintended self-write programming or erasing. The sequence must be executed and completed without interruption to successfully complete any of the following operations: Start Unlock Sequence • Program Flash Memory Row Erase • Load of Program Flash Memory write latches • Write of Program Flash Memory write latches to Program Flash Memory memory • Write of Program Flash Memory write latches to user IDs • Write to EEPROM Write 55h to NVMCON2 The unlock sequence consists of the following steps and must be completed in order: Write AAh to NVMCON2 • Write 55h to NVMCON2 • Write AAh to NMVCON2 • Set the WR bit of NVMCON1 Initiate Write or Erase Operation (WR = 1) Once the WR bit is set, the processor will stall internal operations until the operation is complete and then resume with the next instruction. Note: NVM UNLOCK SEQUENCE FLOWCHART NOP Instruction (not required for PIC16(L)F18313/18323 devices) The two NOP instructions after setting the WR bit, which were required in previous devices, are not required for PIC16(L)F18313/18323 devices. See Figure 11-2. NOP Instruction (not required for PIC16(L)F18313/18323 devices) Since the unlock sequence must not be interrupted, global interrupts should be disabled prior to the unlock sequence and re-enabled after the unlock sequence is completed. End Unlock Operation EXAMPLE 11-2: NVM UNLOCK SEQUENCE BANKSEL BSF MOVLW BCF NVMCON1 NVMCON1,WREN 55h INTCON,GIE ; Enable write/erase ; Load 55h ; Recommended so sequence is not interrupted MOVWF MOVLW MOVWF BSF NVMCON2 AAh NVMCON2 NVMCON1,WR ; ; ; ; BSF INTCON,GIE ; Re-enable interrupts Step Step Step Step 1: 2: 3: 4: Load 55h into NVMCON2 Load W with AAh Load AAh into NVMCON2 Set WR bit to begin write/erase Note 1: Sequence begins when NVMCON2 is written; steps 1-4 must occur in the cycle-accurate order shown. 2: Opcodes shown are illustrative; any instruction that has the indicated effect may be used.  2015-2019 Microchip Technology Inc. DS40001799F-page 114 PIC16(L)F18313/18323 11.4.3 NVMREG WRITE TO EEPROM Writing to the EEPROM is accomplished by the following steps: 1. 2. 3. Set the NVMREGS and WREN bits of the NVMCON1 register. Write the desired address (address +7000h) into the NVMADRH:NVMADRL register pair (Table 11-2). Perform the unlock sequence as described in Section 11.4.2 “NVM Unlock Sequence”. A single EEPROM byte is written with NVMDATA. The operation includes an implicit erase cycle for that byte (it is not necessary to set the FREE bit), and requires many instruction cycles to finish. CPU execution continues in parallel and, when complete, WR is cleared by hardware, NVMIF is set, and an interrupt will occur if NVMIE is also set. Software must poll the WR bit to determine when writing is complete, or wait for the interrupt to occur. WREN will remain unchanged. Once the EEPROM write operation begins, clearing the WR bit will have no effect; the operation will run to completion. 11.4.4 NVMREG ERASE OF PROGRAM FLASH MEMORY Program Flash memory can only be erased one row at a time. No automatic erase occurs upon the initiation of the write to program Flash memory. To erase a program Flash memory row: 1. 2. 3. 4. Clear the NVMREGS bit of the NVMCON1 register to erase program Flash memory locations, or set the NVMREGS bit to erase user ID locations. Write the desired address into the NVMADRH:NVMADRL register pair (Table 11-2). Set the FREE and WREN bits of the NVMCON1 register. Perform the unlock sequence as described in Section 11.4.2 “NVM Unlock Sequence”. FIGURE 11-3: NVM ERASE FLOWCHART Start Erase Operation Select Memory: Program Flash Memory, Config. Words, User ID (NVMREGS) Select Word Address (NVMADRH:NVMADRL) Select Erase Operation (FREE = 1) Enable Write/Erase Operation (WREN = 1) Disable Interrupts (GIE = 0) Unlock Sequence (Figure 11-2) CPU stalls while Erase operation completes (2 ms typical) Enable Interrupts (GIE = 1) Disable Write/Erase Operation (WREN = 0) End Erase Operation If the program Flash memory address is write-protected, the WR bit will be cleared and the erase operation will not take place. While erasing program Flash memory, CPU operation is suspended, and resumes when the operation is complete. Upon completion, the NVMIF is set, and an interrupt will occur if the NVMIE bit is also set. Write latch data is not affected by erase operations, and WREN will remain unchanged.  2015-2019 Microchip Technology Inc. DS40001799F-page 115 PIC16(L)F18313/18323 EXAMPLE 11-3: ERASING ONE ROW OF PROGRAM FLASH MEMORY ; This sample row erase routine assumes the following: ; 1.A valid address within the erase row is loaded in variables ADDRH:ADDRL ; 2.ADDRH and ADDRL are located in common RAM (locations 0x70 - 0x7F) BANKSEL MOVF MOVWF MOVF MOVWF BCF BSF BSF BCF NVMADRL ADDRL,W NVMADRL ADDRH,W NVMADRH NVMCON1,NVMREGS NVMCON1,FREE NVMCON1,WREN INTCON,GIE ; Load lower 8 bits of erase address boundary ; ; ; ; ; Load upper 6 bits of erase address boundary Choose Program Flash Memory area Specify an erase operation Enable writes Disable interrupts during unlock sequence ; -------------------------------REQUIRED UNLOCK SEQUENCE:-----------------------------MOVLW MOVWF MOVLW MOVWF BSF 55h NVMCON2 AAh NVMCON2 NVMCON1,WR ; ; ; ; ; Load 55h to get ready for unlock sequence First step is to load 55h into NVMCON2 Second step is to load AAh into W Third step is to load AAh into NVMCON2 Final step is to set WR bit ; -------------------------------------------------------------------------------------BSF BCF TABLE 11-2: INTCON,GIE NVMCON1,WREN ; Re-enable interrupts, erase is complete ; Disable writes NVM ORGANIZATION AND ACCESS INFORMATION Master Values Memory Function Program Counter (PC), ICSP™ Address NVMREG Access Memory Type FSR Access NVMREGS NVMADR Allowed bit [14:0] Operations (NVMCON1) FSR Address Reset Vector 0000h 0 0000h 8000h User Memory 0001h 0 0001h 8001h 0 0004h 0003h INT Vector User Memory 0004h Program Flash Memory 0005h 0003h 0 17FFh User ID Reserved Program Flash Memory 1 — 0005h 8005h FFFFh 0003h READ — 0004h 1 0005h Device ID Program Flash Memory 1 0006h 1 0007h 1 0008h 1 0009h EEPROM 1 CONFIG2 CONFIG3 CONFIG4 User Memory  2015-2019 Microchip Technology Inc. READ-ONLY 0000h — No PC Address 8003h 8004h 17FFh Rev ID CONFIG1 READ WRITE FSR Programming Address No Access READ 000Ah F000h READ 7000h F0FFh WRITE 70FFh READ-ONLY DS40001799F-page 116 PIC16(L)F18313/18323 11.4.5 NVMREG WRITE TO PROGRAM FLASH MEMORY Program memory is programmed using the following steps: 1. 2. 3. 4. Load the address of the row to be programmed into NVMADRH:NVMADRL. Load each write latch with data. Initiate a programming operation. Repeat steps 1 through 3 until all data is written. Before writing to program memory, the word(s) to be written must be erased or previously unwritten. Program memory can only be erased one row at a time. No automatic erase occurs upon the initiation of the write. Program memory can be written one or more words at a time. The maximum number of words written at one time is equal to the number of write latches. See Figure 11-4 (row writes to program memory with 32 write latches) for more details. The write latches are aligned to the Flash row address boundary defined by the upper ten bits of NVMADRH:NVMADRL, (NVMADRH[6:0]:NVMADRL[7:5]) with the lower five bits of NVMADRL, (NVMADRL[4:0]) determining the write latch being loaded. Write operations do not cross these boundaries. At the completion of a program memory write operation, the data in the write latches is reset to contain 0x3FFF. The following steps should be completed to load the write latches and program a row of program memory. These steps are divided into two parts. First, each write latch is loaded with data from the NVMDATH:NVMDATL using the unlock sequence with LWLO = 1. When the last word to be loaded into the write latch is ready, the LWLO bit is cleared and the unlock sequence executed. This initiates the programming operation, writing all the latches into Flash program memory. Note: The special unlock sequence is required to load a write latch with data or initiate a Flash programming operation. If the unlock sequence is interrupted, writing to the latches or program memory will not be initiated.  2015-2019 Microchip Technology Inc. 1. 2. Set the WREN bit of the NVMCON1 register. Clear the NVMREGS bit of the NVMCON1 register. 3. Set the LWLO bit of the NVMCON1 register. When the LWLO bit of the NVMCON1 register is ‘1’, the write sequence will only load the write latches and will not initiate the write to Flash program memory. 4. Load the NVMADRH:NVMADRL register pair with the address of the location to be written. 5. Load the NVMDATH:NVMDATL register pair with the program memory data to be written. 6. Execute the unlock sequence (Section 11.4.2 “NVM Unlock Sequence”). The write latch is now loaded. 7. Increment the NVMADRH:NVMADRL register pair to point to the next location. 8. Repeat steps 5 through 7 until all but the last write latch has been loaded. 9. Clear the LWLO bit of the NVMCON1 register. When the LWLO bit of the NVMCON1 register is ‘0’, the write sequence will initiate the write to Flash program memory. 10. Load the NVMDATH:NVMDATL register pair with the program memory data to be written. 11. Execute the unlock sequence (Section 11.4.2 “NVM Unlock Sequence”). The entire program memory latch content is now written to Flash program memory. Note: The program memory write latches are reset to the blank state (0x3FFF) at the completion of every write or erase operation. As a result, it is not necessary to load all the program memory write latches. Unloaded latches will remain in the blank state. An example of the complete write sequence is shown in Example 11-4. The initial address is loaded into the NVMADRH:NVMADRL register pair; the data is loaded using indirect addressing. DS40001799F-page 117  2015-2019 Microchip Technology Inc. FIGURE 11-4: 7 6 - r9 BLOCK WRITES TO PROGRAM FLASH MEMORY WITH 32 WRITE LATCHES 0 7 5 4 NVMADRH r8 r7 r6 r5 r4 0 7 NVMADRL r3 r2 r1 r0 c4 c3 - c2 c1 5 - 0 7 NVMDATH 0 NVMDATL 6 c0 8 14 Program Memory Write Latches 5 10 14 NVMADRL Write Latch #0 00h 14 14 14 Row Addr Addr Addr Addr 000h 0000h 0001h 001Eh 001Fh 001h 0020h 0021h 003Eh 003Fh 002h 0040h 0041h 005Eh 005Fh 3FEh 7FC0h 7FC1h 7FDEh 7FDFh 3FFh 7FE0h 7FE1h 7FFEh 7FFFh Program Flash Memory DS40001799F-page 118 400h NVMREGS = 1 14 Write Latch #31 1Fh 8000h - 8003h 8004h USER ID 0 - 3 reserved 8005h -8006h DEVICE ID Dev / Rev 8007h – 800Ah 800Bh - 801Fh Configuration Words reserved Configuration Memory PIC16(L)F18313/18323 NVMADRH NVMADRL Row Address Decode 14 Write Latch #30 1Eh Write Latch #1 01h 14 NVMREGS = 0 14 PIC16(L)F18313/18323 FIGURE 11-5: PROGRAM FLASH MEMORY WRITE FLOWCHART Start Write Operation Determine number of words to be written into PFM or Configuration Memory. The number of words cannot exceed the number of words per row (word_cnt) Load the value to write (NVMDATH:NVMDATL) Update the word counter (word_cnt--) Write Latches to PFM (LWLO = 0) Select PFM or Config. Memory (NVMREGS) Last word to write? No Select Row Address (NVMADRH:NVMADRL) Select Write Operation (FREE = 0) Disable Interrupts (GIE = 0) Yes Disable Interrupts (GIE = 0) Unlock Sequence (Figure 11-2) Unlock Sequence (Figure 11-2) CPU stalls while Write operation completes (2 ms typical) Load Write Latches Only (LWLO = 1) No delay when writing to PFM Latches Enable Write/Erase Operation (WREN = 1) Re-enable Interrupts (GIE = 1) Re-enable Interrupts (GIE = 1) Increment Address (NVMADRH:NVMADRL++)  2015-2019 Microchip Technology Inc. Disable Write/Erase Operation (WREN = 0) End Write Operation DS40001799F-page 119 PIC16(L)F18313/18323 EXAMPLE 11-4: ; ; ; ; ; ; ; WRITING TO PROGRAM FLASH MEMORY This write routine assumes the following: 1. 32 words of data are loaded, starting at the address in DATA_ADDR 2. Each word of data to be written is made up of two adjacent bytes in DATA_ADDR, stored in little endian format 3. A valid starting address (the least significant bits = 00000) is loaded in ADDRH:ADDRL 4. ADDRH and ADDRL are located in common RAM (locations 0x70 - 0x7F) 5. NVM interrupts are not taken into account BANKSEL MOVF MOVWF MOVF MOVWF MOVLW MOVWF MOVLW MOVWF BCF BSF BSF NVMADRH ADDRH,W NVMADRH ADDRL,W NVMADRL LOW DATA_ADDR FSR0L HIGH DATA_ADDR FSR0H NVMCON1,NVMREGS NVMCON1,WREN NVMCON1,LWLO MOVIW MOVWF MOVIW MOVWF FSR0++ NVMDATL FSR0++ NVMDATH MOVF XORLW ANDLW BTFSC GOTO NVMADRL,W 0x1F 0x1F STATUS,Z START_WRITE CALL INCF GOTO UNLOCK_SEQ NVMADRL,F LOOP ; If not, go load latch ; Increment address NVMCON1,LWLO UNLOCK_SEQ NVMCON1,LWLO ; Latch writes complete, now write memory ; Perform required unlock sequence ; Disable writes ; Load initial address ; Load initial data address ; Set Program Flash Memory as write location ; Enable writes ; Load only write latches LOOP START_WRITE BCF CALL BCF UNLOCK_SEQ MOVLW BCF MOVWF MOVLW MOVWF BSF BSF return 55h INTCON,GIE NVMCON2 AAh NVMCON2 NVMCON1,WR INTCON,GIE  2015-2019 Microchip Technology Inc. ; Load first data byte ; Load second data byte ; ; ; ; Check if lower bits of address are 00000 and if on last of 32 addresses Last of 32 words? If so, go write latches into memory ; Disable interrupts ; Begin unlock sequence ; Unlock sequence complete, re-enable interrupts DS40001799F-page 120 PIC16(L)F18313/18323 11.4.6 MODIFYING PROGRAM FLASH MEMORY When modifying existing data in a program memory row, and data within that row must be preserved, it must first be read and saved in a RAM image. Program memory is modified using the following steps: 1. 2. 3. 4. 5. 6. 7. Load the starting address of the row to be modified. Read the existing data from the row into a RAM image. Modify the RAM image to contain the new data to be written into program memory. Load the starting address of the row to be rewritten. Erase the program memory row. Load the write latches with data from the RAM image. Initiate a programming operation. FIGURE 11-6: PROGRAM FLASH MEMORY MODIFY FLOWCHART Start Modify Operation Read Operation (Figure11-1 x.x) Figure An image of the entire row read must be stored in RAM Modify Image The words to be modified are changed in the RAM image Erase Operation (Figure11-3 x.x) Figure Write Operation use RAM image (Figure11-5 x.x) Figure End Modify Operation  2015-2019 Microchip Technology Inc. DS40001799F-page 121 PIC16(L)F18313/18323 11.4.7 NVMREG EEPROM, USER ID, DEVICE ID AND CONFIGURATION WORD ACCESS Instead of accessing program Flash memory, the EEPROM, the user ID’s, Device ID/Revision ID and Configuration Words can be accessed when NVMREGS = 1 in the NVMCON1 register. This is the region that would be pointed to by PC[15] = 1, but not all addresses are accessible. Different access may exist for reads and writes. Refer to Table 11-3. When read access is initiated on an address outside the parameters listed in Table 11-3, the NVMDATH: NVMDATL register pair is cleared, reading back ‘0’s. TABLE 11-3: EEPROM, USER ID, DEV/REV ID AND CONFIGURATION WORD ACCESS (NVMREGS = 1) Address Function Read Access Write Access 8000h-8003h User IDs Yes Yes 8005h-8006h Device ID/Revision ID Yes No 8007h-800Ah Configuration Words 1-4 Yes No F000h-F0FFh EEPROM Yes Yes  2015-2019 Microchip Technology Inc. DS40001799F-page 122 PIC16(L)F18313/18323 11.4.8 WRITE VERIFY It is considered good programming practice to verify that program memory writes agree with the intended value. Since program memory is stored as a full row, then the stored program memory contents are compared with the intended data stored in RAM after the last write is complete. FIGURE 11-7: PROGRAM FLASH MEMORY VERIFY FLOWCHART Start Verify Operation This routine assumes that the last row of data written was from an image saved in RAM. This image will be used to verify the data currently stored in Flash Program Memory. Read Operation Figure 11-1 No NVMDAT = RAM image? Yes No Fail Verify Operation Last Word? Yes End Verify Operation  2015-2019 Microchip Technology Inc. DS40001799F-page 123 PIC16(L)F18313/18323 11.4.9 WRERR BIT The WRERR bit can be used to determine if a write error occurred. WRERR will be set if one of the following conditions occurs: • If WR is set while the NVMADRH:NMVADRL points to a write-protected address • A Reset occurs while a self-write operation was in progress • An unlock sequence was interrupted The WRERR bit is normally set by hardware, but can be set by the user for test purposes. Once set, WRERR must be cleared in software. TABLE 11-4: ACTIONS FOR PROGRAM FLASH MEMORY WHEN WR = 1 Free LWLO Actions for Program Flash Memory when WR = 1 0 0 Write the write latch data to program Flash memory • If WP is enabled, WR is cleared row. See Section 11.4.4 “NVMREG Erase of Proand WRERR is set gram Flash Memory” • Write latches are reset to 3FFh • NVMDATH:NVMDATL is ignored 0 1 Copy NVMDATH:NVMDATL to the write latch corre- • Write protection is ignored sponding to NVMADR LSBs. See Section 11.4.4 • No memory access occurs “NVMREG Erase of Program Flash Memory” 1 x Erase the 32-word row of NVMADRH:NVMADRL location. See Section 11.4.3 “NVMREG Write to EEPROM”  2015-2019 Microchip Technology Inc. Comments • If WP is enabled, WR is cleared and WRERR is set • All 32 words are erased • NVMDATH:NVMDATL is ignored DS40001799F-page 124 PIC16(L)F18313/18323 11.5 Register Definitions: Program Flash Memory Control REGISTER 11-1: R/W-0/0 NVMDATL: NONVOLATILE MEMORY DATA LOW BYTE 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 NVMDAT[7: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-0 NVMDAT[7:0]: Read/write value for Least Significant bits of program memory REGISTER 11-2: NVMDATH: NONVOLATILE MEMORY DATA HIGH BYTE 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 NVMDAT[13:8] 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 NVMDAT[13:8]: Read/write value for Most Significant bits of program memory(1) Note 1: This byte is ignored when writing to EEPROM. REGISTER 11-3: R/W-0/0 NVMADRL: NONVOLATILE MEMORY ADDRESS LOW BYTE 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 NVMADR[7: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-0 NVMADR[7:0]: Specifies the Least Significant bits for program memory address REGISTER 11-4: U-1 NVMADRH: NONVOLATILE MEMORY ADDRESS HIGH BYTE 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 NVMADR[14:8] 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 Unimplemented: Read as ‘1’ bit 6-0 NVMADR[14:8]: Specifies the Most Significant bits for program memory address  2015-2019 Microchip Technology Inc. DS40001799F-page 125 PIC16(L)F18313/18323 REGISTER 11-5: NVMCON1: NONVOLATILE MEMORY CONTROL 1 REGISTER U-0 R/W-0/0 R/W-0/0 — NVMREGS LWLO R/W/HC-0/0 R/W/HS-x/q FREE WRERR R/W-0/0 R/S/HC-0/0 R/S/HC-0/0 WREN WR RD bit 7 bit 0 Legend: q = Reset value is determined by hardware HS = Hardware set R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’ S = Bit can only be set x = Bit is unknown -n/n = Value at POR and BOR/Value at all other Resets ‘1’ = Bit is set ‘0’ = Bit is cleared HC = Bit is cleared by hardware bit 7 Unimplemented: Read as ‘0’ bit 6 NVMREGS: Configuration Select bit 1 = Access EEPROM, Configuration, user ID and device ID registers 0 = Access program Flash memory bit 5 LWLO: Load Write Latches Only bit When FREE = 0: 1 = The next WR command updates the write latch for this word within the row; no memory operation is initiated. 0 = The next WR command writes data or erases. Otherwise: The bit is ignored. bit 4 FREE: Program Flash Memory Erase Enable bit When NVMREGS:NVMADR points to a program Flash memory location: 1 = Performs an erase operation with the next WR command; the row containing the indicated address is erased (to all 1s) to prepare for writing. 0 = All erase operations have completed normally bit 3 WRERR: Program/Erase Error Flag bit (1,2,3) 1 = A write operation was interrupted by a Reset, interrupted unlock sequence, or WR was written to one while NVMADR points to a write-protected address. 0 = The program or erase operation completed normally bit 2 WREN: Program/Erase Enable bit 1 = Allows program/erase cycles 0 = Inhibits programming/erasing of program Flash bit 1 WR: Write Control bit(4,5,6) When NVMREG:NVMADR points to a EEPROM location: 1 = Initiates an erase/program cycle at the corresponding EEPROM location 0 = NVM program/erase operation is complete and inactive When NVMREG:NVMADR points to a program Flash memory location: 1 = Initiates the operation indicated by Table 11-5 0 = NVM program/erase operation is complete and inactive bit 0 RD: Read Control bit(7) 1 = Initiates a read at address = NVMADR1, and loads data to NVMDAT Read takes one instruction cycle and the bit is cleared when the operation is complete. The bit can only be set (not cleared) in software. 0 = NVM read operation is complete and inactive. Note 1: 2: 3: 4: 5: 6: 7: Bit may change while WR = 1 (during the EEPROM write operation it may be ‘0’ or ‘1’). Bit must be cleared by software; hardware will not clear this bit. Bit may be written to ‘1’ by software in order to implement test sequences. This bit can only be set by following the unlock sequence of Section 11.4.2 “NVM Unlock Sequence”. Operations are self-timed, and the WR bit is cleared by hardware when complete. Once a write operation is initiated, setting this bit to zero will have no effect. Reading from EEPROM loads only NVMDATL[7:0] (Register 11-1).  2015-2019 Microchip Technology Inc. DS40001799F-page 126 PIC16(L)F18313/18323 REGISTER 11-6: W-0/0 NVMCON2: NONVOLATILE MEMORY CONTROL 2 REGISTER W-0/0 W-0/0 W-0/0 W-0/0 W-0/0 W-0/0 W-0/0 NVMCON2 bit 7 bit 0 Legend: R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’ S = Bit can only be set 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-0 NVMCON2[7:0]: Flash Memory Unlock Pattern bits To unlock writes, a 55h must be written first, followed by an AAh, before setting the WR bit of the NVMCON1 register. The value written to this register is used to unlock the writes. TABLE 11-5: SUMMARY OF REGISTERS ASSOCIATED WITH NONVOLATILE MEMORY (NVM) Name Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Register on Page INTCON GIE PEIE — — — — — INTEDG 89 — C2IF(2) C1IF NVMIF — — — NCO1IF 97 PIE2 — C2IE(2) C1IE NVMIE — — — NCO1IE 92 NVMCON1 — NVMREGS LWLO FREE WRERR WREN WR RD 126 PIR2 NVMCON2 NVMADRL —(1) NVMADRH NVMCON2 127 NVMADR[7:0] 125 NVMADR[14:8] NVMDATL 125 NVMDAT[7:0] — NVMDATH — 125 NVMDAT[13:8] 125 Legend: — = unimplemented location, read as ‘0’. Shaded cells are not used by NVM. Note 1: Unimplemented, read as ‘1’. 2: PIC16(L)F18345 only. TABLE 11-6: Name CONFIG3 CONFIG4 SUMMARY OF CONFIGURATION WORD WITH NONVOLATILE MEMORY (NVM) Bits Bit -/7 Bit -/6 Bit 13/5 Bit 12/4 Bit 11/3 Bit 10/2 Bit 9/1 Bit 8/0 13:8 — — LVP — — — — — 7:0 — — — — — — 13:8 — — — — — — — — 7:0 — — — — — — CPD CP WRT[1:0] Register on Page 54 55 Legend: — = unimplemented location, read as ‘0’. Shaded cells are not used by NVM.  2015-2019 Microchip Technology Inc. DS40001799F-page 127 PIC16(L)F18313/18323 I/O PORTS GENERIC I/O PORT OPERATION PORT AVAILABILITY PER DEVICE Device PORTA TABLE 12-1: FIGURE 12-1: PIC16(L)F18313 ● PIC16(L)F18323 ● PORTC 12.0 ● Each port has ten standard registers for its operation. These registers are: • PORTx registers (reads the levels on the pins of the device) • LATx registers (output latch) • TRISx registers (data direction) • ANSELx registers (analog select) • WPUx registers (weak pull-up) • INLVLx (input level control) • SLRCONx registers (slew rate) • ODCONx registers (open-drain) Most port pins share functions with device peripherals, both analog and digital. In general, when a peripheral is enabled on a port pin, that pin cannot be used as a general purpose output; however, the pin can still be read. The Data Latch (LATx registers) is useful for read-modify-write operations on the value that the I/O pins are driving. A write operation to the LATx register has the same effect as a write to the corresponding PORTx register. A read of the LATx register reads of the values held in the I/O PORT latches, while a read of the PORTx register reads the actual I/O pin value. Read LATx D Write LATx Write PORTx TRISx Q CK VDD Data Register Data Bus I/O pin Read PORTx To digital peripherals To analog peripherals 12.1 ANSELx VSS I/O Priorities Each pin defaults to the PORT data latch after Reset. Other functions are selected with the peripheral pin select logic. See Section 13.0 “Peripheral Pin Select (PPS) Module” for more information. Analog input functions, such as ADC and comparator inputs, are not shown in the peripheral pin select lists. These inputs are active when the I/O pin is set for Analog mode using the ANSELx register. Digital output functions may continue to control the pin when it is in Analog mode. Analog outputs, when enabled, take priority over the digital outputs and force the digital output driver to the high-impedance state. Ports that support analog inputs have an associated ANSELx register. When an ANSEL bit is set, the digital input buffer associated with that bit is disabled. Disabling the input buffer prevents analog signal levels on the pin between a logic high and low from causing excessive current in the logic input circuitry. A simplified model of a generic I/O port, without the interfaces to other peripherals, is shown in Figure 12-1.  2015-2019 Microchip Technology Inc. DS40001799F-page 128 PIC16(L)F18313/18323 12.2 PORTA Registers 12.2.1 DATA REGISTER PORTA is a 6-bit wide, bidirectional port. The corresponding data direction register is TRISA (Register 12-2). Setting a TRISA bit (= 1) will make the corresponding PORTA pin an input (i.e., disable the output driver). Clearing a TRISA bit (= 0) will make the corresponding PORTA pin an output (i.e., enables output driver and puts the contents of the output latch on the selected pin). The exception is RA3, which is input-only and its TRIS bit will always read as ‘1’. Example 12-1 shows how to initialize PORTA. Reading the PORTA register (Register 12-1) reads the status of the pins, whereas writing to it will write to the PORT latch. All write operations are read-modify-write operations. Therefore, a write to a port implies that the port pins are read, this value is modified and then written to the PORT data latch (LATA). 12.2.3 OPEN-DRAIN CONTROL The ODCONA register (Register 12-6) controls the open-drain feature of the port. Open-drain operation is independently selected for each pin. When an ODCONA bit is set, the corresponding port output becomes an open-drain driver capable of sinking current only. When an ODCONA bit is cleared, the corresponding port output pin is the standard push-pull drive capable of sourcing and sinking current. Note: 12.2.4 It is not necessary to set open-drain control when using the pin for I2C; the I2C module controls the pin and makes the pin open-drain. SLEW RATE CONTROL The PORT data latch LATA (Register 12-3) holds the output port data, and contains the latest value of a LATA or PORTA write. The SLRCONA register (Register 12-7) controls the slew rate option for each port pin. Slew rate control is independently selectable for each port pin. When an SLRCONA bit is set, the corresponding port pin drive is slew rate limited. When an SLRCONA bit is cleared, The corresponding port pin drive slews at the maximum rate available. EXAMPLE 12-1: 12.2.5 ; ; ; ; INITIALIZING PORTA This code example illustrates initializing the PORTA register. The other ports are initialized in the same manner. BANKSEL CLRF BANKSEL CLRF BANKSEL CLRF BANKSEL MOVLW MOVWF 12.2.2 PORTA PORTA LATA LATA ANSELA ANSELA TRISA B'00111000' TRISA ; ;Clear PORTA ;Data Latch ; ; ;digital I/O ; ;Set RA[5:3] as inputs ;and set RA[2:0] as ;outputs DIRECTION CONTROL The TRISA register (Register 12-2) controls the PORTA pin output drivers, even when they are being used as analog inputs. The user should ensure the bits in the TRISA register are maintained set when using them as analog inputs. I/O pins configured as analog inputs always read ‘0’.  2015-2019 Microchip Technology Inc. INPUT THRESHOLD CONTROL The INLVLA register (Register 12-8) controls the input voltage threshold for each of the available PORTA input pins. A selection between the Schmitt Trigger CMOS or the TTL Compatible thresholds is available. The input threshold is important in determining the value of a read of the PORTA register and also the level at which an interrupt-on-change occurs, if that feature is enabled. See Table 35-4 for more information on threshold levels. Note: Changing the input threshold selection should be performed while all peripheral modules are disabled. Changing the threshold level during the time a module is active may inadvertently generate a transition associated with an input pin, regardless of the actual voltage level on that pin. DS40001799F-page 129 PIC16(L)F18313/18323 12.2.6 ANALOG CONTROL The ANSELA register (Register 12-4) is used to configure the Input mode of an I/O pin to analog. Setting the appropriate ANSELA bit high will cause all digital reads on the pin to be read as ‘0’ and allow analog functions on the pin to operate correctly. The state of the ANSELA bits has no effect on digital output functions. A pin with TRIS clear and ANSEL set will still operate as a digital output, but the Input mode will be analog. This can cause unexpected behavior when executing read-modify-write instructions on the affected port. Note: 12.2.7 The ANSELA bits default to the Analog mode after Reset. To use any pins as digital general purpose or peripheral inputs, the corresponding ANSEL bits must be initialized to ‘0’ by user software. WEAK PULL-UP CONTROL The WPUA register (Register 12-5) controls the individual weak pull-ups for each PORT pin. PORTA pin RA3 includes the MCLR/VPP input. The MCLR input allows the device to be reset, and can be disabled by the MCLRE bit of Configuration Word 2. A weak pull-up is present on the RA3 port pin. This weak pull-up is enabled when MCLR is enabled (MCLRE = 1) or the WPUA3 bit is set. The weak pull-up is disabled when is disabled and the WPUA3 bit is clear. 12.2.8 PORTA FUNCTIONS AND OUTPUT PRIORITIES Each PORTA pin is multiplexed with other functions. Each pin defaults to the PORT latch data after Reset. Other output functions are selected with the peripheral pin select logic. See Section 13.0 “Peripheral Pin Select (PPS) Module” for more information. Analog input functions, such as ADC and comparator inputs are not shown in the peripheral pin select lists. Digital output functions may continue to control the pin when it is in Analog mode.  2015-2019 Microchip Technology Inc. DS40001799F-page 130 PIC16(L)F18313/18323 12.3 Register Definitions: PORTA REGISTER 12-1: U-0 PORTA: PORTA REGISTER U-0 — — R/W-x/u R/W-x/u RA5 RA4 R-x/u (2) RA3 R/W-x/u R/W-x/u R/W-x/u RA2 RA1 RA0 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 RA[5:0]: PORTA I/O Value bits(1) 1 = Port pin is > VIH 0 = Port pin is < VIL Note 1: 2: Writes to PORTA are actually written to corresponding LATA register. Reads from PORTA register is return of actual I/O pin values. Bit RA3 is read-only, and will read ‘1’ when MCLRE = 1 (master clear enabled). REGISTER 12-2: TRISA: PORTA TRI-STATE REGISTER U-0 U-0 R/W-1/1 R/W-1/1 U-1 R/W-1/1 R/W-1/1 R/W-1/1 — — TRISA5 TRISA4 — TRISA2 TRISA1 TRISA0 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-4 TRISA[5:4]: PORTA Tri-State Control bit 1 = PORTA pin configured as an input (tri-stated) 0 = PORTA pin configured as an output bit 3 Unimplemented: Read as ‘1’ bit 2-0 TRISA[2:0]: PORTA Tri-State Control bit 1 = PORTA pin configured as an input (tri-stated) 0 = PORTA pin configured as an output  2015-2019 Microchip Technology Inc. DS40001799F-page 131 PIC16(L)F18313/18323 REGISTER 12-3: LATA: PORTA DATA LATCH REGISTER U-0 U-0 R/W-x/u R/W-x/u U-0 R/W-x/u R/W-x/u R/W-x/u — — LATA5 LATA4 — LATA2 LATA1 LATA0 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-4 LATA[5:4]: RA[5:4] Output Latch Value bits(1) bit 3 Unimplemented: Read as ‘0’ bit 2-0 LATA[2:0]: RA[2:0] Output Latch Value bits(1) Note 1: Writes to PORTA are actually written to corresponding LATA register. Reads from PORTA register is return of actual I/O pin values. REGISTER 12-4: ANSELA: PORTA ANALOG SELECT REGISTER U-0 U-0 R/W-1/1 R/W-1/1 U-0 R/W-1/1 R/W-1/1 R/W-1/1 — — ANSA5 ANSA4 — ANSA2 ANSA1 ANSA0 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-4 ANSA[5:4]: Analog Select between Analog or Digital Function on pins RA[5:4], respectively 1 = Analog input. Pin is assigned as analog input(1). Digital input buffer disabled. 0 = Digital I/O. Pin is assigned to port or digital special function. bit 3 Unimplemented: Read as ‘0’ bit 2-0 ANSA[2:0]: Analog Select between Analog or Digital Function on pins RA[2:0], respectively 1 = Analog input. Pin is assigned as analog input(1). Digital input buffer disabled. 0 = Digital I/O. Pin is assigned to port or digital special function. Note 1: When setting a pin to an analog input, the corresponding TRIS bit must be set to Input mode in order to allow external control of the voltage on the pin.  2015-2019 Microchip Technology Inc. DS40001799F-page 132 PIC16(L)F18313/18323 REGISTER 12-5: WPUA: WEAK PULL-UP PORTA 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 — — WPUA5 WPUA4 WPUA3(1) WPUA2 WPUA1 WPUA0 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 WPUA[5:0]: Weak Pull-up Register bits(2) 1 = Pull-up enabled 0 = Pull-up disabled Note 1: 2: If MCLRE = 1, the weak pull-up in RA3 is always enabled; bit WPUA3 is not affected. The weak pull-up device is disabled if the pin is configured as an output except when the pin is also configured as open-drain. When configured as open-drain, the pull-up is enabled when the output value is high, and disabled when the output value is low. REGISTER 12-6: ODCONA: PORTA OPEN-DRAIN CONTROL REGISTER U-0 U-0 R/W-0/0 R/W-0/0 U-0 R/W-0/0 R/W-0/0 R/W-0/0 — — ODCA5 ODCA4 — ODCA2 ODCA1 ODCA0 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-4 ODCA[5:4]: PORTA Open-Drain Enable bits For RA[5:4] pins, respectively 1 = Port pin operates as open-drain drive (sink current only) 0 = Port pin operates as standard push-pull drive (source and sink current) bit 3 Unimplemented: Read as ‘0’ bit 2-0 ODCA[2:0]: PORTA Open-Drain Enable bits For RA[2:0] pins, respectively 1 = Port pin operates as open-drain drive (sink current only) 0 = Port pin operates as standard push-pull drive (source and sink current)  2015-2019 Microchip Technology Inc. DS40001799F-page 133 PIC16(L)F18313/18323 REGISTER 12-7: SLRCONA: PORTA SLEW RATE CONTROL REGISTER U-0 U-0 R/W-1/1 R/W-1/1 U-0 R/W-1/1 R/W-1/1 R/W-1/1 — — SLRA5 SLRA4 — SLRA2 SLRA1 SLRA0 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-4 SLRA[5:4]: PORTA Slew Rate Enable bits For RA[5:4] pins, respectively 1 = Port pin slew rate is limited 0 = Port pin slews at maximum rate bit 3 Unimplemented: Read as ‘0’ bit 2-0 SLRA[2:0]: PORTA Slew Rate Enable bits For RA[2:0] pins, respectively 1 = Port pin slew rate is limited 0 = Port pin slews at maximum rate REGISTER 12-8: INLVLA: PORTA INPUT LEVEL CONTROL REGISTER U-0 U-0 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 — — INLVLA5 INLVLA4 INLVLA3 INLVLA2 INLVLA1 INLVLA0 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 INLVLA[5:0]: PORTA Input Level Select bits For RA[5:0] pins, respectively 1 = ST input used for PORT reads and interrupt-on-change 0 = TTL input used for PORT reads and interrupt-on-change  2015-2019 Microchip Technology Inc. DS40001799F-page 134 PIC16(L)F18313/18323 TABLE 12-2: SUMMARY OF REGISTERS ASSOCIATED WITH PORTA Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Register on Page PORTA — — RA5 RA4 RA3 RA2 RA1 RA0 131 TRISA — — TRISA5 TRISA4 — TRISA2 TRISA1 TRISA0 131 LATA — — LATA5 LATA4 — LATA2 LATA1 LATA0 132 ANSELA — — ANSA5 ANSA4 — ANSA2 ANSA1 ANSA0 132 WPUA0 133 Name WPUA — — WPUA5 WPUA4 WPUA3 WPUA2 WPUA1 ODCONA — — ODCA5 ODCA4 — ODCA2 ODCA1 ODCA0 133 SLRCONA — — SLRA5 SLRA4 — SLRA2 SLRA1 SLRA0 134 INLVLA — — INLVLA5 INLVLA4 INLVLA3 INLVLA2 INLVLA1 INLVLA0 134 Legend: – = unimplemented locations read as ‘0’. Shaded cells are not used by PORTA. TABLE 12-3: Name CONFIG2 Legend: SUMMARY OF CONFIGURATION WORD WITH PORTA Bits Bit -/7 Bit -/6 Bit 13/5 Bit 12/4 Bit 11/3 Bit 10/2 Bit 9/1 Bit 8/0 13:8 — — DEBUG STVREN PPS1WAY — BORV — 7:0 BOREN1 — WDTE1 WDTE0 PWRTE MCLRE BOREN0 LPBOREN Register on Page 53 — = unimplemented location, read as ‘0’. Shaded cells are not used by PORTA.  2015-2019 Microchip Technology Inc. DS40001799F-page 135 PIC16(L)F18313/18323 12.4 12.4.1 PORTC Registers DATA REGISTER PORTC is a bidirectional port that is 6-bits wide. The corresponding data direction register is TRISC (Register 12-10). Setting a TRISC bit (= 1) will make the corresponding PORTC pin an input (i.e., put the corresponding output driver in a High-Impedance mode). Clearing a TRISC bit (= 0) will make the corresponding PORTC pin an output (i.e., enable the output driver and put the contents of the output latch on the selected pin). Example 12-1 shows how to initialize an I/O port. Reading the PORTC register (Register 12-9) reads the status of the pins, whereas writing to it will write to the PORT latch. All write operations are read-modify-write operations. Therefore, a write to a port implies that the port pins are read, this value is modified and then written to the PORT data latch (LATC). The PORT data latch LATC (Register 12-11) holds the output port data, and contains the latest value of a LATC or PORTC write. 12.4.2 DIRECTION CONTROL 12.4.4 OPEN-DRAIN CONTROL The ODCONC register (Register 12-14) controls the open-drain feature of the port. Open-drain operation is independently selected for each pin. When an ODCONC bit is set, the corresponding port output becomes an open-drain driver capable of sinking current only. When an ODCONC bit is cleared, the corresponding port output pin is the standard push-pull drive capable of sourcing and sinking current. Note: 12.4.5 It is not necessary to set open-drain control when using the pin for I2C; the I2C module controls the pin and makes the pin open-drain. SLEW RATE CONTROL The SLRCONC register (Register 12-15) controls the slew rate option for each port pin. Slew rate control is independently selectable for each port pin. When an SLRCONC bit is set, the corresponding port pin drive is slew rate limited. When an SLRCONC bit is cleared, The corresponding port pin drive slews at the maximum rate available. The TRISC register (Register 12-10) controls the PORTC pin output drivers, even when they are being used as analog inputs. The user should ensure the bits in the TRISC register are maintained set when using them as analog inputs. I/O pins configured as analog inputs always read ‘0’. 12.4.6 12.4.3 The state of the ANSELC bits has no effect on digital output functions. A pin with TRIS clear and ANSELC set will still operate as a digital output, but the Input mode will be analog. This can cause unexpected behavior when executing read-modify-write instructions on the affected port. INPUT THRESHOLD CONTROL The INLVLC register (Register 12-16) controls the input voltage threshold for each of the available PORTC input pins. A selection between the Schmitt Trigger CMOS or the TTL Compatible thresholds is available. The input threshold is important in determining the value of a read of the PORTC register and also the level at which an interrupt-on-change occurs, if that feature is enabled. See Table 35-4 for more information on threshold levels. Note: Changing the input threshold selection should be performed while all peripheral modules are disabled. Changing the threshold level during the time a module is active may inadvertently generate a transition associated with an input pin, regardless of the actual voltage level on that pin. ANALOG CONTROL The ANSELC register (Register 12-12) is used to configure the Input mode of an I/O pin to analog. Setting the appropriate ANSELC bit high will cause all digital reads on the pin to be read as ‘0’ and allow analog functions on the pin to operate correctly. Note: 12.4.7 The ANSELC bits default to the Analog mode after Reset. To use any pins as digital general purpose or peripheral inputs, the corresponding ANSEL bits must be initialized to ‘0’ by user software. WEAK PULL-UP CONTROL The WPUC register (Register 12-13) controls the individual weak pull-ups for each PORT pin. 12.4.8 PORTC FUNCTIONS AND OUTPUT PRIORITIES Each pin defaults to the PORT latch data after Reset. Other functions are selected with the peripheral pin select logic. See Section 13.0 “Peripheral Pin Select (PPS) Module” for more information. Analog output functions, such as ADC and comparator inputs, are not shown in the peripheral pin select lists. Digital output functions may continue to control the pin when it is in Analog mode.  2015-2019 Microchip Technology Inc. DS40001799F-page 136 PIC16(L)F18313/18323 12.5 Register Definitions: PORTC REGISTER 12-9: PORTC: PORTC REGISTER U-0 U-0 R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u — — RC5 RC4 RC3 RC2 RC1 RC0 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 RC[5:0]: PORTC General Purpose I/O Pin bits(1) 1 = Port pin is > VIH 0 = Port pin is < VIL Note 1: Writes to PORTC are actually written to corresponding LATC register. Reads from PORTC register is return of actual I/O pin values.  2015-2019 Microchip Technology Inc. DS40001799F-page 137 PIC16(L)F18313/18323 REGISTER 12-10: TRISC: PORTC TRI-STATE REGISTER U-0 U-0 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 — — TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 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 TRISC[5:0]: PORTC Tri-State Control bits 1 = PORTC pin configured as an input (tri-stated) 0 = PORTC pin configured as an output REGISTER 12-11: LATC: PORTC DATA LATCH REGISTER U-0 U-0 R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u — — LATC5 LATC4 LATC3 LATC2 LATC1 LATC0 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 LATC[5:0]: PORTC Output Latch Value bits  2015-2019 Microchip Technology Inc. DS40001799F-page 138 PIC16(L)F18313/18323 REGISTER 12-12: ANSELC: PORTC ANALOG SELECT REGISTER U-0 U-0 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 — — ANSC5 ANSC4 ANSC3 ANSC2 ANSC1 ANSC0 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 ANSC[5:0]: Analog Select between Analog or Digital Function on pins RC[5:0], respectively 0 = Digital I/O. Pin is assigned to port or digital special function. 1 = Analog input. Pin is assigned as analog input(1). Digital input buffer disabled. Note 1: When setting a pin to an analog input, the corresponding TRIS bit must be set to Input mode in order to allow external control of the voltage on the pin. REGISTER 12-13: WPUC: WEAK PULL-UP PORTC 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 — — WPUC5 WPUC4 WPUC3 WPUC2 WPUC1 WPUC0 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 WPUC[5:0]: Weak Pull-up Register bits(1) 1 = Pull-up enabled 0 = Pull-up disabled Note 1: The weak pull-up is disabled if the pin is configured as an output except when the pin is also configured as open-drain. When configured as open-drain, the pull-up is enabled when the output value is high, and disabled when the output value is low.  2015-2019 Microchip Technology Inc. DS40001799F-page 139 PIC16(L)F18313/18323 REGISTER 12-14: ODCONC: PORTC OPEN-DRAIN CONTROL 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 — — ODCC5 ODCC4 ODCC3 ODCC2 ODCC1 ODCC0 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 ODCC[5:0]: PORTC Open-Drain Enable bits For RC[5:0] pins, respectively 1 = Port pin operates as open-drain drive (sink current only) 0 = Port pin operates as standard push-pull drive (source and sink current) REGISTER 12-15: SLRCONC: PORTC SLEW RATE CONTROL REGISTER U-0 U-0 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 — — SLRC5 SLRC4 SLRC3 SLRC2 SLRC1 SLRC0 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 SLRC[5:0]: PORTC Slew Rate Enable bits For RC[5:0] pins, respectively 1 = Port pin slew rate is limited 0 = Port pin slews at maximum rate  2015-2019 Microchip Technology Inc. DS40001799F-page 140 PIC16(L)F18313/18323 REGISTER 12-16: INLVLC: PORTC INPUT LEVEL CONTROL REGISTER U-0 U-0 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 — — INLVLC5 INLVLC4 INLVLC3 INLVLC2 INLVLC1 INLVLC0 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 INLVLC[5:0]: PORTC Input Level Select bits For RC[5:0] pins, respectively 1 = ST input used for PORT reads and interrupt-on-change 0 = TTL input used for PORT reads and interrupt-on-change TABLE 12-4: Name SUMMARY OF REGISTERS ASSOCIATED WITH PORTC Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Register on Page Bit 7 Bit 6 PORTC — — RC5 RC4 RC3 RC2 RC1 RC0 137 TRISC — — TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 138 LATC — — LATC5 LATC4 LATC3 LATC2 LATC1 LATC0 138 ANSELC — — ANSC5 ANSC4 ANSC3 ANSC2 ANSC1 ANSC0 139 WPUC — — WPUC5 WPUC4 WPUC3 WPUC2 WPUC1 WPUC0 139 ODCONC — — ODCC5 ODCC4 ODCC3 ODCC2 ODCC1 ODCC0 140 SLRCONC — — SLRC5 SLRC4 SLRC3 SLRC2 SLRC1 SLRC0 140 INLVLC — — INLVLC5 INLVLC4 INLVLC3 INLVLC2 INLVLC1 INLVLC0 141 Legend: – = unimplemented locations read as ‘0’. Shaded cells are not used by PORTC.  2015-2019 Microchip Technology Inc. DS40001799F-page 141 PIC16(L)F18313/18323 13.0 PERIPHERAL PIN SELECT (PPS) MODULE The Peripheral Pin Select (PPS) module connects peripheral inputs and outputs to the device I/O pins. Only digital signals are included in the selections. All analog inputs and outputs remain fixed to their assigned pins. Input and output selections are independent as shown in the simplified block diagram Figure 13-1. 13.1 PPS Inputs Each peripheral has a PPS register with which the inputs to the peripheral are selected. Inputs include the device pins. 13.2 Each I/O pin has a PPS register with which the pin output source is selected. With few exceptions, the port TRIS control associated with that pin retains control over the pin output driver. Peripherals that control the pin output driver as part of the peripheral operation will override the TRIS control as needed. These peripherals are: • EUSART1 (synchronous operation) • MSSP (I2C) Although every pin has its own PPS peripheral selection register, the selections are identical for every pin as shown in Register 13-2. Although every peripheral has its own PPS input selection register, the selections are identical for every peripheral as shown in Register 13-1. Note: PPS Outputs Note: The notation “Rxy” is a place holder for the pin identifier. For example, RA0PPS. The notation “xxx” in the register name is a place holder for the peripheral identifier. For example, CLC1PPS. FIGURE 13-1: SIMPLIFIED PPS BLOCK DIAGRAM PPS Outputs RA0PPS PPS Inputs abcPPS RA0 RA0 Peripheral abc RxyPPS Rxy Peripheral xyz RC7(1) RC7PPS(1) xyzPPS RC7(1) Note 1: RB[7:4] and RC[7:6] are available on PIC16(L)F18323 only.  2015-2019 Microchip Technology Inc. DS40001799F-page 142 PIC16(L)F18313/18323 13.3 Bidirectional Pins PPS selections for peripherals with bidirectional signals on a single pin must be made so that the PPS input and PPS output select the same pin. Peripherals that have bidirectional signals are: • EUSART1 (synchronous operation) • MSSP (I2C) Note: 13.4 The I2C default input pins are I2C and SMBus compatible and are the only pins on the PIC16(L)F18313/18323 with this compatibility. Clock and data signals can be routed to any pin, however pins without I2C compatibility will operate at standard TTL/ST logic levels as selected by the INVLV register. PPSLOCKED Bit The PPS includes a mode in which all input and output selections can be locked to prevent inadvertent changes. PPS selections are locked by setting the PPSLOCKED bit of the PPSLOCK register. Setting and clearing this bit requires a special sequence as an extra precaution against inadvertent changes. Examples of setting and clearing the PPSLOCKED bit are shown in Example 13-1. EXAMPLE 13-1: PPS LOCK/UNLOCK SEQUENCE 13.5 PPS1WAY Bit The PPS can be locked by setting the PPS1WAY bit of Configuration Word 2. When the PPS1WAY bit is set, the PPSLOCKED bit of the PPSLOCK register can be cleared and set only one time after a device Reset. Once the PPS registers are configured, user software sets the PPSLOCKED bit, preventing any further writes to the PPS registers. The PPS registers can be read at any time, regardless of the PPS1WAY or PPSLOCKED settings. When the PPS1WAY bit is clear, the PPSLOCKED bit of the PPSLOCK register can be cleared and set multiple times during code execution, but requires the PPS lock/unlock sequence to be performed each time modifications to the PPS registers are made. 13.6 Operation During Sleep PPS input and output selections are unaffected by Sleep. 13.7 Effects of a Reset A device Power-On-Reset (POR) clears all PPS input and output selections to their default values, and clears the PPSLOCKED bit of the PPSLOCK register. All other Resets leave the selections unchanged. Default input selections are shown in pin allocation Table 1 and Table 2. ; suspend interrupts bcf INTCON,GIE ; BANKSEL PPSLOCK ; set bank ; required sequence, next 5 instructions movlw 0x55 movwf PPSLOCK movlw 0xAA movwf PPSLOCK ; Set PPSLOCKED bit to disable writes or ; Clear PPSLOCKED bit to enable writes bsf PPSLOCK,PPSLOCKED ; restore interrupts bsf INTCON,GIE  2015-2019 Microchip Technology Inc. DS40001799F-page 143 PIC16(L)F18313/18323 13.8 Register Definitions: PPS Input Selection REGISTER 13-1: xxxPPS: PERIPHERAL xxx INPUT SELECTION U-0 U-0 U-0 — — — R/W-q/u R/W-q/u R/W-q/u R/W-q/u R/W-q/u xxxPPS[4: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 q = value depends on peripheral bit 7-5 Unimplemented: Read as ‘0’ bit 4-0 xxxPPS[4:0]: Peripheral xxx Input Selection bits 11xxx = Reserved. Do not use. 10111 = Reserved. Do not use. 10110 = Reserved. Do not use. 10101 = Peripheral input is RC5(1) 10100 = Peripheral input is RC4(1) 10011 = Peripheral input is RC3(1) 10010 = Peripheral input is RC2(1) 10001 = Peripheral input is RC1(1) 10000 = Peripheral input is RC0(1) ... 01xxx = Reserved. Do not use. ... 0011x = Reserved. Do not use. 00101 = Peripheral input is RA5 00100 = Peripheral input is RA4 00011 = Peripheral input is RA3 00010 = Peripheral input is RA2 00001 = Peripheral input is RA1 00000 = Peripheral input is RA0 Note 1: PIC16(L)F18323 only.  2015-2019 Microchip Technology Inc. DS40001799F-page 144 PIC16(L)F18313/18323 REGISTER 13-2: RxyPPS: PIN Rxy OUTPUT SOURCE SELECTION REGISTER U-0 U-0 U-0 — — — R/W-0/u R/W-0/u R/W-0/u R/W-0/u R/W-0/u RxyPPS[4: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-5 Unimplemented: Read as ‘0’ bit 4-0 RxyPPS[4:0]: Pin Rxy Output Source Selection bits 11111 = Rxy source is DSM 11110 = Rxy source is CLKR 11101 = Rxy source is NCO1 11100 = Rxy source is TMR0 11011 = Reserved 11010 = Reserved 11001 = Rxy source is SDO1/SDA1 11000 = Rxy source is SCK1/SCL1(1) 10111 = Rxy source is C2(2) 10110 = Rxy source is C1 10101 = Rxy source is DT(1) 10100 = Rxy source is EUSART TC/CK 10011 = Reserved 10010 = Reserved 10001 = Reserved 10000 = Reserved 01111 = Reserved 01110 = Reserved 01101 = Rxy source is CCP2 01100 = Rxy source is CCP1 01011 = Rxy source is CWG1D(1) 01010 = Rxy source is CWG1C(1) 01001 = Rxy source is CWG1B(1) 01000 = Rxy source is CWG1A(1) 00111 = Reserved 00110 = Reserved 00101 = Rxy source is CLC2OUT 00100 = Rxy source is CLC1OUT 00011 = Rxy source is PWM6 00010 = Rxy source is PWM5 00001 = Reserved 00000 = Rxy source is LATxy Note 1: 2: TRIS control is overridden by the peripheral as required. PIC16(L)F18323 only.  2015-2019 Microchip Technology Inc. DS40001799F-page 145 PIC16(L)F18313/18323 REGISTER 13-3: PPSLOCK: PPS LOCK REGISTER U-0 U-0 U-0 U-0 U-0 U-0 U-0 R/W-0/0 — — — — — — — PPSLOCKED 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-1 Unimplemented: Read as ‘0’ bit 0 PPSLOCKED: PPS Locked bit 1= PPS is locked. PPS selections can not be changed. 0= PPS is not locked. PPS selections can be changed. TABLE 13-1: SUMMARY OF REGISTERS ASSOCIATED WITH THE PPS MODULE Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Register on page PPSLOCK — — — — — — — PPSLOCKED 146 INTPPS — — — INTPPS[4:0] 144 T0CKIPPS — — — T0CKIPPS[4:0] 144 T1CKIPPS — — — T1CKIPPS[4:0] 144 T1GPPS — — — T1GPPS[4:0] 144 CCP1PPS — — — CCP1PPS[4:0] 144 CCP2PPS — — — CCP2PPS[4:0] 144 CWG1PPS — — — CWG1PPS[4:0] 144 MDCIN1PPS — — — MDCIN1PPS[4:0] 144 MDCIN2PPS — — — MDCIN2PPS[4:0] 144 MDMINPPS — — — MDMINPPS[4:0] 144 SSP1CLKPPS — — — SSP1CLKPPS[4:0] 144 SSP1DATPPS — — — SSP1DATPPS[4:0] 144 SSP1SSPPS — — — SSP1SSPPS[4:0] 144 RXPPS — — — RXPPS[4:0] 144 CLCIN0PPS — — — CLCIN0PPS[4:0] 144 CLCIN1PPS — — — CLCIN1PPS[4:0] 144 CLCIN2PPS — — — CLCIN2PPS[4:0] 144 CLCIN3PPS — — — CLCIN3PPS[4:0] 144 RA0PPS — — — RA0PPS[4:0] 145 RA1PPS — — — RA1PPS[4:0] 145 RA2PPS — — — RA2PPS[4:0] 145 RA4PPS — — — RA4PPS[4:0] 145 RA5PPS — — — RA5PPS[4:0] 145 Name Legend: — = unimplemented, read as ‘0’. Shaded cells are unused by the PPS module. Note 1: PIC16(L)F18323 only.  2015-2019 Microchip Technology Inc. DS40001799F-page 146 PIC16(L)F18313/18323 TABLE 13-1: Name SUMMARY OF REGISTERS ASSOCIATED WITH THE PPS MODULE (CONTINUED) Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Register on page Bit 7 Bit 6 Bit 5 RC0PPS(1) — — — RC0PPS[4:0] 145 RC1PPS(1) — — — RC1PPS[4:0] 145 RC2PPS(1) — — — RC2PPS[4:0] 145 RC3PPS(1) — — — RC3PPS[4:0] 145 RC4PPS(1) — — — RC4PPS[4:0] 145 RC5PPS(1) — — — RC5PPS[4:0] 145 Legend: — = unimplemented, read as ‘0’. Shaded cells are unused by the PPS module. Note 1: PIC16(L)F18323 only.  2015-2019 Microchip Technology Inc. DS40001799F-page 147 PIC16(L)F18313/18323 14.0 PERIPHERAL MODULE DISABLE 14.2 When the register bit is cleared, the module is reenabled and will be in its Reset state; SFR data will reflect the POR Reset values. The PIC16(L)F18313/18323 provides the ability to disable selected modules, placing them into the lowest possible power mode. Depending on the module, it may take up to one full instruction cycle for the module to become active. There should be no interaction with the module (e.g., writing to registers) for at least one instruction after it has been re-enabled. For legacy reasons, all modules are ON by default following any Reset. 14.1 Enabling a Module Disabling a Module Disabling a module has the following effects: 14.3 • All clock and control inputs to the module are suspended; there are no logic transitions, and the module will not function. • The module is held in Reset. - Writing to the SFRs is disabled - Reads return 00h • Analog outputs are disabled; Digital outputs read ‘0’ Setting SYSCMD (PMD0, Register 14-1) disables the system clock (FOSC) distribution network to the peripherals. Not all peripherals make use of SYSCLK, so not all peripherals are affected. Refer to the specific peripheral description to see if it will be affected by this bit. REGISTER 14-1: System Clock Disable PMD0: PMD CONTROL REGISTER 0 R/W-0/0 R/W-0/0 U-0 U-0 U-0 R/W-0/0 R/W-0/0 R/W-0/0 SYSCMD FVRMD — — — NVMMD CLKRMD IOCMD 7 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 SYSCMD: Disable Peripheral System Clock Network bit See description in Section 14.3 “System Clock Disable”. 1 = System Clock network disabled (a.k.a. FOSC) 0 = System Clock network enabled bit 6 FVRMD: Disable Fixed Voltage Reference FVR bit 1 = FVR module disabled 0 = FVR module enabled bit 5-3 Unimplemented: Read as ‘0’ bit 2 NVMMD: NVM Module Disable bit(1) 1 = Data EEPROM reading and writing is disabled; NVMCON registers cannot be written; FSR access to EEPROM returns zero. 0 = NVM module enabled bit 1 CLKRMD: Disable Clock Reference CLKR bit 1 = CLKR module disabled 0 = CLKR module enabled bit 0 IOCMD: Disable Interrupt-on-Change bit, All Ports 1 = IOC module(s) disabled 0 = IOC module(s) enabled Note 1: When enabling NVM, a delay of up to 1 µs may be required before accessing data.  2015-2019 Microchip Technology Inc. DS40001799F-page 148 PIC16(L)F18313/18323 REGISTER 14-2: PMD1: PMD CONTROL REGISTER 1 R/W-0/0 U-0 U-0 U-0 U-0 R/W-0/0 R/W-0/0 R/W-0/0 NCOMD — — — — TMR2MD TMR1MD TMR0MD 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 NCOMD: Disable Numerically Control Oscillator bit 1 = NCO1 module disabled 0 = NCO1 module enabled bit 6-3 Unimplemented: Read as ‘0’ bit 2 TMR2MD: Disable Timer TMR2 bit 1 = TMR2 module disabled 0 = TMR2 module enabled bit 1 TMR1MD: Disable Timer TMR1 bit 1 = TMR1 module disabled 0 = TMR1 module enabled bit 0 TMR0MD: Disable Timer TMR0 bit 1 = TMR0 module disabled 0 = TMR0 module enabled  2015-2019 Microchip Technology Inc. DS40001799F-page 149 PIC16(L)F18313/18323 REGISTER 14-3: U-0 PMD2: PMD CONTROL REGISTER 2 R/W-0/0 — DACMD R/W-0/0 ADCMD U-0 — U-0 R/W-0/0 R/W-0/0 U-0 — CMP2MD(1) CMP1MD — bit 7 bit 0 Legend: R = Readable bit W = Writable bit 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 Unimplemented: Read as ‘0’ bit 6 DACMD: Disable DAC bit 1 = DAC module disabled 0 = DAC module enabled bit 5 ADCMD: Disable ADC bit 1 = ADC module disabled 0 = ADC module enabled bit 4-3 Unimplemented: Read as ‘0’ bit 2 CMP2MD: Disable Comparator C2 bit(1) 1 = Comparator C2 module disabled 0 = Comparator C2 module enabled bit 1 CMP1MD: Disable Comparator C1 bit 1 = Comparator C1 module disabled 0 = Comparator C1 module enabled bit 0 Unimplemented: Read as ‘0’ Note 1: U = Unimplemented bit, read as ‘0’ PIC16(L)F18323 only.  2015-2019 Microchip Technology Inc. DS40001799F-page 150 PIC16(L)F18313/18323 REGISTER 14-4: PMD3: PMD CONTROL REGISTER 3 U-0 R/W-0/0 R/W-0/0 R/W-0/0 U-0 U-0 R/W-0/0 R/W-0/0 — CWG1MD PWM6MD PWM5MD — — CCP2MD CCP1MD bit 7 bit 0 Legend: R = Readable bit W = Writable bit 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 Unimplemented: Read as ‘0’ bit 6 CWG1MD: Disable CWG1 bit 1 = CWG1 module disabled 0 = CWG1 module enabled bit 5 PWM6MD: Disable PWM6 bit 1 = PWM6 module disabled 0 = PWM6 module enabled bit 4 PWM5MD: Disable PWM5 bit 1 = PWM5 module disabled 0 = PWM5 module enabled bit 3-2 Unimplemented: Read as ‘0’ bit 1 CCP2MD: Disable CCP2 bit 1 = CCP2 module disabled 0 = CCP2 module enabled bit 0 CCP1MD: Disable CCP1 bit 1 = CCP1 module disabled 0 = CCP1 module enabled  2015-2019 Microchip Technology Inc. U = Unimplemented bit, read as ‘0’ DS40001799F-page 151 PIC16(L)F18313/18323 REGISTER 14-5: PMD4: PMD CONTROL REGISTER 4 U-0 U-0 R/W-0/0 U-0 U-0 U-0 R/W-0/0 U-0 — — UART1MD — — — MSSP1MD — 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-6 Unimplemented: Read as ‘0’ bit 5 UART1MD: Disable EUSART1 bit 1 = EUSART1 module disabled 0 = EUSART1 module enabled bit 4-2 Unimplemented: Read as ‘0’ bit 1 MSSP1MD: Disable MSSP1 bit 1 = MSSP1 module disabled 0 = MSSP1 module enabled bit 0 Unimplemented: Read as ‘0’  2015-2019 Microchip Technology Inc. DS40001799F-page 152 PIC16(L)F18313/18323 REGISTER 14-6: PMD5: PMD CONTROL REGISTER 5 U-0 U-0 U-0 U-0 U-0 R/W-0/0 R/W-0/0 R/W-0/0 — — — — — CLC2MD CLC1MD DSMMD bit 7 bit 0 Legend: R = Readable bit W = Writable bit 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-3 Unimplemented: Read as ‘0’ bit 2 CLC2MD: Disable CLC2 bit 1 = CLC2 module disabled 0 = CLC2 module enabled bit 1 CLC1MD: Disable CLC1 bit 1 = CLC1 module disabled 0 = CLC1 module enabled bit 0 DSMMD: Disable Data Signal Modulator bit 1 = DSM module disabled 0 = DSM module enabled  2015-2019 Microchip Technology Inc. U = Unimplemented bit, read as ‘0’ DS40001799F-page 153 PIC16(L)F18313/18323 15.0 INTERRUPT-ON-CHANGE All pins on all ports can be configured to operate as Interrupt-On-Change (IOC) pins. An interrupt can be generated by detecting a signal that has either a rising edge or a falling edge. Any individual pin, or combination of pins, can be configured to generate an interrupt. The interrupt-on-change module has the following features: • Interrupt-on-Change enable - Rising and falling edge detection • Individual pin configuration • Individual pin interrupt flags Figure 15-1 is a block diagram of the IOC module. 15.1 Enabling the Module To allow individual pins to generate an interrupt, the IOCIE bit of the PIE0 register must be set. If the IOCIE bit is disabled, the edge detection on the pin will still occur, but an interrupt will not be generated. 15.2 Individual Pin Configuration 15.3 The bits located in the IOCxF registers are status flags that correspond to the interrupt-on-change pins of each port. If an expected edge is detected on an appropriately enabled pin, then the status flag for that pin will be set, and an interrupt will be generated if the IOCIE bit is set. The IOCIF bit of the PIR0 register reflects the status of all IOCxF bits. 15.3.1 CLEARING INTERRUPT FLAGS The individual status flags, (IOCxF register bits), can be cleared by resetting them to zero. If another edge is detected during this clearing operation, the associated status flag will be set at the end of the sequence, regardless of the value actually being written. In order to ensure that no detected edge is lost while clearing flags, only AND operations masking out known changed bits should be performed. The following sequence is an example of what should be performed. EXAMPLE 15-1: For each pin, a rising edge detector and a falling edge detector are present. To enable a pin to detect a rising edge, the associated bit of the IOCxP register is set. To enable a pin to detect a falling edge, the associated bit of the IOCxN register is set. A pin can be configured to detect rising and falling edges simultaneously by setting the associated bits in both of the IOCxP and IOCxN registers. Interrupt Flags MOVLW XORWF ANDWF 15.4 CLEARING INTERRUPT FLAGS (PORTA EXAMPLE) 0xff IOCAF, W IOCAF, F Operation in Sleep The interrupt-on-change interrupt event will wake the device from Sleep mode, if the IOCIE bit is set. If an edge is detected while in Sleep mode, the affected IOCxF register will be updated prior to the first instruction executed out of Sleep.  2015-2019 Microchip Technology Inc. DS40001799F-page 154 PIC16(L)F18313/18323 FIGURE 15-1: INTERRUPT-ON-CHANGE BLOCK DIAGRAM (PORTA EXAMPLE) Rev. 10-000 037A 6/2/201 4 IOCANx D Q R Q4Q1 edge detect RAx IOCAPx D Q R data bus = 0 or 1 D S to data bus IOCAFx Q write IOCAFx IOCIE Q2 IOC interrupt to CPU core from all other IOCnFx individual pin detectors  2015-2019 Microchip Technology Inc. DS40001799F-page 155 PIC16(L)F18313/18323 15.5 Register Definitions: Interrupt-on-Change Control REGISTER 15-1: IOCAP: INTERRUPT-ON-CHANGE PORTA POSITIVE EDGE 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 — — IOCAP5 IOCAP4 IOCAP3 IOCAP2 IOCAP1 IOCAP0 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 IOCAP[5:0]]: Interrupt-on-Change PORTA Positive Edge Enable bits 1 = Interrupt-on-Change enabled on the pin for a positive going edge. IOCAFx bit and IOCIF flag will be set upon detecting an edge. 0 = Interrupt-on-Change disabled for the associated pin REGISTER 15-2: IOCAN: INTERRUPT-ON-CHANGE PORTA NEGATIVE EDGE 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 — — IOCAN5 IOCAN4 IOCAN3 IOCAN2 IOCAN1 IOCAN0 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 IOCAN[5:0]: Interrupt-on-Change PORTA Negative Edge Enable bits 1 = Interrupt-on-Change enabled on the pin for a negative going edge. IOCAFx bit and IOCIF flag will be set upon detecting an edge. 0 = Interrupt-on-Change disabled for the associated pin  2015-2019 Microchip Technology Inc. DS40001799F-page 156 PIC16(L)F18313/18323 REGISTER 15-3: IOCAF: INTERRUPT-ON-CHANGE PORTA FLAG REGISTER U-0 U-0 — — R/W/HS-0/0 R/W/HS-0/0 R/W/HS-0/0 IOCAF5 IOCAF4 IOCAF3 R/W/HS-0/0 R/W/HS-0/0 R/W/HS-0/0 IOCAF2 IOCAF1 IOCAF0 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 in hardware bit 7-6 Unimplemented: Read as ‘0’ bit 5-0 IOCAF[5:0]: Interrupt-on-Change PORTA Flag bits 1 = An enabled change was detected on the associated pin Set when IOCAPx = 1 and a rising edge was detected on RAx, or when IOCANx = 1 and a falling edge was detected on RAx. 0 = No change was detected, or the user cleared the detected change.  2015-2019 Microchip Technology Inc. DS40001799F-page 157 PIC16(L)F18313/18323 REGISTER 15-4: IOCCP: INTERRUPT-ON-CHANGE PORTC POSITIVE EDGE REGISTER(1) 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 — — IOCCP5 IOCCP4 IOCCP3 IOCCP2 IOCCP1 IOCCP0 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 IOCCP[5:0]: Interrupt-on-Change PORTC Positive Edge Enable bits(1) 1 = Interrupt-on-Change enabled on the pin for a positive going edge. IOCCFx bit and IOCIF flag will be set upon detecting an edge. 0 = Interrupt-on-Change disabled for the associated pin Note 1: PIC16(L)F18323 only. REGISTER 15-5: IOCCN: INTERRUPT-ON-CHANGE PORTC NEGATIVE EDGE REGISTER(1) 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 — — IOCCN5 IOCCN4 IOCCN3 IOCCN2 IOCCN1 IOCCN0 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 IOCCN[5:0]: Interrupt-on-Change PORTC Negative Edge Enable bits(1) 1 = Interrupt-on-Change enabled on the pin for a negative going edge. IOCCFx bit and IOCIF flag will be set upon detecting an edge. 0 = Interrupt-on-Change disabled for the associated pin Note 1: PIC16(L)F18323 only.  2015-2019 Microchip Technology Inc. DS40001799F-page 158 PIC16(L)F18313/18323 REGISTER 15-6: IOCCF: INTERRUPT-ON-CHANGE PORTC FLAG REGISTER(1) U-0 U-0 — — R/W/HS-0/0 R/W/HS-0/0 R/W/HS-0/0 IOCCF5 IOCCF4 IOCCF3 R/W/HS-0/0 R/W/HS-0/0 R/W/HS-0/0 IOCCF2 IOCCF1 IOCCF0 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 in hardware bit 7-6 Unimplemented: Read as ‘0’ bit 5-0 IOCCF[5:0]: Interrupt-on-Change PORTC Flag bits(1) 1 = An enabled change was detected on the associated pin. Set when IOCCPx = 1 and a rising edge was detected on RCx, or when IOCCNx = 1 and a falling edge was detected on RCx. 0 = No change was detected, or the user cleared the detected change. Note 1: PIC16(L)F18323 only. TABLE 15-1: Name ANSELA (1) ANSELC SUMMARY OF REGISTERS ASSOCIATED WITH INTERRUPT-ON-CHANGE Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Register on Page — — ANSA4 ANSA4 — ANSA2 ANSA1 ANSA0 132 — — ANSC5 ANSC4 ANSC3 ANSC2 ANSC1 ANSC0 139 TRISA — — TRISA5 TRISA4 —(2) TRISA2 TRISA1 TRISA0 131 TRISC(1) — — TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 138 INTCON GIE PEIE — — — — — INTEDG 89 PIE0 — — TMR0IE IOCIE — — — INTE 90 IOCAP — — IOCAP5 IOCAP4 IOCAP3 IOCAP2 IOCAP1 IOCAP0 156 IOCAN — — IOCAN5 IOCAN4 IOCAN3 IOCAN2 IOCAN1 IOCAN0 156 IOCAF — — IOCAF5 IOCAF4 IOCAF3 IOCAF2 IOCAF1 IOCAF0 157 (1) — — IOCCP5 IOCCP4 IOCCP3 IOCCP2 IOCCP1 IOCCP0 158 (1) IOCCN — — IOCCN5 IOCCN4 IOCCN3 IOCCN2 IOCCN1 IOCCN0 158 IOCCF(1) — — IOCCF5 IOCCF4 IOCCF3 IOCCF2 IOCCF1 IOCCF0 159 IOCCP Legend: — = unimplemented location, read as ‘0’. Shaded cells are not used by interrupt-on-change. Note 1: PIC16(L)F18323 only. 2: Unimplemented, read as ‘1’.  2015-2019 Microchip Technology Inc. DS40001799F-page 159 PIC16(L)F18313/18323 16.0 FIXED VOLTAGE REFERENCE (FVR) 16.1 The output of the FVR, which is supplied to the ADC, Comparators and DAC, is routed through two independent programmable gain amplifiers. Each amplifier can be programmed for a gain of 1x, 2x or 4x, to produce the three possible voltage levels. The Fixed Voltage Reference, or FVR, is a stable voltage reference, independent of VDD, with 1.024V, 2.048V or 4.096V selectable output levels. The output of the FVR subsystem can be configured to supply a reference voltage to the following: • • • • The ADFVR[1:0] bits of the FVRCON register are used to enable and configure the gain amplifier settings for the reference supplied to the ADC module. Reference Section 22.0 “Analog-to-Digital Converter (ADC) Module” for additional information. ADC input channel ADC positive reference Comparator positive input Digital-to-Analog Converter (DAC) The CDAFVR[1:0] bits of the FVRCON register are used to enable and configure the gain amplifier settings for the reference supplied to the DAC and comparator module. Reference Section 24.0 “5-bit Digital-to-Analog Converter (DAC1) Module” and Section 18.0 “Comparator Module” for additional information. The FVR can be enabled by setting the FVREN bit of the FVRCON register. Note: Independent Gain Amplifiers Fixed Voltage Reference output cannot exceed VDD. 16.2 FVR Stabilization Period When the Fixed Voltage Reference module is enabled, it requires time for the reference and amplifier circuits to stabilize. See Table 35-16 for FVR start-up times. FIGURE 16-1: VOLTAGE REFERENCE BLOCK DIAGRAM Rev. 10-000 053C 12/9/201 3 ADFVR CDAFVR FVREN 1x 2x 4x FVR_buffer1 (To ADC Module) 1x 2x 4x FVR_buffer2 (To Comparators and DAC) 2 + _ Note 1 Note: 2 FVRRDY Any peripheral requiring the fixed reference (see Table 16-1).  2015-2019 Microchip Technology Inc. DS40001799F-page 160 PIC16(L)F18313/18323 16.3 Register Definitions: FVR Control REGISTER 16-1: FVRCON: FIXED VOLTAGE REFERENCE CONTROL REGISTER R/W-0/0 R-q/q FVREN FVRRDY(1) R/W-0/0 (3) TSEN R/W-0/0 R/W-0/0 (3) TSRNG R/W-0/0 R/W-0/0 CDAFVR[1:0] bit 7 R/W-0/0 ADFVR[1:0] 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 FVREN: Fixed Voltage Reference Enable bit 1 = Fixed Voltage Reference is enabled 0 = Fixed Voltage Reference is disabled bit 6 FVRRDY: Fixed Voltage Reference Ready Flag bit(1) 1 = Fixed Voltage Reference output is ready for use 0 = Fixed Voltage Reference output is not ready or not enabled bit 5 TSEN: Temperature Indicator Enable bit(3) 1 = Temperature Indicator is enabled 0 = Temperature Indicator is disabled bit 4 TSRNG: Temperature Indicator Range Selection bit(3) 1 = VOUT = VDD - 4VT (High Range) 0 = VOUT = VDD - 2VT (Low Range) bit 3-2 CDAFVR[1:0]: Comparator FVR Buffer Gain Selection bits 11 = Comparator FVR Buffer Gain is 4x, (4.096V)(2) 10 = Comparator FVR Buffer Gain is 2x, (2.048V)(2) 01 = Comparator FVR Buffer Gain is 1x, (1.024V) 00 = Comparator FVR Buffer is off bit 1-0 ADFVR[1:0]: ADC FVR Buffer Gain Selection bit 11 = ADC FVR Buffer Gain is 4x, (4.096V)(2) 10 = ADC FVR Buffer Gain is 2x, (2.048V)(2) 01 = ADC FVR Buffer Gain is 1x, (1.024V) 00 = ADC FVR Buffer is off Note 1: 2: 3: FVRRDY is always ‘1’. Fixed Voltage Reference output cannot exceed VDD. See Section 17.0 “Temperature Indicator Module” for additional information.  2015-2019 Microchip Technology Inc. DS40001799F-page 161 PIC16(L)F18313/18323 TABLE 16-1: Name FVRCON SUMMARY OF REGISTERS ASSOCIATED WITH FIXED VOLTAGE REFERENCE Bit 7 Bit 6 Bit 5 Bit 4 FVREN FVRRDY TSEN TSRNG ADCON0 ADCON1 Bit 3 Bit 2 CDAFVR[1:0] CHS[5:0] ADFM ADCS[2:0] CMxCON1 CxINTP CxINTN DAC1CON0 DAC1EN — ADNREF — Bit 0 ADFVR[1:0] GO/DONE — CxPCH[2:0] DAC1OE Bit 1 ADON ADPREF[1:0] CxNCH[2:0] DAC1PPS[1:0] — Register on page 161 225 226 172 DAC1NSS 244 Legend: Shaded cells are not used with the Fixed Voltage Reference.  2015-2019 Microchip Technology Inc. DS40001799F-page 162 PIC16(L)F18313/18323 17.0 TEMPERATURE INDICATOR MODULE FIGURE 17-1: This family of devices is equipped with a temperature circuit designed to measure the operating temperature of the silicon die. The circuit’s range of operating temperature falls between -40°C and +85°C. The output is a voltage that is proportional to the device temperature. The output of the temperature indicator is internally connected to the device ADC. VDD TSEN TSRNG The circuit may be used as a temperature threshold detector or a more accurate temperature indicator, depending on the level of calibration performed. A onepoint calibration allows the circuit to indicate a temperature closely surrounding that point. A two-point calibration allows the circuit to sense the entire range of temperature more accurately. Reference Application Note AN2092, “Using the Temperature Indicator Module” (DS00002092) for more details regarding the calibration process. 17.1 Circuit Operation Figure 17-1 shows a simplified block diagram of the temperature circuit. The proportional voltage output is achieved by measuring the forward voltage drop across multiple silicon junctions. Equation 17-1 describes the output characteristics of the temperature indicator. EQUATION 17-1: VOUT RANGES TEMPERATURE CIRCUIT DIAGRAM VOUT Temp. Indicator 17.2 To ADC Minimum Operating VDD When the temperature circuit is operated in low range, the device may be operated at any operating voltage that is within specifications. When the temperature circuit is operated in high range, the device operating voltage, VDD, must be high enough to ensure that the temperature circuit is correctly biased. Table 17-1 shows the recommended minimum VDD vs. range setting. High Range: VOUT = VDD - 4VT Low Range: VOUT = VDD - 2VT The temperature sense circuit is integrated with the Fixed Voltage Reference (FVR) module. See Section 16.0 “Fixed Voltage Reference (FVR)” for more information. The circuit is enabled by setting the TSEN bit of the FVRCON register. When disabled, the circuit draws no current. The circuit operates in either high or low range. The high range, selected by setting the TSRNG bit of the FVRCON register, provides a wider output voltage. This provides more resolution over the temperature range. This range requires a higher bias voltage to operate and thus, a higher VDD is needed. TABLE 17-1: RECOMMENDED VDD VS. RANGE Min. VDD, TSRNG = 1 Min. VDD, TSRNG = 0 3.6V 1.8V 17.3 Temperature Output The output of the circuit is measured using the internal Analog-to-Digital Converter. A channel is provided for the temperature circuit output. Refer to Section 22.0 “Analog-to-Digital Converter (ADC) Module” for detailed information. The low range is selected by clearing the TSRNG bit of the FVRCON register. The low range generates a lower voltage drop and thus, a lower VDD voltage is needed to operate the circuit. The low range is provided for low voltage operation.  2015-2019 Microchip Technology Inc. DS40001799F-page 163 PIC16(L)F18313/18323 17.4 ADC Acquisition Time To ensure accurate temperature measurements, the user must wait at least 200 s after the ADC input multiplexer is connected to the temperature indicator output before the conversion is performed. TABLE 17-2: Name FVRCON SUMMARY OF REGISTERS ASSOCIATED WITH THE TEMPERATURE INDICATOR Bit 7 Bit 6 Bit 5 Bit 4 FVREN FVRRDY TSEN TSRNG Bit 3 Bit 2 CDAFVR[1:0] Bit 1 Bit 0 ADFVR[1:0] Register on page 161 Legend: Shaded cells are unused by the temperature indicator module.  2015-2019 Microchip Technology Inc. DS40001799F-page 164 PIC16(L)F18313/18323 18.0 COMPARATOR MODULE Comparators are used to interface analog circuits to a digital circuit by comparing two analog voltages and providing a digital indication of their relative magnitudes. Comparators are very useful mixed signal building blocks because they provide analog functionality independent of program execution. The analog comparator module includes the following features: • Programmable input selection - Selectable voltage reference • Programmable output polarity • Rising/falling output edge interrupts • Wake-up from Sleep • CWG Auto-shutdown source 18.1 Comparator Overview A single comparator is shown in Figure 18-1 along with the relationship between the analog input levels and the digital output. When the analog voltage at VIN+ is less than the analog voltage at VIN-, the output of the comparator is a digital low level. When the analog voltage at VIN+ is greater than the analog voltage at VIN-, the output of the comparator is a digital high level. The comparators available for this device are located in Table 18-1. TABLE 18-1: AVAILABLE COMPARATORS Device C1 PIC16(L)F18313 ● PIC16(L)F18323 ● FIGURE 18-1: C2 ● SINGLE COMPARATOR VIN+ + VIN- – Output VINVIN+ Output Note: The black areas of the output of the comparator represents the uncertainty due to input offsets and response time.  2015-2019 Microchip Technology Inc. DS40001799F-page 165 PIC16(L)F18313/18323 FIGURE 18-2: COMPARATOR MODULE SIMPLIFIED BLOCK DIAGRAM Rev. 10-000027M 9/20/2016 CxNCH 3 CxON(1) CxIN0- 000 CxIN1- 001 CxIN2- 010 CxIN3- 011 Reserved 100 Reserved 101 FVR_buffer2 110 CxON(1) CxVN Interrupt Rising Edge CxINTP Interrupt Falling Edge CxINTN set bit CxIF - D CxOUT Q MCxOUT Cx CxVP 111 + Q1 CxSP CxHYS CxPOL CxOUT_sync CxSYNC 000 CxIN0+ Reserved 001 Reserved 010 Reserved 011 Reserved 100 DAC_output 101 FVR_buffer2 110 to peripherals TRIS bit 0 PPS D (From Timer1 Module) T1CLK Q CxOUT 1 RxyPPS 111 CxPCH Note 1: 2 CxON(1) When CxON = 0, all multiplexer inputs are disconnected and the Comparator will produce a ‘0’ at the output.  2015-2019 Microchip Technology Inc. DS40001799F-page 166 PIC16(L)F18313/18323 18.2 Comparator Control Each comparator has two control registers: CMxCON0 and CMxCON1. The CMxCON0 register (see Register 18-1) contains Control and Status bits for the following: • • • • • Enable Output Output polarity Hysteresis enable Timer1 output synchronization The CMxCON1 register (see Register 18-2) contains Control bits for the following: • Interrupt on positive/negative edge enables • Positive input channel selection • Negative input channel selection 18.2.1 COMPARATOR OUTPUT POLARITY Inverting the output of the comparator is functionally equivalent to swapping the comparator inputs. The polarity of the comparator output can be inverted by setting the CxPOL bit of the CMxCON0 register. Clearing the CxPOL bit results in a non-inverted output. Table 18-2 shows the output state versus input conditions, including polarity control. TABLE 18-2: COMPARATOR OUTPUT STATE VS. INPUT CONDITIONS Input Condition CxPOL CxOUT CxVN > CxVP 0 0 CxVN < CxVP 0 1 CxVN > CxVP 1 1 CxVN < CxVP 1 0 COMPARATOR ENABLE Setting the CxON bit of the CMxCON0 register enables the comparator for operation. Clearing the CxON bit disables the comparator resulting in minimum current consumption. 18.2.2 18.2.3 COMPARATOR OUTPUT The output of the comparator can be monitored by reading either the CxOUT bit of the CMxCON0 register or the MCxOUT bit of the CMOUT register. The comparator output can also be routed to an external pin through the RxyPPS register (Register 13-2). The corresponding TRIS bit must be clear to enable the pin as an output. Note 1: The internal output of the comparator is latched with each instruction cycle. Unless otherwise specified, external outputs are not latched. 18.3 Comparator Hysteresis A selectable amount of separation voltage can be added to the input pins of each comparator to provide a hysteresis function to the overall operation. Hysteresis is enabled by setting the CxHYS bit of the CMxCON0 register. See Comparator Specifications in Table 35-14 for more information. 18.4 Timer1 Gate Operation The output resulting from a comparator operation can be used as a source for gate control of Timer1. See Section 27.5 “Timer1 Gate” for more information. This feature is useful for timing the duration or interval of an analog event. It is recommended that the comparator output be synchronized to Timer1. This ensures that Timer1 does not increment while a change in the comparator is occurring. 18.4.1 COMPARATOR OUTPUT SYNCHRONIZATION The output from a comparator can be synchronized with Timer1 by setting the CxSYNC bit of the CMxCON0 register. Once enabled, the comparator output is latched on the falling edge of the Timer1 source clock. This allows the timer/counter to synchronize with the CxOUT bit so that the software sees no ambiguity due to timing. See the Comparator Block Diagram (Figure 18-2) and the Timer1 Block Diagram (Figure 27-1) for more information.  2015-2019 Microchip Technology Inc. DS40001799F-page 167 PIC16(L)F18313/18323 18.5 Comparator Interrupt An interrupt can be generated when either the rising edge or falling edge detector detects a change in the output value of each comparator. When either edge detector is triggered and its associated enable bit is set (CxINTP and/or CxINTN bits of the CMxCON1 register), the Corresponding Interrupt Flag bit (CxIF bit of the PIR2 register) will be set. To enable the interrupt, you must set the following bits: • CxON bit of the CMxCON0 register • CxIE bit of the PIE2 register • CxINTP bit of the CMxCON1 register (for a rising edge detection) • CxINTN bit of the CMxCON1 register (for a falling edge detection) • PEIE and GIE bits of the INTCON register The associated interrupt flag bit, CxIF bit of the PIR2 register, must be cleared in software. If another edge is detected while this flag is being cleared, the flag will still be set at the end of the sequence. Note: 18.6 Although a comparator is disabled, an interrupt can be generated by changing the output polarity with the CxPOL bit of the CMxCON0 register, or by switching the comparator on or off with the CxON bit of the CMxCON0 register. 18.7 Comparator Negative Input Selection The CxNCH CxVN 0 = CxVP < CxVN bit 5 Unimplemented: Read as ‘0’ bit 4 CxPOL: Comparator Output Polarity Select bit 1 = Comparator output is inverted 0 = Comparator output is not inverted bit 3 Unimplemented: Read as ‘0’ bit 2 CxSP: Comparator Speed/Power Select bit 1 = Comparator operates in Normal-Power, High-Speed mode 0 = Reserved. (do not use) bit 1 CxHYS: Comparator Hysteresis Enable bit 1 = Comparator hysteresis enabled 0 = Comparator hysteresis disabled bit 0 CxSYNC: Comparator Output Synchronous Mode bit 1 = Comparator output to Timer1 and I/O pin is synchronous to changes on Timer1 clock source. Output updated on the falling edge of Timer1 clock source. 0 = Comparator output to Timer1 and I/O pin is asynchronous  2015-2019 Microchip Technology Inc. DS40001799F-page 171 PIC16(L)F18313/18323 REGISTER 18-2: CMxCON1: COMPARATOR Cx CONTROL REGISTER 1 R/W-0/0 R/W-0/0 CxINTP CxINTN R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 CxPCH 16 MHz D002 VDD 2.3 2.5 — — 5.5 5.5 V V FOSC  16 MHz: FOSC > 16 MHz RAM Data Retention(1) D003 VDR 1.5 — — V Device in Sleep mode D003 VDR 1.7 — — V Device in Sleep mode Power-on Reset Release Voltage(2) D004 VPOR — 1.6 — V BOR and LPBOR disabled(3) D004 VPOR — 1.6 — V BOR and LPBOR disabled(3) Power-on Reset ReARM Voltage(2) D005 VPORR — 0.8 — V BOR and LPBOR disabled(3) D005 VPORR — 1.5 — V BOR and LPBOR disabled(3) VDD Rise Rate to ensure Internal Power-on Reset Signal(2) D006 SVDD 0.05 — — V/ms BOR and LPBOR disabled(3) D006 SVDD 0.05 — — V/ms BOR and LPBOR disabled(3) † Data in “Typ.” column is at 3.0V, 25°C unless otherwise stated. These parameters are for design guidance only and are not tested. Note 1: This is the limit to which VDD can be lowered in Sleep mode or during a device Reset, without losing RAM data. 2: See Figure 35-3. 3: Please see Table 35-11 for BOR and LPBOR trip point information.  2015-2019 Microchip Technology Inc. DS40001799F-page 393 PIC16(L)F18313/18323 FIGURE 35-3: POR AND POR REARM WITH SLOW RISING VDD VDD VPOR VPORR SVDD VSS NPOR(1) POR REARM VSS TVLOW(2) Note 1: 2: 3: TPOR(3) When NPOR is low, the device is held in Reset. TPOR 1 s typical. TVLOW 2.7 s typical.  2015-2019 Microchip Technology Inc. DS40001799F-page 394 PIC16(L)F18313/18323 TABLE 35-2: SUPPLY CURRENT (IDD)(1,2) PIC16LF18313/18323 Standard Operating Conditions (unless otherwise stated) PIC16F18313/18323 Param. No. Symbol Standard Operating Conditions (unless otherwise stated) Device Characteristics Min. Typ.† Max. Units Conditions VDD D100 IDDXT4 XT = 4 MHz — 292 390 uA 3.0V D100 IDDXT4 XT = 4 MHz — 302 410 uA 3.0V D101 IDDHFO16 HFINTOSC = 16 MHz — 1.2 1.5 mA 3.0V D101 IDDHFO16 HFINTOSC = 16 MHz — 1.3 1.6 mA 3.0V D102 IDDHFOPLL HFINTOSC = 32 MHz — 2.0 2.6 mA 3.0V D102 IDDHFOPLL HFINTOSC = 32 MHz — 2.1 2.6 mA 3.0V D103 IDDHSPLL32 HS+PLL = 32 MHz — 2.0 2.4 mA 3.0V D103 IDDHSPLL32 HS+PLL = 32 MHz — 2.1 2.5 mA 3.0V D104 IDDIDLE Idle Mode, HFINTOSC = 16 MHz — 733 1100 uA 3.0V D104 IDDIDLE Idle Mode, HFINTOSC = 16 MHz — 743 1100 uA 3.0V D105 IDDDOZE(3) DOZE mode, HFINTOSC = 16 MHz, DOZE Ratio = 16 — 786 — uA 3.0V D105 IDDDOZE(3) DOZE mode, HFINTOSC = 16 MHz, DOZE Ratio = 16 — 796 — uA 3.0V Note † Data in “Typ.” column is at 3.0V, 25°C unless otherwise stated. These parameters are for design guidance only and are not tested. Note 1: The test conditions for all IDD measurements in active operation mode are: OSC1 = external square wave, from rail-to-rail; all I/O pins tri-stated, pulled to VDD; MCLR = VDD; WDT disabled. 2: The supply current is mainly a function of the operating voltage and frequency. Other factors, such as I/O pin loading and switching rate, oscillator type, internal code execution pattern and temperature, also have an impact on the current consumption. 3: IDDDOZE = [IDDIDLE*(N-1)/N] + IDDHFO16/N where N = DOZE Ratio (see Register 9-2).  2015-2019 Microchip Technology Inc. DS40001799F-page 395 PIC16(L)F18313/18323 TABLE 35-3: POWER-DOWN CURRENTS (IPD)(1,2,3) PIC16LF18313/18323 Standard Operating Conditions (unless otherwise stated) PIC16F18313/18323 Standard Operating Conditions (unless otherwise stated) VREGPM = 1 Param. No. Symbol Device Characteristics Conditions Max. Max. Units +85°C +125°C VDD Note Min. Typ.† 0.03 2 5.2 A 3.0V D200 IPD IPD Base — D200 IPD IPD Base — 0.3 2.4 5.6 A 3.0V — 12.8 22 27 A 3.0V VREGPM = 0 D201 IPD_WDT Low-Frequency Internal Oscillator/WDT — 0.4 2.9 6 A 3.0V D201 IPD_WDT Low-Frequency Internal Oscillator/WDT — 0.5 3.3 6.6 A 3.0V D202 IPD_SOSC Secondary Oscillator (SOSC) — 1.3 2.8 6 A 3.0V D202 IPD_SOSC Secondary Oscillator (SOSC) — 1.5 3.2 6.4 A 3.0V D203 IPD_FVR FVR — 45 74 76 A 3.0V D203 IPD_FVR FVR — 40 70 75 A 3.0V D204 IPD_BOR Brown-out Reset (BOR) — 10.6 16 19 A 3.0V D204 IPD_BOR Brown-out Reset (BOR) — 10.5 16.4 19.4 A 3.0V D205 IPD_LPBOR Low Power Brown-out Reset (LPBOR) — 0.3 2.5 5.5 A 3.0V D207 IPD_ADCA ADC - Non-converting — 0.3 2 5.2 A 3.0V ADC not converting(4) D207 IPD_ADCA ADC - Non-converting — 0.3 2.4 5.6 A 3.0V ADC not converting(4) D208 IPD_CMP Comparator — 30 45 50 A 3.0V D208 IPD_CMP Comparator — 30 44 49 A 3.0V * These parameters are characterized but not tested. † Data in “Typ.” column is at 3.0V, 25°C unless otherwise stated. These parameters are for design guidance only and are not tested. Note 1: The peripheral current is the sum of the base IPD and the additional current consumed when this peripheral is enabled. The peripheral  current can be determined by subtracting the base IDD or IPD current from this limit. Max values should be used when calculating total current consumption. 2: The power-down current in Sleep mode does not depend on the oscillator type. Power-down current is measured with the part in Sleep mode, with all I/O pins in high-impedance state and tied to VSS. 3: All peripheral currents listed are on a per-peripheral basis if more than one instance of a peripheral is available. 4: ADC clock source is ADCRC.  2015-2019 Microchip Technology Inc. DS40001799F-page 396 PIC16(L)F18313/18323 TABLE 35-4: I/O PORTS DC CHARACTERISTICS Param. Sym. No. VIL Standard Operating Conditions (unless otherwise stated) Characteristic Min. Typ.† Max. Units Conditions — — 0.8 V 4.5V  VDD  5.5V — — 0.15 VDD V 1.8V  VDD  4.5V — — 0.2 VDD V 2.0V  VDD  5.5V — — 0.3 VDD V Input Low Voltage I/O PORT: D300 with TTL buffer D301 D302 with Schmitt Trigger buffer I2C levels D303 with D304 with SMBus levels — — 0.8 V D305 MCLR — — 0.2 VDD V 2.0 — — V 4.5V  VDD 5.5V 0.25 VDD + 0.8 — — V 1.8V  VDD  4.5V 0.8 VDD — — V 2.0V  VDD  5.5V 0.7 VDD — — V 2.1 — — V 0.7 VDD — — V — ±5 ± 125 nA VSS  VPIN  VDD, Pin at high-impedance, 85°C — ±5 ± 1000 nA VSS  VPIN  VDD, Pin at high-impedance, 125°C — ± 50 ± 200 nA VSS  VPIN  VDD, Pin at high-impedance, 85°C 25 120 200 A VDD = 3.0V, VPIN = VSS — — 0.6 V IOL = 10.0 mA, VDD = 3.0V VDD - 0.7 — — V IOH = 6.0 mA, VDD = 3.0V — 5 50 pF VIH 2.7V  VDD  5.5V Input High Voltage I/O PORT: D320 with TTL buffer D321 D322 with Schmitt Trigger buffer I2C D323 with D324 with SMBus levels D325 MCLR IIL D340 levels Input Leakage Current(2) I/O Ports D341 MCLR(2) D342 IPUR Weak Pull-up Current VOL Voltage(4) D350 D360 I/O ports VOH D370 D380 Output Low Output High Voltage(4) I/O ports CIO 2.7V  VDD  5.5V All I/O pins * These parameters are characterized but not tested. † Data in “Typ.” column is at 3.0V, 25°C unless otherwise stated. These parameters are for design guidance only and are not tested. Note 1: Negative current is defined as current sourced by the pin. 2: The leakage current on the MCLR pin is strongly dependent on the applied voltage level. The specified levels represent normal operating conditions. Higher leakage current may be measured at different input voltages.  2015-2019 Microchip Technology Inc. DS40001799F-page 397 PIC16(L)F18313/18323 TABLE 35-5: MEMORY SPECIFICATIONS Standard Operating Conditions (unless otherwise stated) Param. No. Sym. Characteristic Min. Typ.† Max. Units — 9 V Note 2 — — — uA Note 2 High Voltage Entry Programming Mode Specifications Voltage on MCLR/VPP pin to MEM01 VIHH 7.9 enter Programming mode MEM02 IPPGM Current on MCLR/VPP pin during Programming mode Conditions Programming Mode Specifications MEM10 VBE VDD for Bulk Erase — 2.7 — V MEM11 Supply Current during Programming Operation — — 5 mA IDDPGM Data EEPROM Memory Specifications MEM20 ED DataEE Byte Endurance 100k — — E/W -40°C  TA 85°C MEM21 TD_RET Characteristic Retention — 40 — Year MEM22 ND_REF Total Erase/Write Cycles before Refresh — — 100k E/W MEM23 VD_RW VDD for Read or Erase/Write Operation VDDMIN — VDDMAX V — 4.0 5.0 ms 10k — — E/W -40°C  Ta  85°C (Note 1) Provided no other specifications are violated MEM24 TD_BEW Byte Erase and Write Cycle Time Provided no other specifications are violated Program Flash Memory Specifications MEM30 EP Flash Memory Cell Endurance MEM32 TP_RET Characteristic Retention — 40 — Year MEM33 VP_RD VDD for Read Operation VDDMIN — VDDMAX V VDDMIN — VDDMAX V — 2.0 2.5 ms VDD for Row Erase or Write MEM34 VP_REW Operation MEM35 TP_REW Self-Timed Row Erase or Self-Timed Write † Data in “Typ.” column is at 3.0V, 25°C unless otherwise stated. These parameters are for design guidance only and are not tested. Note 1: Flash Memory Cell Endurance for the Flash memory is defined as: One Row Erase operation and one Self-Timed Write. 2: Required only if CONFIG3.LVP is disabled.  2015-2019 Microchip Technology Inc. DS40001799F-page 398 PIC16(L)F18313/18323 TABLE 35-6: THERMAL CHARACTERISTICS Standard Operating Conditions (unless otherwise stated) Param. No. TH01 TH02 Sym. JA JC Characteristic Thermal Resistance Junction-to-Ambient Thermal Resistance Junction-to-Case TH03 TJMAX Maximum Junction Temperature TH04 PD Power Dissipation TH05 Typ. Units Conditions 46.2 C/W 8-pin PDIP package 112.4 C/W 8-pin SOIC package 52.2 C/W 8-pin UDFN package 70.0 C/W 14-pin PDIP package 95.3 C/W 14-pin SOIC package 100.0 C/W 14-pin TSSOP package 51.5 C/W 16-pin UQFN 4x4mm package 62.2 C/W 20-pin PDIP package 87.3 C/W 20-pin SSOP package 77.7 C/W 20-pin SOIC package 43.0 C/W 20-pin UQFN 4x4mm package 33.3 C/W 8-pin PDIP package 50.0 C/W 8-pin SOIC package 4.0 C/W 8-pin UDFN package 32.75 C/W 14-pin PDIP package 31.0 C/W 14-pin SOIC package 24.4 C/W 14-pin TSSOP package 5.4 C/W 16-pin UQFN 4x4mm package 27.5 C/W 20-pin PDIP package 31.1 C/W 20-pin SSOP package 23.1 C/W 20-pin SOIC package 5.3 C/W 20-pin UQFN 4x4mm package 150 C 0.800 W PD = PINTERNAL + PI/O PINTERNAL Internal Power Dissipation — W PINTERNAL = IDD x VDD(1) TH06 PI/O I/O Power Dissipation — W PI/O =  (IOL * VOL) +  (IOH * (VDD - VOH)) TH07 PDER Derated Power — W PDER = PDMAX (TJ - TA)/JA(2) Note 1: IDD is current to run the chip alone without driving any load on the output pins. 2: TA = Ambient Temperature, TJ = Junction Temperature  2015-2019 Microchip Technology Inc. DS40001799F-page 399 PIC16(L)F18313/18323 35.4 AC Characteristics FIGURE 35-4: LOAD CONDITIONS Load Condition Pin CL VSS Note: CL = 50 pF for all pins FIGURE 35-5: CLOCK TIMING Q4 Q1 Q2 Q3 Q4 Q1 CLKIN OS1 OS2 OS2 OS20 CLKOUT (CLKOUT Mode) Note: See Table 35-10.  2015-2019 Microchip Technology Inc. DS40001799F-page 400 PIC16(L)F18313/18323 TABLE 35-7: EXTERNAL CLOCK/OSCILLATOR TIMING REQUIREMENTS Standard Operating Conditions (unless otherwise stated) Param. No. Sym. Characteristic Min. Typ.† Max. Units Conditions ECL Oscillator OS1 FECL Clock Frequency — — 500 kHz OS2 TECL_DC Clock Duty Cycle 40 — 60 % ECM Oscillator OS3 FECM Clock Frequency — — 8 MHz OS4 TECM_DC Clock Duty Cycle 40 — 60 % Note 4 ECH Oscillator OS5 FECH Clock Frequency — — 32 MHz OS6 TECH_DC Clock Duty Cycle 40 — 60 % Clock Frequency — — 100 kHz Note 4 Clock Frequency — — 4 MHz Note 4 Clock Frequency — — 20 MHz Note 4 — — 32 MHz Note 2, Note 3 — FOSC/4 — MHz 125 1/FCY — ns LP Oscillator OS7 FLP XT Oscillator OS8 FXT HS Oscillator OS9 FHS System Clock OS20 FOSC System Clock Frequency OS21 FCY Instruction Frequency OS22 TCY Instruction Period * † Note 1: 2: 3: 4: These parameters are characterized but not tested. Data in “Typ.” column is at 3.0V, 25°C unless otherwise stated. These parameters are for design guidance only and are not tested. Instruction cycle period (TCY) equals four times the input oscillator time base period. All specified values are based on characterization data for that particular oscillator type under standard operating conditions with the device executing code. Exceeding these specified limits may result in an unstable oscillator operation and/or higher than expected current consumption. All devices are tested to operate at “min” values with an external clock applied to OSC1 pin. When an external clock input is used, the “max” cycle time limit is “DC” (no clock) for all devices. The system clock frequency (FOSC) is selected by the “main clock switch controls” as described in Section 7.3 “Clock Switching”. The system clock frequency (FOSC) must meet the voltage requirements defined in the Section 35.2 “Standard Operating Conditions”. LP, XT and HS oscillator modes require an appropriate crystal or resonator to be connected to the device. For clocking the device with an external square wave, one of the EC mode selections must be used.  2015-2019 Microchip Technology Inc. DS40001799F-page 401 PIC16(L)F18313/18323 TABLE 35-8: INTERNAL OSCILLATOR PARAMETERS(1) Standard Operating Conditions (unless otherwise stated) Param. No. Sym. Characteristic Min. Typ.† Max. Units Conditions OS20 FHFOSC Precision Calibrated HFINTOSC Frequency — 4 8 12 16 32 — MHz -40°C to +125°C (2) OS21 FHFOSCLP Low-Power Optimized HFINTOSC Frequency 0.93 1.86 0.88 1.76 1 2 1 2 1.07 2.14 1.12 2.24 MHz -40°C to +85°C -40°C to +85°C -40°C to +125°C -40°C to +125°C OS23 FLFOSC Internal LFINTOSC Frequency — 31 — kHz OS24 THFOSCST HFINTOSC Wake-up from Sleep Start-up Time — 11 50 20 — s s OS26 TLFOSCST LFINTOSC Wake-up from Sleep Start-up Time — 0.2 — ms VREGPM = 0 VREGPM = 1 * † These parameters are characterized but not tested. Data in “Typ.” column is at 3.0V, 25°C unless otherwise stated. These parameters are for design guidance only and are not tested. Note 1: To ensure these oscillator frequency tolerances, VDD and VSS must be capacitively decoupled as close to the device as possible. 0.1 F and 0.01 F values in parallel are recommended. 2: See Figure 35-6. FIGURE 35-6: PRECISION CALIBRATED HFINTOSC FREQUENCY ACCURACY OVER DEVICE VDD AND TEMPERATURE 125 ± 5% Temperature (°C) 85 ± 3% 60 ± 2% 0 ± 5% -40 1.8 2.0 2.3 3.0 3.5 4.0 4.5 5.0 5.5 VDD (V)  2015-2019 Microchip Technology Inc. DS40001799F-page 402 PIC16(L)F18313/18323 TABLE 35-9: PLL CLOCK TIMING SPECIFICATIONS Standard Operating Conditions (unless otherwise stated) Param. No. Sym. Characteristic PLL Input Frequency Range Min. Typ.† Max. Units 4 — 8 MHz PLL01 FPLLIN PLL02 FPLLOUT PLL Output Frequency Range 16 — 32 MHz PLL03 TPLLST PLL Lock Time from Start-up — 200 — s PLL04 FPLLJIT PLL Output Frequency Stability (Jitter) -0.25 — 0.25 % Conditions * These parameters are characterized but not tested. † Data in “Typ.” column is at 5V, 25C unless otherwise stated. These parameters are for design guidance only and are not tested. FIGURE 35-7: Cycle CLKOUT AND I/O TIMING Write Fetch Q1 Q4 Read Execute Q2 Q3 FOSC IO2 IO1 IO10 IO12 CLKOUT IO8 IO4 IO7 IO5 I/O pin (Input) IO3 I/O pin (Output) New Value Old Value IO7, IO8  2015-2019 Microchip Technology Inc. DS40001799F-page 403 PIC16(L)F18313/18323 TABLE 35-10: CLKOUT AND I/O TIMING SPECIFICATIONS Standard Operating Conditions (unless otherwise stated) Param. No. Sym. Characteristic Min. Typ.† Max. Units Conditions IO1 TCLKOUTH CLKOUT rising edge delay (rising edge FOSC (Q1 cycle) to falling edge CLKOUT — — 70 ns IO2 TCLKOUTL CLKOUT falling edge delay (rising edge FOSC (Q3 cycle) to rising edge CLKOUT — — 72 ns IO3 TIO_VALID Port output valid time (rising edge FOSC (Q1 cycle) to port valid) — 50 70 ns IO4 TIO_SETUP Port input setup time (Setup time before rising edge FOSC - Q2 cycle) 20 — — ns IO5 TIO_HOLD Port input hold time (Hold time after rising edge FOSC - Q2 cycle) 50 — — ns IO6 TIOR_SLREN Port I/O rise time, slew rate enabled — 25 — ns VDD = 3.0V IO7 TIOR_SLRDIS Port I/O rise time, slew rate disabled — 5 — ns VDD = 3.0V IO8 TIOF_SLREN Port I/O fall time, slew rate enabled — 25 — ns VDD = 3.0V IO9 TIOF_SLRDIS Port I/O fall time, slew rate disabled — 5 — ns VDD = 3.0V IO10 TINT INT pin high or low time to trigger an interrupt 25 — — ns IO11 TIOC Interrupt-on-Change minimum 25 high or low time to trigger interrupt — — ns * † These parameters are characterized but not tested. Data in “Typ.” column is at 3.0V, 25C unless otherwise stated.  2015-2019 Microchip Technology Inc. DS40001799F-page 404 PIC16(L)F18313/18323 FIGURE 35-8: RESET, WATCHDOG TIMER, OSCILLATOR START-UP TIMER AND POWER-UP TIMER TIMING VDD MCLR RST01 Internal POR RST04 PWRT Time-out RST05 OSC Start-up Time Internal Reset(1) Watchdog Timer Reset(1) RST03 RST02 RST02 I/O pins Note 1: Asserted low. FIGURE 35-9: BROWN-OUT RESET TIMING AND CHARACTERISTICS VDD VBOR and VHYST VBOR (Device not in Brown-out Reset) (Device in Brown-out Reset) 37 Reset (due to BOR) 33(1) Note 1: 64 ms delay only if PWRTE bit in the Configuration Word register is programmed to ‘0’. 2 ms delay if PWRTE = 0.  2015-2019 Microchip Technology Inc. DS40001799F-page 405 PIC16(L)F18313/18323 TABLE 35-11: RESET, WATCHDOG TIMER, OSCILLATOR START-UP TIMER, POWER-UP TIMER, BROWN-OUT RESET AND LOW POWER BROWN-OUT RESET SPECIFICATIONS Standard Operating Conditions (unless otherwise stated) Param. No. Sym. Characteristic Min. Typ.† Max. Units RST01 TMCLR MCLR Pulse Width Low to ensure Reset 2 — — s RST02 TIOZ I/O high-impedance from Reset detection — — 2 s RST03 TWDT Watchdog Timer Time-out Period 10 16 27 ms RST04* TPWRT Power-up Timer Period 40 65 140 ms RST05 TOST Oscillator Start-up Timer Period(1,2) — 1024 — RST06 VBOR Brown-out Reset Voltage(4) 2.55 2.30 1.80 2.70 2.45 1.90 2.85 2.60 2.10 V V V RST07 VBORHYS Brown-out Reset Hysteresis 0 25 75 mV RST08 TBORDC Brown-out Reset Response Time 1 3 35 s RST09 VLPBOR Low-Power Brown-out Reset Voltage 1.8 2.1 2.5 V * † Note 1: 2: 3: 4: Conditions 16 ms Nominal Reset Time TOSC (Note3) BORV = 0 BORV = 1 (PIC16F18313/18323) BORV = 1 (PIC16LF18313/18323) PIC16LF18313/18323 These parameters are characterized but not tested. Data in “Typ.” column is at 3.0V, 25°C unless otherwise stated. These parameters are for design guidance only and are not tested. Instruction cycle period (TCY) equals four times the input oscillator time base period. All specified values are based on characterization data for that particular oscillator type under standard operating conditions with the device executing code. Exceeding these specified limits may result in an unstable oscillator operation and/or higher than expected current consumption. All devices are tested to operate at “min” values with an external clock applied to the OSC1 pin. When an external clock input is used, the “max” cycle time limit is “DC” (no clock) for all devices. By design. Period of the slower clock. To ensure these voltage tolerances, VDD and VSS must be capacitively decoupled as close to the device as possible. 0.1 F and 0.01 F values in parallel are recommended.  2015-2019 Microchip Technology Inc. DS40001799F-page 406 PIC16(L)F18313/18323 TABLE 35-12: ANALOG-TO-DIGITAL CONVERTER (ADC) CHARACTERISTICS(1,2) Standard Operating Conditions (unless otherwise stated) VDD = 3.0V, TA = 25°C Param. No. Sym. Characteristic Min. Typ.† Max. Units Conditions AD01 NR Resolution — — 10 bit AD02 EIL Integral Error — ±0.1 ±1.0 LSb ADCREF+ = 3.0V, ADCREF- = 0V AD03 EDL Differential Error — ±0.1 ±1.0 LSb ADCREF+ = 3.0V, ADCREF- = 0V AD04 EOFF Offset Error — 0.5 ±2.0 LSb ADCREF+ = 3.0V, ADCREF- = 0V AD05 EGN Gain Error — ±0.2 ±2.0 LSb ADCREF+ = 3.0V, ADCREF- = 0V AD06 VADREF ADC Reference Voltage (ADREF+) 1.8 — VDD V AD07 VAIN Full-Scale Range VSS — ADREF+ V AD08 ZAIN Recommended Impedance of Analog Voltage Source — 10 — k AD09 RVREF ADC Voltage Reference Ladder Impedance — 50 — k * † These parameters are characterized but not tested. Data in “Typ.” column is at 3.0V, 25°C unless otherwise stated. These parameters are for design guidance only and are not tested. Note 1: Total Absolute Error is the sum of the offset, gain and integral non-linearity (INL) errors. 2: The ADC conversion result never decreases with an increase in the input and has no missing codes.  2015-2019 Microchip Technology Inc. DS40001799F-page 407 PIC16(L)F18313/18323 TABLE 35-13: ANALOG-TO DIGITAL CONVERTER (ADC) CONVERSION TIMING SPECIFICATIONS(1,2) Standard Operating Conditions (unless otherwise stated) Param. No. AD20 Sym. TAD Characteristic ADC Clock Period AD21 Min. Typ.† Max. Units Conditions 1 — 9 us Using FOSC as the ADC clock source; ADCS ! = x11 1 2 6 us Using ADCRC as the ADC clock source; ADCS = x11 — 11 — TAD AD22 TCNV Conversion Time AD23 TACQ THCD Acquisition Time — 2 — us Sample and Hold Capacitor Disconnect Time 0.5 — — TAD FOSC based clock source 0.5 — — TAD ADCRC based clock source AD24 * † Set of GO/DONE bit to Clear of GO/DONE bit These parameters are characterized but not tested. Data in “Typ.” column is at 3.0V, 25°C unless otherwise stated. These parameters are for design guidance only and are not tested. FIGURE 35-10: ADC CONVERSION TIMING (ADC CLOCK FOSC-BASED) BSF ADCON0, GO AD133 1 TCY AD131 Q4 AD130 ADC_clk 9 ADC Data 8 7 6 3 OLD_DATA ADRES 1 0 NEW_DATA 1 TCY ADIF GO Sample 2 DONE AD132  2015-2019 Microchip Technology Inc. Sampling Stopped DS40001799F-page 408 PIC16(L)F18313/18323 FIGURE 35-11: ADC CONVERSION TIMING (ADC CLOCK FROM ADCRC) BSF ADCON0, GO AD133 1 TCY AD131 Q4 AD130 ADC_clk 9 ADC Data 8 7 6 OLD_DATA ADRES 3 2 1 0 NEW_DATA ADIF 1 TCY GO DONE Sample Note: AD132 Sampling Stopped If the ADC clock source is selected as ADCRC, a time of TCY is added before the ADC clock starts. This allows the SLEEP instruction to be executed.  2015-2019 Microchip Technology Inc. DS40001799F-page 409 PIC16(L)F18313/18323 TABLE 35-14: COMPARATOR SPECIFICATIONS Standard Operating Conditions (unless otherwise stated) VDD = 3.0V, TA = 25°C See Section 36.0 “DC and AC Characteristics Graphs and Charts” for operating characterization. Param No. CM01 Sym. VIOFF Characteristics Min. Typ. Max. Units — — ±50 mV Input Offset Voltage Comments VICM = VDD/2 CM02 VICM Input Common Mode Voltage GND — VDD V CM03 CMRR Common Mode Input Rejection Ratio — 50 — dB CM04 CHYST Comparator Hysteresis 15 25 35 mV CM05 TRESP(1) Response Time, Rising Edge — 300 600 ns Response Time, Falling Edge — 220 500 ns CM06* TMCV2VO(2) Mode Change to Valid Output — — 10 us * Note 1: These parameters are characterized but not tested. Response time measured with one comparator input at VDD/2, while the other input transitions from VSS to VDD. A mode change includes changing any of the control register values, including module enable. 2: TABLE 35-15: DIGITAL-TO-ANALOG CONVERTER (DAC) SPECIFICATIONS Standard Operating Conditions (unless otherwise stated) VDD = 3.0V, TA = 25°C Param No. Sym. Characteristics Min. Typ.† Max. Units DSB01 VLSB Step Size — VDD/32 — V DSB01 VACC Absolute Accuracy — —  0.5 LSb DSB03* RUNIT Unit Resistor Value — 6000 —  — — 10 s DSB04* TST Settling Time(1) Comments * † These parameters are characterized but not tested. Data in “Typ” column is at 3.0V, 25°C unless otherwise stated. These parameters are for design guidance only and are not tested. Note 1: Settling time measured while DACR[4:0] transitions from ‘00000’ to ‘01111’. TABLE 35-16: FIXED VOLTAGE REFERENCE (FVR) SPECIFICATIONS Standard Operating Conditions (unless otherwise stated) Param. No. Symbol Characteristic Min. Typ. Max. Units Conditions FVR01 VFVR1 1x Gain (1.024V nominal) -4 — 4 % VDD  2.5V, -40°C to 85°C FVR02 VFVR2 2x Gain (2.048V nominal) -4 — 4 % VDD  2.5V, -40°C to 85°C FVR03 VFVR4 4x Gain (4.096V nominal) -5 — 5 % VDD  4.75V, -40°C to 85°C FVR04 TFVRST FVR Start-up Time — 35 — s  2015-2019 Microchip Technology Inc. DS40001799F-page 410 PIC16(L)F18313/18323 FIGURE 35-12: TIMER0 AND TIMER1 EXTERNAL CLOCK TIMINGS T0CKI 40 41 42 T1CKI 45 46 49 47 TMR0 or TMR1 TABLE 35-17: TIMER0 AND TIMER1 EXTERNAL CLOCK REQUIREMENTS Standard Operating Conditions (unless otherwise stated) Param. No. 40* Sym. TT0H Characteristic T0CKI High Pulse Width Min. No Prescaler With Prescaler 41* TT0L T0CKI Low Pulse Width No Prescaler With Prescaler 42* TT0P T0CKI Period 45* TT1H T1CKI High Time Synchronous, No Prescaler 46* TT1L T1CKI Low Time Max. Units 0.5 TCY + 20 — — ns 10 — — ns 0.5 TCY + 20 — — ns 10 — — ns Greater of: 20 or TCY + 40 N — — ns 0.5 TCY + 20 — — ns Synchronous, with Prescaler 15 — — ns Asynchronous 30 — — ns Synchronous, No Prescaler 0.5 TCY + 20 — — ns Synchronous, with Prescaler 15 — — ns Asynchronous 30 — — ns Synchronous Greater of: 30 or TCY + 40 N — — ns 47* TT1P T1CKI Input Period 48 F T1 Secondary Oscillator Input Frequency Range (oscillator enabled by setting bit T1OSCEN) 49* TCKEZTMR1 Delay from External Clock Edge to Timer Increment Asynchronous * † Typ.† 60 — — ns 32.4 32.768 33.1 kHz 2 TOSC — 7 TOSC — Conditions N = prescale value N = prescale value Timers in Sync mode These parameters are characterized but not tested. Data in “Typ.” column is at 3.0V, 25°C unless otherwise stated. These parameters are for design guidance only and are not tested.  2015-2019 Microchip Technology Inc. DS40001799F-page 411 PIC16(L)F18313/18323 FIGURE 35-13: CAPTURE/COMPARE/PWM (CCP) TIMINGS CCPx (Capture mode) CC01 CC02 CC03 Note: Refer to Figure 35-4 for Load conditions. TABLE 35-18: CAPTURE/COMPARE/PWM (CCP) CHARACTERISTICS Standard Operating Conditions (unless otherwise stated) Param. Sym. No. Characteristic CC01* TccL CCPx Input Low Time No Prescaler CC02* TccH CCPx Input High Time CC03* TccP CCPx Input Period With Prescaler No Prescaler With Prescaler * † Min. Typ.† Max. Units 0.5TCY + 20 — — ns 20 — — ns 0.5TCY + 20 — — ns 20 — — ns 3TCY + 40 N — — ns Conditions N = prescale value These parameters are characterized but not tested. Data in “Typ.” column is at 3.0V, 25°C unless otherwise stated. These parameters are for design guidance only and are not tested.  2015-2019 Microchip Technology Inc. DS40001799F-page 412 PIC16(L)F18313/18323 FIGURE 35-14: CLC PROPAGATION TIMING CLCxINn CLC Input time CLCxINn CLC Input time LCx_in[n](1) LCx_in[n](1) CLC Module LCx_out(1) CLC Output time CLCx CLC Module LCx_out(1) CLC Output time CLCx CLC01 CLC02 CLC03 Note 1: See Figure 21-1, "CLCx Simplified Block Diagram" to identify specific CLC signals. TABLE 35-19: CONFIGURABLE LOGIC CELL (CLC) CHARACTERISTICS Standard Operating Conditions (unless otherwise stated) Param. No. Sym. Characteristic Min. Typ.† Max. Units Conditions CLC01* TCLCIN CLC input time — 7 OS17 ns (Note 1) CLC02* TCLC CLC module input to output progagation time — — 24 12 — — ns ns VDD = 1.8V VDD > 3.6V CLC03* TCLCOUT CLC output time — OS18 — — (Note 1) — OS19 — — (Note 1) — 32 FOSC MHz Rise Time Fall Time CLC04* FCLCMAX CLC maximum switching frequency * † These parameters are characterized but not tested. Data in “Typ.” column is at 3.0V, 25°C unless otherwise stated. These parameters are for design guidance only and are not tested. Note 1: See Table 35-10 for OS17, OS18 and OS19 rise and fall times.  2015-2019 Microchip Technology Inc. DS40001799F-page 413 PIC16(L)F18313/18323 FIGURE 35-15: EUSART SYNCHRONOUS TRANSMISSION (MASTER/SLAVE) TIMING CK US121 US121 DT US122 US120 Note: Refer to Figure 35-4 for Load conditions. TABLE 35-20: EUSART SYNCHRONOUS TRANSMISSION CHARACTERISTICS Standard Operating Conditions (unless otherwise stated) Param. No. Symbol Characteristic Min. Max. Units Conditions US120 TCKH2DTV SYNC XMIT (Master and Slave) Clock high to data-out valid — 80 ns 3.0V  VDD  5.5V — 100 ns 1.8V  VDD  5.5V US121 TCKRF Clock out rise time and fall time (Master mode) — 45 ns 3.0V  VDD  5.5V — 50 ns 1.8V  VDD  5.5V US122 TDTRF Data-out rise time and fall time — 45 ns 3.0V  VDD  5.5V — 50 ns 1.8V  VDD  5.5V FIGURE 35-16: EUSART SYNCHRONOUS RECEIVE (MASTER/SLAVE) TIMING CK US125 DT US126 Note: Refer to Figure 35-4 for Load conditions. TABLE 35-21: EUSART SYNCHRONOUS RECEIVE CHARACTERISTICS Standard Operating Conditions (unless otherwise stated) Param. No. Symbol Characteristic US125 TDTV2CKL SYNC RCV (Master and Slave) Data-setup before CK  (DT hold time) US126 TCKL2DTL Data-hold after CK  (DT hold time)  2015-2019 Microchip Technology Inc. Min. Max. Units 10 — ns 15 — ns Conditions DS40001799F-page 414 PIC16(L)F18313/18323 FIGURE 35-17: SPI MASTER MODE TIMING (CKE = 0, SMP = 0) SS SP81 SCK (CKP = 0) SP71 SP72 SP78 SP79 SP79 SP78 SCK (CKP = 1) SP80 bit 6 - - - - - -1 MSb SDO LSb SP75, SP76 SDI MSb In bit 6 - - - -1 LSb In SP74 SP73 Note: Refer to Figure 35-4 for Load conditions. FIGURE 35-18: SPI MASTER MODE TIMING (CKE = 1, SMP = 1) SS SP81 SCK (CKP = 0) SP71 SP72 SP79 SP73 SCK (CKP = 1) SP80 SDO MSb bit 6 - - - - - -1 SP78 LSb SP75, SP76 SDI MSb In bit 6 - - - -1 LSb In SP74 Note: Refer to Figure 35-4 for Load conditions.  2015-2019 Microchip Technology Inc. DS40001799F-page 415 PIC16(L)F18313/18323 FIGURE 35-19: SPI SLAVE MODE TIMING (CKE = 0) SS SP70 SCK (CKP = 0) SP83 SP71 SP72 SP78 SP79 SP79 SP78 SCK (CKP = 1) SP80 MSb SDO LSb bit 6 - - - - - -1 SP77 SP75, SP76 SDI MSb In bit 6 - - - -1 LSb In SP74 Note: SP73 Refer to Figure 35-4 for Load conditions. FIGURE 35-20: SS SPI SLAVE MODE TIMING (CKE = 1) SP82 SP70 SP83 SCK (CKP = 0) SP71 SP72 SCK (CKP = 1) SP80 SDO MSb bit 6 - - - - - -1 LSb SP77 SP75, SP76 SDI MSb In bit 6 - - - -1 LSb In SP74 Note: Refer to Figure 35-4 for Load conditions.  2015-2019 Microchip Technology Inc. DS40001799F-page 416 PIC16(L)F18313/18323 TABLE 35-22: SPI MODE CHARACTERISTICS Standard Operating Conditions (unless otherwise stated) Param. No. Symbol Characteristic Min. Typ.† Max. Units Conditions SP70* TSSL2SCH, TSSL2SCL SS to SCK or SCK input 2.25*TCY — — ns SP71* TSCH SCK input high time (Slave mode) TCY + 20 — — ns SP72* TSCL SCK input low time (Slave mode) TCY + 20 — — ns SP73* TDIV2SCH, TDIV2SCL Setup time of SDI data input to SCK edge 100 — — ns SP74* TSCH2DIL, TSCL2DIL Hold time of SDI data input to SCK edge 100 — — ns SP75* TDOR SDO data output rise time — 10 25 ns 3.0V  VDD  5.5V — 25 50 ns 1.8V  VDD  5.5V SP76* TDOF SDO data output fall time — 10 25 ns SP77* TSSH2DOZ SS to SDO output high-impedance 10 — 50 ns SP78* TSCR SCK output rise time (Master mode) — 10 25 ns 3.0V  VDD  5.5V — 25 50 ns 1.8V  VDD  5.5V SP79* TSCF SCK output fall time (Master mode) — 10 25 ns SP80* TSCH2DOV, TSCL2DOV SDO data output valid after SCK edge — — 50 ns 3.0V  VDD  5.5V 1.8V  VDD  5.5V SP81* TDOV2SCH, SDO data output setup to SCK TDOV2SCL edge SP82* TSSL2DOV SDO data output valid after SS edge SP83* TSCH2SSH, TSCL2SSH SS after SCK edge — — 145 ns 1 Tcy — — ns — — 50 ns 1.5 TCY + 40 — — ns * These parameters are characterized but not tested. † Data in “Typ.” column is at 3.0V, 25°C unless otherwise stated. These parameters are for design guidance only and are not tested.  2015-2019 Microchip Technology Inc. DS40001799F-page 417 PIC16(L)F18313/18323 FIGURE 35-21: I2C BUS START/STOP BITS TIMING SCL SP93 SP91 SP90 SP92 SDA Stop Condition Start Condition Note: Refer to Figure 35-4 for Load conditions. TABLE 35-23: I2C BUS START/STOP BITS CHARACTERISTICS Standard Operating Conditions (unless otherwise stated) Param. No. Symbol Characteristic Min. Start condition 100 kHz mode Setup time Start condition Typ. Max. Units SP90* TSU:STA SP91* THD:STA Hold time 400 kHz mode 600 — — SP92* TSU:STO Stop condition 100 kHz mode 4700 — — Setup time 400 kHz mode 600 — — SP93 THD:STO Stop condition 100 kHz mode 4000 — — 400 kHz mode 600 — — Hold time * 4700 — — 400 kHz mode 600 — — 100 kHz mode 4000 — — Conditions ns Only relevant for Repeated Start condition ns After this period, the first clock pulse is generated ns ns These parameters are characterized but not tested. FIGURE 35-22: I2C BUS DATA TIMING SP103 SCL SP100 SP90 SP102 SP101 SP106 SP107 SP91 SDA In SP92 SP110 SP109 SP109 SDA Out Note: Refer to Figure 35-4 for Load conditions.  2015-2019 Microchip Technology Inc. DS40001799F-page 418 PIC16(L)F18313/18323 TABLE 35-24: I2C BUS DATA CHARACTERISTICS Standard Operating Conditions (unless otherwise stated) Param. No. SP100* Symbol THIGH Characteristic Clock high time Min. Max. Units Conditions 100 kHz mode 4.0 — s Device must operate at a minimum of 1.5 MHz 400 kHz mode 0.6 — s Device must operate at a minimum of 10 MHz SSP module SP101* TLOW Clock low time 1.5TCY — 100 kHz mode 4.7 — s Device must operate at a minimum of 1.5 MHz 400 kHz mode 1.3 — s Device must operate at a minimum of 10 MHz SSP module SP102* SP103* SP106* SP107* TR TF THD:DAT TSU:DAT SP109* TAA SP110* TBUF 1.5TCY — SDA and SCL rise time 100 kHz mode — 1000 ns 400 kHz mode 20 + 0.1CB 300 ns SDA and SCL fall time 100 kHz mode — 250 ns 400 kHz mode 20 + 0.1CB 250 ns Data input hold time 100 kHz mode 0 — ns 400 kHz mode 0 0.9 s Data input setup time 100 kHz mode 250 — ns 400 kHz mode 100 — ns Output valid from clock 100 kHz mode — 3500 ns 400 kHz mode — — ns Bus free time 100 kHz mode 4.7 — s 400 kHz mode 1.3 — s — 400 pF Bus capacitive loading CB is specified to be from 10-400 pF CB is specified to be from 10-400 pF (Note 2) (Note 1) Time the bus must be free before a new transmission can start SP111 CB * Note 1: These parameters are characterized but not tested. As a transmitter, the device must provide this internal minimum delay time to bridge the undefined region (min. 300 ns) of the falling edge of SCL to avoid unintended generation of Start or Stop conditions. A Fast mode (400 kHz) I2C bus device can be used in a Standard mode (100 kHz) I2C bus system, but the requirement TSU:DAT 250 ns must then be met. This will automatically be the case if the device does not stretch the low period of the SCL signal. If such a device does stretch the low period of the SCL signal, it must output the next data bit to the SDA line TR max. + TSU:DAT = 1000 + 250 = 1250 ns (according to the Standard mode I2C bus specification), before the SCL line is released. 2:  2015-2019 Microchip Technology Inc. DS40001799F-page 419 PIC16(L)F18313/18323 36.0 DC AND AC CHARACTERISTICS GRAPHS AND CHARTS The graphs and tables provided in this section are for design guidance and are not tested. In some graphs or tables, the data presented are outside specified operating range (i.e., outside specified VDD range). This is for information only and devices are ensured to operate properly only within the specified range. Unless otherwise noted, all graphs apply to both the L and LF devices. Note: The graphs and tables provided following this note are a statistical summary based on a limited number of samples and are provided for informational purposes only. The performance characteristics listed herein are not tested or guaranteed. In some graphs or tables, the data presented may be outside the specified operating range (e.g., outside specified power supply range) and therefore, outside the warranted range. “Typical” represents the mean of the distribution at 25C. “Maximum”, “Max.”, “Minimum” or “Min.” represents (mean + 3) or (mean - 3) respectively, where  is a standard deviation, over each temperature range.  2015-2019 Microchip Technology Inc. DS40001799F-page 420 PIC16(L)F18313/18323 500 500 450 450 400 400 350 350 Typical IDD (µA) Max 300 IDD (µA) Max 250 Typical 300 250 200 200 150 150 100 100 Max: 85°C + 3ı Typical: 25°C 50 Max: 85°C + 3ı Typical: 25°C 50 0 0 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 2.0 2.5 3.0 3.5 VDD (V) 4.0 4.5 5.0 5.5 6.0 VDD (V) FIGURE 36-1: IDD, XT Oscillator, 4 MHz, PIC16LF18313/18323 Only FIGURE 36-2: IDD, XT Oscillator, 4 MHz, PIC16F18313/18323 Only 3.0 3.0 2.5 2.5 Max Max 2.0 2.0 IDD (mA) IDD (mA) Typical Typical 1.5 1.0 1.5 1.0 Max: 85°C + 3ı Typical: 25°C 0.5 Max: 85°C + 3ı Typical: 25°C 0.5 0.0 0.0 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 2.0 2.5 3.0 3.5 VDD (V) 4.0 4.5 5.0 5.5 6.0 VDD (V) FIGURE 36-3: IDD, HS Oscillator, 32 MHz, PIC16LF18313/18323 Only FIGURE 36-4: IDD, HS Oscillator, 32 MHz, PIC16F18313/18323 Only 3.0 3.0 Max Max 2.5 2.5 2.0 2.0 Typical IDD (mA) IDD (mA) Typical 1.5 1.5 1.0 1.0 Max: 85°C + 3ı Typical: 25°C Max: 85°C + 3ı Typical: 25°C 0.5 0.5 0.0 0.0 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 VDD (V) FIGURE 36-5: IDD, HFINTOSC Mode, FOSC = 32 MHz, PIC16LF18313/18323 Only DS40001799F-page 421 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 VDD (V) FIGURE 36-6: IDD, HFINTOSC Mode, FOSC = 32 MHz, PIC16F18313/18323 Only  2015-2019 Microchip Technology Inc. PIC16(L)F18313/18323 1.8 1.8 1.6 1.6 Max Max 1.4 1.4 1.2 Typical Typical 1.0 IDD (mA) IDD (mA) 1.2 0.8 0.6 1.0 0.8 0.6 0.4 Max: 85°C + 3ı Typical: 25°C 0.4 0.2 Max: 85°C + 3ı Typical: 25°C 0.2 0.0 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 0.0 3.8 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 VDD (V) FIGURE 36-7: IDD, HFINTOSC Mode, FOSC = 16 MHz, PIC16LF18313/18323 Only FIGURE 36-8: IDD, HFINTOSC Mode, FOSC = 16 MHz, PIC16F18313/18323 Only 1,200 1,200 1,000 1,000 Max Max 600 800 IDD (µA) IDD (µA) 800 Typical Typical 600 400 400 Max: 85°C + 3ı Typical: 25°C Max: 85°C + 3ı Typical: 25°C 200 200 0 0 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 2.0 3.8 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 VDD (V) VDD (V) FIGURE 36-9: IDD, HFINTOSC Idle Mode, FOSC = 16 MHz, PIC16LF18313/18323 Only FIGURE 36-10: IDD, HFINTOSC Idle Mode, FOSC = 16 MHz, PIC16F18313/18323 Only 1,200 1,200 1,000 1,000 Max Max 800 Typical 600 IDD (µA) IDD (µA) 800 Typical 400 600 400 Max: 85°C + 3ı Typical: 25°C Max: 85°C + 3ı Typical: 25°C 200 200 0 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 VDD (V) FIGURE 36-11: IDD, HFINTOSC DOZE Mode, FOSC = 16 MHz, PIC16LF18313/18323 Only  2015-2019 Microchip Technology Inc. 3.4 3.6 3.8 0 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 VDD (V) FIGURE 36-12: IDD, HFINTOSC DOZE Mode, FOSC = 16 MHz, PIC16F18313/18323 Only DS40001799F-page 422 PIC16(L)F18313/18323 1.0 Max: 85°C + 3ı Typical: 25°C 0.9 0.8 IPD (µA) A) 0.7 0.6 Max. 0.5 0.4 Typical 0.3 0.2 0.1 0.0 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 3.6 3.8 VDD (V) FIGURE 36-13: IPD BASE, Low-Power Sleep Mode, PIC16LF18313/18323 Only FIGURE 36-14: IPD, Watchdog Timer (WDT), PIC16LF18313/18323 Only 60 1.2 Max: 85°C + 3 M 3ı Typical: 25°C 55 1.0 Max. 50 45 Typical IPD (µA) A) IPD (µA) µA) 0.8 0.6 Max. 40 Typical 35 0.4 30 Max: 85°C + 3ı Typical: 25°C 0.2 25 0.0 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 20 6.0 1.6 1.8 2.0 2.2 2.4 VDD (V) 2.6 2.8 3.0 3.2 3.4 VDD (V) FIGURE 36-15: IPD, Watchdog Timer (WDT), PIC16F18313/18323 Only FIGURE 36-16: IPD, Fixed Voltage Reference (FVR), PIC16LF18313/18323 Only 14 60 Max: 85°C + 3ı Typical: 25°C 55 13 50 Max. IPD D (µA) IPD (µA) µA) 12 Max. 45 40 11 Typical 35 10 Typical 30 Max: 85°C + 3ı Typical: 25°C 25 9 20 8 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD (V) FIGURE 36-17: IPD, Fixed Voltage Reference (FVR), PIC16F18313/18323 Only DS40001799F-page 423 6.0 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 VDD (V) FIGURE 36-18: IPD, Brown-out Reset (BOR), BORV = 1, PIC16LF18313/18323 Only  2015-2019 Microchip Technology Inc. PIC16(L)F18313/18323 0.5 16 Max: 85°C + 3ı Typical: 25°C 14 0.4 Max. Max. 12 IPD (µA) µA) IPD (µA) A) 0.3 Typical 10 0.2 8 Typical Max: 85 85°C C + 3ı Typical: 25°C 0.1 6 0 4 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 1.6 6.0 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 VDD (V) VDD (V) FIGURE 36-19: IPD, Brown-out Reset (BOR), BORV = 1, PIC16F18313/18323 Only FIGURE 36-20: IPD, Low-Power Brown-out Reset (LPBOR = 0), PIC16LF18313/18323 Only 40 0.8 38 0.7 Max. Max. 36 0.6 34 IPD (µA) µA) IPD (µA) µA) 0.5 Typical 0.4 32 Typical 30 28 0.3 26 Max: 85 85°C C + 3ı Typical: 25°C 0.2 24 0.1 01 Max: 85°C + 3ı Typical: 25°C 22 20 0.0 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 1.6 6.0 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 VDD (V) VDD (V) FIGURE 36-21: IPD, Low-Power Brown-out Reset (LPBOR = 0), PIC16F18313/18323 Only FIGURE 36-22: IPD, Comparator, PIC16LF18313/18323 Only 30 40 Max Max. Max: 85°C + 3ı Typical: 25°C 35 25 Max. 30 Typical 20 IPD (µA) µA) IPD (µA) µA) 25 20 15 Typical 15 10 10 5 Max: 85°C + 3ı Typical: 25°C 5 0 0 2.0 2.5 3.0 3.5 4.0 4.5 5.0 VDD (V) FIGURE 36-23: IPD, Comparator, PIC16F18313/18323 Only  2015-2019 Microchip Technology Inc. 5.5 6.0 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 VDD (V) FIGURE 36-24: IPD BASE, 01, PIC16F18313/18323 Only DS40001799F-page 424 PIC16(L)F18313/18323 1 0.8 2.0% 0.7 1.0% 0.6 Max. 0.5 0.4 Max. 0.0% Error (%) IPD (µA) µA) 3.0% Max: 85°C + 3ı Typical: 25°C 0.9 Typical Typical -1.0% -2.0% Min. 0.3 -3.0% 0.2 Max: Typical + 3ı (-40°C to 125°C) Typical: Statistical mean @ 25°C -4.0% 0.1 Min: Typical - 3ı (-40°C to 125°C) -5.0% 0 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 1.6 6.0 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 VDD (V) VDD (V) FIGURE 36-25: IPD BASE, 11, PIC16F18313/18323 Only FIGURE 36-26: HFINTOSC Typical Frequency Error, PIC16LF18313/18323 Only 1.5% 2.0% Max. 1.0% 1.0% Max. Typical 0.5% 0.0% Error (%) Error (%) Typical -1.0% Min. -2.0% 0.0% -0.5% Min. -3.0% -1.0% Max: Typical + 3ı (-40°C to 125°C) Typical: Statistical mean @ 25°C Min: Typical - 3ı (-40°C to 125°C) -4.0% -5.0% -2.0% 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 4.0 4.2 4.4 4.6 4.8 5.0 5.2 5.4 5.6 -50 VDD (V) 50 100 150 FIGURE 36-28: HFINTOSC Frequency Error VDD = 3V, All devices 36,000 36,000 Max: Typical + 3ı (-40°C to 125°C) Typical: Statistical mean @ 25°C Min: Typical - 3ı (-40°C to 125°C) Max: Typical + 3ı (-40°C to 125°C) 35,000 Typical: Statistical mean @ 25°C Min: Typical - 3ı (-40°C to 125°C) 34,000 34,000 33,000 33,000 Max. Frequency (Hz) Frequency (Hz) 0 Temperature (°C) FIGURE 36-27: HFINTOSC Typical Frequency Error, PIC16F18313/18323 Only 35,000 Max: Typical + 3ı (-40°C to 125°C) Typical: Statistical mean @ 25°C Min: Typical - 3ı (-40°C to 125°C) -1.5% 32,000 Typical 31,000 30,000 Max. 32,000 31,000 Typical 30,000 Min. Min. 29,000 29,000 28,000 28,000 1.7 2.0 2.3 2.6 2.9 3.2 3.5 VDD (V) FIGURE 36-29: LFINTOSC Frequency, PIC16LF18313/18323 Only DS40001799F-page 425 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 4.0 4.2 4.4 4.6 4.8 5.0 5.2 5.4 5.6 VDD (V) FIGURE 36-30: LFINTOSC Frequency, PIC16F18313/18323 Only  2015-2019 Microchip Technology Inc. PIC16(L)F18313/18323 180 300 Max. 160 250 Max. Min. Pull-Up Current ent (µA) (µA Pull-Up ull-Up C Current (µA) Typical 200 Min. 150 100 120 100 80 60 Max: Typical + 3ı (-40°C to 125°C) 40 Max: Typical + 3ı (-40°C to 125°C) 50 Typical 140 Typical: Statistical mean @ 25°C Typical: Statistical mean @ 25°C 20 Min: Typical - 3ı (-40°C to 125°C) Min: Typical - 3ı (-40°C to 125°C) 0 0 2.1 2.4 2.7 3.0 3.3 3.6 3.9 4.2 4.5 4.8 5.1 5.4 5.7 1.6 6.0 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 4.0 VDD (V) VDD (V) FIGURE 36-31: Weak Pull-Up Current, PIC16F18313/18323 Only FIGURE 36-32: Weak Pull-Up Current, PIC16LF18313/18323 Only 6 3 Graph represents 3ı Limits Graph represents 3ı Limits 5 -40°C 4 2 VOL (V) VOH (V) Typical 3 125°C 125°C 2 1 Typical 1 -40°C 0 -45 -40 -35 -30 -25 -20 -15 -10 -5 0 0 0 10 20 30 IOL (mA) IOH (mA) FIGURE 36-33: VOH vs. IOH Over Temperature, VDD = 5.5V, PIC16F18313/18323 Only 40 50 60 FIGURE 36-34: VOL vs. IOL Over Temperature, VDD = 5.5V, PIC16F18313/18323 Only 3.0 3.5 Graph represents 3ı Limits Graph represents 3ı Limits 3.0 2.5 -40°C 125°C 2.5 Typical 2.0 VOL (V) VOH (V) 2.0 Typical 1.5 1.5 125°C 1.0 1.0 -40°C 0.5 0.5 0.0 0.0 -30 -25 -20 -15 -10 IOH (mA) FIGURE 36-35: VOH vs. IOH Over Temperature, VDD = 3.0V, All devices  2015-2019 Microchip Technology Inc. -5 0 0 5 10 15 20 25 30 35 40 45 50 55 60 IOL (mA) FIGURE 36-36: VOL vs. IOL Over Temperature, VDD = 3.0V, All devices DS40001799F-page 426 PIC16(L)F18313/18323 2.0 1.8 Graph represents 3ı Limits 1.8 Graph represents 3ı Limits 1.6 1.6 1.4 1.4 1.2 Typical 125°C VOL (V) VOH (V) -40°C 1.2 125°C 1.0 Typical -40°C 1 0.8 0.8 0.6 0.6 0.4 0.4 0.2 0.2 0.0 0 -8.0 -7.5 -7.0 -6.5 -6.0 -5.5 -5.0 -4.5 -4.0 -3.5 -3.0 -2.5 -2.0 -1.5 -1.0 -0.5 0.0 0 1 2 3 4 5 6 7 8 FIGURE 36-38: VOL vs. IOL Over Temperature, VDD = 1.8V, PIC16LF18313/18323 Only 70.0 3.00 Max: Typical + 3ı Typical: Statistical mean Min: Typical - 3ı 2.95 60.0 2.90 2.85 50.0 Max. 2.75 Max. Voltage (mV) 2.80 Voltage (V) 10 11 12 13 14 15 16 17 18 19 20 IOL (mA) IOH (mA) FIGURE 36-37: VOH vs. IOH Over Temperature, VDD = 1.8V, PIC16LF18313/18323 Only Typical 2.70 2.65 Min. 2.60 40.0 Typical 30.0 20.0 2.55 2.50 Max: Typical + 3ı Typical: Statistical mean Min: Typical - 3ı 2.45 Min. 10.0 0.0 2.40 -60 -40 -20 0 20 40 60 80 100 120 -60 140 -40 -20 0 Temperature (°C) 20 40 60 80 100 120 140 Temperature (°C) FIGURE 36-39: Brown-out Reset Voltage, High Trip Point, (BORV = 0), All devices FIGURE 36-40: Brown-out Reset Hysteresis, Low Trip Point, (BORV = 0), All devices 2.00 40.0 Max. 35.0 1.95 30.0 Voltage (mV) Typical Voltage (V) 9 1.90 Min. 1.85 Max. 25.0 Typical 20.0 Min. 15.0 10.0 Max: Typical + 3ı Typical: Statistical mean Min: Typical - 3ı Max: Typical yp + 3ı Typical: Statistical mean Min: Typical - 3ı 5.0 1.80 00 0.0 -60 -40 -20 0 20 40 60 80 100 120 140 Temperature (°C) FIGURE 36-41: Brown-out Reset Voltage, Trip Point, (BORV = 1), PIC16LF18313/18323 Only DS40001799F-page 427 -60 -40 -20 0 20 40 60 80 100 120 140 Temperature (°C) FIGURE 36-42: Brown-out Reset Hysteresis, Trip Point, (BORV = 1), PIC16LF18313/18323 Only  2015-2019 Microchip Technology Inc. PIC16(L)F18313/18323 2.70 50.0 2.65 45.0 Max: Typical + 3ı Typical: Statistical mean Min: Typical - 3ı 2.60 2.50 Max. 35.0 Typical Voltage (mV) Voltage (V) 40.0 Max. 2.55 2.45 Min. 2.40 30.0 Typical 25.0 2.35 Min. 20.0 2.30 Max: Typical + 3ı Typical: Statistical mean Min: Typical - 3ı 2.25 15.0 2.20 -60 -40 -20 0 20 40 60 80 100 120 10.0 140 -60 -40 -20 0 20 Temperature (°C) 40 FIGURE 36-43: Brown-out Reset Voltage, Trip Point, (BORV = 1), PIC16F18313/18323 Only 80 100 120 140 FIGURE 36-44: Brown-out Reset Hysteresis, Trip Point, (BORV = 1), PIC16F18313/18323 Only 2.60 50 Max: Typical + 3ı Typical: Statistical mean Min: Typical - 3ı 2.50 Max: Typical + 3ı Typical: Statistical mean Min: Typical - 3ı 45 40 2.40 Max. 35 2.30 Max. 30 Voltage (mV) Voltage (V) 60 Temperature (°C) 2.20 Typical 2.10 2.00 Typical 25 20 Min. 15 Min. 10 1.90 5 1.80 0 -60 1.70 -60 -40 -20 0 20 40 60 80 100 120 -40 -20 0 20 Temperature (°C) 60 80 100 120 140 Temperature (°C) FIGURE 36-45: LPBOR Reset Voltage, PIC16LF18313/18323 Only FIGURE 36-46: LPBOR Reset Hysteresis, PIC16LF18313/18323 Only 7 5.0 4.5 6 Max. 4.0 5 3.5 3.0 Time (µs) Time (µs) 40 140 Typical 2.5 2.0 1.5 Max. 4 Typical 3 2 1.0 Max: Typical + 3ı @ 125°C 0.5 Max: Typical + 3ı @ 125°C 1 Typical: Statistical mean @ 25°C Typical: Statistical mean @ 25°C 0.0 2.6 2.7 2.8 2.9 3.0 3.1 3.2 3.3 3.4 3.5 3.6 VDD (V) FIGURE 36-47: BOR Response Time, PIC16LF18313/18323 Only  2015-2019 Microchip Technology Inc. 3.7 0 2.6 2.8 3.0 3.2 3.4 3.6 3.8 4.0 4.2 4.4 4.6 4.8 5.0 5.2 5.4 5.6 VDD (V) FIGURE 36-48: BOR Response Time, PIC16F18313/18323 Only DS40001799F-page 428 1.0 1.0 0.5 0.5 DNL (LSb) DNL (LSb) PIC16(L)F18313/18323 0.0 0.0 -0.5 -0.5 -1.0 -1.0 0 128 256 384 512 640 768 896 0 1024 128 256 384 1.0 1.0 0.5 0.5 0.0 768 896 1024 0.0 -0.5 -0.5 -1.0 -1.0 0 128 256 384 512 640 768 896 0 1024 128 256 384 512 640 768 896 1024 Output Code Output Code FIGURE 36-51: ADC 10-Bit Mode, Single-Ended DNL, VDD = 3.0V, VREF = 3.0V, TAD = 8 µs, 25°C, All devices FIGURE 36-52: ADC 10-Bit Mode, Single-Ended INL, VDD = 3.0V, VREF = 3.0V, TAD = 1 µs, 25°C, All devices 2.0 1.0 2.0 1.0 1.5 1.5 1.0 1.0 0.5 0.5 0.5 0.5 INL (LSb) DNL (LSb) INL (LSb) DNL (LSb) 640 FIGURE 36-50: ADC 10-Bit Mode, Single-Ended DNL, VDD = 3.0V, VREF = 3.0V, TAD = 4 µs, 25°C, All devices INL (LSb) DNL (LSb) FIGURE 36-49: ADC 10-Bit Mode, Single-Ended DNL, VDD = 3.0V, VREF = 3.0V, TAD = 1 µs, 25°C, All devices 0.0 -0.5 0.0 -1.0 0.0 -0.5 0.0 -1.0 -1.5 -1.5 -2.0 -0.5 512 Output Code Output Code 0 512 1024 1536 2048 2560 3072 3584 4096 -2.0 -0.5 0 512 1024 1536 2048 2560 3072 3584 4096 640 768 896 1024 Output Code Output Code -1.0 -1.0 0 128 256 384 512 640 768 896 Output Code FIGURE 36-53: ADC 10-Bit Mode, Single-Ended INL, VDD = 3.0V, VREF = 3.0V, TAD = 4 µs, 25°C, All devices DS40001799F-page 429 1024 0 128 256 384 512 Output Code FIGURE 36-54: ADC 10-Bit Mode, Single-Ended INL, VDD = 3.0V, VREF = 3.0V, TAD = 8 µs, 25°C, All devices  2015-2019 Microchip Technology Inc. PIC16(L)F18313/18323 1.0 1.0 0.5 Max 25°C Max 25°C Min 25°C Min 25°C Max -40°C 0.0 Min -40°C Max 85°C INL (LSb) DNL (LSb) 0.5 Max -40°C 0.0 Min -40°C Max 85°C Min 85°C Min 85°C -0.5 -0.5 -1.0 -1.0 0.5 05 0.8 08 1.0 2.0 0 0 TAD (µs) 4.0 0 0.5 8.0 80 0.8 1.0 2.0 4.0 8.0 TAD (µs) FIGURE 36-55: ADC 10-Bit Mode, Single-Ended DNL, VDD = 3.0V, VREF = 3.0V, All devices FIGURE 36-56: ADC 10-Bit Mode, Single-Ended INL, VDD = 3.0V, VREF = 3.0V, All devices 1.0 2.0 1.5 0.5 1.0 Max 85°C 0.5 Max 25°C Max -40°C 0.0 Min 85°C Min 25°C INL(LSb) DNL(LSb) Max 85°C Max 25°C Max -40°C 0.0 Min 85°C -0.5 Min -40°C Min 25°C Min -40°C -1.0 -0.5 -1.5 -2.0 -1.0 1.8 1.8 8 2.3 3 2.5 5 2.3 3.0 30 2.5 3.0 VREF (V) VREF (V) FIGURE 36-57: ADC 10-Bit Mode, Single-Ended DNL, VDD = 3.0V, TAD = 1 µs, All devices FIGURE 36-58: ADC 10-Bit Mode, Single-Ended INL, VDD = 3.0V, TAD = 1 µs, All devices g 6 3.0 5 2.5 4 2.0 Max 85°C 1.5 2 Max 25°C 1.0 1 Max -40°C 0 Min 85°C -1 Min 25°C -2 Min -40°C Max 85°C Offset Error (LSb) Gain Error (LSb) 3 Max -40°C 0.0 Min 85°C -0.5 Min 25°C -1.0 -3 -1.5 -4 -2.0 -5 Max 25°C 0.5 Min -40°C -2.5 -6 1.8 2.3 2.5 3.0 VREF (V) FIGURE 36-59: ADC 10-Bit Mode, Single-Ended Gain Error, VDD = 3.0V, TAD = 1 µs, All devices  2015-2019 Microchip Technology Inc. -3.0 1.8 2.3 2.5 3.0 VREF (V) FIGURE 36-60: ADC 10-Bit Mode, Single-Ended Offset Error, VDD = 3.0V, TAD = 1 µs, All devices DS40001799F-page 430 PIC16(L)F18313/18323 , te g , μ , 1.0 1.0 0.5 0.5 Max 85°C Max 25°C Max -40°C 0.0 INL(LSb) DNL(LSb) Max 85°C Max 25°C Max -40°C 0.0 Min 85°C Min 85°C Min 25°C Min 25°C -0.5 Min -40°C Min -40°C -0.5 -1.0 1.8 2.3 2.5 3.0 VREF (V) -1.0 1.8 2.3 2.5 3.0 VREF ((V)) FIGURE 36-61: ADC 10-Bit Mode, Single-Ended DNL, VDD = 3.0V, TAD = 4 µs, All devices FIGURE 36-62: ADC 10-Bit Mode, Single-Ended INL, VDD = 3.0V, TAD = 4 µs, All devices 1.0 6 5 3 Max 85°C 2 Max 25°C 1 0.5 Offset Error (LSb) Gain Error (LSb) 4 Max -40°C 0 Min 85°C -1 -2 Min 25°C -3 Min -40°C Max 85°C Max 25°C Max -40°C 0.0 Min 85°C Min 25°C Min -40°C -4 -0.5 -5 -6 1.8 2.3 2.5 3.0 VREF (V) -1.0 1.8 2.3 2.5 3.0 VREF (V) FIGURE 36-63: ADC 10-Bit Mode, Single-Ended Gain Error, VDD = 3.0V, TAD = 4 µs, All devices FIGURE 36-64: ADC 10-Bit Mode, Single-Ended Offset Error, VDD = 3.0V, TAD = 4 µs, All devices g 2.0 2.0 1.5 1.5 1.0 Max. Offset Error (LSb) Gain Error (LSb) 1.0 0.5 Typical 0.0 -0.5 Min. -1.0 Max. 0.5 0.0 Typical -0.5 -1.0 Min. -1.5 -1.5 -2.0 0.5 0.8 1.0 2.0 4.0 TAD (µs) 8.0 -2.0 0.5 FIGURE 36-65: ADC 10-Bit Mode, Single-Ended Gain Error, VDD = 3.0V, VREF = 3.0V, -40°C to 85°C, All devices DS40001799F-page 431 0.8 1.0 2.0 4.0 8.0 TAD (µs) FIGURE 36-66: ADC 10-Bit Mode, Single-Ended Offset Error, VDD = 3.0V, VREF = 3.0V, -40°C to 85°C, All devices  2015-2019 Microchip Technology Inc. PIC16(L)F18313/18323 4.0 5.0 Max: Typical + 3ı (-40°C to 125°C) Typical: Statistical mean @ 25°C Min: Typical - 3ı (-40°C to 125°C) 4.5 3.5 Max. 4.0 3.0 Max. 2.5 3.0 Time (µs) Time (µs) 3.5 2.5 Typical Typical 2.0 2.0 1.5 Min. Min. 1.5 1.0 Max: Typical + 3ı (-40°C to 125°C) 1.0 0.5 Typical: Statistical mean @ 25°C 0.5 Min: Typical - 3ı (-40°C to 125°C) 0.0 0.0 1.7 1.9 2.1 2.3 2.5 2.7 2.9 3.1 3.3 3.5 2.2 3.7 2.4 2.6 2.8 3.0 3.2 3.4 3.6 FIGURE 36-67: ADC RC Oscillator period, PIC16LF18313/18323 Only 3.8 4.0 4.2 4.4 4.6 4.8 5.0 5.2 5.4 5.6 VDD (V) VDD (V) FIGURE 36-68: ADC RC Oscillator period, PIC16F18313/18323 Only 0.00 0.025 -40°C 0.020 -0.05 25°C 85°C 0.015 -0.10 125°C -0.15 INL (LSb) DNL (LSb) 0.010 0.005 0.000 -0.20 -0.25 -0.005 -0.30 -0.010 -0.35 -0.015 -0.40 -0.020 -0.45 -40°C 25°C 85°C 125°C 0 16 32 48 64 80 96 0 112 128 144 160 176 192 208 224 240 16 32 48 64 80 FIGURE 36-69: Typical DAC DNL Error, VDD = 3.0V, VREF = External 3V, All devices 96 112 128 144 160 176 192 208 224 240 Output Code Output Code FIGURE 36-70: Typical DAC INL Error, VDD = 3.0V, VREF = External 3V, All devices 0.020 0.00 0.015 -40°C 25°C -0.05 85°C 125°C -0.10 0.010 INL (LSb) DNL (LSb) -0.15 0.005 0.000 -0.20 -0.25 -0.30 -0.005 -40°C -0.35 25°C -0.010 85°C -0.40 125°C -0.015 -0.45 0 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 Output Code FIGURE 36-71: Typical DAC DNL Error, VDD = 5.0V, VREF = External 5V, PIC16F18313/18323 Only  2015-2019 Microchip Technology Inc. 0 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 Output Code FIGURE 36-72: Typical DAC INL Error, VDD = 5.0V, VREF = External 5V, PIC16F18313/18323 Only DS40001799F-page 432 PIC16(L)F18313/18323 0.4 0.45 VREF = INT. VDD 0.4 VREF = EXT. 1.8V DNL (LSb) AbsoluteAbsolute DNL (LSb) 0.35 VREF = EXT. 2.0V 0.3 0.3 VREF = EXT. 3.0V 0.25 Vref = Int. Vdd Vref = Ext. 1.8V 0.2 Vref = Ext. 2.0V 0.15 0.2 Vref = Ext. 3.0V 0.1 0.05 0 0.1 -50 0 50 Temperature (°C) 100 150 0.0 -60 FIGURE 36-73: DAC INL Error, VDD = 3.0V, PIC16LF18313/18323 Only -20 0 40 60 80 100 120 140 FIGURE 36-74: Absolute Value of DAC DNL Error, VDD = 3.0V, VREF = VDD, All devices VREF = INT. VDD VREF = Int. VDD VREF = EXT. 1.8V -2.3 0.88 0.25 -2.5 AbsoluteAbsolute DNL (LSb) DNL (LSb) VREF = EXT. 2.0V VREF = EXT. 3.0V -40 -2.7 0.86 25 -2.9 85 0.84 -3.1 125 -3.3 0.82 -3.5 0.0 VREF = Ext. 1.8V 0.26 0.2 VREF = Ext. 2.0V VREF = Ext. 3.0V -40 VREF = Ext. 5.0V 0.15 0.22 25 85 0.1 125 0.05 0.18 0 1.0 2.0 3.0 Temperature (°C) 0.80 4.0 5.0 0.0 1.0 2.0 0.14 0.78 3.0 4.0 Temperature (°C) 5.0 6.0 0.10 -60 -40 -20 0 20 40 60 80 100 120 -60 140 -40 -20 0 FIGURE 36-75: Absolute Value of DAC INL Error, VDD = 3.0V, VREF = VDD, All devices 0.90 -2.1 80 100 120 41 VREF = Ext. 5.0V -40 -2.7 0.86 25 -2.9 85 0.84 -3.1 125 Hysteresis (mV) VREF = Ext. 3.0V 39 37 35 33 31 1.0 2.0 0.80 3.0 4.0 Temperature (°C) 140 43 VREF = Ext. 2.0V -3.3 0.82 -3.5 0.0 60 45 VREF = Ext. 1.8V -2.5 40 FIGURE 36-76: Absolute Value of DAC DNL Error, VDD = 5.0V, VREF = VDD, PIC16F18313/18323 Only VREF = Int. VDD -2.3 0.88 20 Temperature (°C) ( C) Temperature (°C) ( C) AbsoluteAbsolute INL (LSb)INL (LSb) 20 Temperature p (°C) ( ) 0.30 0.3 0.90 -2.1 AbsoluteAbsolute INL (LSb)INL (LSb) -40 5.0 6.0 -40°C 25°C 29 125° 125 27 85°C 25 0.0 0.78 -60 -40 -20 0 20 40 60 80 100 120 FIGURE 36-77: Absolute Value of DAC INL Error, VDD = 5.0V, VREF = VDD, PIC16F18313/18323 Only DS40001799F-page 433 0.5 1.0 1.5 2.0 2.5 3.0 3.5 140 Temperature (°C) Common Mode Voltage (V) FIGURE 36-78: Comparator Hysteresis, Normal Power Mode (CxSP = 1), VDD = 3.0V, Typical Measured Values, All devices  2015-2019 Microchip Technology Inc. 30 30 25 25 20 20 15 15 Offset Voltage (mV) Offset Voltage (mV) PIC16(L)F18313/18323 10 Max. 5 0 10 Max. 5 0 -5 -5 Min. Min. -10 -10 -15 -15 -20 -20 0.0 0.5 1.0 1.5 2.0 2.5 0.0 3.0 0.5 1.0 1.5 2.0 2.5 3.0 Common Mode Voltage (V) Common Mode Voltage (V) FIGURE 36-79: Comparator Offset, Normal Power Mode (CxSP = 1), VDD = 3.0V, Typical Measured Values at 25°C, All devices FIGURE 36-80: Comparator Offset, Normal Power Mode (CxSP = 1), VDD = 3.0V, Typical Measured Values from -40°C to 125°C, All devices 50 30 25 20 40 Hysteresis (mV) Hysteresis (mV) 45 35 30 10 Max. 5 0 -5 -40°C Min. 25°C 25 15 -10 125° -15 85° 20 -20 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 0.0 0.5 1.0 1.5 Common Mode Voltage (V) 2.0 2.5 3.0 3.5 4.0 4.5 5.0 Common Mode Voltage (V) FIGURE 36-82: Comparator Offset, Normal Power Mode (CxSP = 1), VDD = 5.0V, Typical Measured Values at 25°C, PIC16F18313/18323 Only FIGURE 36-81: Comparator Hysteresis, Normal Power Mode (CxSP = 1), VDD = 5.5V, Typical Measured Values, PIC16F18313/18323 Only 140 40 Max: Typical + 3ı (-40°C to +125°C) Typical: Statistical mean @ 25°C Min: Typical - 3ı (-40°C to +125°C) 120 30 Time (ns) Offset Voltage (mV) 100 20 10 Max. 80 Max. 60 Typical 0 40 Min. Min. -10 20 -20 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 Common Mode Voltage (V) FIGURE 36-83: Comparator Offset, Normal Power Mode (CxSP = 1), VDD = 5.5V, Typical Measured Values from -40°C to 125°C, PIC16F18313/18323 Only  2015-2019 Microchip Technology Inc. 0 1.7 2.0 2.3 2.6 2.9 3.2 3.5 VDD (V) FIGURE 36-84: Comparator Response Time Over Voltage, Normal Power Mode (CxSP = 1), VDD = 5.5V, Typical Measured Values PIC16LF18313/18323 Only DS40001799F-page 434 PIC16(L)F18313/18323 90 300 Max: Typical + 3ı (-40°C to +125°C) Typical: Statistical mean @ 25°C Min: Typical - 3ı (-40°C to +125°C) 80 250 70 Max. Max. 200 50 Time (ns) Time (ns) 60 Typical 40 30 150 Typical 100 Min. 20 50 Max: Typical + 3ı @ 125°C 10 Typical: Statistical mean @ 25°C 0 0 2.2 2.5 2.8 3.1 3.4 3.7 4.0 4.3 4.6 4.9 5.2 5.5 1.7 1.9 2.1 2.3 2.5 FIGURE 36-85: Comparator Response Time Over Voltage, Normal Power Mode (CxSP = 1), VDD = 5.5V, Typical Measured Values PIC16F18313/18323 Only 2.7 2.9 3.1 3.3 3.5 3.7 VDD (V) VDD (V) FIGURE 36-86: Comparator Response Time Falling edge, PIC16LF18313/18323 Only 250 700 600 200 Max. Max. Typical 100 Time (ns) Time (ns) 500 150 400 Typical 300 200 50 100 Max: Typical + 3ı @ 125°C Typical: Statistical mean @ 25°C Max: Typical + 3ı @ 125°C Typical: Statistical mean @ 25°C 0 0 1.7 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 4.0 4.2 4.4 4.6 4.8 5.0 5.2 5.4 5.6 1.9 2.1 2.3 2.5 FIGURE 36-87: Comparator Response Time Falling edge, PIC16F18313/18323 Only 2.7 2.9 3.1 3.3 3.5 3.7 VDD (V) VDD (V) FIGURE 36-88: Comparator Response Time Rising edge, PIC16LF18313/18323 Only 900 70 800 60 700 Max. Max. 50 Time (µs) Time (ns) 600 500 400 40 Typical 300 Typical 30 200 100 20 Max: Typical + 3ı @ 125°C Max: Typical + 3ı (-40°C to 125°C) Typical: Statistical mean @ 25°C Typical: Statistical mean @ 25°C 0 10 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 4.0 4.2 4.4 4.6 4.8 5.0 5.2 5.4 5.6 VDD (V) FIGURE 36-89: Comparator Response Time Rising edge, PIC16F18313/18323 Only DS40001799F-page 435 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 VDD (V) FIGURE 36-90: Bandgap Ready Time, PIC16LF18313/18323 Only  2015-2019 Microchip Technology Inc. PIC16(L)F18313/18323 1.1% 1.0% Typical 125°C 0.9% 0.8% Typical 85°C Error (%) 0.7% 0.6% Typical 25°C 0.5% 0.4% 0.3% Typical -40°C 0.2% 0.1% 0.0% 2.4 2.5 2.6 2.7 2.8 2.9 3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 VDD (V) FIGURE 36-91: FVR Stabilization Period, PIC16LF18313/18323 Only FIGURE 36-92: Typical FVR Voltage (1x), PIC16LF18313/18323 Only 1.2% 1.0% Typical 125°C Typical 125°C 1.0% 0.8% 0.6% Error (%) Error (%) 0.6% Typical 85°C 0.8% Typical 25°C Typical 85°C 0.4% Typical 25°C 0.2% Typical -40°C 0.4% 0.0% Typical -40°C 0.2% -0.2% 0.0% -0.4% 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 4.0 4.2 4.4 4.6 4.8 5.0 5.2 5.4 5.6 2.4 2.5 2.6 2.7 2.8 2.9 3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 VDD (V) VDD (V) FIGURE 36-93: FVR Voltage Error (1x), PIC16F18313/18323 Only FIGURE 36-94: FVR Voltage Error (2x), PIC16LF18313/18323 Only 1.0% 1.0% Typical 125°C 0.8% 0.8% Typical 125°C Error (%) Typical 85°C 0.6% Error (%) 0.6% Typical 25°C 0.4% Typical 85°C 0.4% 0.2% Typical 25°C 0.2% Typical -40°C 0.0% Typical -40°C 0.0% -0.2% -0.2% 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 4.0 4.2 4.4 4.6 4.8 5.0 5.2 5.4 VDD (V) FIGURE 36-95: FVR Voltage Error (2x), PIC16F18313/18323 Only  2015-2019 Microchip Technology Inc. 5.6 -0.4% 4.7 4.8 4.9 5.0 5.1 5.2 5.3 5.4 5.5 5.6 VDD (V) FIGURE 36-96: FVR Voltage Error (4x), PIC16F18313/18323 Only DS40001799F-page 436 PIC16(L)F18313/18323 gg 2.5 4.0 Max. 3.5 2.0 Typical Max. Min. Voltage oltage (V) Voltage (V) 3.0 Typical 2.5 2.0 1.5 Min. 10 1.0 1.5 Max: Typical + 3ı (-40°C to 125°C) 0.5 1.0 Typical: Statistical mean @ 25°C Max: Typical + 3ı (-40°C to 125°C) Typical: Statistical mean @ 25°C Min: Typical - 3ı (-40°C to 125°C) 0.5 Min: Typical - 3ı (-40°C to 125°C) 0.0 1.5 0.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 2.0 2.5 3.0 6.0 3.5 4.0 4.5 5.0 5.5 VDD (V) VDD (V) FIGURE 36-97: All devices Schmitt Trigger High Values, FIGURE 36-98: All devices Schmitt Trigger Low Values, p 1.8 50 1.6 1.2 Max. 45 Max: Typical + 3ı (-40°C to 125°C) Typical yp 40 Typical: y Statistical mean @ 25°C 35 1.0 0.8 Time (ns) Voltage age (V) 1.4 Min. 0.6 0.4 Max: Typical + 3ı (-40°C to 125°C) Typical: Statistical mean @ 25°C 25 C Min: Typical - 3ı (-40°C to 125°C) 0.2 0.0 30 Max. 25 20 15 Typical 10 15 1.5 2.0 20 2.5 25 3.0 30 3.5 35 4.0 40 4.5 45 5.0 50 5.5 55 5 VDD (V) 0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 VDD (V) FIGURE 36-99: devices TTL Trip Thresholds, All FIGURE 36-100: Rise Time, Slew Rate Control Enabled, All devices 60 30 Max: Typical + 3ı (-40°C to 125°C) Typical: Statistical mean @ 25°C 50 40 20 Time me (ns) Time me (ns) (ns Max: Typical + 3ı (-40°C to 125°C) Typical: Statistical mean @ 25°C 25 Max. 30 20 15 Max. 10 Typical 10 5 0 0 Typical 1 5 1.5 20 2.0 25 2.5 30 3.0 35 3.5 40 4.0 45 4.5 50 5.0 55 5.5 60 6.0 VDD (V) FIGURE 36-101: Fall Time, Slew Rate Control Enabled, All devices DS40001799F-page 437 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 VDD (V) FIGURE 36-102: Rise Time, Slew Rate Control Disabled, All devices  2015-2019 Microchip Technology Inc. PIC16(L)F18313/18323 , 4.00% Max: Typical + 3ı (-40°C to +125°C) Typical; statistical mean @ 25°C Min: Typical - 3ı (-40°C to +125°C) 20 3.00% Max: Typical + 3ı (-40°C to 125°C) 18 Typical: Statistical mean @ 25°C 2.00% 16 1 00% 1.00% Error (%) Time me (ns) 14 12 10 8 Max 0.00% Min Average -1.00% Max. 6 -2.00% 4 Typical yp 2 -3.00% 0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 -4.00% -32 VDD (V) Min -24 -16 -8 0 8 Center 16 24 32 Max OSCTUNE Setting FIGURE 36-103: Fall Time, Slew Rate Control Disabled, All devices FIGURE 36-104: OSCTUNE Center Frequency, PIC16LF18313/18323 Only 1.64 1.80 1.60 Max: Typical + 3ı 1.55 Min: Typical - 3ı Max. 1.45 Typical 1.40 Typical: Statistical mean Min: Typical - 3ı 1.62 Voltage (V) Voltage (V) 1.50 Voltage (V) Max: Typical + 3ı Typical: 25°C Min: Typical - 3ı Max: Typical + 3ı 1.63 1.75 Typical: Statistical mean 1.35 1.70 1.61 Max. 1.6 1.65 Typical 1.59 1.60 1.30 Min. 1.58 Min. -40 -20 0 20 1.55 1.25 1.20 40 60 80 100 120 Temperature (°C) 1.50 -60 -40 -20 0 20 40 60 80 100 120 140 -60 -40 -20 0 20 Temperature (°C) FIGURE 36-105: All devices 40 60 80 100 120 140 Temperature (°C) POR Release Voltage, FIGURE 36-106: POR Rearm Voltage, Normal Power Mode, PIC16F18313/18323 Only 75 74 73 Max. 72 71 Max. 69 Time (ms) Time (ms) 70 68 Typical 66 67 Typical 65 Min. 63 Min. 64 61 62 Max: Typical + 3ı (-40°C to 125°C) Typical: Statistical mean @ 25°C Min: Typical - 3ı (-40°C to 125°C) Max: Typical + 3ı (-40°C to 125°C) Typical: Statistical mean @ 25°C Min: Typical - 3ı (-40°C to 125°C) 59 60 57 2.0 2.5 3.0 3.5 4.0 4.5 VDD (V) FIGURE 36-107: PWRT Period, PIC16F18313/18323 Only  2015-2019 Microchip Technology Inc. 5.0 5.5 6.0 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 VDD (V) FIGURE 36-108: PWRT Period, PIC16LF18313/18323 Only DS40001799F-page 438 PIC16(L)F18313/18323 120 18 Max: Typical + 3ı (-40°C to 125°C) Typical: Statistical mean @ 25°C 110 17 100 90 Max. 15 Max. 80 Time (µs) Time (µs) 16 70 Typical 60 14 50 Typical 40 13 Max: Typical + 3ı (-40°C to 125°C) Typical: Statistical mean @ 25°C 30 20 12 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 1.5 6.0 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 VDD (V) VDD (V) FIGURE 36-109: Wake From Sleep, VREGPM = 0, HFINTOSC = 4 MHz, PIC16F18313/18323 Only FIGURE 36-110: ULP Wake From Sleep, VREGPM = 1, HFINTOSC = 4 MHz, PIC16F18313/18323 Only 120 28 Max: Typical + 3ı (-40°C to 125°C) Typical: Statistical mean @ 25°C 27 110 100 26 Max. 24 Typical 80 23 70 22 60 21 50 20 40 1.5 2.0 2.5 3.0 3.5 Max. 90 Time (µs) Time (µs) 25 4.0 4.5 5.0 5.5 Typical Max: Typical + 3ı (-40°C to 125°C) Typical: Statistical mean @ 25°C 1.5 6.0 2.0 2.5 3.0 FIGURE 36-111: Wake From Sleep, VREGPM = 1, HFINTOSC = 16 MHz, PIC16F18313/18323 Only 4.0 4.5 5.0 5.5 6.0 FIGURE 36-112: ULP Wake From Sleep, VREGPM = 1, HFINTOSC = 16 MHz, PIC16F18313/18323 Only 700 700 Max: Typical + 3ı (-40°C to 125°C) Typical: Statistical mean @ 25°C 650 Max: Typical + 3ı (-40°C to 125°C) Typical: Statistical mean @ 25°C 650 600 600 Max. 550 550 Max. 500 450 Time (µs) Time (µs) 3.5 VDD (V) VDD (V) 500 450 Typical 400 350 Typical 400 350 300 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 4.0 4.2 4.4 4.6 4.8 5.0 5.2 5.4 5.6 VDD (V) FIGURE 36-113: Wake From Sleep, VREGPM = 1, LFINTOSC, PIC16F18313/18323 Only DS40001799F-page 439 300 1.7 2.2 2.7 3.2 3.7 VDD (V) FIGURE 36-114: Wake From Sleep, LFINTOSC, PIC16LF18313/18323 Only  2015-2019 Microchip Technology Inc. PIC16(L)F18313/18323 4.2 4.2 Max. Max. 4.1 4.1 Typical Time (ms) Time (ms) Typical 4.0 4.0 Min. Min. 3.9 3.9 Max: Typical + 3ı (-40°C to 125°C) Typical: Statistical mean @ 25°C Min: Typical - 3ı (-40°C to 125°C) Max: Typical + 3ı (-40°C to 125°C) Typical: Statistical mean @ 25°C Min: Typical - 3ı (-40°C to 125°C) 3.8 3.8 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD (V) FIGURE 36-115: WDT Time-out Period, PIC16F18313/18323 Only  2015-2019 Microchip Technology Inc. 6.0 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 VDD (V) FIGURE 36-116: WDT Time-out Period, PIC16LF18313/18323 Only DS40001799F-page 440 PIC16(L)F18313/18323 37.0 DEVELOPMENT SUPPORT The PIC® microcontrollers (MCU) and dsPIC® digital signal controllers (DSC) are supported with a full range of software and hardware development tools: • Integrated Development Environment - MPLAB® X IDE Software - MPLAB Xpress IDE Software - Microchip Code Configurator (MCC) • Compilers/Assemblers/Linkers - MPLAB XC Compiler - MPASMTM Assembler - MPLINKTM Object Linker/ MPLIBTM Object Librarian - MPLAB Assembler/Linker/Librarian for Various Device Families • Simulators - MPLAB X SIM Software Simulator • Emulators - MPLAB REAL ICE™ In-Circuit Emulator • In-Circuit Debuggers/Programmers - MPLAB ICD 3 - PICkit™ 3 • Device Programmers - MPLAB PM3 Device Programmer • Low-Cost Demonstration/Development Boards, Evaluation Kits and Starter Kits • Third-party development tools 37.1 MPLAB X Integrated Development Environment Software The MPLAB X IDE is a single, unified graphical user interface for Microchip and third-party software, and hardware development tool that runs on Windows®, Linux and Mac OS® X. Based on the NetBeans IDE, MPLAB X IDE is an entirely new IDE with a host of free software components and plug-ins for highperformance application development and debugging. Moving between tools and upgrading from software simulators to hardware debugging and programming tools is simple with the seamless user interface. With complete project management, visual call graphs, a configurable watch window and a feature-rich editor that includes code completion and context menus, MPLAB X IDE is flexible and friendly enough for new users. With the ability to support multiple tools on multiple projects with simultaneous debugging, MPLAB X IDE is also suitable for the needs of experienced users. Feature-Rich Editor: • Color syntax highlighting • Smart code completion makes suggestions and provides hints as you type • Automatic code formatting based on user-defined rules • Live parsing User-Friendly, Customizable Interface: • Fully customizable interface: toolbars, toolbar buttons, windows, window placement, etc. • Call graph window Project-Based Workspaces: • • • • Multiple projects Multiple tools Multiple configurations Simultaneous debugging sessions File History and Bug Tracking: • Local file history feature • Built-in support for Bugzilla issue tracker  2015-2019 Microchip Technology Inc. DS40001799F-page 441 PIC16(L)F18313/18323 37.2 MPLAB XC Compilers The MPLAB XC Compilers are complete ANSI C compilers for all of Microchip’s 8, 16, and 32-bit MCU and DSC devices. These compilers provide powerful integration capabilities, superior code optimization and ease of use. MPLAB XC Compilers run on Windows, Linux or MAC OS X. For easy source level debugging, the compilers provide debug information that is optimized to the MPLAB X IDE. The free MPLAB XC Compiler editions support all devices and commands, with no time or memory restrictions, and offer sufficient code optimization for most applications. MPLAB XC Compilers include an assembler, linker and utilities. The assembler generates relocatable object files that can then be archived or linked with other relocatable object files and archives to create an executable file. MPLAB XC Compiler uses the assembler to produce its object file. Notable features of the assembler include: • • • • • • Support for the entire device instruction set Support for fixed-point and floating-point data Command-line interface Rich directive set Flexible macro language MPLAB X IDE compatibility 37.3 MPASM Assembler The MPASM Assembler is a full-featured, universal macro assembler for PIC10/12/16/18 MCUs. The MPASM Assembler generates relocatable object files for the MPLINK Object Linker, Intel® standard HEX files, MAP files to detail memory usage and symbol reference, absolute LST files that contain source lines and generated machine code, and COFF files for debugging. The MPASM Assembler features include: 37.4 MPLINK Object Linker/ MPLIB Object Librarian The MPLINK Object Linker combines relocatable objects created by the MPASM Assembler. It can link relocatable objects from precompiled libraries, using directives from a linker script. The MPLIB Object Librarian manages the creation and modification of library files of precompiled code. When a routine from a library is called from a source file, only the modules that contain that routine will be linked in with the application. This allows large libraries to be used efficiently in many different applications. The object linker/library features include: • Efficient linking of single libraries instead of many smaller files • Enhanced code maintainability by grouping related modules together • Flexible creation of libraries with easy module listing, replacement, deletion and extraction 37.5 MPLAB Assembler, Linker and Librarian for Various Device Families MPLAB Assembler produces relocatable machine code from symbolic assembly language for PIC24, PIC32 and dsPIC DSC devices. MPLAB XC Compiler uses the assembler to produce its object file. The assembler generates relocatable object files that can then be archived or linked with other relocatable object files and archives to create an executable file. Notable features of the assembler include: • • • • • • Support for the entire device instruction set Support for fixed-point and floating-point data Command-line interface Rich directive set Flexible macro language MPLAB X IDE compatibility • Integration into MPLAB X IDE projects • User-defined macros to streamline assembly code • Conditional assembly for multipurpose source files • Directives that allow complete control over the assembly process  2015-2019 Microchip Technology Inc. DS40001799F-page 442 PIC16(L)F18313/18323 37.6 MPLAB X SIM Software Simulator The MPLAB X SIM Software Simulator allows code development in a PC-hosted environment by simulating the PIC MCUs and dsPIC DSCs on an instruction level. On any given instruction, the data areas can be examined or modified and stimuli can be applied from a comprehensive stimulus controller. Registers can be logged to files for further run-time analysis. The trace buffer and logic analyzer display extend the power of the simulator to record and track program execution, actions on I/O, most peripherals and internal registers. The MPLAB X SIM Software Simulator fully supports symbolic debugging using the MPLAB XC Compilers, and the MPASM and MPLAB Assemblers. The software simulator offers the flexibility to develop and debug code outside of the hardware laboratory environment, making it an excellent, economical software development tool. 37.7 MPLAB REAL ICE In-Circuit Emulator System The MPLAB REAL ICE In-Circuit Emulator System is Microchip’s next generation high-speed emulator for Microchip Flash DSC and MCU devices. It debugs and programs all 8, 16 and 32-bit MCU, and DSC devices with the easy-to-use, powerful graphical user interface of the MPLAB X IDE. The emulator is connected to the design engineer’s PC using a high-speed USB 2.0 interface and is connected to the target with either a connector compatible with in-circuit debugger systems (RJ-11) or with the new high-speed, noise tolerant, LowVoltage Differential Signal (LVDS) interconnection (CAT5). The emulator is field upgradeable through future firmware downloads in MPLAB X IDE. MPLAB REAL ICE offers significant advantages over competitive emulators including full-speed emulation, run-time variable watches, trace analysis, complex breakpoints, logic probes, a ruggedized probe interface and long (up to three meters) interconnection cables.  2015-2019 Microchip Technology Inc. 37.8 MPLAB ICD 3 In-Circuit Debugger System The MPLAB ICD 3 In-Circuit Debugger System is Microchip’s most cost-effective, high-speed hardware debugger/programmer for Microchip Flash DSC and MCU devices. It debugs and programs PIC Flash microcontrollers and dsPIC DSCs with the powerful, yet easy-to-use graphical user interface of the MPLAB IDE. The MPLAB ICD 3 In-Circuit Debugger probe is connected to the design engineer’s PC using a highspeed USB 2.0 interface and is connected to the target with a connector compatible with the MPLAB ICD 2 or MPLAB REAL ICE systems (RJ-11). MPLAB ICD 3 supports all MPLAB ICD 2 headers. 37.9 PICkit 3 In-Circuit Debugger/ Programmer The MPLAB PICkit 3 allows debugging and programming of PIC and dsPIC Flash microcontrollers at a most affordable price point using the powerful graphical user interface of the MPLAB IDE. The MPLAB PICkit 3 is connected to the design engineer’s PC using a fullspeed USB interface and can be connected to the target via a Microchip debug (RJ-11) connector (compatible with MPLAB ICD 3 and MPLAB REAL ICE). The connector uses two device I/O pins and the Reset line to implement in-circuit debugging and In-Circuit Serial Programming™ (ICSP™). 37.10 MPLAB PM3 Device Programmer The MPLAB PM3 Device Programmer is a universal, CE compliant device programmer with programmable voltage verification at VDDMIN and VDDMAX for maximum reliability. It features a large LCD display (128 x 64) for menus and error messages, and a modular, detachable socket assembly to support various package types. The ICSP cable assembly is included as a standard item. In Stand-Alone mode, the MPLAB PM3 Device Programmer can read, verify and program PIC devices without a PC connection. It can also set code protection in this mode. The MPLAB PM3 connects to the host PC via an RS-232 or USB cable. The MPLAB PM3 has high-speed communications and optimized algorithms for quick programming of large memory devices, and incorporates an MMC card for file storage and data applications. DS40001799F-page 443 PIC16(L)F18313/18323 37.11 Demonstration/Development Boards, Evaluation Kits, and Starter Kits A wide variety of demonstration, development and evaluation boards for various PIC MCUs and dsPIC DSCs allows quick application development on fully functional systems. Most boards include prototyping areas for adding custom circuitry and provide application firmware and source code for examination and modification. The boards support a variety of features, including LEDs, temperature sensors, switches, speakers, RS-232 interfaces, LCD displays, potentiometers and additional EEPROM memory. 37.12 Third-Party Development Tools Microchip also offers a great collection of tools from third-party vendors. These tools are carefully selected to offer good value and unique functionality. • Device Programmers and Gang Programmers from companies, such as SoftLog and CCS • Software Tools from companies, such as Gimpel and Trace Systems • Protocol Analyzers from companies, such as Saleae and Total Phase • Demonstration Boards from companies, such as MikroElektronika, Digilent® and Olimex • Embedded Ethernet Solutions from companies, such as EZ Web Lynx, WIZnet and IPLogika® The demonstration and development boards can be used in teaching environments, for prototyping custom circuits and for learning about various microcontroller applications. In addition to the PICDEM™ and dsPICDEM™ demonstration/development board series of circuits, Microchip has a line of evaluation kits and demonstration software for analog filter design, KEELOQ® security ICs, CAN, IrDA®, PowerSmart battery management, SEEVAL® evaluation system, Sigma-Delta ADC, flow rate sensing, plus many more. Also available are starter kits that contain everything needed to experience the specified device. This usually includes a single application and debug capability, all on one board. Check the Microchip web page (www.microchip.com) for the complete list of demonstration, development and evaluation kits.  2015-2019 Microchip Technology Inc. DS40001799F-page 444 PIC16(L)F18313/18323 38.0 PACKAGING INFORMATION 38.1 Package Marking Information 8-Lead PDIP (300 mil) Example XXXXXXXX XXXXXNNN 16F18313 P e3 017 YYWW 1110 8-Lead SOIC (3.90 mm) Example 16F18313I PIC16F18313 -I/SO e3 SN e3 1110 NNN Legend: XX...X Y YY WW NNN e3 * Note: 1304017 017 Customer-specific information Year code (last digit of calendar year) Year code (last 2 digits of calendar year) Week code (week of January 1 is week ‘01’) Alphanumeric traceability code Pb-free JEDEC designator for Matte Tin (Sn) This package is Pb-free. The Pb-free JEDEC designator ( e3 ) can be found on the outer packaging for this package. In the event the full Microchip part number cannot be marked on one line, it will be carried over to the next line, thus limiting the number of available characters for customer-specific information.  2015-2019 Microchip Technology Inc. DS40001799F-page 445 PIC16(L)F18313/18323 Package Marking Information (Continued) 8-Lead UDFN (3x3x0.9 mm) XXXX YYWW NNN PIN 1 14-Lead PDIP (300 mil) Example MGR0 1110 017 PIN 1 Example PIC16F18323 P e3 1304017 14-Lead SOIC (3.90 mm) Example PIC16F18323 SO e3 1304017 14-Lead TSSOP (4.4 mm) Example XXXXXXXX YYWW NNN 16F18323  2015-2019 Microchip Technology Inc. 1304 017 DS40001799F-page 446 PIC16(L)F18313/18323 Package Marking Information (Continued) 16-Lead UQFN (4x4x0.9 mm) PIN 1 Example PIN 1 PIC16 F18323 MV 130417 e3  2015-2019 Microchip Technology Inc. DS40001799F-page 447 PIC16(L)F18313/18323 TABLE 38-1: 8-LEAD 3x3 UDFN (RF) TOP MARKING Part Number Marking PIC16F18313 RF MGG0 PIC16LF18313 RF MGH0  2015-2019 Microchip Technology Inc. DS40001799F-page 448 PIC16(L)F18313/18323 38.2 Package Details The following sections give the technical details of the packages. 8-Lead Plastic Dual In-Line (P) - 300 mil Body [PDIP] Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging D A N B E1 NOTE 1 1 2 TOP VIEW E C A2 A PLANE L c A1 e eB 8X b1 8X b .010 C SIDE VIEW END VIEW Microchip Technology Drawing No. C04-018D Sheet 1 of 2  2015-2019 Microchip Technology Inc. DS40001799F-page 449 PIC16(L)F18313/18323 8-Lead Plastic Dual In-Line (P) - 300 mil Body [PDIP] Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging ALTERNATE LEAD DESIGN (VENDOR DEPENDENT) DATUM A DATUM A b b e 2 e 2 e Units Dimension Limits Number of Pins N e Pitch Top to Seating Plane A Molded Package Thickness A2 Base to Seating Plane A1 Shoulder to Shoulder Width E Molded Package Width E1 Overall Length D Tip to Seating Plane L c Lead Thickness Upper Lead Width b1 b Lower Lead Width Overall Row Spacing eB § e MIN .115 .015 .290 .240 .348 .115 .008 .040 .014 - INCHES NOM 8 .100 BSC .130 .310 .250 .365 .130 .010 .060 .018 - MAX .210 .195 .325 .280 .400 .150 .015 .070 .022 .430 Notes: 1. Pin 1 visual index feature may vary, but must be located within the hatched area. 2. § Significant Characteristic 3. Dimensions D and E1 do not include mold flash or protrusions. Mold flash or protrusions shall not exceed .010" per side. 4. Dimensioning and tolerancing per ASME Y14.5M BSC: Basic Dimension. Theoretically exact value shown without tolerances. Microchip Technology Drawing No. C04-018D Sheet 2 of 2  2015-2019 Microchip Technology Inc. DS40001799F-page 450 PIC16(L)F18313/18323 Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging  2015-2019 Microchip Technology Inc. DS40001799F-page 451 PIC16(L)F18313/18323 Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging  2015-2019 Microchip Technology Inc. DS40001799F-page 452 PIC16(L)F18313/18323     !"#$%&  '   ! "#  $% &"' ""    *$ ;  %  ?@@&&&!    !@ $  2015-2019 Microchip Technology Inc. DS40001799F-page 453 PIC16(L)F18313/18323 8-Lead Ultra Thin Plastic Dual Flat, No Lead Package (RF) - 3x3x0.50 mm Body [UDFN] Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging D A B N (DATUM A) (DATUM B) E NOTE 1 2X 0.10 C 1 2X 2 TOP VIEW 0.10 C 0.05 C C SEATING PLANE A1 A 8X (A3) 0.05 C SIDE VIEW 0.10 C A B D2 1 2 L 0.10 C A B E2 NOTE 1 K N e 8X b 0.10 e 2 C A B BOTTOM VIEW Microchip Technology Drawing C04-254A Sheet 1 of 2  2015-2019 Microchip Technology Inc. DS40001799F-page 454 PIC16(L)F18313/18323 8-Lead Ultra Thin Plastic Dual Flat, No Lead Package (RF) - 3x3x0.50 mm Body [UDFN] Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging Units Dimension Limits Number of Terminals N e Pitch A Overall Height Standoff A1 A3 Terminal Thickness Overall Width E E2 Exposed Pad Width D Overall Length D2 Exposed Pad Length b Terminal Width Terminal Length L K Terminal-to-Exposed-Pad MIN 0.45 0.00 1.40 2.20 0.25 0.35 0.20 MILLIMETERS NOM 8 0.65 BSC 0.50 0.02 0.065 REF 3.00 BSC 1.50 3.00 BSC 2.30 0.30 0.45 - MAX 0.55 0.05 1.60 2.40 0.35 0.55 - Notes: 1. Pin 1 visual index feature may vary, but must be located within the hatched area. 2. Package is saw singulated 3. Dimensioning and tolerancing per ASME Y14.5M BSC: Basic Dimension. Theoretically exact value shown without tolerances. REF: Reference Dimension, usually without tolerance, for information purposes only. Microchip Technology Drawing C04-254A Sheet 2 of 2  2015-2019 Microchip Technology Inc. DS40001799F-page 455 PIC16(L)F18313/18323 8-Lead Ultra Thin Plastic Dual Flat, No Lead Package (RF) - 3x3x0.50 mm Body [UDFN] Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging C X2 E Y2 X1 G1 G2 SILK SCREEN Y1 RECOMMENDED LAND PATTERN Units Dimension Limits E Contact Pitch Optional Center Pad Width X2 Optional Center Pad Length Y2 Contact Pad Spacing C Contact Pad Width (X8) X1 Contact Pad Length (X8) Y1 Contact Pad to Contact Pad (X6) G1 Contact Pad to Center Pad (X8) G2 MIN MILLIMETERS NOM 0.65 BSC MAX 1.60 2.40 2.90 0.35 0.85 0.20 0.30 Notes: 1. Dimensioning and tolerancing per ASME Y14.5M BSC: Basic Dimension. Theoretically exact value shown without tolerances. Microchip Technology Drawing C04-2254A  2015-2019 Microchip Technology Inc. DS40001799F-page 456 PIC16(L)F18313/18323 *+  , $   !"# ,$ &  '   ! "#  $% &"' ""    *$ ;  %  ?@@&&&!    !@ $ N NOTE 1 E1 1 3 2 D E A2 A L A1 c b1 b e eB }" !" !" ~#!Y  ;*" ~\^ ~ ~ ~‚ ƒ G *   *  „ „ G  %%*$ $""  GG{ G] G{ |" * G G{ „ „  #%   #% †% ^  ]G ]{  %%*$†% ^G  {  ‚J   ]{ { {   *  GG{ G] G{ % $""   G G{ YG { ‡  Y G G  | „ „ }  %†%  & %†% ‚J  & [ G|\ ]   ' G *GJ"#%X;# !J 'Y#!#"Y %&    %   [;\   " ] !" "%^G%  #%! %;"    #" " %;"    #" ""  X%G`  "%  !" %    ^jG{ |\?|"!"   XJ#" && #  "         & \{|  2015-2019 Microchip Technology Inc. DS40001799F-page 457 PIC16(L)F18313/18323 Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging  2015-2019 Microchip Technology Inc. DS40001799F-page 458 PIC16(L)F18313/18323 Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging  2015-2019 Microchip Technology Inc. DS40001799F-page 459 PIC16(L)F18313/18323  '   ! "#  $% &"' ""    *$ ;  %  ?@@&&&!    !@ $  2015-2019 Microchip Technology Inc. DS40001799F-page 460 PIC16(L)F18313/18323 Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging  2015-2019 Microchip Technology Inc. DS40001799F-page 461 PIC16(L)F18313/18323 Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging  2015-2019 Microchip Technology Inc. DS40001799F-page 462 PIC16(L)F18313/18323 Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging  2015-2019 Microchip Technology Inc. DS40001799F-page 463 PIC16(L)F18313/18323 16-Lead Ultra Thin Plastic Quad Flat, No Lead Package (JQ) - 4x4x0.5 mm Body [UQFN] Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging D A B N NOTE 1 1 2 E (DATUM B) (DATUM A) 2X 0.20 C 2X TOP VIEW 0.20 C SEATING PLANE A1 0.10 C C A 16X (A3) 0.08 C SIDE VIEW 0.10 C A B D2 0.10 C A B E2 2 e 2 1 NOTE 1 K N 16X b 0.10 L e C A B BOTTOM VIEW Microchip Technology Drawing C04-257A Sheet 1 of 2  2015-2019 Microchip Technology Inc. DS40001799F-page 464 PIC16(L)F18313/18323 16-Lead Ultra Thin Plastic Quad Flat, No Lead Package (JQ) - 4x4x0.5 mm Body [UQFN] Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging Units Dimension Limits Number of Pins N e Pitch A Overall Height Standoff A1 A3 Terminal Thickness Overall Width E E2 Exposed Pad Width D Overall Length D2 Exposed Pad Length b Terminal Width Terminal Length L K Terminal-to-Exposed-Pad MIN 0.45 0.00 2.50 2.50 0.25 0.30 0.20 MILLIMETERS NOM 16 0.65 BSC 0.50 0.02 0.127 REF 4.00 BSC 2.60 4.00 BSC 2.60 0.30 0.40 - MAX 0.55 0.05 2.70 2.70 0.35 0.50 - Notes: 1. Pin 1 visual index feature may vary, but must be located within the hatched area. 2. Package is saw singulated 3. Dimensioning and tolerancing per ASME Y14.5M BSC: Basic Dimension. Theoretically exact value shown without tolerances. REF: Reference Dimension, usually without tolerance, for information purposes only. Microchip Technology Drawing C04-257A Sheet 2 of 2  2015-2019 Microchip Technology Inc. DS40001799F-page 465 PIC16(L)F18313/18323 16-Lead Ultra Thin Plastic Quad Flat, No Lead Package (JQ) - 4x4x0.5 mm Body [UQFN] Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging C1 X2 16 1 2 C2 Y2 Y1 X1 E SILK SCREEN RECOMMENDED LAND PATTERN Units Dimension Limits E Contact Pitch Optional Center Pad Width X2 Optional Center Pad Length Y2 Contact Pad Spacing C1 Contact Pad Spacing C2 Contact Pad Width (X16) X1 Contact Pad Length (X16) Y1 MIN MILLIMETERS NOM 0.65 BSC MAX 2.70 2.70 4.00 4.00 0.35 0.80 Notes: 1. Dimensioning and tolerancing per ASME Y14.5M BSC: Basic Dimension. Theoretically exact value shown without tolerances. Microchip Technology Drawing C04-2257A  2015-2019 Microchip Technology Inc. DS40001799F-page 466 PIC16(L)F18313/18323 APPENDIX A: DATA SHEET REVISION HISTORY Revision F (09/2019) Updated Register 5-5 and Table 35-6. Revision E (10/2018) Updated Table 35-8 (Internal Oscillator Parameters). Other minor corrections. Revision D (10/2017) Updated Register 30-4; Section 30.6; and Tables 6-5, 11-2, and 35-2. Revision C (07/2017) Minor electrical specs updated, Char Graphs updated for IDD Revision B (12/2016) Minor updates brought to Table 1-1; Table 1-2; Table 1-3; Added new Chapter 2 “Guidelines for Getting Started with PIC16(L)F183XX Microcontrollers”; Updated Figure 3-1; Added Section 4.1.1.3 “NVMREG Access”, Section 4.2.1 “BANK SELECTION”; Updated Table 6-1; Updated Figure 7-1; Updated Register 7-6; Updated Figure 8-2; Updated Register 9-1; Added Section 10.2.4 “WDT IS ALWAYS OFF”; Updated Table 11-2; Updated Example 11-4; Removed Example 11-5; Updated Figure 15-1; Updated Figure 18-2; Updated Figure 22-1; Updated Figure 29-1; Updated Figure 31-1. Revision A (07/2015) Initial release of the document.  2015-2019 Microchip Technology Inc. DS40001799F-page 467 PIC16(L)F18313/18323 THE MICROCHIP WEBSITE CUSTOMER SUPPORT Microchip provides online support via our WWW site at www.microchip.com. This website is used as a means to make files and information easily available to customers. Accessible by using your favorite Internet browser, the website contains the following information: Users of Microchip products can receive assistance through several channels: • Product Support – Data sheets and errata, application notes and sample programs, design resources, user’s guides and hardware support documents, latest software releases and archived software • General Technical Support – Frequently Asked Questions (FAQ), technical support requests, online discussion groups, Microchip consultant program member listing • Business of Microchip – Product selector and ordering guides, latest Microchip press releases, listing of seminars and events, listings of Microchip sales offices, distributors and factory representatives • • • • Distributor or Representative Local Sales Office Field Application Engineer (FAE) Technical Support Customers should contact their distributor, representative or Field Application Engineer (FAE) for support. Local sales offices are also available to help customers. A listing of sales offices and locations is included in the back of this document. Technical support is available through the website at: http://microchip.com/support CUSTOMER CHANGE NOTIFICATION SERVICE Microchip’s customer notification service helps keep customers current on Microchip products. Subscribers will receive e-mail notification whenever there are changes, updates, revisions or errata related to a specified product family or development tool of interest. To register, access the Microchip website at www.microchip.com. Under “Support”, click on “Customer Change Notification” and follow the registration instructions.  2015-2019 Microchip Technology Inc. DS40001799F-page 468 PIC16(L)F18313/18323 PRODUCT IDENTIFICATION SYSTEM To order or obtain information, e.g., on pricing or delivery, refer to the factory or the listed sales office. [X](1) PART NO. Device - X Tape and Reel Temperature Option Range /XX XXX Package Pattern Examples: a) b) Device: PIC16F18313, PIC16LF18313, PIC16F18323, PIC16LF18323 Tape and Reel Option: Blank T = Standard packaging (tube or tray) = Tape and Reel(1) Temperature Range: I E = -40C to +85C = -40C to +125C Package:(2) JQ P ST SL SN RF = = = = = = Pattern: (Industrial) (Extended) UQFN PDIP TSSOP SOIC-14 SOIC-8 UDFN QTP, SQTP, Code or Special Requirements (blank otherwise)  2015-2019 Microchip Technology Inc. PIC16LF18313- I/P Industrial temperature PDIP package PIC16F18313- E/SS Extended temperature, SSOP package Note 1: 2: Tape and Reel identifier only appears in the catalog part number description. This identifier is used for ordering purposes and is not printed on the device package. Check with your Microchip Sales Office for package availability with the Tape and Reel option. Small form-factor packaging options may be available. Check www.microchip.com/packaging for small-form factor package availability, or contact your local Sales Office. DS40001799F-page 469 Note the following details of the code protection feature on Microchip devices: • Microchip products meet the specification contained in their particular Microchip Data Sheet. • Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the intended manner and under normal conditions. • There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip’s Data Sheets. Most likely, the person doing so is engaged in theft of intellectual property. • Microchip is willing to work with the customer who is concerned about the integrity of their code. • Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not mean that we are guaranteeing the product as “unbreakable.” Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our products. Attempts to break Microchip’s code protection feature may be a violation of the Digital Millennium Copyright Act. If such acts allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act. Information contained in this publication regarding device applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchip devices in life support and/or safety applications is entirely at the buyer’s risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights unless otherwise stated. Trademarks The Microchip name and logo, the Microchip logo, Adaptec, AnyRate, AVR, AVR logo, AVR Freaks, BesTime, BitCloud, chipKIT, chipKIT logo, CryptoMemory, CryptoRF, dsPIC, FlashFlex, flexPWR, HELDO, IGLOO, JukeBlox, KeeLoq, Kleer, LANCheck, LinkMD, maXStylus, maXTouch, MediaLB, megaAVR, Microsemi, Microsemi logo, MOST, MOST logo, MPLAB, OptoLyzer, PackeTime, PIC, picoPower, PICSTART, PIC32 logo, PolarFire, Prochip Designer, QTouch, SAM-BA, SenGenuity, SpyNIC, SST, SST Logo, SuperFlash, Symmetricom, SyncServer, Tachyon, TempTrackr, TimeSource, tinyAVR, UNI/O, Vectron, and XMEGA are registered trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. APT, ClockWorks, The Embedded Control Solutions Company, EtherSynch, FlashTec, Hyper Speed Control, HyperLight Load, IntelliMOS, Libero, motorBench, mTouch, Powermite 3, Precision Edge, ProASIC, ProASIC Plus, ProASIC Plus logo, Quiet-Wire, SmartFusion, SyncWorld, Temux, TimeCesium, TimeHub, TimePictra, TimeProvider, Vite, WinPath, and ZL are registered trademarks of Microchip Technology Incorporated in the U.S.A. Adjacent Key Suppression, AKS, Analog-for-the-Digital Age, Any Capacitor, AnyIn, AnyOut, BlueSky, BodyCom, CodeGuard, CryptoAuthentication, CryptoAutomotive, CryptoCompanion, CryptoController, dsPICDEM, dsPICDEM.net, Dynamic Average Matching, DAM, ECAN, EtherGREEN, In-Circuit Serial Programming, ICSP, INICnet, Inter-Chip Connectivity, JitterBlocker, KleerNet, KleerNet logo, memBrain, Mindi, MiWi, MPASM, MPF, MPLAB Certified logo, MPLIB, MPLINK, MultiTRAK, NetDetach, Omniscient Code Generation, PICDEM, PICDEM.net, PICkit, PICtail, PowerSmart, PureSilicon, QMatrix, REAL ICE, Ripple Blocker, SAM-ICE, Serial Quad I/O, SMART-I.S., SQI, SuperSwitcher, SuperSwitcher II, Total Endurance, TSHARC, USBCheck, VariSense, ViewSpan, WiperLock, Wireless DNA, and ZENA are trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. SQTP is a service mark of Microchip Technology Incorporated in the U.S.A. The Adaptec logo, Frequency on Demand, Silicon Storage Technology, and Symmcom are registered trademarks of Microchip Technology Inc. in other countries. GestIC is a registered trademark of Microchip Technology Germany II GmbH & Co. KG, a subsidiary of Microchip Technology Inc., in other countries. All other trademarks mentioned herein are property of their respective companies. © 2015-2019, Microchip Technology Incorporated, All Rights Reserved. For information regarding Microchip’s Quality Management Systems, please visit www.microchip.com/quality.  2015-2019 Microchip Technology Inc. ISBN: 978-1-5224-5093-1 DS40001799F-page 470 Worldwide Sales and Service AMERICAS ASIA/PACIFIC ASIA/PACIFIC EUROPE Corporate Office 2355 West Chandler Blvd. Chandler, AZ 85224-6199 Tel: 480-792-7200 Fax: 480-792-7277 Technical Support: http://www.microchip.com/ support Web Address: www.microchip.com Australia - Sydney Tel: 61-2-9868-6733 India - Bangalore Tel: 91-80-3090-4444 China - Beijing Tel: 86-10-8569-7000 India - New Delhi Tel: 91-11-4160-8631 Austria - Wels Tel: 43-7242-2244-39 Fax: 43-7242-2244-393 China - Chengdu Tel: 86-28-8665-5511 India - Pune Tel: 91-20-4121-0141 Denmark - Copenhagen Tel: 45-4450-2828 Fax: 45-4485-2829 China - Chongqing Tel: 86-23-8980-9588 Japan - Osaka Tel: 81-6-6152-7160 Finland - Espoo Tel: 358-9-4520-820 China - Dongguan Tel: 86-769-8702-9880 Japan - Tokyo Tel: 81-3-6880- 3770 China - Guangzhou Tel: 86-20-8755-8029 Korea - Daegu Tel: 82-53-744-4301 France - Paris Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79 China - Hangzhou Tel: 86-571-8792-8115 Korea - Seoul Tel: 82-2-554-7200 China - Hong Kong SAR Tel: 852-2943-5100 Malaysia - Kuala Lumpur Tel: 60-3-7651-7906 China - Nanjing Tel: 86-25-8473-2460 Malaysia - Penang Tel: 60-4-227-8870 China - Qingdao Tel: 86-532-8502-7355 Philippines - Manila Tel: 63-2-634-9065 China - Shanghai Tel: 86-21-3326-8000 Singapore Tel: 65-6334-8870 China - Shenyang Tel: 86-24-2334-2829 Taiwan - Hsin Chu Tel: 886-3-577-8366 China - Shenzhen Tel: 86-755-8864-2200 Taiwan - Kaohsiung Tel: 886-7-213-7830 Israel - Ra’anana Tel: 972-9-744-7705 China - Suzhou Tel: 86-186-6233-1526 Taiwan - Taipei Tel: 886-2-2508-8600 China - Wuhan Tel: 86-27-5980-5300 Thailand - Bangkok Tel: 66-2-694-1351 Italy - Milan Tel: 39-0331-742611 Fax: 39-0331-466781 China - Xian Tel: 86-29-8833-7252 Vietnam - Ho Chi Minh Tel: 84-28-5448-2100 Atlanta Duluth, GA Tel: 678-957-9614 Fax: 678-957-1455 Austin, TX Tel: 512-257-3370 Boston Westborough, MA Tel: 774-760-0087 Fax: 774-760-0088 Chicago Itasca, IL Tel: 630-285-0071 Fax: 630-285-0075 Dallas Addison, TX Tel: 972-818-7423 Fax: 972-818-2924 Detroit Novi, MI Tel: 248-848-4000 Houston, TX Tel: 281-894-5983 Indianapolis Noblesville, IN Tel: 317-773-8323 Fax: 317-773-5453 Tel: 317-536-2380 China - Xiamen Tel: 86-592-2388138 China - Zhuhai Tel: 86-756-3210040 Los Angeles Mission Viejo, CA Tel: 949-462-9523 Fax: 949-462-9608 Tel: 951-273-7800 Raleigh, NC Tel: 919-844-7510 New York, NY Tel: 631-435-6000 San Jose, CA Tel: 408-735-9110 Tel: 408-436-4270 Canada - Toronto Tel: 905-695-1980 Fax: 905-695-2078  2015-2019 Microchip Technology Inc. Germany - Garching Tel: 49-8931-9700 Germany - Haan Tel: 49-2129-3766400 Germany - Heilbronn Tel: 49-7131-72400 Germany - Karlsruhe Tel: 49-721-625370 Germany - Munich Tel: 49-89-627-144-0 Fax: 49-89-627-144-44 Germany - Rosenheim Tel: 49-8031-354-560 Italy - Padova Tel: 39-049-7625286 Netherlands - Drunen Tel: 31-416-690399 Fax: 31-416-690340 Norway - Trondheim Tel: 47-7288-4388 Poland - Warsaw Tel: 48-22-3325737 Romania - Bucharest Tel: 40-21-407-87-50 Spain - Madrid Tel: 34-91-708-08-90 Fax: 34-91-708-08-91 Sweden - Gothenberg Tel: 46-31-704-60-40 Sweden - Stockholm Tel: 46-8-5090-4654 UK - Wokingham Tel: 44-118-921-5800 Fax: 44-118-921-5820 DS40001799F-page 471 05/14/19
PIC16F18313-I/MS 价格&库存

很抱歉,暂时无法提供与“PIC16F18313-I/MS”相匹配的价格&库存,您可以联系我们找货

免费人工找货