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

型号

产品描述

搜索

PIC16F610T-I-SL

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

器件描述

In-Circuit Debuggers MPLAB ICD3

参数

产品属性属性值
产品种类:
Product Category:
8-bit Microcontrollers - MCU
制造商:
Manufacturer:
Microchip
RoHS:YES
安装风格:
Mounting Style:
SMD/SMT
封装 / 箱体:
Package / Case:
SOIC-14
系列:
Series:
PIC16
Core:PIC16
Data Bus Width:8 bit
Maximum Clock Frequency:20 MHz
Program Memory Size:1.75 kB
Data RAM Size:64 B
ADC Resolution:No ADC
Number of I/Os:11 I/O
工作电源电压:
Operating Supply Voltage:
2 V to 5.5 V
最大工作温度:
Maximum Operating Temperature:
+ 85 C
接口类型:
Interface Type:
RS-232, USB
封装:
Packaging:
Reel
商标:
Brand:
Microchip Technology
高度:
Height:
1.25 mm
长度:
Length:
8.65 mm
最小工作温度:
Minimum Operating Temperature:
- 40 C
Number of Timers/Counters:2 Timer
Processor Series:PIC16
产品:
Product:
MCU
Program Memory Type:Flash
工厂包装数量:
Factory Pack Quantity:
2600
电源电压-最大:
Supply Voltage - Max:
5.5 V
电源电压-最小:
Supply Voltage - Min:
2 V
商标名:
Tradename:
PIC
宽度:
Width:
3.9 mm
单位重量:
Unit Weight:
0.008501 oz

PIC16F610T-I-SL器件文档内容

                                  PIC16F610/16HV610

                                  PIC16F616/16HV616

                                  Data Sheet

                                  14-Pin, Flash-Based 8-Bit

                                  CMOS Microcontrollers

© 2009 Microchip Technology Inc.  DS41288F
Note the following details of the code protection feature on Microchip devices:

•  Microchip products meet the specification contained in their particular Microchip Data Sheet.

•  Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the

   intended manner and under normal conditions.

•  There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our

   knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip’s Data

   Sheets. Most likely, the person doing so is engaged in theft of intellectual property.

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

•  Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not

   mean that we are guaranteeing the product as “unbreakable.”

Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our

products. Attempts to break Microchip’s code protection feature may be a violation of the Digital Millennium Copyright Act. If such acts

allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act.

Information    contained   in   this  publication     regarding     device     Trademarks

applications and the like is provided only for your convenience                The Microchip name and logo, the Microchip logo, dsPIC,

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

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

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

WARRANTIES        OF       ANY  KIND  WHETHER         EXPRESS       OR

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

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

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

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

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

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

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

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

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

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

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

intellectual property rights.                                                  Endurance, TSHARC, UniWinDriver, WiperLock and ZENA

                                                                               are trademarks of Microchip Technology Incorporated in the

                                                                               U.S.A. and other countries.

                                                                               SQTP is a service mark of Microchip Technology Incorporated

                                                                               in the U.S.A.

                                                                               All other trademarks mentioned herein are property of their

                                                                               respective companies.

                                                                               © 2009, Microchip Technology Incorporated, Printed in the

                                                                               U.S.A., All Rights Reserved.

                                                                               Printed on recycled paper.

                                                                               Microchip received ISO/TS-16949:2002 certification for its worldwide

                                                                               headquarters, design and wafer fabrication facilities in Chandler and

                                                                               Tempe, Arizona; Gresham, Oregon and design centers in California

                                                                               and India. The Company’s quality system processes and procedures

                                                                               are for its PIC® MCUs and dsPIC® DSCs, KEELOQ® code hopping

                                                                               devices, Serial EEPROMs, microperipherals, nonvolatile memory and

                                                                               analog products. In addition, Microchip’s quality system for the design

                                                                               and manufacture of development systems is ISO 9001:2000 certified.

DS41288F-page 2                                                                                             © 2009 Microchip Technology Inc.
                                             PIC16F610/616/16HV610/616

          14-Pin Flash-Based, 8-Bit                            CMOS Microcontrollers

High-Performance RISC CPU:                                     Peripheral Features:

•  Only 35 Instructions to Learn:                              •  Shunt Voltage Regulator (PIC16HV610/616 only):

   -  All single-cycle instructions except branches               -  5 volt regulation

•  Operating Speed:                                               -  4 mA to 50 mA shunt range

   -  DC – 20 MHz oscillator/clock input                       •  11 I/O Pins and 1 Input Only

   -  DC – 200 ns instruction cycle                               -  High current source/sink for direct LED drive

•  Interrupt Capability                                           -  Interrupt-on-Change pins

•  8-Level Deep Hardware Stack                                    -  Individually programmable weak pull-ups

•  Direct, Indirect and Relative Addressing modes              •  Analog Comparator module with:

                                                                  -  Two analog comparators

Special Microcontroller Features:                                 -  Programmable on-chip voltage reference

                                                                     (CVREF) module (% of VDD)

•  Precision Internal Oscillator:                                 -  Fixed Voltage Reference

   -  Factory calibrated to ±1%, typical                          -  Comparator inputs and outputs externally

   -  User selectable frequency: 4 MHz or 8 MHz                      accessible

•  Power-Saving Sleep mode                                        -  SR Latch

•  Voltage Range:                                                 -  Built-In Hysteresis (user selectable)

   -  PIC16F610/616: 2.0V to 5.5V                              •  Timer0: 8-Bit Timer/Counter with 8-Bit

                                                                  Programmable Prescaler

   -  PIC16HV610/616: 2.0V to user defined                     •  Enhanced Timer1:

      maximum (see note)                                          -  16-bit timer/counter with prescaler

•  Industrial and Extended Temperature Range                      -  External Timer1 Gate (count enable)

•  Power-on Reset (POR)                                           -  Option to use OSC1 and OSC2 in LP mode

•  Power-up Timer (PWRT) and Oscillator Start-up                     as Timer1 oscillator if INTOSC mode

   Timer (OST)                                                       selected

•  Brown-out Reset (BOR)                                          -  Timer1 oscillator

•  Watchdog Timer (WDT) with Independent                       •  In-Circuit Serial ProgrammingTM (ICSPTM) via Two

   Oscillator for Reliable Operation                              Pins

•  Multiplexed Master Clear with Pull-up/Input Pin             PIC16F616/16HV616 only:

•  Programmable Code Protection

•  High Endurance Flash:                                       •  A/D Converter:

   -  100,000 write Flash endurance                               -  10-bit resolution

   -  Flash retention: > 40 years                                 -  8 external input channels

                                                                  -  2 internal reference channels

Low-Power Features:                                            •  Timer2: 8-Bit Timer/Counter with 8-Bit Period

                                                                  Register, Prescaler and Postscaler

•  Standby Current:                                            •  Enhanced Capture, Compare, PWM module:

   -  50 nA @ 2.0V, typical                                       -  16-bit Capture, max. resolution 12.5 ns

•  Operating Current:                                             -  16-bit Compare, max. resolution 200 ns

   -  20 μA @ 32 kHz, 2.0V, typical                               -  10-bit PWM with 1, 2 or 4 output channels,

   -  220 μA @ 4 MHz, 2.0V, typical                                  programmable “dead time”, max. frequency

•  Watchdog Timer Current:                                           20 kHz

   -  1 μA @ 2.0V, typical

   Note:  Voltage        across    internal  shunt  regulator

          cannot exceed 5V.

© 2009 Microchip Technology Inc.                                                                          DS41288F-page 3
PIC16F610/616/16HV610/616

                   Program Memory       Data Memory

Device                                                     I/O                10-bit A/D  Comparators      Timers       Voltage Range

                          Flash         SRAM (bytes)                              (ch)                     8/16-bit

                   (words)

PIC16F610                 1024               64            11                     —             2            1/1            2.0-5.5V

PIC16HV610                1024               64            11                     —             2            1/1     2.0-user defined

PIC16F616                 2048               128           11                     8             2            2/1            2.0-5.5V

PIC16HV616                2048               128           11                     8             2            2/1     2.0-user defined

PIC16F610/16HV610 14-Pin           Diagram (PDIP, SOIC, TSSOP)

                                   VDD                1                       14                VSS

            RA5/T1CKI/OSC1/CLKIN                      2    PIC16F610/16HV610  13                RA0/C1IN+/ICSPDAT

            RA4/T1G/OSC2/CLKOUT                       3                       12                RA1/C12IN0-/ICSPCLK

                          RA3/MCLR/VPP                4                       11                RA2/T0CKI/INT/C1OUT

                                   RC5                5                       10                RC0/C2IN+

                          RC4/C2OUT                   6                       9                 RC1/C12IN1-

                          RC3/C12IN3-                 7                       8                 RC2/C12IN2-

TABLE 1:          PIC16F610/16HV610 14-PIN SUMMARY

I/O         Pin    Comparators               Timer         Interrupts                   Pull-ups                     Basic

RA0         13            C1IN+              —                 IOC                        Y                       ICSPDAT

RA1         12            C12IN0-            —                 IOC                        Y                       ICSPCLK

RA2         11            C1OUT              T0CKI         INT/IOC                        Y                          —

RA3(1)      4                   —            —                 IOC                        Y(2)                    MCLR/VPP

RA4         3                   —            T1G               IOC                        Y                  OSC2/CLKOUT

RA5         2                   —            T1CKI             IOC                        Y                  OSC1/CLKIN

RC0         10            C2IN+              —                    —                       —                          —

RC1         9             C12IN1-            —                    —                       —                          —

RC2         8             C12IN2-            —                    —                       —                          —

RC3         7             C12IN3-            —                    —                       —                          —

RC4         6             C2OUT              —                    —                       —                          —

RC5         5                   —            —                    —                       —                          —

—           1                   —            —                    —                       —                          VDD

—           14                  —            —                    —                       —                          VSS

Note    1:  Input  only.

        2:  Only   when   pin is configured  for external  MCLR.

DS41288F-page 4                                                                                        © 2009 Microchip Technology Inc.
                                                PIC16F610/616/16HV610/616

PIC16F616/16HV616 14-Pin Diagram (PDIP, SOIC, TSSOP)

                                  VDD           1                         14        VSS

               RA5/T1CKI/OSC1/CLKIN             2      PIC16F616/16HV616  13        RA0/AN0/C1IN+/ICSPDAT

      RA4/AN3/T1G/OSC2/CLKOUT                   3                         12        RA1/AN1/C12IN0-/VREF/ICSPCLK

                          RA3/MCLR/VPP          4                         11        RA2/AN2/T0CKI/INT/C1OUT

                          RC5/CCP1/P1A          5                         10        RC0/AN4/C2IN+

                   RC4/C2OUT/P1B                6                         9         RC1/AN5/C12IN1-

                 RC3/AN7/C12IN3-/P1C            7                         8         RC2/AN6/C12IN2-/P1D

TABLE 2:          PIC16F616/16HV616 14-PIN SUMMARY

I/O         Pin    Analog         Comparators   Timer                     CCP       Interrupts  Pull-ups   Basic

RA0         13     AN0            C1IN+         —                         —         IOC         Y         ICSPDAT

RA1         12     AN1/VREF       C12IN0-       —                         —         IOC         Y         ICSPCLK

RA2         11     AN2            C1OUT         T0CKI                     —         INT/IOC     Y          —

RA3(1)      4      —              —             —                         —         IOC         Y(2)      MCLR/VPP

RA4         3      AN3            —             T1G                       —         IOC         Y         OSC2/CLKOUT

RA5         2      —              —             T1CKI                     —         IOC         Y         OSC1/CLKIN

RC0         10     AN4            C2IN+         —                         —         —           —          —

RC1         9      AN5            C12IN1-       —                         —         —           —          —

RC2         8      AN6            C12IN2-       —                         P1D       —           —          —

RC3         7      AN7            C12IN3-       —                         P1C       —           —          —

RC4         6      —              C2OUT         —                         P1B       —           —          —

RC5         5      —              —             —                         CCP1/P1A  —           —          —

—           1      —              —             —                         —         —           —          VDD

—           14     —              —             —                         —         —           —          VSS

Note    1:  Input  only.

        2:  Only   when pin is  configured for  external MCLR.

© 2009 Microchip Technology Inc.                                                                          DS41288F-page 5
PIC16F610/616/16HV610/616

PIC16F610/16HV610 16-Pin Diagram (QFN)

                                                    VDD        NC           NC           VSS

                                                     16        15           14           13

                   RA5/T1CKI/OSC1/CLKIN      1                                                        12  RA0/C1IN+/ICSPDAT

                   RA4/T1G/OSC2/CLKOUT       2       PIC16F610/                                       11  RA1/C12IN0-/ICSPCLK

                          RA3/MCLR/VPP       3       PIC16HV610                                       10  RA2/T0CKI/INT/C1OUT

                                   RC5       4                                                        9   RC0/C2IN1+

                                                     5         6            7            8

                                                    RC4/C2OUT  RC3/C12IN3-  RC2/C12IN2-  RC1/C12IN1-

TABLE 3:          PIC16F610/16HV610 16-PIN SUMMARY

   I/O      Pin    Comparators               Timers                         Interrupts                    Pull-ups             Basic

RA0         12            C1IN+              —                                           IOC              Y                    ICSPDAT

RA1         11            C12IN0-            —                                           IOC              Y                    ICSPCLK

RA2         10            C1OUT              T0CKI                          INT/IOC                       Y                    —

RA3(1)      3             —                  —                                           IOC              Y(2)                 MCLR/VPP

RA4         2             —                  T1G                                         IOC              Y                    OSC2/CLKOUT

RA5         1             —                  T1CKI                                       IOC              Y                    OSC1/CLKIN

RC0         9             C2IN+              —                                           —                —                    —

RC1         8             C12IN1-            —                                           —                —                    —

RC2         7             C12IN2-            —                                           —                —                    —

RC3         6             C12IN3-            —                                           —                —                    —

RC4         5             C2OUT              —                                           —                —                    —

RC5         4             —                  —                                           —                —                    —

—           16            —                  —                                           —                —                    VDD

—           13            —                  —                                           —                —                    VSS

Note    1:  Input  only.

        2:  Only   when   pin is configured  for external      MCLR.

DS41288F-page 6                                                                                                       © 2009 Microchip Technology  Inc.
                                                PIC16F610/616/16HV610/616

PIC16F616/16HV616 16-Pin Diagram (QFN)

                                                   VDD               NC                   NC                   VSS

                                                   16                15                   14                   13

                   RA5/T1CKI/OSC1/CLKIN         1                                                                               12   RA0/AN0/C1IN+/ICSPDAT

                 RA4/AN3/T1G/OSC2/CLKOUT        2                                                                               11   RA1/AN1/C12IN0-/VREF/ICSPCLK

                                                                  PIC16F616/

                          RA3/MCLR/VPP          3                 PIC16HV616                                                    10   RA2/AN2/T0CKI/INT/C1OUT

                           RC5/CCP/P1A          4                                                                               9    RC0/AN4/C2IN1+

                                                   5                 6                    7                    8

                                                   RC4/C2OUT/P1B     RC3/AN7/C12IN3-/P1C  RC2/AN6/C12IN2-/P1D  RC1/AN5/C12IN1-

TABLE 4:          PIC16F616/16HV616 16-PIN SUMMARY

I/O         Pin    Analog         Comparators      Timers                                                                       CCP  Interrupts      Pull-ups      Basic

RA0         12     AN0            C1IN+                           —                                                             —    IOC             Y             ICSPDAT

RA1         11     AN1/VREF       C12IN0-                         —                                                             —    IOC             Y             ICSPCLK

RA2         10     AN2            C1OUT            T0CKI                                                                        —    INT/IOC         Y             —

RA3(1)      3      —              —                               —                                                             —    IOC             Y(2)          MCLR/VPP

RA4         2      AN3            —                T1G                                                                          —    IOC             Y             OSC2/CLKOUT

RA5         1      —              —                T1CKI                                                                        —    IOC             Y             OSC1/CLKIN

RC0         9      AN4            C2IN+                           —                                                             —    —               —             —

RC1         8      AN5            C12IN1-                         —                                                             —    —               —             —

RC2         7      AN6            C12IN2-                         —                                                             P1D  —               —             —

RC3         6      AN7            C12IN3-                         —                                                             P1C  —               —             —

RC4         5      —              C2OUT                           —                                                             P1B  —               —             —

RC5         4      —              —                               —                                            CCP1/P1A              —               —             —

—           16     —              —                               —                                                             —    —               —             VDD

—           13     —              —                               —                                                             —    —               —             VSS

Note    1:  Input  only.

        2:  Only   when pin is  configured for  external MCLR.

© 2009 Microchip Technology Inc.                                                                                                                                   DS41288F-page 7
PIC16F610/616/16HV610/616

Table of Contents

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

2.0   Memory Organization ................................................................................................................................................................ 13

3.0   Oscillator Module ....................................................................................................................................................................... 27

4.0   I/O Ports .................................................................................................................................................................................... 33

5.0   Timer0 Module  .......................................................................................................................................................................... 45

6.0   Timer1 Module with Gate Control .............................................................................................................................................. 49

7.0   Timer2 Module (PIC16F616/16HV616 only) ............................................................................................................................. 55

8.0   Comparator Module ................................................................................................................................................................... 57

9.0   Analog-to-Digital Converter (ADC) Module (PIC16F616/16HV616 only) .................................................................................. 73

10.0  Enhanced Capture/Compare/PWM (With Auto-Shutdown and Dead Band) Module (PIC16F616/16HV616 Only) .................. 85

11.0  Voltage Regulator .................................................................................................................................................................... 107

12.0  Special Features of the CPU ................................................................................................................................................... 109

13.0  Instruction Set Summary .......................................................................................................................................................... 129

14.0  Development Support............................................................................................................................................................... 139

15.0  Electrical Specifications............................................................................................................................................................ 143

16.0  DC and AC Characteristics Graphs and Tables ....................................................................................................................... 173

17.0  Packaging Information.............................................................................................................................................................. 197

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

Appendix B: Migrating from other PIC® Devices................................................................................................................................ 206

Index .................................................................................................................................................................................................  207

The Microchip Web Site ..................................................................................................................................................................... 211

Customer Change Notification Service .............................................................................................................................................. 211

Customer Support .............................................................................................................................................................................. 211

Reader Response .............................................................................................................................................................................. 212

Product Identification System............................................................................................................................................................. 213

Worldwide Sales and Service ............................................................................................................................................................ 214

                                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 or fax the Reader Response Form in the back of this data sheet to (480) 792-4150. We

welcome your feedback.

Most Current Data Sheet

To obtain the most up-to-date version of this data sheet, please register at our Worldwide Web site at:

      http://www.microchip.com

You can determine the version of a data sheet by examining its literature number found on the bottom outside corner of any page.

The last character of the literature number is the version number, (e.g., DS30000A is version A of document DS30000).

Errata

An errata sheet, describing minor operational differences from the data sheet and recommended workarounds, may exist for current

devices. As device/documentation issues become known to us, we will publish an errata sheet. The errata will specify the revision of

silicon and revision of document to which it applies.

To determine if an errata sheet exists for a particular device, please check with one of the following:

•    Microchip’s Worldwide Web site; http://www.microchip.com

•    Your local Microchip sales office (see last page)

When contacting a sales office, please specify which device, revision of silicon and data sheet (include literature number) you are

using.

Customer Notification System

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

DS41288F-page 8                                                                                          © 2009 Microchip Technology Inc.
                                                      PIC16F610/616/16HV610/616

1.0  DEVICE OVERVIEW

The PIC16F610/616/16HV610/616 is covered by this

data sheet. It is available in 14-pin PDIP, SOIC, TSSOP

and 16-pin QFN packages.

Block Diagrams and pinout descriptions of the devices

are as follows:

•  PIC16F610/16HV610 (Figure 1-1, Table 1-1)

•  PIC16F616/16HV616 (Figure 1-2, Table 1-2)

FIGURE 1-1:           PIC16F610/16HV610 BLOCK                            DIAGRAM

                                                        INT

                           Configuration

                                                  13                              Data Bus                            8                                   PORTA

                                                      Program Counter                                                                                            RA0

                             Flash

                             1K X 14                                                                                                                             RA1

                             Program                                                 RAM                                                                         RA2

                             Memory                   8-Level Stack               64 Bytes                                                                       RA3

                                                        (13-Bit)                     File                                                                        RA4

                                                                                  Registers                                                                      RA5

                 Program     14

                 Bus                                                     RAM   Addr           9

                          Instruction Reg                                         Addr MUX

                                                                                                        Indirect                                          PORTC

                                                      Direct Addr     7                    8            Addr

                                                                                                                                                                 RC0

                                                                                           FSR Reg                                                               RC1

                                                                                                                                                                 RC2

                                                                                     STATUS Reg                                                                  RC3

                                           8                                                                                                                     RC4

                                                                                                                                                                 RC5

                                                      Power-up                 3              MUX

                                                        Timer

                             Instruction              Oscillator

                           Decode and                 Start-up Timer                 ALU

                             Control                  Power-on

                                                        Reset            8

     OSC1/CLKIN              Timing                   Watchdog                       W Reg

                             Generation                 Timer

                                                      Brown-out

   OSC2/CLKOUT                                          Reset

                 Internal                                                         Shunt Regulator

                 Oscillator

                 Block                                                            (PIC16HV610 only)

                                                  MCLR  VDD        VSS

     T1G

     T1CKI

                                          Timer0             Timer1

     T0CKI

                                                  Comparator Voltage Reference                   2 Analog Comparators

                                                      Fixed Voltage Reference

                                                                                                 C2OUT  C2IN+  C1OUT  C12IN3-  C12IN2-  C12IN1-  C12IN0-  C1IN+

© 2009 Microchip Technology Inc.                                                                                                                                 DS41288F-page 9
PIC16F610/616/16HV610/616

FIGURE 1-2:                    PIC16F616/16HV616 BLOCK DIAGRAM

                                                                 INT

                                    Configuration

                                                           13                              Data Bus                            8                                   PORTA

                                                               Program Counter                                                                                             RA0

                                         Flash

                                         2K X 14                                                                                                                           RA1

                                         Program                                              RAM                                                                          RA2

                                         Memory                8-Level Stack               128 Bytes                                                                       RA3

                                                                 (13-Bit)                     File                                                                         RA4

                                                                                           Registers                                                                       RA5

                Program             14

                     Bus                                                          RAM   Addr           9

                               Instruction Reg                                             Addr MUX

                                                                                                                 Indirect                                          PORTC

                                                               Direct Addr     7                    8

                                                                                                                 Addr                                                      RC0

                                                                                                    FSR Reg                                                                RC1

                                                                                                                                                                           RC2

                                                                                              STATUS Reg                                                                   RC3

                                                   8                                                                                                                       RC4

                                                                                                                                                                           RC5

                                                               Power-up                 3              MUX

                                                                 Timer

                                    Instruction                Oscillator

                                    Decode and                 Start-up Timer                 ALU

                                         Control               Power-on

                                                                 Reset            8

OSC1/CLKIN                               Timing                Watchdog                       W Reg

                                    Generation                   Timer

                                                               Brown-out

OSC2/CLKOUT                                                      Reset

                     Internal                                                              Shunt Regulator

                     Oscillator

                     Block                                                                 (PIC16HV616 only)

      T1G                                                  MCLR  VDD        VSS

T1CKI

                                                   Timer0             Timer1                  Timer2

T0CKI

                                                           Comparator Voltage Reference                   2 Analog Comparators

           Analog-To-Digital Converter                                                                                                                                     ECCP

                                                               Fixed Voltage Reference

VREF       AN7  AN6  AN5  AN4  AN3  AN2  AN1  AN0                                                         C2OUT  C2IN+  C1OUT  C12IN3-  C12IN2-  C12IN1-  C12IN0-  C1IN+   P1D  P1C  P1B  CCP1/P1A

DS41288F-page 10                                                                                                                                                   © 2009  Microchip Technology     Inc.
                                                      PIC16F610/616/16HV610/616

TABLE 1-1:          PIC16F610/16HV610 PINOUT DESCRIPTION

                 Name                            Function     Input     Output                            Description

                                                              Type      Type

RA0/C1IN+/ICSPDAT                                RA0          TTL       CMOS    PORTA I/O with prog. pull-up and interrupt-on-change

                                                 C1IN+        AN        —       Comparator C1 non-inverting input

                                                 ICSPDAT      ST        CMOS    Serial Programming Data I/O

RA1/C12IN0-/ICSPCLK                              RA1          TTL       CMOS    PORTA I/O with prog. pull-up and interrupt-on-change

                                                 C12IN0-      AN        —       Comparators C1 and C2 inverting input

                                                 ICSPCLK      ST        —       Serial Programming Clock

RA2/T0CKI/INT/C1OUT                              RA2          ST        CMOS    PORTA I/O with prog. pull-up and interrupt-on-change

                                                 T0CKI        ST        —       Timer0 clock input

                                                 INT          ST        —       External Interrupt

                                                 C1OUT        —         CMOS    Comparator C1 output

RA3/MCLR/VPP                                     RA3          TTL       —       PORTA input with interrupt-on-change

                                                 MCLR         ST        —       Master Clear w/internal pull-up

                                                 VPP          HV        —       Programming voltage

RA4/T1G/OSC2/CLKOUT                              RA4          TTL       CMOS    PORTA I/O with prog. pull-up and interrupt-on-change

                                                 T1G          ST        —       Timer1 gate (count enable)

                                                 OSC2         —         XTAL    Crystal/Resonator

                                                 CLKOUT       —         CMOS    FOSC/4 output

RA5/T1CKI/OSC1/CLKIN                             RA5          TTL       CMOS    PORTA I/O with prog. pull-up and interrupt-on-change

                                                 T1CKI        ST        —       Timer1 clock input

                                                 OSC1         XTAL      —       Crystal/Resonator

                                                 CLKIN        ST        —       External clock input/RC oscillator connection

RC0/C2IN+                                        RC0          TTL       CMOS    PORTC I/O

                                                 C2IN+        AN        —       Comparator C2 non-inverting input

RC1/C12IN1-                                      RC1          TTL       CMOS    PORTC I/O

                                                 C12IN1-      AN        —       Comparators C1 and C2 inverting input

RC2/C12IN2-                                      RC2          TTL       CMOS    PORTC I/O

                                                 C12IN2-      AN        —       Comparators C1 and C2 inverting input

RC3/C12IN3-                                      RC3          TTL       CMOS    PORTC I/O

                                                 C12IN3-      AN        —       Comparators C1 and C2 inverting input

RC4/C2OUT                                        RC4          TTL       CMOS    PORTC I/O

                                                 C2OUT        —         CMOS    Comparator C2 output

RC5                                              RC5          TTL       CMOS    PORTC I/O

VDD                                              VDD          Power     —       Positive supply

VSS                                              VSS          Power     —       Ground reference

Legend:      AN  =  Analog input or  output                   CMOS =    CMOS compatible input or output  HV      =  High Voltage

             ST  =  Schmitt Trigger  input with  CMOS levels  TTL    =  TTL compatible input             XTAL    =  Crystal

© 2009 Microchip Technology Inc.                                                                                               DS41288F-page 11
PIC16F610/616/16HV610/616

TABLE 1-2:          PIC16F616/16HV616 PINOUT DESCRIPTION

                 Name                            Function     Input     Output                            Description

                                                              Type      Type

RA0/AN0/C1IN+/ICSPDAT                            RA0          TTL       CMOS    PORTA I/O with prog. pull-up and interrupt-on-change

                                                 AN0          AN        —       A/D Channel 0 input

                                                 C1IN+        AN        —       Comparator C1 non-inverting input

                                                 ICSPDAT      ST        CMOS    Serial Programming Data I/O

RA1/AN1/C12IN0-/VREF/ICSPCLK                     RA1          TTL       CMOS    PORTA I/O with prog. pull-up and interrupt-on-change

                                                 AN1          AN        —       A/D Channel 1 input

                                                 C12IN0-      AN        —       Comparators C1 and C2 inverting input

                                                 VREF         AN        —       External Voltage Reference for A/D

                                                 ICSPCLK      ST        —       Serial Programming Clock

RA2/AN2/T0CKI/INT/C1OUT                          RA2          ST        CMOS    PORTA I/O with prog. pull-up and interrupt-on-change

                                                 AN2          AN        —       A/D Channel 2 input

                                                 T0CKI        ST        —       Timer0 clock input

                                                 INT          ST        —       External Interrupt

                                                 C1OUT        —         CMOS    Comparator C1 output

RA3/MCLR/VPP                                     RA3          TTL       —       PORTA input with interrupt-on-change

                                                 MCLR         ST        —       Master Clear w/internal pull-up

                                                 VPP          HV        —       Programming voltage

RA4/AN3/T1G/OSC2/CLKOUT                          RA4          TTL       CMOS    PORTA I/O with prog. pull-up and interrupt-on-change

                                                 AN3          AN        —       A/D Channel 3 input

                                                 T1G          ST        —       Timer1 gate (count enable)

                                                 OSC2         —         XTAL    Crystal/Resonator

                                                 CLKOUT       —         CMOS    FOSC/4 output

RA5/T1CKI/OSC1/CLKIN                             RA5          TTL       CMOS    PORTA I/O with prog. pull-up and interrupt-on-change

                                                 T1CKI        ST        —       Timer1 clock input

                                                 OSC1         XTAL      —       Crystal/Resonator

                                                 CLKIN        ST        —       External clock input/RC oscillator connection

RC0/AN4/C2IN+                                    RC0          TTL       CMOS    PORTC I/O

                                                 AN4          AN        —       A/D Channel 4 input

                                                 C2IN+        AN        —       Comparator C2 non-inverting input

RC1/AN5/C12IN1-                                  RC1          TTL       CMOS    PORTC I/O

                                                 AN5          AN        —       A/D Channel 5 input

                                                 C12IN1-      AN        —       Comparators C1 and C2 inverting input

RC2/AN6/C12IN2-/P1D                              RC2          TTL       CMOS    PORTC I/O

                                                 AN6          AN        —       A/D Channel 6 input

                                                 C12IN2-      AN        —       Comparators C1 and C2 inverting input

                                                 P1D          —         CMOS    PWM output

RC3/AN7/C12IN3-/P1C                              RC3          TTL       CMOS    PORTC I/O

                                                 AN7          AN        —       A/D Channel 7 input

                                                 C12IN3-      AN        —       Comparators C1 and C2 inverting input

                                                 P1C          —         CMOS    PWM output

RC4/C2OUT/P1B                                    RC4          TTL       CMOS    PORTC I/O

                                                 C2OUT        —         CMOS    Comparator C2 output

                                                 P1B          —         CMOS    PWM output

RC5/CCP1/P1A                                     RC5          TTL       CMOS    PORTC I/O

                                                 CCP1         ST        CMOS    Capture input/Compare output

                                                 P1A          —         CMOS    PWM output

VDD                                              VDD          Power     —       Positive supply

VSS                                              VSS          Power     —       Ground reference

Legend:  AN =       Analog input or  output                   CMOS =    CMOS compatible input or output  HV      =  High Voltage

         ST      =  Schmitt Trigger  input with  CMOS levels  TTL    =  TTL compatible input             XTAL    =  Crystal

DS41288F-page 12                                                                                            © 2009 Microchip Technology  Inc.
                                                    PIC16F610/616/16HV610/616

2.0      MEMORY ORGANIZATION                                    FIGURE 2-2:     PROGRAM MEMORY MAP

                                                                                AND STACK FOR THE

2.1      Program Memory Organization                                            PIC16F616/16HV616

The    PIC16F610/616/16HV610/616             has    a   13-bit                  PC<12:0>

program counter capable of addressing an 8K x 14                CALL,  RETURN                  13

program     memory   space.    Only     the  first  1K  x  14   RETFIE,  RETLW

(0000h-3FF) for the PIC16F610/16HV610 and the first

2K x 14 (0000h-07FFh) for the PIC16F616/16HV616 is                              Stack Level 1

physically implemented. Accessing a location above                              Stack Level 2

these boundaries will cause a wraparound within the

first 1K x 14 space (PIC16F610/16HV610) and 2K x 14

space (PIC16F616/16HV616). The Reset vector is at                               Stack Level 8

0000h  and    the   interrupt  vector   is   at  0004h  (see

Figure 2-1).                                                                    Reset Vector       0000h

FIGURE 2-1:          PROGRAM MEMORY MAP

                     AND STACK FOR THE

                     PIC16F610/16HV610                                          Interrupt Vector   0004h

                                                                                                   0005h

                     PC<12:0>

     CALL,  RETURN                  13                                          On-chip Program

     RETFIE,  RETLW                                                             Memory

                                                                                                   07FFh

                     Stack Level 1                                                                 0800h

                     Stack Level 2

                     Stack Level 8                                                                 1FFFh

                     Reset Vector                0000h

                     Interrupt Vector            0004h

                                                 0005h

                     On-chip Program

                     Memory

                                                 03FFh

                                                 0400h

                                                 1FFFh

© 2009 Microchip Technology Inc.                                                                   DS41288F-page 13
PIC16F610/616/16HV610/616

2.2        Data Memory Organization                             2.2.1  GENERAL PURPOSE REGISTER

The data memory (see Figure 2-4) is partitioned into                   FILE

two  banks,  which     contain    the      General    Purpose   The    register  file  is  organized  as   64 x 8  in     the

Registers (GPR) and the Special Function Registers              PIC16F610/16HV610          and        128 x 8  in         the

(SFR). The Special Function Registers are located in            PIC16F616/16HV616.         Each  register  is  accessed,

the  first   32        locations       of       each  bank.     either directly or indirectly, through the File Select Reg-

PIC16F610/16HV610      Register   locations     40h-7Fh    in   ister (FSR) (see Section 2.4 “Indirect Addressing,

Bank 0 are General Purpose Registers, implemented               INDF and FSR Registers”).

as   static  RAM.      PIC16F616/16HV616              Register  2.2.2  SPECIAL FUNCTION REGISTERS

locations 20h-7Fh in Bank 0 and A0h-BFh in Bank 1

are General Purpose Registers, implemented as static            The Special Function Registers are registers used by

RAM. Register locations F0h-FFh in Bank 1 point to              the CPU and peripheral functions for controlling the

addresses    70h-7Fh   in   Bank 0.    All  other     RAM  is   desired operation of the device (see Table 2-1). These

unimplemented and returns ‘0’ when read. The RP0 bit            registers are static RAM.

of the STATUS register is the bank select bit.                  The special registers can be classified into two sets:

RP0                                                             core and peripheral. The Special Function Registers

0    →       Bank 0 is selected                                 associated with the “core” are described in this section.

1    →       Bank 1 is selected                                 Those related to the operation of the peripheral features

                                                                are described in the section of that peripheral feature.

    Note:    The  IRP  and  RP1   bits      of  the   STATUS

             register are reserved and should always be

             maintained as ‘0’s.

DS41288F-page 14                                                                           © 2009 Microchip Technology Inc.
                                                       PIC16F610/616/16HV610/616

FIGURE 2-3:        DATA MEMORY MAP OF                           FIGURE 2-4:        DATA MEMORY MAP OF

                   THE PIC16F610/16HV610                                           THE PIC16F616/16HV616

                   File                                File                        File                                File

                   Address                             Address                     Address                             Address

Indirect Addr.(1)  00h              Indirect Addr.(1)  80h      Indirect Addr.(1)  00h              Indirect Addr.(1)  80h

      TMR0         01h              OPTION_REG         81h            TMR0         01h              OPTION_REG         81h

      PCL          02h              PCL                82h            PCL          02h              PCL                82h

      STATUS       03h              STATUS             83h            STATUS       03h              STATUS             83h

      FSR          04h              FSR                84h            FSR          04h              FSR                84h

      PORTA        05h              TRISA              85h            PORTA        05h              TRISA              85h

                   06h                                 86h                         06h                                 86h

      PORTC        07h              TRISC              87h            PORTC        07h              TRISC              87h

                   08h                                 88h                         08h                                 88h

                   09h                                 89h                         09h                                 89h

      PCLATH       0Ah              PCLATH             8Ah            PCLATH       0Ah              PCLATH             8Ah

      INTCON       0Bh              INTCON             8Bh            INTCON       0Bh              INTCON             8Bh

      PIR1         0Ch              PIE1               8Ch            PIR1         0Ch              PIE1               8Ch

                   0Dh                                 8Dh                         0Dh                                 8Dh

      TMR1L        0Eh              PCON               8Eh            TMR1L        0Eh              PCON               8Eh

      TMR1H        0Fh                                 8Fh            TMR1H        0Fh                                 8Fh

      T1CON        10h              OSCTUNE            90h            T1CON        10h              OSCTUNE            90h

                   11h              ANSEL              91h            TMR2         11h              ANSEL              91h

                   12h                                 92h            T2CON        12h              PR2                92h

                   13h                                 93h            CCPR1L       13h                                 93h

                   14h                                 94h            CCPR1H       14h                                 94h

                   15h              WPUA               95h            CCP1CON      15h              WPUA               95h

                   16h              IOCA               96h      PWM1CON            16h              IOCA               96h

                   17h                                 97h            ECCPAS       17h                                 97h

                   18h                                 98h                         18h                                 98h

      VRCON        19h              SRCON0             99h            VRCON        19h              SRCON0             99h

      CM1CON0      1Ah              SRCON1             9Ah            CM1CON0      1Ah              SRCON1             9Ah

      CM2CON0      1Bh                                 9Bh            CM2CON0      1Bh                                 9Bh

      CM2CON1      1Ch                                 9Ch            CM2CON1      1Ch                                 9Ch

                   1Dh                                 9Dh                         1Dh                                 9Dh

                   1Eh                                 9Eh            ADRESH       1Eh              ADRESL             9Eh

                   1Fh                                 9Fh            ADCON0       1Fh              ADCON1             9Fh

                   20h                                 A0h                         20h              General            A0h

                                                                                                    Purpose

                                                                                                    Registers

                                                                      General                       32 Bytes           BFh

                   3Fh                                                Purpose                                          C0h

                   40h                                                Registers

                                                                      96 Bytes

      General

      Purpose

      Registers

      64 Bytes

                   6Fh

Accesses 70h-7Fh   70h            Accesses 70h-7Fh     F0h                                  Accesses 70h-7Fh           F0h

                   7Fh                                 FFh                         7Fh                                 FFh

      Bank 0                        Bank 1                            Bank 0                        Bank 1

Unimplemented data memory locations, read as ‘0’.               Unimplemented data memory locations, read as ‘0’.

Note  1:  Not a physical register.                              Note  1:  Not a physical register.

© 2009 Microchip Technology Inc.                                                                    DS41288F-page 15
PIC16F610/616/16HV610/616

TABLE 2-1:           PIC16F610/616/16HV610/616 SPECIAL FUNCTION REGISTERS SUMMARY BANK 0

Addr        Name     Bit 7          Bit 6      Bit 5       Bit 4                Bit 3   Bit 2                  Bit 1      Bit 0    Value on    Page

                                                                                                                                   POR, BOR

Bank 0

00h     INDF         Addressing this location uses contents of FSR to address data memory (not a physical register)                xxxx  xxxx  24,   116

01h     TMR0         Timer0 Module’s Register                                                                                      xxxx  xxxx  45,   116

02h     PCL          Program Counter’s (PC) Least Significant Byte                                                                 0000  0000  24,   116

03h     STATUS       IRP(1)        RP1(1)      RP0         TO                   PD      Z                      DC         C        0001  1xxx  18,   116

04h     FSR          Indirect Data Memory Address Pointer                                                                          xxxx  xxxx  24,   116

05h     PORTA        —                 —       RA5         RA4                  RA3     RA2                    RA1        RA0      --x0  x000  33,   116

06h           —      Unimplemented                                                                                                 —           —

07h     PORTC        —                 —       RC5         RC4                  RC3     RC2                    RC1        RC0      --xx  00xx  42,   116

08h           —      Unimplemented                                                                                                 —           —

09h           —      Unimplemented                                                                                                 —           —

0Ah     PCLATH       —                 —       —                    Write Buffer for upper 5 bits of Program Counter               ---0  0000  24,   116

0Bh     INTCON       GIE            PEIE       T0IE        INTE                 RAIE    T0IF                   INTF       RAIF     0000  0000  20,   116

0Ch     PIR1         —             ADIF(2)     CCP1IF(2)   C2IF                 C1IF    —                      TMR2IF(2)  TMR1IF   -000  0-00  22,   116

0Dh           —      Unimplemented                                                                                                 —           —

0Eh     TMR1L        Holding Register for the Least Significant Byte of the 16-bit TMR1 Register                                   xxxx  xxxx  49,   116

0Fh     TMR1H        Holding Register for the Most Significant Byte of the 16-bit TMR1 Register                                    xxxx  xxxx  49,   116

10h     T1CON        T1GINV        TMR1GE      T1CKPS1     T1CKPS0  T1OSCEN             T1SYNC                 TMR1CS     TMR1ON   0000  0000  52,   116

11h     TMR2(2)      Timer2 Module Register                                                                                        0000  0000  55,   116

12h     T2CON(2)     —             TOUTPS3     TOUTPS2     TOUTPS1  TOUTPS0             TMR2ON                 T2CKPS1    T2CKPS0  -000  0000  56,   116

13h     CCPR1L(2)    Capture/Compare/PWM Register 1 Low Byte                                                                       xxxx  xxxx  86,   116

14h     CCPR1H(2)    Capture/Compare/PWM Register 1 High Byte                                                                      xxxx  xxxx  86,   116

15h     CCP1CON(2)   P1M1           P1M0       DC1B1       DC1B0                CCP1M3  CCP1M2                 CCP1M1     CCP1M0   0000  0000  85,   116

16h     PWM1CON(2)   PRSEN         PDC6        PDC5        PDC4                 PDC3    PDC2                   PDC1       PDC0     0000  0000  85,   116

17h     ECCPAS(2)    ECCPASE       ECCPAS2     ECCPAS1     ECCPAS0              PSSAC1  PSSAC0                 PSSBD1     PSSBD0   0000  0000  102,  116

18h           —      Unimplemented                                                                                                 —           —

19h     VRCON        C1VREN        C2VREN      VRR         FVREN                VR3     VR2                    VR1        VR0      0000  0000  72,   116

1Ah     CM1CON0      C1ON          C1OUT       C1OE        C1POL                —       C1R                    C1CH1      C1CH0    0000  -000  62,   116

1Bh     CM2CON0      C2ON          C2OUT       C2OE        C2POL                —       C2R                    C2CH1      C2CH0    0000  -000  63,   116

1Ch     CM2CON1      MC1OUT        MC2OUT      —           T1ACS                C1HYS   C2HYS                  T1GSS      C2SYNC   00-0  0010  65,   116

1Dh           —      Unimplemented                                                                                                 —           —

1Eh     ADRESH(2,3)  Most Significant 8 bits of the left shifted A/D result or 2 bits of right shifted result                      xxxx  xxxx  80,   116

1Fh     ADCON0(2)    ADFM          VCFG        CHS3        CHS2                 CHS1    CHS0                   GO/DONE    ADON     0000  0000  78,   116

Legend:       – = Unimplemented locations read as ‘0’, u = unchanged, x = unknown, q = value depends on condition, shaded = unimplemented

Note    1:    IRP and RP1 bits are reserved, always maintain these bits clear.

        2:    PIC16F616/16HV616 only.

        3:    Read-only register.

DS41288F-page 16                                                                                                          © 2009 Microchip Technology Inc.
                                                     PIC16F610/616/16HV610/616

TABLE 2-2:            PIC16F610/616/16HV610/616 SPECIAL FUNCTION REGISTERS SUMMARY BANK 1

Addr          Name    Bit 7             Bit 6    Bit 5      Bit 4                Bit 3       Bit 2               Bit 1      Bit 0    Value on    Page

                                                                                                                                     POR, BOR

Bank 1

80h      INDF         Addressing this location uses contents of FSR to address data memory (not a physical register)                 xxxx  xxxx  24,  116

81h      OPTION_REG   RAPU          INTEDG       T0CS       T0SE                 PSA         PS2                 PS1        PS0      1111  1111  19,  116

82h      PCL          Program Counter’s (PC) Least Significant Byte                                                                  0000  0000  24,  116

83h      STATUS       IRP(1)            RP1(1)   RP0        TO                   PD          Z                   DC         C        0001  1xxx  18,  116

84h      FSR          Indirect Data Memory Address Pointer                                                                           xxxx  xxxx  24,  116

85h      TRISA        —                 —        TRISA5     TRISA4               TRISA3      TRISA2              TRISA1     TRISA0   --11  1111  33,  116

86h              —    Unimplemented                                                                                                  —           —

87h      TRISC        —                 —        TRISC5     TRISC4               TRISC3      TRISC2              TRISC1     TRISC0   --11  1111  42,  116

88h              —    Unimplemented                                                                                                  —           —

89h              —    Unimplemented                                                                                                  —           —

8Ah      PCLATH       —                 —            —               Write Buffer for upper 5 bits of Program Counter                ---0  0000  24,  116

8Bh      INTCON       GIE               PEIE     T0IE       INTE                 RAIE        T0IF                INTF       RAIF     0000  0000  20,  116

8Ch      PIE1         —                 ADIE(3)  CCP1IE(3)  C2IE                 C1IE        —                   TMR2IE(3)  TMR1IE   -000  0-00  21,  116

8Dh              —    Unimplemented                                                                                                  —           —

8Eh      PCON         —                 —            —      —                    —           —                   POR        BOR      ----  --qq  23,  116

8Fh              —    Unimplemented                                                                                                  —           —

90h      OSCTUNE      —                 —            —      TUN4                 TUN3        TUN2                TUN1       TUN0     ---0  0000  31,  117

91h      ANSEL        ANS7              ANS6     ANS5       ANS4                 ANS3(3)     ANS2(3)             ANS1       ANS0     1111  1111  34,  117

92h      PR2(3)       Timer2 Module Period Register                                                                                  1111  1111  55,  117

93h              —    Unimplemented                                                                                                  —           —

94h              —    Unimplemented                                                                                                  —           —

95h      WPUA         —                 —        WPUA5      WPUA4                —           WPUA2               WPUA1      WPUA0    --11  -111  35,  117

96h      IOCA         —                 —        IOCA5      IOCA4                IOCA3       IOCA2               IOCA1      IOCA0    --00  0000  35,  117

97h              —    Unimplemented                                                                                                  —           —

98h              —    Unimplemented                                                                                                  —           —

99h      SRCON0       SR1               SR0      C1SEN      C2REN                PULSS       PULSR               —          SRCLKEN  0000  00-0  69,  117

9Ah      SRCON1       SRCS1             SRCS0        —      —                    —           —                   —          —        00--  ----  69,  117

9Bh              —    Unimplemented                                                                                                  —           —

9Ch              —    Unimplemented                                                                                                  —           —

9Dh              —    Unimplemented                                                                                                  —           —

9Eh      ADRESL(3,4)  Least Significant 2 bits of the left shifted result or 8 bits of the right shifted result                      xxxx  xxxx  80,  117

9Fh      ADCON1(3)    —                 ADCS2    ADCS1      ADCS0                —           —                   —          —        -000  ----  79,  117

Legend:        – = Unimplemented locations read as ‘0’, u = unchanged, x = unknown, q = value depends on condition, shaded = unimplemented

Note    1:     IRP and RP1 bits are reserved, always maintain these bits clear.

        2:     RA3 pull-up is enabled when MCLRE is ‘1’ in the Configuration Word register.

        3:     PIC16F616/16HV616 only.

        4:     Read-only Register.

© 2009 Microchip Technology Inc.                                                                                                     DS41288F-page 17
PIC16F610/616/16HV610/616

2.2.2.1           STATUS Register                                                   It is recommended, therefore, that only BCF,                BSF,

The STATUS register, shown in Register 2-1, contains:                               SWAPF and MOVWF instructions are used to alter the

                                                                                    STATUS register, because these instructions do not

•  the arithmetic status of the ALU                                                 affect any Status bits. For other instructions not affect-

•  the Reset status                                                                 ing any Status bits, see the Section 13.0 “Instruction

•  the bank select bits for data memory (RAM)                                       Set Summary”.

The STATUS register can be the destination for any                                  Note 1:       Bits IRP and RP1 of the STATUS register

instruction,      like  any  other   register.  If  the     STATUS                                are        not      used               by         the

register is the destination for an instruction that affects                                       PIC16F610/616/16HV610/616                         and

the Z, DC or C bits, then the write to these three bits is                                        should   be      maintained  as    clear.  Use    of

disabled. These bits are set or cleared according to the                                          these bits is not recommended, since this

device logic. Furthermore, the TO and PD bits are not                                             may      affect  upward      compatibility        with

writable. Therefore, the result of an instruction with the                                        future products.

STATUS register as destination may be different than                                          2:  The C and DC bits operate as a Borrow

intended.                                                                                         and Digit Borrow out bit, respectively, in

For example, CLRF STATUS, will clear the upper three                                              subtraction. See the SUBLW and SUBWF

bits and set the Z bit. This leaves the STATUS register                                           instructions for examples.

as ‘000u        u1uu’ (where u = unchanged).

REGISTER 2-1:                STATUS: STATUS REGISTER

        Reserved        Reserved            R/W-0              R-1                  R-1           R/W-x               R/W-x                  R/W-x

           IRP               RP1            RP0                TO                   PD                  Z             DC                     C

   bit 7                                                                                                                                            bit 0

   Legend:

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

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

   bit  7               IRP: This bit is reserved and should be maintained as ‘0’

   bit  6               RP1: This bit is reserved and should be maintained as ‘0’

   bit  5               RP0: Register Bank Select bit (used for direct addressing)

                        1 = Bank 1 (80h – FFh)

                        0 = Bank 0 (00h – 7Fh)

   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/Borrow bit (ADDWF, ADDLW,SUBLW,SUBWF instructions),             For  Borrow,  the  polarity  is  reversed.

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

DS41288F-page 18                                                                                               © 2009 Microchip Technology Inc.
                                              PIC16F610/616/16HV610/616

2.2.2.2        OPTION Register

The OPTION register is a readable and writable regis-             Note:  To achieve a 1:1 prescaler assignment for

ter, which contains various control bits to configure:                   Timer0, assign the prescaler to the WDT

                                                                         by setting PSA bit to ‘1’ of the OPTION

•  Timer0/WDT prescaler                                                  register.            See  Section 5.1.3  “Software

•  External RA2/INT interrupt                                            Programmable Prescaler”.

•  Timer0

•  Weak pull-ups on PORTA

REGISTER 2-2:         OPTION_REG: OPTION REGISTER

        R/W-1         R/W-1            R/W-1            R/W-1     R/W-1                R/W-1         R/W-1             R/W-1

        RAPU          INTEDG           T0CS             T0SE      PSA                  PS2           PS1               PS0

   bit 7                                                                                                                    bit 0

   Legend:

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

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

   bit  7      RAPU: PORTA Pull-up Enable bit

               1 = PORTA pull-ups are disabled

               0 = PORTA pull-ups are enabled by individual PORT latch   values

   bit  6      INTEDG: Interrupt Edge Select bit

               1 = Interrupt on rising edge of RA2/INT pin

               0 = Interrupt on falling edge of RA2/INT pin

   bit  5      T0CS: Timer0 Clock Source Select bit

               1 = Transition on RA2/T0CKI pin

               0 = Internal instruction cycle clock (FOSC/4)

   bit  4      T0SE: Timer0 Source Edge Select bit

               1 = Increment on high-to-low transition on RA2/T0CKI pin

               0 = Increment on low-to-high transition on RA2/T0CKI pin

   bit  3      PSA: Prescaler Assignment bit

               1 = Prescaler is assigned to the WDT

               0 = Prescaler is assigned to the Timer0 module

   bit  2-0    PS<2:0>: Prescaler Rate Select bits

                             BIT VALUE  TIMER0 RATE     WDT RATE

                                  000        1:2        1:1

                                  001        1:4        1:2

                                  010        1:8        1:4

                                  011        1 : 16     1:8

                                  100        1 : 32     1 : 16

                                  101        1 : 64     1 : 32

                                  110        1 : 128    1 : 64

                                  111        1 : 256    1 : 128

© 2009 Microchip Technology Inc.                                                                            DS41288F-page 19
PIC16F610/616/16HV610/616

2.2.2.3      INTCON Register

The     INTCON  register  is     a  readable  and     writable    Note:  Interrupt flag bits are set when an interrupt

register, which contains the various enable and flag bits                condition occurs, regardless of the state of

for  TMR0    register  overflow,    PORTA     change  and                its corresponding enable bit or the global

external RA2/INT pin interrupts.                                         enable bit, GIE of the INTCON register.

                                                                         User         software      should    ensure       the

                                                                         appropriate         interrupt  flag  bits  are  clear

                                                                         prior to enabling an interrupt.

REGISTER 2-3:          INTCON: INTERRUPT CONTROL REGISTER

     R/W-0             R/W-0        R/W-0             R/W-0       R/W-0               R/W-0         R/W-0           R/W-0

        GIE            PEIE         T0IE              INTE        RAIE                T0IF          INTF            RAIF

bit 7                                                                                                                    bit 0

Legend:

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

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

bit  7          GIE: Global Interrupt Enable bit

                1 = Enables all unmasked interrupts

                0 = Disables all interrupts

bit  6          PEIE: Peripheral Interrupt Enable bit

                1 = Enables all unmasked peripheral interrupts

                0 = Disables all peripheral interrupts

bit  5          T0IE: Timer0 Overflow Interrupt Enable bit

                1 = Enables the Timer0 interrupt

                0 = Disables the Timer0 interrupt

bit  4          INTE: RA2/INT External Interrupt Enable bit

                1 = Enables the RA2/INT external interrupt

                0 = Disables the RA2/INT external interrupt

bit  3          RAIE: PORTA Change Interrupt Enable bit(1)

                1 = Enables the PORTA change interrupt

                0 = Disables the PORTA change interrupt

bit  2          T0IF: Timer0 Overflow Interrupt Flag bit(2)

                1 = Timer0 register has overflowed (must be cleared in software)

                0 = Timer0 register did not overflow

bit  1          INTF: RA2/INT External Interrupt Flag bit

                1 = The RA2/INT external interrupt occurred (must be cleared in software)

                0 = The RA2/INT external interrupt did not occur

bit  0          RAIF: PORTA Change Interrupt Flag bit

                1 = When at least one of the PORTA <5:0> pins changed state (must be cleared            in  software)

                0 = None of the PORTA <5:0> pins have changed state

Note    1:   IOCA register must also be enabled.

        2:   T0IF bit is set when TMR0 rolls over. TMR0 is unchanged on Reset and should be initialized before

             clearing T0IF bit.

DS41288F-page 20                                                                             © 2009 Microchip Technology Inc.
                                              PIC16F610/616/16HV610/616

2.2.2.4       PIE1 Register

The     PIE1  register  contains  the  peripheral   interrupt    Note:  Bit PEIE of the INTCON register must be

enable bits, as shown in Register 2-4.                                  set to enable any peripheral interrupt.

REGISTER 2-4:           PIE1: PERIPHERAL INTERRUPT ENABLE REGISTER 1

        U-0             R/W-0          R/W-0        R/W-0      R/W-0                 U-0             R/W-0               R/W-0

        —               ADIE(1)   CCP1IE(1)         C2IE       C1IE                  —               TMR2IE(1)  TMR1IE

bit 7                                                                                                                    bit    0

Legend:

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

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

bit  7        Unimplemented: Read as ‘0’

bit  6        ADIE: A/D Converter (ADC) Interrupt Enable bit(1)

              1 = Enables the ADC interrupt

              0 = Disables the ADC interrupt

bit  5        CCP1IE: CCP1 Interrupt Enable bit(1)

              1 = Enables the CCP1 interrupt

              0 = Disables the CCP1 interrupt

bit  4        C2IE: Comparator C2 Interrupt Enable bit

              1 = Enables the Comparator C2 interrupt

              0 = Disables the Comparator C2 interrupt

bit  3        C1IE: Comparator C1 Interrupt Enable bit

              1 = Enables the Comparator C1 interrupt

              0 = Disables the Comparator C1 interrupt

bit  2        Unimplemented: Read as ‘0’

bit  1        TMR2IE: Timer2 to PR2 Match Interrupt Enable bit(1)

              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    1:    PIC16F616/16HV616 only. PIC16F610/16HV610 unimplemented,               read  as  ‘0’.

© 2009 Microchip Technology Inc.                                                                             DS41288F-page 21
PIC16F610/616/16HV610/616

2.2.2.5      PIR1 Register

The PIR1 register contains the peripheral interrupt flag        Note:      Interrupt flag bits are set when an interrupt

bits, as shown in Register 2-5.                                            condition occurs, regardless of the state of

                                                                           its corresponding enable bit or the global

                                                                           enable bit, GIE of the INTCON register. User

                                                                           software  should   ensure  the  appropriate

                                                                           interrupt flag bits are clear prior to enabling

                                                                           an interrupt.

REGISTER 2-5:      PIR1: PERIPHERAL INTERRUPT REQUEST REGISTER 1

        U-0        R/W-0         R/W-0             R/W-0  R/W-0                 U-0           R/W-0           R/W-0

        —          ADIF(1)       CCP1IF(1)         C2IF   C1IF                  —         TMR2IF(1)        TMR1IF

bit 7                                                                                                         bit           0

Legend:

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

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

bit 7        Unimplemented: Read as ‘0’

bit 6        ADIF: A/D Interrupt Flag bit(1)

             1 = A/D conversion complete

             0 = A/D conversion has not completed or has not been started

bit 5        CCP1IF: CCP1 Interrupt Flag bit(1)

             Capture mode:

             1 = A TMR1 register capture occurred (must be cleared in software)

             0 = No TMR1 register capture occurred

             Compare mode:

             1 = A TMR1 register compare match occurred (must be cleared in software)

             0 = No TMR1 register compare match occurred

             PWM mode:

             Unused in this mode

bit  4       C2IF: Comparator C2 Interrupt Flag bit

             1 = Comparator C2 output has changed (must be cleared in software)

             0 = Comparator C2 output has not changed

bit  3       C1IF: Comparator C1 Interrupt Flag bit

             1 = Comparator C1 output has changed (must be cleared in software)

             0 = Comparator C1 output has not changed

bit  2       Unimplemented: Read as ‘0’

bit  1       TMR2IF: Timer2 to PR2 Match Interrupt Flag bit(1)

             1 = Timer2 to PR2 match occurred (must be cleared in software)

             0 = Timer2 to PR2 match has not occurred

bit  0       TMR1IF: Timer1 Overflow Interrupt Flag bit

             1 = Timer1 register overflowed (must be cleared in software)

             0 = Timer1 has not overflowed

Note    1:   PIC16F616/16HV616 only. PIC16F610/16HV610 unimplemented, read as ‘0’.

DS41288F-page 22                                                                          © 2009 Microchip Technology Inc.
                                                PIC16F610/616/16HV610/616

2.2.2.6         PCON Register

The Power Control (PCON) register (see Table 12-2)

contains flag bits to differentiate between a:

•  Power-on Reset (POR)

•  Brown-out Reset (BOR)

•  Watchdog Timer Reset (WDT)

•  External MCLR Reset

The PCON register also controls the software enable of

the BOR.

The PCON register bits are shown in Register 2-6.

REGISTER 2-6:         PCON: POWER CONTROL REGISTER

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

            —         —           —                 —         —                     —             POR        BOR

   bit 7                                                                                                          bit  0

   Legend:

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

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

   bit 7-2      Unimplemented: Read as ‘0’

   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 Brown-out Reset occurs)

   Note     1:  Reads as ‘0’ if Brown-out Reset is disabled.

© 2009 Microchip Technology Inc.                                                                         DS41288F-page 23
PIC16F610/616/16HV610/616

2.3       PCL and PCLATH                                                       2.3.2           STACK

The Program Counter (PC) is 13 bits wide. The low byte                         The    PIC16F610/616/16HV610/616                 Family   has       an

comes from the PCL register, which is a readable and                           8-level x 13-bit wide hardware stack (see Figure 2-1).

writable register. The high byte (PC<12:8>) is not directly                    The stack space is not part of either program or data

readable or writable and comes from PCLATH. On any                             space and the Stack Pointer is not readable or writable.

Reset,   the   PC   is     cleared.  Figure 2-5          shows      the  two   The    PC   is  PUSHed       onto    the   stack    when  a    CALL

situations for the loading of the PC. The upper example                        instruction is executed or an interrupt causes a branch.

in Figure 2-5 shows how the PC is loaded on a write to                         The stack is POPed in the event of a RETURN,                   RETLW

PCL (PCLATH<4:0> → PCH). The lower example in                                  or  a  RETFIE     instruction       execution.    PCLATH       is   not

Figure 2-5 shows how the PC is loaded during a CALL or                         affected by a PUSH or POP operation.

GOTO instruction (PCLATH<4:3> → PCH).                                          The stack operates as a circular buffer. This means that

                                                                               after the stack has been PUSHed eight times, the ninth

FIGURE 2-5:                      LOADING OF PC IN                              push overwrites the value that was stored from the first

                                 DIFFERENT SITUATIONS                          push. The tenth push overwrites the second push (and

           PCH                   PCL                                           so on).

                                                             Instruction with      Note 1:     There are no Status bits to indicate stack

     12                 8     7                       0             PCL as

PC                                                            Destination                      overflow or stack underflow conditions.

                   PCLATH<4:0>                 8                                          2:   There  are       no    instructions/mnemonics

           5                                                 ALU Result                        called PUSH or POP. These are actions

                                                                                               that  occur      from  the   execution    of        the

                       PCLATH                                                                  CALL,   RETURN,            RETLW and RETFIE

                                                                                               instructions     or    the   vectoring    to        an

           PCH                   PCL                                                           interrupt address.

     12   11   10   8      7                          0

PC                                                           GOTO,  CALL       2.4         Indirect Addressing, INDF and

     2     PCLATH<4:3>                     11                                              FSR Registers

                                                         OPCODE <10:0>

                                                                               The INDF register is not a physical register. Addressing

                   PCLATH                                                      the INDF register will cause indirect addressing.

                                                                               Indirect   addressing   is    possible      by  using     the  INDF

2.3.1          MODIFYING PCL                                                   register.   Any   instruction       using   the     INDF  register

Executing any instruction with the PCL register as the                         actually accesses data pointed to by the File Select

destination    simultaneously         causes             the    Program        Register    (FSR).    Reading        INDF   itself      indirectly  will

Counter PC<12:8> bits (PCH) to be replaced by the                              produce     00h.  Writing    to  the   INDF     register  indirectly

contents of the PCLATH register. This allows the entire                        results in a no operation (although Status bits may be

contents   of  the  program          counter      to     be  changed      by   affected).   An   effective   9-bit    address      is  obtained    by

writing the desired upper 5 bits to the PCLATH register.                       concatenating the 8-bit FSR and the IRP bit of the

When the lower 8 bits are written to the PCL register,                         STATUS register, as shown in Figure 2-7.

all 13 bits of the program counter will change to the                          A simple program to clear RAM location 40h-4Fh using

values contained in the PCLATH register and those                              indirect addressing is shown in Example 2-1.

being written to the PCL register.

A computed GOTO is accomplished by adding an offset                            EXAMPLE 2-1:                 INDIRECT ADDRESSING

to the program counter (ADDWF              PCL). Care should be                            MOVLW      0x40          ;initialize        pointer

exercised     when      jumping      into  a      look-up       table     or               MOVWF      FSR           ;to   RAM

program branch table (computed GOTO) by modifying                              NEXT        CLRF       INDF          ;clear     INDF    register

the PCL register. Assuming that PCLATH is set to the                                       INCF       FSR,      F   ;inc   pointer

table start address, if the table length is greater than                                   BTFSS      FSR,4         ;all   done?

255 instructions or if the lower 8 bits of the memory                                      GOTO       NEXT          ;no   clear    next

address rolls over from 0xFF to 0x00 in the middle of                          CONTINUE                             ;yes   continue

the table, then PCLATH must be incremented for each

address    rollover        that  occurs        between        the   table

beginning and the target location within the table.

For more information refer to Application Note AN556,

“Implementing a Table Read” (DS00556).

DS41288F-page 24                                                                                                © 2009 Microchip Technology Inc.
                                                PIC16F610/616/16HV610/616

FIGURE 2-6:        DIRECT/INDIRECT ADDRESSING PIC16F610/16HV610

                Direct Addressing                                                             Indirect Addressing

   RP1(1)  RP0  6        From Opcode       0                                          IRP(1)  7    File Select Register  0

   Bank Select     Location Select                                                    Bank Select      Location Select

                                           00   01      10      11

                                   00h                                                180h

                   Data                                 NOT USED(2)

                   Memory

                                   7Fh                                                1FFh

                                        Bank 0  Bank 1  Bank 2  Bank 3

   For memory map detail, see Figure 2-3.

   Unimplemented data memory locations, read as ‘0’.

   Note    1:   The RP1 and IRP bits are reserved; always maintain these bits clear.

           2:   Accesses in Bank 2 and Bank 3 are mirrored back into Bank 0 and Bank 1, respectively.

FIGURE 2-7:        DIRECT/INDIRECT ADDRESSING PIC16F616/16HV616

                Direct Addressing                                                             Indirect Addressing

   RP1(1)  RP0  6        From Opcode       0                                          IRP(1)  7    File Select Register  0

   Bank Select     Location Select                                                    Bank Select      Location          Select

                                           00   01      10      11

                                   00h                                                180h

                   Data                                 NOT USED(2)

                   Memory

                                   7Fh                                                1FFh

                                        Bank 0  Bank 1  Bank 2  Bank 3

   For memory map detail, see Figure 2-4.

   Unimplemented data memory locations, read as ‘0’.

   Note    1:   The RP1 and IRP bits are reserved; always maintain these bits clear.

           2:   Accesses in Bank 2 and Bank 3 are mirrored back into Bank 0 and Bank 1, respectively.

©  2009 Microchip Technology Inc.                                                                      DS41288F-page 25
PIC16F610/616/16HV610/616

NOTES:

DS41288F-page 26           © 2009 Microchip Technology Inc.
                                                  PIC16F610/616/16HV610/616

3.0      OSCILLATOR MODULE                                           The Oscillator module can be configured in one of eight

                                                                     clock modes.

3.1      Overview                                                    1.  EC – External clock with I/O on OSC2/CLKOUT.

The  Oscillator   module    has   a     wide  variety     of  clock  2.  LP – 32 kHz Low-Power Crystal mode.

sources and selection features that allow it to be used              3.  XT – Medium Gain Crystal or Ceramic Resonator

in a wide range of applications while maximizing perfor-                 Oscillator mode.

mance and minimizing power consumption. Figure 3-1                   4.  HS – High Gain Crystal or Ceramic Resonator

illustrates a block diagram of the Oscillator module.                    mode.

Clock    sources  can     be  configured      from        external   5.  RC        –  External  Resistor-Capacitor       (RC)       with

oscillators, quartz crystal resonators, ceramic resonators               FOSC/4 output on OSC2/CLKOUT.

and  Resistor-Capacitor     (RC)  circuits.   In  addition,   the    6.  RCIO – External Resistor-Capacitor (RC) with

system clock source can be configured with a choice of                   I/O on OSC2/CLKOUT.

two selectable speeds: internal or external system clock             7.  INTOSC – Internal oscillator with FOSC/4 output

source.                                                                  on OSC2 and I/O on OSC1/CLKIN.

                                                                     8.  INTOSCIO       –       Internal  oscillator     with  I/O     on

                                                                         OSC1/CLKIN and OSC2/CLKOUT.

                                                                     Clock Source modes are configured by the FOSC<2:0>

                                                                     bits in the Configuration Word register (CONFIG). The

                                                                     Internal      Oscillator   module         provides  a     selectable

                                                                     system    clock    mode    of    either   4 MHz     (Postscaler)      or

                                                                     8 MHz (INTOSC).

FIGURE 3-1:              PIC® MCU CLOCK SOURCE                       BLOCK DIAGRAM

                                                                                                      FOSC<2:0>

                  External  Oscillator                                                                IOSCFS

                                                                                        (Configuration Word Register)

     OSC2

                                     Sleep

     OSC1                                                                LP,  XT,  HS,  RC, RCIO, EC

                                                                                        INTOSC            MUX            System Clock

                                  Internal    Oscillator                                                       (CPU and Peripherals)

                              INTOSC

                                 8 MHz

                                              Postscaler

                                              4 MHz

© 2009 Microchip Technology Inc.                                                                                 DS41288F-page 27
PIC16F610/616/16HV610/616

3.2        Clock Source Modes                                                 3.3.2          OSCILLATOR START-UP TIMER

Clock Source modes can be classified as external or                                          (OST)

internal.                                                                     If the Oscillator module is configured for LP, XT or HS

•  External Clock modes rely on external circuitry for                        modes,   the   Oscillator  Start-up  Timer    (OST)  counts

   the clock source. Examples are: Oscillator mod-                            1024 oscillations from OSC1. This occurs following a

   ules (EC mode), quartz crystal resonators or                               Power-on Reset (POR) and when the Power-up Timer

   ceramic resonators (LP, XT and HS modes) and                               (PWRT) has expired (if configured), or a wake-up from

   Resistor-Capacitor (RC) mode circuits.                                     Sleep. During this time, the program counter does not

                                                                              increment and program execution is suspended. The

•  Internal clock sources are contained internally                            OST ensures that the oscillator circuit, using a quartz

   within the Oscillator module. The Oscillator                               crystal resonator or ceramic resonator, has started and

   module has two selectable clock frequencies:                               is  providing  a  stable   system  clock  to  the  Oscillator

   4 MHz and 8 MHz                                                            module.  When     switching  between      clock  sources,    a

The system clock can be selected between external or                          delay is required to allow the new clock to stabilize.

internal clock sources via the FOSC<2:0> bits of the                          These oscillator delays are shown in Table 3-1.

Configuration Word register.

3.3        External Clock Modes

3.3.1            EC MODE

The   External     Clock      (EC)  mode  allows    an   externally

generated logic level as the system clock source. When

operating      in  this  mode,      an  external  clock  source    is

connected to the OSC1 input and the OSC2 is available

for  general       purpose    I/O.  Figure 3-2    shows       the  pin

connections for EC mode.

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 3-2:                   EXTERNAL CLOCK (EC)

                              MODE OPERATION

     Clock from                         OSC1/CLKIN

     Ext. System

                                          PIC® MCU

                     I/O                OSC2/CLKOUT(1)

   Note    1:      Alternate pin functions are listed in the

                   Section 1.0 “Device Overview”.

TABLE 3-1:               OSCILLATOR DELAY EXAMPLES

   Switch From                          Switch To                  Frequency                    Oscillator Delay

   Sleep/POR                            INTOSC                     4 MHz to 8 MHz               Oscillator Warm-Up Delay (TWARM)

   Sleep/POR                            EC, RC                     DC – 20 MHz                  2 Instruction Cycles

   Sleep/POR                            LP, XT, HS                 32 kHz to 20 MHz             1024 Clock Cycles (OST)

DS41288F-page 28                                                                                         © 2009 Microchip Technology Inc.
                                                     PIC16F610/616/16HV610/616

3.3.3        LP, XT, HS MODES                                           Note      1:     Quartz crystal characteristics vary according

The LP, XT and HS modes support the use of quartz                                        to   type,  package       and    manufacturer.  The

crystal resonators or ceramic resonators connected to                                    user should consult the manufacturer data

OSC1 and OSC2 (Figure 3-3). The mode selects a low,                                      sheets for specifications and recommended

medium or high gain setting of the internal inverter-                                    application.

amplifier to support various resonator types and speed.                           2:     Always verify oscillator performance over

LP Oscillator mode selects the lowest gain setting of                                    the  VDD     and      temperature     range  that  is

the    internal   inverter-amplifier.       LP  mode        current                      expected for the application.

consumption is the least of the three modes. This mode                            3:     For oscillator design assistance, reference

is designed to drive only 32.768 kHz tuning-fork type                                    the following Microchip Applications Notes:

crystals (watch crystals).

XT   Oscillator   mode    selects      the  intermediate          gain                • AN826, “Crystal Oscillator Basics and

setting  of  the  internal  inverter-amplifier.      XT       mode                       Crystal Selection for rfPIC® and PIC®

current consumption is the medium of the three modes.                                    Devices” (DS00826)

This mode is best suited to drive resonators with a                                   • AN849, “Basic PIC® Oscillator Design”

medium drive level specification.                                                        (DS00849)

HS Oscillator mode selects the highest gain setting of                                • AN943, “Practical PIC® Oscillator

the  internal     inverter-amplifier.      HS   mode        current                      Analysis and Design” (DS00943)

consumption is the highest of the three modes. This                                   • AN949, “Making Your Oscillator Work”

mode is best suited for resonators that require a high                                   (DS00949)

drive setting.                                                          FIGURE 3-4:                   CERAMIC RESONATOR

Figure 3-3   and  Figure 3-4        show    typical  circuits     for                                 OPERATION

quartz crystal and ceramic resonators, respectively.                                                  (XT OR HS MODE)

FIGURE 3-3:               QUARTZ CRYSTAL                                                                                  PIC® MCU

                          OPERATION (LP, XT OR

                          HS MODE)                                                                             OSC1/CLKIN

                                           PIC® MCU                           C1                                               To Internal

                                                                                                                               Logic

                            OSC1/CLKIN                                                         RP(3)               RF(2)       Sleep

         C1                                          To Internal

                                                     Logic

                 Quartz             RF(2)            Sleep                    C2      Ceramic     RS(1)        OSC2/CLKOUT

                 Crystal                                                              Resonator

                            OSC2/CLKOUT                                 Note  1:      A   series     resistor  (RS)  may   be  required  for

         C2       RS(1)                                                               ceramic resonators with low drive level.

                                                                              2:      The value of RF varies with the Oscillator mode

Note     1:  A   series   resistor  (RS)   may  be  required      for                 selected (typically between 2 MΩ to 10 MΩ).

             quartz crystals with low drive level.                            3:      An     additional  parallel    feedback  resistor  (RP)

         2:  The value of RF varies with the Oscillator mode                          may be required for proper ceramic resonator

             selected (typically between 2 MΩ to 10 MΩ).                              operation.

© 2009 Microchip Technology Inc.                                                                                          DS41288F-page 29
PIC16F610/616/16HV610/616

3.3.4             EXTERNAL RC MODES                                     3.4         Internal Clock Modes

The external Resistor-Capacitor (RC) modes support                      The Oscillator module provides a selectable system

the  use      of  an  external  RC  circuit.  This       allows    the  clock source of either 4 MHz or 8 MHz. The selectable

designer maximum flexibility in frequency choice while                  frequency is configured through the IOSCFS bit of the

keeping costs to a minimum when clock accuracy is not                   Configuration Word.

required. There are two modes: RC and RCIO.                             The frequency of the internal oscillator can be can be

In RC mode, the RC circuit connects to OSC1. OSC2/                      user-adjusted     via   software  using     the  OSCTUNE

CLKOUT outputs the RC oscillator frequency divided                      register.

by 4. This signal may be used to provide a clock for

external circuitry, synchronization, calibration, test or               3.4.1       INTOSC AND INTOSCIO MODES

other application requirements. Figure 3-5 shows the                    The  INTOSC       and  INTOSCIO        modes    configure  the

external RC mode connections.                                           internal oscillators as the system clock source when

FIGURE 3-5:              EXTERNAL RC MODES                              the device is programmed using the oscillator selection

                                                                        or  the     FOSC<2:0>   bits  in  the  Configuration      Word

                                                                        register    (CONFIG).   See       Section 12.0        “Special

         VDD                        PIC® MCU                            Features of the CPU” for more information.

   REXT                                                                 In INTOSC mode, OSC1/CLKIN is available for general

                         OSC1/CLKIN                      Internal       purpose     I/O.  OSC2/CLKOUT          outputs   the  selected

                                                         Clock          internal oscillator frequency divided by 4. The CLKOUT

   CEXT                                                                 signal   may  be  used  to    provide  a  clock  for  external

                                                                        circuitry,  synchronization,  calibration,      test  or  other

   VSS                                                                  application requirements.

         FOSC/4   or     OSC2/CLKOUT(1)                                 In INTOSCIO mode, OSC1/CLKIN and OSC2/CLKOUT

         I/O(2)                                                         are available for general purpose I/O.

   Recommended values:          10 kΩ ≤ REXT ≤ 100 kΩ, <3V

                                3 kΩ ≤ REXT ≤ 100 kΩ, 3-5V

                                CEXT > 20 pF, 2-5V

   Note   1:      Alternate pin functions are listed in

                  Section 1.0 “Device Overview”.

          2:      Output depends upon RC or RCIO Clock

                  mode.

In RCIO mode, the RC circuit is connected to OSC1.

OSC2 becomes an additional general purpose I/O pin.

The RC oscillator frequency is a function of the supply

voltage, the resistor (REXT) and capacitor (CEXT) values

and the operating temperature. Other factors affecting

the oscillator frequency are:

•  threshold voltage variation

•  component tolerances

•  packaging variations in capacitance

The user also needs to take into account variation due

to tolerance of external RC components used.

DS41288F-page 30                                                                                    © 2009 Microchip Technology Inc.
                                                       PIC16F610/616/16HV610/616

3.4.1.1       OSCTUNE Register                                            The default value of the OSCTUNE register is ‘0’. The

The oscillator is factory calibrated but can be adjusted                  value is a 5-bit two’s complement number.

in  software  by     writing  to  the  OSCTUNE         register           When the OSCTUNE register is modified, the frequency

(Register 3-1).                                                           will begin shifting to the new frequency. Code execution

                                                                          continues during this shift. There is no indication that the

                                                                          shift has occurred.

REGISTER 3-1:            OSCTUNE: OSCILLATOR TUNING REGISTER

       U-0               U-0           U-0             R/W-0              R/W-0                 R/W-0     R/W-0               R/W-0

       —                 —             —                      TUN4        TUN3                  TUN2      TUN1                TUN0

bit 7                                                                                                                            bit 0

Legend:

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

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

bit 7-5           Unimplemented: Read as ‘0’

bit 4-0           TUN<4:0>: Frequency Tuning bits

                  01111 = Maximum frequency

                  01110 =

                  •

                  •

                  •

                  00001 =

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

                  11111 =

                  •

                  •

                  •

                  10000 = Minimum frequency

TABLE 3-2:           SUMMARY OF REGISTERS ASSOCIATED WITH CLOCK SOURCES

                                                                                                              Value on        Value on

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

                                                                                                                              Resets(1)

CONFIG(2)        IOSCFS       CP       MCLRE  PWRTE           WDTE        FOSC2  FOSC1             FOSC0           —          —

OSCTUNE              —        —        —               TUN4      TUN3     TUN2          TUN1       TUN0   ---0     0000  ---u  uuuu

Legend:       x = unknown, u = unchanged, – = unimplemented locations read as ‘0’. Shaded cells are not used by oscillators.

Note     1:   Other (non Power-up) Resets include MCLR Reset and Watchdog Timer Reset during normal operation.

         2:   See Configuration Word register (Register 12-1) for operation of all register bits.

© 2009 Microchip Technology Inc.                                                                                      DS41288F-page 31
PIC16F610/616/16HV610/616

NOTES:

DS41288F-page 32           © 2009 Microchip Technology Inc.
                                                          PIC16F610/616/16HV610/616

4.0          I/O PORTS                                                   port     pins  are    read,     this  value  is  modified  and     then

                                                                         written to the PORT data latch. RA3 reads ‘0’ when

There are as many as eleven general purpose I/O pins                     MCLRE = 1.

and    an     input  pin    available.  Depending         on     which   The      TRISA        register  controls     the    direction  of   the

peripherals are enabled, some or all of the pins may not                 PORTA pins,           even    when    they   are    being     used  as

be available as general purpose I/O. In general, when a                  analog inputs. The user must ensure the bits in the

peripheral is enabled, the associated pin may not be                     TRISA register are maintained set when using them as

used as a general purpose I/O pin.                                       analog   inputs.      I/O    pins     configured    as  analog     input

4.1          PORTA and the TRISA Registers                               always read ‘0’.

PORTA         is  a  6-bit  wide,       bidirectional     port.    The   Note:                 The ANSEL register must be initialized to

corresponding        data   direction   register          is  TRISA                            configure an analog channel as a digital

(Register 4-2). Setting a TRISA bit (= 1) will make the                                        input. Pins configured as analog inputs will

corresponding        PORTA  pin    an   input  (i.e.,     disable  the                         read ‘0’ and cannot generate an interrupt.

output driver). Clearing a TRISA bit (= 0) will make the                 EXAMPLE 4-1:                    INITIALIZING PORTA

corresponding PORTA pin an output (i.e., enables output

driver and puts the contents of the output latch on the                  BCF            STATUS,RP0             ;Bank      0

selected pin). The exception is RA3, which is input only                 CLRF           PORTA                  ;Init      PORTA

and its TRIS bit will always read as ‘1’. Example 4-1                    BSF            STATUS,RP0             ;Bank      1

shows how to initialize PORTA.                                           CLRF           ANSEL                  ;digital      I/O

                                                                         MOVLW          0Ch                    ;Set   RA<3:2>      as   inputs

Reading the PORTA register (Register 4-1) reads the                      MOVWF          TRISA                  ;and   set    RA<5:4,1:0>

status of the pins, whereas writing to it will write to the                                                    ;as    outputs

PORT latch. All write operations are read-modify-write                   BCF            STATUS,RP0             ;Bank      0

operations. Therefore, a write to a port implies that the

REGISTER 4-1:               PORTA: PORTA REGISTER

         U-0                U-0         R/W-x                    R/W-0   R-x                   R/W-0           R/W-0                R/W-0

         —                  —                 RA5                  RA4   RA3                   RA2                 RA1              RA0

bit 7                                                                                                                                       bit 0

Legend:

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

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

bit 7-6              Unimplemented: Read as ‘0’

bit 5-0              RA<5:0>: PORTA I/O Pin bit

                     1 = PORTA pin is > VIH

                     0 = PORTA pin is < VIL

REGISTER          4-2:      TRISA: PORTA TRI-STATE REGISTER

         U-0                U-0         R/W-1                    R/W-1   R-1                   R/W-1           R/W-1                R/W-1

         —                  —           TRISA5                   TRISA4  TRISA3                TRISA2          TRISA1               TRISA0

bit 7                                                                                                                                       bit 0

Legend:

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

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

bit 7-6              Unimplemented: Read as ‘0’

bit 5-0              TRISA<5:0>: PORTA Tri-State Control bit

                     1 = PORTA pin configured as an input (tri-stated)

                     0 = PORTA pin configured as an output

Note     1:       TRISA<3> always reads ‘1’.

         2:       TRISA<5:4> always reads ‘1’ in XT, HS and LP Oscillator modes.

© 2009 Microchip Technology Inc.                                                                                             DS41288F-page 33
PIC16F610/616/16HV610/616

4.2          Additional Pin Functions                                 4.2.3            INTERRUPT-ON-CHANGE

Every PORTA pin on the PIC16F610/616/16HV610/                         Each   PORTA          pin  is   individually  configurable    as  an

616 has an interrupt-on-change option and a weak pull-                interrupt-on-change pin. Control bits IOCAx enable or

up   option.  The   next     three   sections     describe     these  disable     the  interrupt     function  for  each  pin.  Refer   to

functions.                                                            Register 4-5. The interrupt-on-change is disabled on a

                                                                      Power-on Reset.

4.2.1         ANSEL REGISTER                                          For enabled interrupt-on-change pins, the values are

The    ANSEL       register  is  used   to  configure     the  Input  compared with the old value latched on the last read of

mode of an I/O pin to analog. Setting the appropriate                 PORTA. The ‘mismatch’ outputs of the last read are

ANSEL bit high will cause all digital reads on the pin to             OR’d together to set the PORTA Change Interrupt Flag

be read as ‘0’ and allow analog functions on the pin to               bit (RAIF) in the INTCON register (Register 2-3).

operate correctly.                                                    This interrupt can wake the device from Sleep. The

The state of the ANSEL bits has no affect on digital                  user,  in   the       Interrupt  Service      Routine,   clears   the

output functions. A pin with TRIS clear and ANSEL set                 interrupt by:

will still operate as a digital output, but the Input mode            a)  Any read or write of PORTA. This will end the

will be analog. This can cause unexpected behavior                        mismatch condition, then,

when executing read-modify-write instructions on the                  b)  Clear the flag bit RAIF.

affected port.

                                                                      A mismatch condition will continue to set flag bit RAIF.

4.2.2         WEAK PULL-UPS                                           Reading PORTA will end the mismatch condition and

Each     of   the  PORTA         pins,  except    RA3,    has   an    allow flag bit RAIF to be cleared. The latch holding the

individually configurable internal weak pull-up. Control              last read value is not affected by a MCLR nor BOR

bits WPUAx enable or disable each pull-up. Refer to                   Reset. After these resets, the RAIF flag will continue to

Register 4-4. Each weak pull-up is automatically turned               be set if a mismatch is present.

off when the port pin is configured as an output. The                     Note:        If a change on the I/O pin should occur

pull-ups     are   disabled  on   a     Power-on   Reset    by  the                    when      any   PORTA        operation   is  being

RAPU bit of the OPTION register). A weak pull-up is                                    executed, then the RAIF interrupt flag may

automatically      enabled   for    RA3     when  configured    as                     not get set.

MCLR and disabled when RA3 is an input. There is no

software control of the MCLR pull-up.

REGISTER 4-3:                ANSEL: ANALOG SELECT REGISTER

     R/W-1          R/W-1                   R/W-1              R/W-1  R/W-1                 R/W-1      R/W-1                   R/W-1

       ANS7         ANS6                    ANS5               ANS4   ANS3(2)          ANS2(2)         ANS1                    ANS0

bit 7                                                                                                                               bit 0

Legend:

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

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

bit 7-0            ANS<7:0>: Analog Select bits

                   Analog select between analog or digital function on pins AN<7:0>, respectively.

                   1 = Analog input. Pin is assigned as analog input(1).

                   0 = Digital I/O. Pin is assigned to port or special function.

Note     1:   Setting a pin to an analog input automatically disables the digital input circuitry, weak pull-ups, and

              interrupt-on-change if available. The corresponding TRIS bit must be set to Input mode in order to allow

              external control of the voltage on the pin.

         2:   PIC16F616/HV616.

DS41288F-page 34                                                                                       © 2009 Microchip Technology Inc.
                                         PIC16F610/616/16HV610/616

REGISTER 4-4:       WPUA: WEAK PULL-UP PORTA REGISTER

       U-0          U-0           R/W-1             R/W-1  U-0                   R/W-1         R/W-1           R/W-1

         —          —             WPUA5             WPUA4  —                     WPUA2  WPUA1             WPUA0

bit 7                                                                                                          bit 0

Legend:

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

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

bit 7-6      Unimplemented: Read as ‘0’

bit 5-4      WPUA<5:4>: Weak Pull-up Control bits

             1 = Pull-up enabled

             0 = Pull-up disabled

bit 3        Unimplemented: Read as ‘0’

bit 2-0      WPUA<2:0>: Weak Pull-up Control bits

             1 = Pull-up enabled

             0 = Pull-up disabled

Note     1:  Global RAPU must be enabled for individual pull-ups to be enabled.

         2:  The weak pull-up device is automatically disabled if the pin is in Output mode (TRISA = 0).

         3:  The RA3 pull-up is enabled when configured as MCLR and disabled as an input in the Configuration

             Word.

         4:  WPUA<5:4> always reads ‘1’ in XT, HS and LP Oscillator modes.

REGISTER 4-5:       IOCA: INTERRUPT-ON-CHANGE PORTA REGISTER

       U-0          U-0           R/W-0             R/W-0  R/W-0                 R/W-0         R/W-0           R/W-0

         —          —             IOCA5             IOCA4  IOCA3                 IOCA2  IOCA1                  IOCA0

bit 7                                                                                                          bit 0

Legend:

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

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

bit 7-6      Unimplemented: Read as ‘0’

bit 5-0      IOCA<5:0>: Interrupt-on-change PORTA Control bit

             1 = Interrupt-on-change enabled

             0 = Interrupt-on-change disabled

Note     1:  Global Interrupt Enable (GIE) must be enabled for individual interrupts to be recognized.

         2:  IOCA<5:4> always reads ‘1’ in XT, HS and LP Oscillator modes.

© 2009 Microchip Technology Inc.                                                                          DS41288F-page 35
PIC16F610/616/16HV610/616

4.2.4        PIN DESCRIPTIONS AND                                         4.2.4.2                        RA1/AN1(1)/C12IN0-/VREF(1)/

             DIAGRAMS                                                                                    ICSPCLK

Each PORTA pin is multiplexed with other functions.                       Figure 4-1 shows the diagram for this pin. The RA1          pin

The  pins    and      their   combined        functions     are  briefly  is configurable to function as one of the following:

described      here.       For      specific    information      about    •         a general purpose I/O

individual  functions         such    as  the  Comparator        or  the  •         an analog input for the ADC(1)

ADC, refer to the appropriate section in this data sheet.

                                                                          •         an analog inverting input to the comparator

4.2.4.1           RA0/AN0(1)/C1IN+/ICSPDAT                                •         a voltage reference input for the ADC(1)

Figure 4-1 shows the diagram for this pin. The RA0 pin                    •         In-Circuit Serial Programming clock

is configurable to function as one of the following:                                     Note 1:     PIC16F616/16HV616 only.

•  a general purpose I/O

•  an analog input for the ADC(1)

•  an analog non-inverting input to the comparator

•  In-Circuit Serial Programming data

FIGURE 4-1:                   BLOCK DIAGRAM OF RA<1:0>

                                                                                                     Analog(1)

                                                                                                    Input Mode

                                                                                                                    VDD

                                          Data Bus

                                                         D   Q                                                      Weak

                                          WR             CK  Q

                                          WPUA                                                           RAPU

                                              RD                                                                              VDD

                                          WPUA

                                                         D   Q

                                              WR         CK                                                                           I/O Pin

                                          PORTA              Q

                                                                                                                              VSS

                                                         D   Q

                                              WR         CK  Q

                                          TRISA

                                              RD                                         Analog(1)

                                          TRISA                                          Input Mode

                                              RD

                                          PORTA

                                                         D   Q

                                              WR         CK                               Q          D

                                          IOCA               Q

                                                                                                     EN         Q1

                                              RD

                                          IOCA                                            Q          D

                           Q    S(2)                                                                 EN

   Interrupt-on-

     Change                     R         From other

                                          RA<5:1> pins (RA0)              RD PORTA

                                          RA<5:2, 0> pins (RA1)      To Comparator

             Write    ‘0’  to RAIF

                                                                     To A/D Converter(3)

         Note     1:       Comparator mode and ANSEL determines      Analog Input mode.

                  2:       Set has priority over Reset.

                  3:       PIC16F616/16HV616 only.

DS41288F-page 36                                                                                                    © 2009 Microchip Technology Inc.
                                                          PIC16F610/616/16HV610/616

4.2.4.3           RA2/AN2(1)/T0CKI/INT/C1OUT

Figure 4-2 shows the diagram for this pin. The RA2 pin

is configurable to function as one of the following:

•  a general purpose I/O

•  an analog input for the ADC(1)

•  the clock input for TMR0

•  an external edge triggered interrupt

•  a digital output from Comparator C1

   Note 1:        PIC16F616/16HV616 only.

FIGURE 4-2:                 BLOCK DIAGRAM                 OF  RA2

                                                                                               Analog(1)

                                                                                               Input Mode

                                                                                                               VDD

                                  Data Bus

                                            D             Q                                                    Weak

                                   WR          CK         Q              C1OE

                                  WPUA                                Enable                       RAPU

                                   RD                                                                                VDD

                                  WPUA

                                                                         C1OE      1

                                            D             Q                        0                                      I/O Pin

                                   WR          CK         Q

                                  PORTA                                                                              VSS

                                            D             Q

                                   WR          CK         Q

                                  TRISA

                                   RD                                          Analog(1)

                                   TRISA                                       Input Mode

                                   RD

                                  PORTA

                                            D             Q

                                   WR          CK                                           Q  D

                                   IOAC                   Q

                                                                                               EN          Q1

                                   RD

                                   IOAC                                                     Q  D

                        Q   S(2)                                                               EN

   Interrupt-on-

   Change                   R      From other

                                   RA<5:3, 1:0> pins                     RD PORTA

            Write ‘0’   to RAIF                               To Timer0

                                                              To INT

                                                              To A/D Converter(3)

                  Note  1:  Comparator mode and ANSEL        determines Analog Input mode.

                        2:  Set has priority over Reset.

                        3:  PIC16F616/16HV616 only.

© 2009 Microchip Technology Inc.                                                                                     DS41288F-page 37
PIC16F610/616/16HV610/616

4.2.4.4           RA3/MCLR/VPP

Figure 4-3 shows the diagram for this pin. The RA3 pin

is configurable to function as one of the following:

•  a general purpose input

•  as Master Clear Reset with weak pull-up

•  High Voltage Programming voltage input

FIGURE 4-3:           BLOCK DIAGRAM OF RA3

                                                                                            VDD

                                                                     MCLRE                  Weak

                                   Data Bus                                     MCLRE

                                                                     Reset                            Input

                                                                                                      Pin

                                   RD                           VSS

                                   TRISA

                                                                                MCLRE            VSS

                                   RD

                                   PORTA

                                                   D      Q

                                   WR                 CK                    Q   D

                                   IOCA                   Q

                                                                                EN               Q1

                                   RD

                                   IOCA                                     Q   D

                      Q     S(1)                                                EN

   Interrupt-on-

   Change                   R          From other

                                       RA<5:4, 2:0>       pins

                                                                            RD  PORTA

           Write      ‘0’ to RAIF

         Note     1:  Set has priority over Reset

DS41288F-page 38                                                                    © 2009  Microchip Technology  Inc.
                                                    PIC16F610/616/16HV610/616

4.2.4.5  RA4/AN3(1)/T1G/OSC2/CLKOUT                                      •  a Timer1 gate (count enable)

Figure 4-4 shows the diagram for this pin. The RA4 pin                   •  a crystal/resonator connection

is configurable to function as one of the following:                     •  a clock output

•  a general purpose I/O                                                    Note 1:      PIC16F616/16HV616 only.

•  an analog input for the ADC(1)

FIGURE 4-4:           BLOCK DIAGRAM OF RA4

                                                                            Analog(3)

                                                                            Input Mode      CLK(1)

                                                    Data Bus                                Modes

                                                              D     Q                                   VDD

                                                    WR        CK    Q                                   Weak

                                                    WPUA

                                                    RD                                   RAPU

                                                    WPUA                                    Oscillator

                                                                                            Circuit

                                                                            OSC1

                                                                                         CLKOUT           VDD

                                                                                            Enable

                                                                            FOSC/4          1

                                                              D     Q

                                                    WR        CK                            0                    I/O Pin

                                                    PORTA           Q

                                                                                         CLKOUT

                                                                                         Enable

                                                                                                          VSS

                                                              D     Q                    INTOSC/

                                                    WR        CK                         RC/EC(2)

                                                    TRISA           Q

                                                                                         CLKOUT

                                                    RD                                   Enable

                                                    TRISA                                   Analog

                                                                                         Input Mode

                                                    RD

                                                    PORTA

                                                              D     Q

                                                    WR        CK                            Q        D

                                                    IOCA            Q

                                                                                                    EN       Q1

                                                    RD

                                                    IOCA                                    Q        D

                                   Q  S(4)                                                          EN

         Interrupt-on-

             Change                   R                 From other

                                                        RA<5, 3:0> pins                  RD PORTA

                          Write ‘0’ to RAIF                         To T1G

                                                                    To A/D Converter(5)

             Note 1:  CLK modes are XT, HS, LP, TMR1 LP and CLKOUT Enable.

             2:       With CLKOUT option.

             3:       Analog Input mode comes from ANSEL.

             4:       Set has priority over Reset.

             5:       PIC16F616/16HV616 only.

© 2009 Microchip Technology Inc.                                                                                 DS41288F-page 39
PIC16F610/616/16HV610/616

4.2.4.6        RA5/T1CKI/OSC1/CLKIN                                     •  a  general purpose I/O

Figure 4-5 shows the diagram for this pin. The RA5 pin                  •  a  Timer1 clock input

is configurable to function as one of the following:                    •  a  crystal/resonator connection

                                                                        •  a  clock input

FIGURE 4-5:             BLOCK DIAGRAM OF RA5

                                                                              INTOSC  TMR1LPEN(1)

                                                                              Mode

                                      Data Bus                                                       VDD

                                                        D          Q

                                                 WR            CK  Q                                 Weak

                                                 WPUA

                                                 RD                                 RAPU

                                                 WPUA

                                                                                      Oscillator

                                                                                      Circuit

                                                                              OSC2                   VDD

                                                        D          Q

                                                 WR            CK  Q

                                                 PORTA

                                                                                                              I/O  Pin

                                                        D          Q

                                                 WR            CK

                                                 TRISA             Q                                 VSS

                                                                                    INTOSC

                                                 RD                                   Mode

                                                 TRISA

                                                 RD

                                                 PORTA

                                                        D          Q

                                                 WR            CK                          Q      D

                                                 IOCA              Q

                                                                                              EN          Q1

                                                 RD

                                                 IOCA

                                                                                           Q      D

                        Q  S(2)                                                               EN

         Interrupt-on-

         Change            R                     From other

                                                 RA<4:0> pins

                                                                                    RD PORTA

                   Write ‘0’ to RAIF

                                                             To Timer1

         Note  1:  Timer1 LP Oscillator enabled.

               2:  Set has priority over Reset.

DS41288F-page 40                                                                                     © 2009 Microchip   Technology  Inc.
                                             PIC16F610/616/16HV610/616

TABLE 4-1:      SUMMARY OF REGISTERS ASSOCIATED WITH PORTA

                                                                                                     Value on     Value on

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

                                                                                                                  Resets

ANSEL           ANS7   ANS6       ANS5       ANS4    ANS3(1)  ANS2(1)      ANS1    ANS0              1111  1111   1111    1111

CM1CON0         C1ON   C1OUT      C1OE       C1POL   —        C1R          C1CH1   C1CH0             0000  -000   0000    -000

CM2CON0         C2ON   C2OUT      C2OE       C2POL   —        C2R          C2CH1   C2CH0             0000  -000   0000    -000

INTCON          GIE    PEIE            T0IE  INTE    RAIE     T0IF         INTF    RAIF              0000  0000   0000    0000

IOCA            —      —          IOCA5      IOCA4   IOCA3    IOCA2        IOCA1   IOCA0             --00  0000   --00    0000

OPTION_REG      RAPU   INTEDG     T0CS       T0SE    PSA      PS2          PS1     PS0               1111  1111   1111    1111

PORTA           —      —               RA5   RA4     RA3      RA2          RA1     RA0               --x0  x000   --u0    u000

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

WPUA            —      —          WPUA5      WPUA4   —        WPUA2        WPUA1   WPUA0             --11  -111   --11    -111

Legend:    x=   unknown, u = unchanged, – =  unimplemented locations read  as ‘0’. Shaded cells are  not used by  PORTA.

Note   1:  For  PIC16F616/HV616 only.

© 2009 Microchip Technology Inc.                                                                               DS41288F-page 41
PIC16F610/616/16HV610/616

4.3         PORTC and the TRISC Registers                      EXAMPLE 4-2:              INITIALIZING PORTC

PORTC is a general purpose I/O port consisting of 6            BCF    STATUS,RP0         ;Bank      0

bidirectional pins. The pins can be configured for either      CLRF   PORTC              ;Init      PORTC

digital I/O or analog input to A/D Converter (ADC) or          BSF    STATUS,RP0         ;Bank      1

Comparator. For specific information about individual          CLRF   ANSEL              ;digital      I/O

                                                               MOVLW  0Ch                ;Set   RC<3:2>      as  inputs

functions such as the Enhanced CCP or the ADC, refer           MOVWF  TRISC              ;and   set    RC<5:4,1:0>

to the appropriate section in this data sheet.                                           ;as   outputs

Note:       The ANSEL register must be initialized to          BCF    STATUS,RP0         ;Bank      0

            configure an analog channel as a digital

            input. Pins configured as analog inputs will

            read ‘0’ and cannot generate an interrupt.

REGISTER 4-6:      PORTC: PORTC REGISTER

       U-0         U-0  R/W-x                   R/W-x      R/W-0                 R/W-0         R/W-x         R/W-x

         —         —    RC5                     RC4            RC3               RC2           RC1           RC0

bit 7                                                                                                             bit 0

Legend:

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

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

bit 7-6     Unimplemented: Read as ‘0’

bit 5-0     RC<5:0>: PORTC I/O Pin bit

            1 = PORTC pin is > VIH

            0 = PORTC pin is < VIL

REGISTER 4-7:      TRISC: PORTC TRI-STATE REGISTER

       U-0         U-0  R/W-1                   R/W-1      R/W-1                 R/W-1         R/W-1         R/W-1

         —         —    TRISC5                  TRISC4     TRISC3                TRISC2  TRISC1             TRISC0

bit 7                                                                                                             bit 0

Legend:

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

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

bit 7-6     Unimplemented: Read as ‘0’

bit 5-0     TRISC<5:0>: PORTC Tri-State Control bit

            1 = PORTC pin configured as an input (tri-stated)

            0 = PORTC pin configured as an output

DS41288F-page 42                                                                         © 2009 Microchip Technology Inc.
                                                    PIC16F610/616/16HV610/616

4.3.1           RC0/AN4(1)/C2IN+                                  4.3.3            RC2/AN6(1)/C12IN2-/P1D(1)

The  RC0     is  configurable   to  function  as    one  of  the  The    RC2   is  configurable  to  function  as  one  of  the

following:                                                        following:

•  a general purpose I/O                                          •  a general purpose I/O

•  an analog input for the ADC(1)                                 •  an analog input for the ADC(1)

•  an analog non-inverting input to Comparator C2                 •  an analog input to Comparators C1 and C2

4.3.2            RC1/AN5(1)/C12IN1-                               •  a digital output from the Enhanced CCP(1)

The  RC1     is  configurable   to  function  as    one  of  the  4.3.4            RC3/AN7(1)/C12IN3-/P1C(1)

following:                                                        The    RC3   is  configurable  to  function  as  one  of  the

•  a general purpose I/O                                          following:

•  an analog input for the ADC(1)                                 •  a general purpose I/O

•  an analog inverting input to the comparator                    •  an analog input for the ADC(1)

   Note 1:       PIC16F616/16HV616 only.                          •  an analog inverting input to Comparators C1 and

                                                                     C2

FIGURE 4-6:              BLOCK DIAGRAM OF RC0                     •  a digital output from the Enhanced CCP(1)

                         AND RC1                                     Note 1:       PIC16F616/16HV616 only.

   Data Bus

                                                                  FIGURE       4-7:     BLOCK DIAGRAM OF RC2

             D   Q                                  VDD                                 AND RC3

   WR        CK                                                      Data Bus

   PORTC         Q                                                                      CCPOUT(2)

                                                                                        Enable

                                                                               D     Q                             VDD

                                                         I/O Pin

             D   Q                                                   WR        CK

                                                                     PORTC           Q  CCPOUT       1

   WR        CK  Q

   TRISC                                            VSS                                              0

                                Analog Input                                                                            I/O Pin

                                    Mode(1)                                    D     Q

   RD

   TRISC                                                             WR        CK    Q

                                                                     TRISC                                         VSS

   RD                                                                                            Analog Input

   PORTC                                                             RD                              Mode(1)

             To Comparators                                          TRISC

             To A/D Converter                                        RD

                                                                     PORTC

     Note    1:  Analog  Input  mode  comes   from  ANSEL    or                To A/D Converter

                 Comparator mode.

                                                                       Note    1:  Analog Input mode comes from ANSEL.

                                                                               2:  PIC16F616/16HV616 only.

© 2009 Microchip Technology Inc.                                                                               DS41288F-page 43
PIC16F610/616/16HV610/616

4.3.5            RC4/C2OUT/P1B(1)                                                    4.3.6            RC5/CCP1(1)/P1A(1)

The      RC4     is  configurable  to  function   as          one    of  the         The    RC5   is  configurable     to  function   as  one   of   the

following:                                                                           following:

•  a general purpose I/O                                                             •  a general purpose I/O
                                                                                        a digital input/output for the Enhanced CCP(1)
•  a digital output from Comparator C2                                               •

•  a digital output from the Enhanced CCP(1)                                            Note 1:       PIC16F616/16HV616 only.

   Note 1:           PIC16F616/16HV616 only.                                         FIGURE 4-9:               BLOCK DIAGRAM OF RC5

             2:      Enabling both C2OUT and P1B will cause                                                    PIN

                     a conflict on RC4 and create unpredictable

                     results. Therefore, if C2OUT is enabled,                           Data bus

                     the ECCP can not be used in Half-Bridge

                     or Full-Bridge mode and vice-versa.                                          D       Q             CCP1OUT(1)        VDD

                                                                                                                            Enable

FIGURE 4-8:                  BLOCK DIAGRAM OF RC4                                       WR        CK      Q    CCP1OUT(1)/

                                                                                        PORTC                               1

                                                                                                                   P1A

              C2OE                                                                                                          0                   I/O Pin

     CCP1M<3:0>

                                                                                                  D       Q

              C2OE                                            VDD

              C2OUT                                                                     WR        CK      Q

                                                                                        TRISC                                             VSS

     CCP1M<3:0>

   CCPOUT/P1B                          1                                                RD

                                       0                                                TRISC

   Data Bus                                                          I/O Pin

                 D    Q                                                                 RD

     WR                                                                                 PORTC

                  CK  Q                                       VSS

   PORTC                                                                                          To Enhanced CCP

                 D    Q                                                                   Note    1:  PIC16F616/16HV616 only.

     WR           CK  Q

   TRISC

     RD

   TRISC

     RD

   PORTC

     Note     1:      Port/Peripheral Select signals selects  between

                      PORT data and peripheral output.

TABLE 4-2:               SUMMARY OF REGISTERS ASSOCIATED WITH PORTC

                                                                                                                            Value on      Value on

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

                                                                                                                                             Resets

   ANSEL              ANS7   ANS6         ANS5                ANS4       ANS3(1)     ANS2(1)      ANS1         ANS0        1111  1111     1111  1111

   CCP1CON(1)         P1M1   P1M0         DC1B1         DC1B0            CCP1M3      CCP1M2       CCP1M1       CCP1M0      0000  0000     0000  0000

   CM1CON0           C1ON    C1OUT        C1OE          C1POL                 —      C1R          C1CH1        C1CH0       0000  -000     0000  -000

   CM2CON0           C2ON    C2OUT        C2OE          C2POL                 —      C2R          C2CH1        C2CH0       0000  -000     0000  -000

   PORTC              —            —      RC5                 RC4             RC3    RC2             RC1       RC0         --xx  00xx     --uu  00uu

   TRISC              —            —      TRISC5        TRISC4           TRISC3      TRISC2       TRISC1       TRISC0      --11  1111     --11  1111

   Legend:       x = unknown, u = unchanged, –          = unimplemented locations read as         ‘0’. Shaded  cells are not used by PORTC.

   Note   1:     PIC16F616/HV616 only.

DS41288F-page 44                                                                                                   © 2009 Microchip Technology Inc.
                                             PIC16F610/616/16HV610/616

5.0       TIMER0 MODULE                                             5.1       Timer0 Operation

The Timer0 module is an 8-bit timer/counter with the                When used as a timer, the Timer0 module can be used

following features:                                                 as either an 8-bit timer or an 8-bit counter.

•  8-bit timer/counter register (TMR0)                              5.1.1     8-BIT TIMER MODE

•  8-bit prescaler (shared with Watchdog Timer)                     When      used  as   a  timer,    the  Timer0  module       will

•  Programmable internal or external clock source                   increment every instruction cycle (without prescaler).

•  Programmable external clock edge selection                       Timer mode is selected by clearing the T0CS bit of the

•  Interrupt on overflow                                            OPTION register to ‘0’.

Figure 5-1 is a block diagram of the Timer0 module.                 When TMR0 is written, the increment is inhibited for

                                                                    two instruction cycles immediately following the write.

                                                                    Note:     The value written to the TMR0 register can

                                                                              be adjusted, in order to account for the two

                                                                              instruction    cycle    delay  when      TMR0     is

                                                                              written.

                                                                    5.1.2     8-BIT COUNTER MODE

                                                                    When      used  as   a  counter,  the  Timer0  module       will

                                                                    increment on every rising or falling edge of the T0CKI

                                                                    pin. The incrementing edge is determined by the T0SE

                                                                    bit of the OPTION register. Counter mode is selected by

                                                                    setting the T0CS bit of the OPTION register to ‘1’.

FIGURE 5-1:               BLOCK DIAGRAM OF THE                   TIMER0/WDT PRESCALER

     FOSC/4

                                                                                                             Data Bus

                            0                                                                                8

                                                                                    1

                            1                                                                Sync            TMR0

                                                                                             2 Tcy

   T0CKI                                                                            0

     pin                                0

          T0SE              T0CS                     8-bit                                                   Set Flag bit T0IF

                                                   Prescaler                                                    on Overflow

                                                                                    PSA

                                        1

                                                                 8

                                        PSA

                                                                           3

                                                                    PS<2:0>         1

                                                                                             WDT

                Watchdog                                                                    Time-out

   WDTE              Timer                                                          0

                                                                                    PSA

     Note  1:   T0SE, T0CS, PSA, PS<2:0> are bits in the OPTION register.

           2:   WDTE bit is in the Configuration Word register.

© 2009 Microchip Technology Inc.                                                                             DS41288F-page 45
PIC16F610/616/16HV610/616

5.1.3          SOFTWARE PROGRAMMABLE                                    When     changing     the    prescaler     assignment   from   the

               PRESCALER                                                WDT to the Timer0 module, the following instruction

A single software programmable prescaler is available                   sequence must be executed (see Example 5-2).

for  use  with    either    Timer0     or    the  Watchdog       Timer  EXAMPLE 5-2:                 CHANGING PRESCALER

(WDT),    but   not  both      simultaneously.         The  prescaler                                (WDT → TIMER0)

assignment is controlled by the PSA bit of the OPTION

register. To assign the prescaler to Timer0, the PSA bit                CLRWDT                           ;Clear     WDT   and

must be cleared to a ‘0’.                                                                                ;prescaler

There are 8 prescaler options for the Timer0 module                     BANKSEL          OPTION_REG      ;

ranging from 1:2 to 1:256. The prescale values are                      MOVLW            b’11110000’     ;Mask      TMR0  select     and

selectable via the PS<2:0> bits of the OPTION register.                 ANDWF            OPTION_REG,W    ;prescaler       bits

In order to have a 1:1 prescaler value for the Timer0                   IORLW            b’00000011’     ;Set      prescale    to   1:16

                                                                        MOVWF            OPTION_REG      ;

module, the prescaler must be assigned to the WDT

module.                                                                 5.1.4            TIMER0 INTERRUPT

The    prescaler     is   not      readable  or   writable.      When   Timer0     will  generate    an  interrupt  when       the  TMR0

assigned to the Timer0 module, all instructions writing to              register overflows from FFh to 00h. The T0IF interrupt

the TMR0 register will clear the prescaler.                             flag bit of the INTCON register is set every time the

When the prescaler is assigned to WDT, a CLRWDT                         TMR0 register overflows, regardless of whether or not

instruction will clear the prescaler along with the WDT.                the Timer0 interrupt is enabled. The T0IF bit must be

5.1.3.1         Switching Prescaler Between                             cleared in software. The Timer0 interrupt enable is the

                Timer0 and WDT Modules                                  T0IE bit of the INTCON register.

As a result of having the prescaler assigned to either                      Note:        The  Timer0     interrupt  cannot     wake    the

Timer0    or   the   WDT,      it  is  possible   to   generate   an                     processor from Sleep       since the timer is

unintended     device     Reset        when  switching      prescaler                    frozen during Sleep.

values. When changing the prescaler assignment from                     5.1.5            USING TIMER0 WITH AN

Timer0 to the WDT module, the instruction sequence                                       EXTERNAL CLOCK

shown in Example 5-1 must be executed.

                                                                        When Timer0 is in Counter mode, the synchronization

EXAMPLE 5-1:                   CHANGING PRESCALER                       of  the    T0CKI      input   and     the   Timer0   register     is

                            (TIMER0 → WDT)                              accomplished by sampling the prescaler output on the

                                                                        Q2  and    Q4    cycles      of  the  internal    phase     clocks.

BANKSEL        TMR0                    ;                                Therefore, the high and low periods of the external

CLRWDT                                 ;Clear     WDT                   clock source must meet the timing requirements as

CLRF           TMR0                    ;Clear     TMR0      and         shown in Section 15.0 “Electrical Specifications”.

                                       ;prescaler

BANKSEL        OPTION_REG              ;

BSF            OPTION_REG,PSA          ;Select         WDT

CLRWDT                   ;

                         ;

MOVLW         b’11111000’              ;Mask      prescaler

ANDWF         OPTION_REG,W             ;bits

IORLW         b’00000101’              ;Set       WDT  prescaler

MOVWF         OPTION_REG               ;to   1:32

DS41288F-page 46                                                                                      © 2009 Microchip Technology Inc.
                                                PIC16F610/616/16HV610/616

REGISTER 5-1:         OPTION_REG: OPTION REGISTER

     R/W-1         R/W-1               R/W-1          R/W-1              R/W-1              R/W-1       R/W-1               R/W-1

     RAPU          INTEDG              T0CS           T0SE               PSA                PS2         PS1                 PS0

bit 7                                                                                                                            bit  0

Legend:

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

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

bit  7        RAPU: PORTA Pull-up Enable bit

              1 = PORTA pull-ups are disabled

              0 = PORTA pull-ups are enabled by individual PORT                 latch  values

bit  6        INTEDG: Interrupt Edge Select bit

              1 = Interrupt on rising edge of INT pin

              0 = Interrupt on falling edge of INT pin

bit  5        T0CS: TMR0 Clock Source Select bit

              1 = Transition on T0CKI pin

              0 = Internal instruction cycle clock (FOSC/4)

bit  4        T0SE: TMR0 Source Edge Select bit

              1 = Increment on high-to-low transition on T0CKI pin

              0 = Increment on low-to-high transition on T0CKI pin

bit  3        PSA: Prescaler Assignment bit

              1 = Prescaler is assigned to the WDT

              0 = Prescaler is assigned to the Timer0 module

bit  2-0      PS<2:0>: Prescaler Rate Select bits

                              BIT VALUE  TMR0 RATE    WDT RATE

                                  000        1:2             1:1

                                  001        1:4             1:2

                                  010        1:8             1:4

                                  011        1 : 16          1:8

                                  100        1 : 32          1 : 16

                                  101        1 : 64          1 : 32

                                  110        1 : 128         1 : 64

                                  111        1 : 256         1 : 128

TABLE 5-1:         SUMMARY OF REGISTERS ASSOCIATED WITH TIMER0

                                                                                                        Value on      Value on

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

                                                                                                                            Resets

TMR0              Timer0 Modules Register                                                               xxxx    xxxx  uuuu  uuuu

INTCON             GIE        PEIE       T0IE         INTE   RAIE        T0IF          INTF      RAIF   0000    0000  0000  0000

OPTION_REG        RAPU        INTEDG     T0CS         T0SE        PSA    PS2           PS1         PS0  1111    1111  1111  1111

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

Legend:       – = Unimplemented locations, read as ‘0’, u = unchanged, x = unknown. Shaded cells are not used by the

              Timer0 module.

© 2009 Microchip Technology Inc.                                                                                DS41288F-page 47
PIC16F610/616/16HV610/616

NOTES:

DS41288F-page 48           © 2009 Microchip Technology Inc.
                                               PIC16F610/616/16HV610/616

6.0       TIMER1 MODULE WITH GATE                                       6.1       Timer1 Operation

          CONTROL                                                       The Timer1 module is a 16-bit incrementing counter

The Timer1 module is a 16-bit timer/counter with the                    which is accessed through the TMR1H:TMR1L register

following features:                                                     pair. Writes to TMR1H or TMR1L directly update the

                                                                        counter.

•  16-bit timer/counter register pair (TMR1H:TMR1L)                     When used with an internal clock source, the module is

•  Programmable internal or external clock source                       a timer. When used with an external clock source, the

•  3-bit prescaler                                                      module can be used as either a timer or counter.

•  Optional LP oscillator

•  Synchronous or asynchronous operation                                6.2       Clock Source Selection

•  Timer1 gate (count enable) via comparator or                         The TMR1CS bit of the T1CON register is used to select

   T1G pin                                                              the clock source. When TMR1CS = 0, the clock source

•  Interrupt on overflow                                                is  FOSC/4.  When       TMR1CS    =  1,  the   clock  source  is

•  Wake-up on overflow (external clock,                                 supplied externally.

   Asynchronous mode only)

•  Time base for the Capture/Compare function

•  Special Event Trigger (with ECCP)                                        Clock Source         TMR1CS                 T1ACS

•  Comparator output synchronization to Timer1                          FOSC/4                         0                      0

   clock                                                                FOSC                           0                      1

Figure 6-1 is a block diagram of the Timer1 module.                     T1CKI pin                      1                      x

FIGURE 6-1:                TIMER1 BLOCK DIAGRAM

                                                                                                 TMR1GE                 T1GINV

                                                                                     TMR1ON

             Set flag bit

             TMR1IF on                                                      To C2 Comparator Module

             Overflow                 TMR1(2)                               Timer1 Clock

                                                                                          0            Synchronized

                                  TMR1H   TMR1L      EN                                                   clock input

                                                                                          1

                            Oscillator                   (1)                         T1SYNC

     OSC1/T1CKI                                                             1                           Synchronize(3)

                                                                                     Prescaler

                                                                                     1, 2, 4, 8                  det

                                                                            0

          OSC2/T1G                                                                           2

                                                                                  T1CKPS<1:0>

                                                                        TMR1CS

                                                                                                             1

            INTOSC

     Without CLKOUT                              FOSC         1                                              0

            T1OSCEN                                                                             C2OUT

                                               FOSC/4         0                                           T1GSS

                                               Internal

                                                 Clock

                                                              T1ACS

            Note     1:   ST Buffer is low power type when using LP osc, or high speed type when using T1CKI.

                     2:   Timer1 register increments on rising edge.

                     3:   Synchronize does not operate while in Sleep.

© 2009 Microchip Technology Inc.                                                                                      DS41288F-page 49
PIC16F610/616/16HV610/616

6.2.1           INTERNAL CLOCK SOURCE                                6.5       Timer1 Operation in

When       the  internal    clock    source    is   selected   the             Asynchronous Counter Mode

TMR1H:TMR1L register pair will increment on multiples                If control bit T1SYNC of the T1CON register is set, the

of TCY as determined by the Timer1 prescaler.                        external  clock    input     is  not      synchronized.   The   timer

6.2.2           EXTERNAL CLOCK SOURCE                                continues to increment asynchronous to the internal

                                                                     phase clocks. The timer will continue to run during

When the external clock source is selected, the Timer1               Sleep   and   can     generate        an  interrupt  on   overflow,

module may work as a timer or a counter.                             which will wake-up the processor. However, special

When counting, Timer1 is incremented on the rising                   precautions in software are needed to read/write the

edge of the external clock input T1CKI. In addition, the             timer   (see      Section 6.5.1       “Reading       and  Writing

Counter    mode      clock     can   be   synchronized    to   the   Timer1 in Asynchronous Counter Mode”).

microcontroller system clock or run asynchronously.                  Note:         When    switching           from  synchronous        to

If  an  external     clock  oscillator    is   needed    (and  the                 asynchronous operation, it is possible to

microcontroller is using the INTOSC without CLKOUT),                               skip an increment. When switching from

Timer1 can use the LP oscillator as a clock source.                                asynchronous to synchronous operation,

    Note:       In Counter mode, a falling edge must be                            it  is  possible        to  produce    an   additional

                registered by the counter prior to the first                       increment.

                incrementing rising edge.

                                                                     Note:         In asynchronous counter mode or when

6.3        Timer1 Prescaler                                                        using the internal oscillator and T1ACS=1,

                                                                                   Timer1 can not be used as a time base for

Timer1 has four prescaler options allowing 1, 2, 4 or 8                            the     capture    or   compare      modes  of       the

divisions of the clock input. The T1CKPS bits of the                               ECCP        module          (for  PIC16F616/HV616

T1CON      register  control         the  prescale  counter.   The                 only).

prescale   counter   is   not  directly   readable   or   writable;

however, the prescaler counter is cleared upon a write to            6.5.1         READING AND WRITING TIMER1 IN

TMR1H or TMR1L.                                                                    ASYNCHRONOUS COUNTER

6.4        Timer1 Oscillator                                                       MODE

                                                                     Reading TMR1H or TMR1L while the timer is running

A low-power 32.768 kHz crystal oscillator is built-in                from an external asynchronous clock will ensure a valid

between pins OSC1 (input) and OSC2 (output). The                     read (taken care of in hardware). However, the user

oscillator is enabled by setting the T1OSCEN control                 should keep in mind that reading the 16-bit timer in two

bit of the T1CON register. The oscillator will continue to           8-bit values itself, poses certain problems, since the

run during Sleep.                                                    timer may overflow between the reads.

The Timer1 oscillator is shared with the system LP                   For writes, it is recommended that the user simply stop

oscillator. Thus, Timer1 can use this mode only when                 the    timer  and     write      the  desired   values.   A        write

the primary system clock is derived from the internal                contention may occur by writing to the timer registers,

oscillator or when the oscillator is in the LP Oscillator            while the register is incrementing. This may produce an

mode. The user must provide a software time delay to                 unpredictable      value     in  the      TMR1H:TMR1L     register

ensure proper oscillator start-up.                                   pair.

TRISA5     and  TRISA4         bits  are  set  when  the  Timer1

oscillator is enabled. RA5 and RA4 bits read as ‘0’ and              6.6       Timer1 Gate

TRISA5 and TRISA4 bits read as ‘1’.                                  Timer1 gate source is software configurable to be the

    Note:       The  oscillator      requires  a    start-up   and   T1G pin or the output of Comparator C2. This allows the

                stabilization    time     before    use.      Thus,  device to directly time external events using T1G or

                T1OSCEN should be set and a suitable                 analog    events      using      Comparator          C2.  See      the

                delay observed prior to enabling Timer1.             CM2CON1         register   (Register 8-3)       for  selecting     the

                                                                     Timer1    gate    source.    This     feature   can      simplify  the

                                                                     software for a Delta-Sigma A/D converter and many

DS41288F-page 50                                                                                      © 2009 Microchip Technology Inc.
                                                   PIC16F610/616/16HV610/616

other applications. For more information on Delta-Sigma          In  Capture    mode,   the     value  in   the  TMR1H:TMR1L

A/D  converters,     see        the     Microchip  web     site  register  pair   is   copied   into   the  CCPR1H:CCPR1L

(www.microchip.com).                                             register pair on a configured event.

   Note:     TMR1GE bit of the T1CON register must               In Compare mode, an event is triggered when the value

             be set to use either T1G or C2OUT as the            CCPR1H:CCPR1L register pair matches the value in

             Timer1 gate source. See the CM2CON1                 the TMR1H:TMR1L register pair. This event can be a

             register (Register 8-3) for more informa-           Special Event Trigger.

             tion on selecting the Timer1 gate source.           For more information, see Section 10.0 “Enhanced

Timer1 gate can be inverted using the T1GINV bit of              Capture/Compare/PWM (With Auto-Shutdown and

the T1CON register, whether it originates from the T1G           Dead Band) Module (PIC16F616/16HV616 Only)”.

pin or Comparator C2 output. This configures Timer1 to

measure      either  the   active-high    or   active-low  time  6.10      ECCP Special Event Trigger

between events.                                                            (PIC16F616/16HV616 Only)

6.7        Timer1 Interrupt                                      When      the  ECCP   is  configured       to  trigger  a  special

                                                                 event, the trigger will clear the TMR1H:TMR1L register

The Timer1 register pair (TMR1H:TMR1L) increments                pair. This special event does not cause a Timer1 inter-

to FFFFh and rolls over to 0000h. When Timer1 rolls              rupt. The ECCP module may still be configured to gen-

over, the Timer1 interrupt flag bit of the PIR1 register is      erate a ECCP interrupt.

set. To enable the interrupt on rollover, you must set           In this mode of operation, the CCPR1H:CCPR1L register

these bits:                                                      pair effectively becomes the period register for Timer1.

•  TMR1IE bit of the PIE1 register                               Timer1 should be synchronized to the FOSC to utilize the

•  PEIE bit of the INTCON register                               Special   Event      Trigger.  Asynchronous     operation      of

•  GIE bit of the INTCON register                                Timer1 can cause a Special Event Trigger to be missed.

•  T1SYNC bit of the T1CON register                              In the event that a write to TMR1H or TMR1L coincides

•  TMR1CS bit of the T1CON register                              with a Special Event Trigger from the ECCP, the write

•  T1OSCEN bit of the T1CON register (can be set)                will take precedence.

The interrupt is cleared by clearing the TMR1IF bit in           For  more      information,    see  Section 10.2.4      “Special

the Interrupt Service Routine.                                   Event Trigger”.

   Note:     The TMR1H:TTMR1L register pair and the              6.11      Comparator Synchronization

             TMR1IF        bit  should    be   cleared  before

             enabling interrupts.                                The same clock used to increment Timer1 can also be

                                                                 used  to   synchronize         the  comparator  output.        This

6.8        Timer1 Operation During Sleep                         feature is enabled in the Comparator module.

Timer1 can only operate during Sleep when setup in               When      using  the  comparator      for      Timer1   gate,  the

Asynchronous Counter mode. In this mode, an external             comparator output should be synchronized to Timer1.

crystal or clock source can be used to increment the             This ensures Timer1 does not miss an increment if the

counter. To set up the timer to wake the device:                 comparator changes.

•  TMR1ON bit of the T1CON register must be set                  For       more       information,         see   Section 8.8.2

                                                                 “Synchronizing Comparator C2 Output to Timer1”.

•  TMR1IE bit of the PIE1 register must be set

•  PEIE bit of the INTCON register must be set

The device will wake-up on an overflow and execute

the  next    instruction.  If   the  GIE  bit  of  the  INTCON

register is set, the device will call the Interrupt Service

Routine (0004h).

6.9        ECCP Capture/Compare Time

           Base (PIC16F616/16HV616 Only)

The ECCP module uses the TMR1H:TMR1L register

pair as the time base when operating in Capture or

Compare mode.

© 2009 Microchip Technology Inc.                                                                                DS41288F-page 51
PIC16F610/616/16HV610/616

FIGURE 6-2:                 TIMER1 INCREMENTING EDGE

     T1CKI = 1

     when TMR1

     Enabled

     T1CKI =    0

     when TMR1

     Enabled

Note      1:  Arrows indicate counter increments.

          2:  In Counter mode, a falling edge must be registered by the counter prior to the first incrementing rising edge of the clock.

6.12      Timer1 Control Register

The     Timer1     Control  register  (T1CON),          shown  in

Register 6-1, is used to control Timer1 and select the

various features of the Timer1 module.

REGISTER 6-1:               T1CON: TIMER1 CONTROL REGISTER

     R/W-0         R/W-0                R/W-0           R/W-0      R/W-0                 R/W-0        R/W-0        R/W-0

T1GINV(1)          TMR1GE(2)          T1CKPS1           T1CKPS0    T1OSCEN         T1SYNC             TMR1CS       TMR1ON

bit 7                                                                                                                                      bit 0

Legend:

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

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

bit  7             T1GINV: Timer1 Gate Invert bit(1)

                   1 = Timer1 gate is active-high (Timer1 counts when gate is high)

                   0 = Timer1 gate is active-low (Timer1 counts when gate is low)

bit  6             TMR1GE: Timer1 Gate Enable bit(2)

                   If TMR1ON = 0:

                   This bit is ignored

                   If TMR1ON = 1:

                   1 = Timer1 counting is controlled by the Timer1 Gate function

                   0 = Timer1 is always counting

bit  5-4           T1CKPS<1:0>: Timer1 Input Clock Prescale Select bits

                   11 = 1:8 Prescale Value

                   10 = 1:4 Prescale Value

                   01 = 1:2 Prescale Value

                   00 = 1:1 Prescale Value

bit  3             T1OSCEN: LP Oscillator Enable Control bit

                   If INTOSC without CLKOUT oscillator is active:

                   1 = LP oscillator is enabled for Timer1 clock

                   0 = LP oscillator is off

                   Else:

                   This bit is ignored

DS41288F-page 52                                                                                © 2009 Microchip Technology Inc.
                                                PIC16F610/616/16HV610/616

REGISTER 6-1:     T1CON: TIMER1 CONTROL REGISTER (CONTINUED)

bit  2      T1SYNC: Timer1 External Clock Input Synchronization              Control  bit

            TMR1CS = 1:

            1 = Do not synchronize external clock input

            0 = Synchronize external clock input

            TMR1CS = 0:

            This bit is ignored. Timer1 uses the internal clock

bit  1      TMR1CS: Timer1 Clock Source Select bit

            1 = External clock from T1CKI pin (on the rising edge)

            0 = Internal clock

            If TMR1ACS = 0:

            FOSC/4

            If TMR1ACS = 1:

            FOSC

bit  0      TMR1ON: Timer1 On bit

            1 = Enables Timer1

            0 = Stops Timer1

Note    1:  T1GINV bit inverts the Timer1 gate logic, regardless of source.

        2:  TMR1GE bit must be set to use either T1G pin or C2OUT, as selected by the      T1GSS  bit  of  the  CM2CON1

            register, as a Timer1 gate source.

© 2009 Microchip Technology Inc.                                                                       DS41288F-page 53
PIC16F610/616/16HV610/616

TABLE 6-1:        SUMMARY OF REGISTERS ASSOCIATED WITH TIMER1

                                                                                                                      Value on    Value on

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

                                                                                                                                  Resets

CM2CON0     C2ON    C2OUT           C2OE       C2POL    —        C2R                     C2CH1         C2CH0          0000  -000  0000  -000

CM2CON1     MC1OUT  MC2OUT                —    T1ACS    C1HYS    C2HYS                   T1GSS         C2SYNC         00-0  0010  00-0  0010

INTCON      GIE     PEIE            T0IE       INTE     RAIE     T0IF                    INTF          RAIF           0000  0000  0000  0000

PIE1        —       ADIE(1)         CCP1IE(1)  C2IE     C1IE     —                       TMR2IE(1)     TMR1IE         -000  0-00  -000  0-00

PIR1        —       ADIF(1)         CCP1IF(1)  C2IF     C1IF     —                       TMR2IF(1)     TMR1IF         -000  0-00  -000  0-00

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

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

T1CON       T1GINV  TMR1GE          T1CKPS1    T1CKPS0  T1OSCEN  T1SYNC                  TMR1CS        TMR1ON         0000  0000  uuuu  uuuu

Legend:    x = unknown, u = unchanged, –     = unimplemented, read as ‘0’. Shaded cells  are not used  by the Timer1  module.

Note   1:  PIC16F616/16HV616 only.

DS41288F-page 54                                                                                       © 2009 Microchip           Technology Inc.
                                                  PIC16F610/616/16HV610/616

7.0        TIMER2 MODULE                                           The TMR2 and PR2 registers are both fully readable

           (PIC16F616/16HV616 ONLY)                                and writable. On any Reset, the TMR2 register is set to

                                                                   00h and the PR2 register is set to FFh.

The Timer2 module is an 8-bit timer with the following             Timer2 is turned on by setting the TMR2ON bit in the

features:                                                          T2CON register to a ‘1’. Timer2 is turned off by setting

•  8-bit timer register (TMR2)                                     the TMR2ON bit to a ‘0’.

•  8-bit period register (PR2)                                     The Timer2 prescaler is controlled by the T2CKPS bits

•  Interrupt on TMR2 match with PR2                                in  the    T2CON     register.    The  Timer2    postscaler  is

•  Software programmable prescaler (1:1, 1:4, 1:16)                controlled by the TOUTPS bits in the T2CON register.

•  Software programmable postscaler (1:1 to 1:16)                  The    prescaler    and  postscaler    counters  are  cleared

                                                                   when:

See Figure 7-1 for a block diagram of Timer2.                      •   A write to TMR2 occurs.

7.1        Timer2 Operation                                        •   A write to T2CON occurs.

                                                                   •   Any device Reset occurs (Power-on Reset, MCLR

The clock input to the Timer2 module is the system                     Reset, Watchdog Timer Reset, or Brown-out

instruction  clock   (FOSC/4).  The   clock  is   fed  into  the       Reset).

Timer2 prescaler, which has prescale options of 1:1,                   Note:    TMR2        is  not  cleared  when  T2CON       is

1:4 or 1:16. The output of the prescaler is then used to                        written.

increment the TMR2 register.

The values of TMR2 and PR2 are constantly compared

to determine when they match. TMR2 will increment

from 00h until it matches the value in PR2. When a

match occurs, two things happen:

•  TMR2 is reset to 00h on the next increment cycle.

•  The Timer2 postscaler is incremented

The match output of the Timer2/PR2 comparator is

then fed into the Timer2 postscaler. The postscaler has

postscale options of 1:1 to 1:16 inclusive. The output of

the  Timer2  postscaler  is     used  to     set  the  TMR2IF

interrupt flag bit in the PIR1 register.

FIGURE 7-1:          TIMER2 BLOCK DIAGRAM

                                                                                TMR2                 Sets Flag

                                                                                Output               bit TMR2IF

             FOSC/4               Prescaler                  TMR2  Reset

                                1:1, 1:4, 1:16

                                          2            Comparator         Postscaler

                                                                   EQ     1:1 to 1:16

                                T2CKPS<1:0>

                                                             PR2                4

                                                                        TOUTPS<3:0>

© 2009 Microchip Technology Inc.                                                                              DS41288F-page 55
PIC16F610/616/16HV610/616

REGISTER 7-1:               T2CON: TIMER2 CONTROL REGISTER

       U-0                R/W-0            R/W-0           R/W-0         R/W-0                 R/W-0          R/W-0              R/W-0

        —             TOUTPS3      TOUTPS2                 TOUTPS1       TOUTPS0      TMR2ON                  T2CKPS1         T2CKPS0

bit 7                                                                                                                                  bit 0

Legend:

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

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

bit 7                 Unimplemented: Read as ‘0’

bit 6-3               TOUTPS<3:0>: Timer2 Output Postscaler Select bits

                      0000  =  1:1 Postscaler

                      0001  =  1:2 Postscaler

                      0010  =  1:3 Postscaler

                      0011  =  1:4 Postscaler

                      0100  =  1:5 Postscaler

                      0101  =  1:6 Postscaler

                      0110  =  1:7 Postscaler

                      0111  =  1:8 Postscaler

                      1000  =  1:9 Postscaler

                      1001  =  1:10 Postscaler

                      1010  =  1:11 Postscaler

                      1011  =  1:12 Postscaler

                      1100  =  1:13 Postscaler

                      1101  =  1:14 Postscaler

                      1110  =  1:15 Postscaler

                      1111  =  1:16 Postscaler

bit 2                 TMR2ON: Timer2 On bit

                      1=    Timer2 is on

                      0=    Timer2 is off

bit 1-0               T2CKPS<1:0>: Timer2 Clock Prescale Select bits

                      00 =  Prescaler is 1

                      01 =  Prescaler is 4

                      1x =  Prescaler is 16

TABLE        7-1:     SUMMARY OF ASSOCIATED TIMER2 REGISTERS

                                                                                                              Value on           Value on

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

                                                                                                                                 Resets

INTCON       GIE            PEIE   T0IE           INTE     RAIE          T0IF         INTF            RAIF    0000   0000        0000  0000

PIE1               —      ADIE(1)  CCP1IE(1)      C2IE     C1IE          —            TMR2IE(1)       TMR1IE  -000   0-00        -000  0-00

PIR1               —      ADIF(1)  CCP1IF(1)      C2IF     C1IF          —            TMR2IF(1)       TMR1IF  -000   0-00        -000  0-00

PR2(1)       Timer2 Module Period Register                                                                    1111   1111        1111  1111

TMR2(1)      Holding Register for the 8-bit TMR2 Register                                                     0000   0000        0000  0000

T2CON(1)           —      TOUTPS3  TOUTPS2        TOUTPS1  TOUTPS0       TMR2ON       T2CKPS1        T2CKPS0  -000   0000        -000  0000

Legend:      x = unknown, u = unchanged, –      = unimplemented read as  ‘0’. Shaded  cells are not  used for Timer2 module.

Note     1:  PIC16F616/16HV616 only.

DS41288F-page 56                                                                                      © 2009 Microchip Technology Inc.
                                                   PIC16F610/616/16HV610/616

8.0       COMPARATOR MODULE                                       FIGURE 8-1:         SINGLE COMPARATOR

Comparators are used to interface analog circuits to a

digital circuit by comparing two analog voltages and              VIN+         +

providing a digital indication of their relative magnitudes.                          –                   Output

The comparators are very useful mixed signal building             VIN-

blocks    because   they     provide   analog   functionality

independent  of    the  device.   The  Analog   Comparator

module includes the following features:

•  Independent comparator control                                 VIN-

•  Programmable input selection                                          VIN+

•  Comparator output is available internally/externally

•  Programmable output polarity

•  Interrupt-on-change

•  Wake-up from Sleep                                             Output

•  PWM shutdown

•  Timer1 gate (count enable)

•  Output synchronization to Timer1 clock input                   Note:   The  black     areas  of  the  output  of  the

•  SR Latch                                                               comparator     represents  the  uncertainty

                                                                          due to input offsets and response time.

•  Programmable and fixed voltage reference

•  User-enable Comparator Hysteresis

   Note:     Only   Comparator    C2      can  be  linked     to

             Timer1.

8.1       Comparator Overview

A single comparator is shown in Figure 8-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.

© 2009 Microchip Technology Inc.                                                                     DS41288F-page 57
PIC16F610/616/16HV610/616

FIGURE  8-2:            COMPARATOR C1 SIMPLIFIED BLOCK DIAGRAM

              C1CH<1:0>

                             2                                                       C1POL                        To

                                                                         D     Q                                  Data Bus

        C12IN0-             0                                     Q1     EN

                                                                                                    RD_CM1CON0

        C12IN1-             1

                             MUX                                                                                  Set C1IF

        C12IN2-             2                                                     D      Q

                                                          Q3*RD_CM1CON0           EN

        C12IN3-             3                                                        CL             To PWM Logic

                                               C1ON(1)                   Reset

                        C1R                                                                         C1OE

                                    C1VIN-  -

              C1IN+         0       C1VIN+     C1                        C1OUT

                             MUX            +

        C1VREF              1                                                                                     C1OUT     pin(2)

                                                   C1POL

                  Note  1:   When C1ON = 0, the C1 comparator will produce a ‘0’ output to the      XOR Gate.

                        2:   Output shown for reference only. See I/O port pin block diagram for    more detail.

FIGURE 8-3:             COMPARATOR C2 SIMPLIFIED BLOCK DIAGRAM

                                                                                  C2POL                           To

                                                                         D     Q                                  Data Bus

                                                                  Q1     EN

                                                                                                    RD_CM2CON0

              C2CH<1:0>                                                                                           Set C2IF

                             2                                                    D     Q

                                                        Q3*RD_CM2CON0             EN

        C12IN0-             0               C2ON(1)                                  CL

        C12IN1-             1                                            Reset

                               MUX  C2VIN-

        C2IN2-              2       C2VIN+  C2                           C2OUT                      To other peripherals

        C2IN3-              3                                                  C2SYNC

                                                                                                    C2OE

                        C2R                     C2POL                                0

                                                                                      MUX

                                                                      D     Q        1                            C2OUT pin(2)

        C2IN+                  0

                               MUX                   From Timer1                                    SYNCC2OUT

             C2VREF            1                          Clock

                                                                                                    To Timer1 Gate

                                                                                                    To SR Latch

Note         1:   When C2ON = 0, the C2 comparator will produce a ‘0’ output to the XOR Gate.

             2:   Output shown for reference only. See I/O port pin block diagram for more detail.

DS41288F-page 58                                                                                    © 2009 Microchip Technology     Inc.
                                                     PIC16F610/616/16HV610/616

8.2        Comparator Control                                       8.2.4         COMPARATOR OUTPUT SELECTION

Each       comparator     has     a  separate        control  and   The  output   of  the  comparator        can  be   monitored   by

Configuration     register:  CM1CON0       for  Comparator    C1    reading either the CxOUT bit of the CMxCON0 register

and    CM2CON0         for   Comparator        C2.   In  addition,  or the MCxOUT bit of the CM2CON1 register. In order

Comparator       C2    has     a     second     control  register,  to make the output available for an external connection,

CM2CON1, for controlling the interaction with Timer1 and            the following conditions must be true:

simultaneous reading of both comparator outputs.                    •  CxOE bit of the CMxCON0 register must be set

The CM1CON0 and CM2CON0 registers (see Registers                    •  Corresponding TRIS bit must be cleared

8-1 and 8-2, respectively) contain the control and Status           •  CxON bit of the CMxCON0 register must be set.

bits for the following:                                                  Note 1:  The CxOE bit overrides the PORT data

•  Enable                                                                         latch. Setting the CxON has no impact on

•  Input selection                                                                the port override.

•  Reference selection                                                       2:   The internal output of the comparator is

•  Output selection                                                               latched     with     each   instruction      cycle.

•  Output polarity                                                                Unless      otherwise      specified,      external

                                                                                  outputs are not latched.

8.2.1       COMPARATOR ENABLE

Setting the CxON bit of the CMxCON0 register enables                8.2.5         COMPARATOR OUTPUT POLARITY

the comparator for operation. Clearing the CxON bit                 Inverting the output of the comparator is functionally

disables   the      comparator       for     minimum     current    equivalent    to  swapping     the  comparator     inputs.     The

consumption.                                                        polarity of the comparator output can be inverted by

                                                                    setting  the  CxPOL       bit  of   the  CMxCON0         register.

8.2.2       COMPARATOR INPUT SELECTION                              Clearing the CxPOL bit results in a non-inverted output.

The CxCH<1:0> bits of the CMxCON0 register direct                   Table 8-1     shows    the     output    state     versus      input

one    of  four   analog     input   pins  to   the  comparator     conditions, including polarity control.

inverting input.                                                    TABLE 8-1:           COMPARATOR OUTPUT

   Note:    To use CxIN+ and CxIN- pins as analog                                        STATE VS. INPUT

            inputs, the appropriate bits must be set in                                  CONDITIONS

            the ANSEL register and the corresponding                   Input Condition          CxPOL                  CxOUT

            TRIS bits must also be set to disable the

            output drivers.                                            CxVIN- > CxVIN+              0                    0

                                                                       CxVIN- < CxVIN+              0                    1

8.2.3       COMPARATOR REFERENCE                                       CxVIN- > CxVIN+              1                    1

            SELECTION                                                  CxVIN- < CxVIN+              1                    0

Setting the CxR bit of the CMxCON0 register directs an

internal voltage reference or an analog input pin to the            8.3        Comparator Response Time

non-inverting input of the comparator. See Section 8.11

“Comparator Voltage Reference” for more information                 The comparator output is indeterminate for a period of

on the internal voltage reference module.                           time after the change of an input source or the selection

                                                                    of a new reference voltage. This period is referred to as

                                                                    the    response   time.     The     response       time    of  the

                                                                    comparator differs from the settling time of the voltage

                                                                    reference.    Therefore,    both    of  these   times    must  be

                                                                    considered when determining the total response time

                                                                    to a comparator input change. See the Comparator and

                                                                    Voltage    Reference      Specifications       in  Section 15.0

                                                                    “Electrical Specifications” for more details.

© 2009 Microchip Technology Inc.                                                                                  DS41288F-page 59
PIC16F610/616/16HV610/616

8.4           Comparator Interrupt Operation                               FIGURE 8-4:              COMPARATOR

The  comparator    interrupt     flag     can   be    set    whenever                               INTERRUPT TIMING             W/O

there is a change in the output value of the comparator.                                            CMxCON0 READ

Changes       are  recognized    by    means       of    a   mismatch      Q1

circuit   which    consists      of    two      latches      and      an   Q3

exclusive-or gate (see Figure 8-2 and Figure 8-3). One                     CxIN+               TRT

latch is updated with the comparator output level when

the CMxCON0 register is read. This latch retains the                       CxOUT

value until the next read of the CMxCON0 register or                       Set CxIF (edge)

the  occurrence    of   a  Reset.     The      other    latch     of  the  CxIF

mismatch circuit is updated on every Q1 system clock.                                                         reset by software

A mismatch condition will occur when a comparator

output change is clocked through the second latch on                       FIGURE 8-5:              COMPARATOR

the Q1 clock cycle. At this point the two mismatch                                                  INTERRUPT TIMING WITH

latches have opposite output levels which is detected                                               CMxCON0 READ

by   the  exclusive-or     gate      and   fed    to    the  interrupt

circuitry. The mismatch condition persists until either                    Q1

the  CMxCON0       register      is  read     or   the   comparator

output returns to the previous state.                                      Q3

     Note 1:  A    write   operation       to     the    CMxCON0           CxIN+               TRT

              register     will  also     clear     the     mismatch       CxOUT

              condition because all writes include a read                  Set CxIF (edge)

              operation    at    the   beginning        of   the  write    CxIF

              cycle.                                                              cleared by   CMxCON0 read            reset by software

          2:  Comparator interrupts will operate correctly

              regardless of the state of CxOE.

The comparator interrupt is set by the mismatch edge                       Note 1:    If    a  change     in  the  CMxCON0       register

and not the mismatch level. This means that the inter-                                (CxOUT) should occur when a read oper-

rupt flag can be reset without the additional step of                                 ation is being executed (start of the Q2

reading or writing the CMxCON0 register to clear the                                  cycle), then the CxIF of the PIR1 register

mismatch registers. When the mismatch registers are                                   interrupt flag may not get set.

cleared, an interrupt will occur upon the comparator’s                            2:  When either comparator is first enabled,

return to the previous state, otherwise no interrupt will                             bias     circuitry  in  the  comparator    module

be generated.                                                                         may      cause      an  invalid  output    from  the

Software will need to maintain information about the                                  comparator until the bias circuitry is stable.

status    of  the  comparator        output,   as   read     from     the             Allow about 1 μs for bias settling then clear

CMxCON0 register, or CM2CON1 register, to determine                                   the mismatch condition and interrupt flags

the actual change that has occurred.                                                  before enabling comparator interrupts.

The CxIF bit of the PIR1 register is the comparator

interrupt flag. This bit must be reset in software by

clearing it to ‘0’. Since it is also possible to write a ‘1’ to

this register, an interrupt can be generated.

The CxIE bit of the PIE1 register and the PEIE and GIE

bits of the INTCON register must all be set to enable

comparator interrupts. If any of these bits are cleared,

the interrupt is not enabled, although the CxIF bit of the

PIR1 register will still be set if an interrupt condition

occurs.

DS41288F-page 60                                                                                    © 2009 Microchip Technology Inc.
                                                   PIC16F610/616/16HV610/616

8.5        Operation During Sleep

The comparator, if enabled before entering Sleep mode,

remains    active  during  Sleep.   The      additional    current

consumed by the comparator is shown separately in

Section 15.0       “Electrical      Specifications”.       If  the

comparator     is  not  used    to  wake     the  device,  power

consumption can be minimized while in Sleep mode by

turning off the comparator. Each comparator is turned off

by clearing the CxON bit of the CMxCON0 register.

A change to the comparator output can wake-up the

device from Sleep. To enable the comparator to wake

the device from Sleep, the CxIE bit of the PIE1 register

and the PEIE bit of the INTCON register must be set.

The instruction following the Sleep instruction always

executes following a wake from Sleep. If the GIE bit of

the INTCON register is also set, the device will then

execute the interrupt service routine.

8.6        Effects of a Reset

A device Reset forces the CMxCON0 and CM2CON1

registers  to  their    Reset       states.  This  forces      both

comparators and the voltage references to their OFF

states.

© 2009 Microchip Technology Inc.                                     DS41288F-page 61
PIC16F610/616/16HV610/616

REGISTER 8-1:      CM1CON0: COMPARATOR 1 CONTROL REGISTER 0

     R/W-0         R-0       R/W-0               R/W-0         U-0                  R/W-0        R/W-0         R/W-0

     C1ON          C1OUT     C1OE                C1POL         —                    C1R          C1CH1  C1CH0

bit 7                                                                                                                bit 0

Legend:

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

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

bit 7         C1ON: Comparator C1 Enable bit

              1 = Comparator C1 is enabled

              0 = Comparator C1 is disabled

bit 6         C1OUT: Comparator C1 Output bit

              If C1POL = 1 (inverted polarity):

              C1OUT = 0 when C1VIN+ > C1VIN-

              C1OUT = 1 when C1VIN+ < C1VIN-

              If C1POL = 0 (non-inverted polarity):

              C1OUT = 1 when C1VIN+ > C1VIN-

              C1OUT = 0 when C1VIN+ < C1VIN-

bit  5        C1OE: Comparator C1 Output Enable bit

              1 = C1OUT is present on the C1OUT pin(1)

              0 = C1OUT is internal only

bit  4        C1POL: Comparator C1 Output Polarity Select bit

              1 = C1OUT logic is inverted

              0 = C1OUT logic is not inverted

bit  3        Unimplemented: Read as ‘0’

bit  2        C1R: Comparator C1 Reference Select bit (non-inverting  input)

              1 = C1VIN+ connects to C1VREF output

              0 = C1VIN+ connects to C1IN+ pin

bit  1-0      C1CH<1:0>: Comparator C1 Channel Select bit

              00 = C12IN0- pin of C1 connects to C1VIN-

              01 = C12IN1- pin of C1 connects to C1VIN-

              10 = C12IN2- pin of C1 connects to C1VIN-

              11 = C12IN3- pin of C1 connects to C1VIN-

Note      1:  Comparator output requires the following three conditions: C1OE = 1,  C1ON   =  1  and  corresponding  port

              TRIS bit = 0.

DS41288F-page 62                                                                           © 2009 Microchip Technology Inc.
                                                    PIC16F610/616/16HV610/616

REGISTER 8-2:      CM2CON0: COMPARATOR 2 CONTROL REGISTER 0

     R/W-0         R-0            R/W-0             R/W-0      U-0                  R/W-0        R/W-0         R/W-0

     C2ON          C2OUT          C2OE              C2POL      —                    C2R          C2CH1  C2CH0

bit 7                                                                                                                bit 0

Legend:

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

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

bit 7         C2ON: Comparator C2 Enable bit

              1 = Comparator C2 is enabled

              0 = Comparator C2 is disabled

bit 6         C2OUT: Comparator C2 Output bit

              If C2POL = 1 (inverted polarity):

              C2OUT = 0 when C2VIN+ > C2VIN-

              C2OUT = 1 when C2VIN+ < C2VIN-

              If C2POL = 0 (non-inverted polarity):

              C2OUT = 1 when C2VIN+ > C2VIN-

              C2OUT = 0 when C2VIN+ < C2VIN-

bit  5        C2OE: Comparator C2 Output Enable bit

              1 = C2OUT is present on C2OUT pin(1)

              0 = C2OUT is internal only

bit  4        C2POL: Comparator C2 Output Polarity Select bit

              1 = C2OUT logic is inverted

              0 = C2OUT logic is not inverted

bit  3        Unimplemented: Read as ‘0’

bit  2        C2R: Comparator C2 Reference Select bits (non-inverting  input)

              1 = C2VIN+ connects to C2VREF

              0 = C2VIN+ connects to C2IN+ pin

bit  1-0      C2CH<1:0>: Comparator C2 Channel Select bits

              00 = C2VIN- pin of C2 connects to C12IN0-

              01 = C2VIN- pin of C2 connects to C12IN1-

              10 = C2VIN- pin of C2 connects to C12IN2-

              11 = C2VIN- pin of C2 connects to C12IN3-

Note      1:  Comparator output requires the following three conditions: C2OE = 1,  C2ON   =  1  and  corresponding  port

              TRIS bit = 0.

© 2009 Microchip Technology Inc.                                                                        DS41288F-page 63
PIC16F610/616/16HV610/616

8.7   Comparator Analog Input

      Connection Considerations                                                 Note 1:  When reading a PORT register, all pins

A  simplified    circuit  for  an  analog    input   is  shown   in                      configured as analog inputs will read as a

Figure 8-6.    Since      the  analog   input  pins  share    their                      ‘0’. Pins configured as digital inputs will

connection     with   a   digital  input,  they    have  reverse                         convert as an analog input, according to

biased ESD protection diodes to VDD and VSS. The                                         the input specification.

analog input, therefore, must be between VSS and VDD.                                2:  Analog levels on any pin defined as a

If the input voltage deviates from this range by more                                    digital input, may cause the input buffer to

than  0.6V   in  either   direction,    one    of  the   diodes  is                      consume more current than is specified.

forward biased and a latch-up may occur.

A maximum source impedance of 10 kΩ is recommended

for the analog sources. Also, any external component

connected to an analog input pin, such as a capacitor or

a Zener diode, should have very little leakage current to

minimize inaccuracies introduced.

FIGURE 8-6:                    ANALOG INPUT MODEL

                                                         VDD

                 Rs < 10K                                   VT ≈ 0.6V                    RIC

                                   AIN                                                                             To ADC Input

             VA                         CPIN                VT ≈ 0.6V           ILEAKAGE

                                        5 pF                                    ±500 nA

                                                                                Vss

      Legend:             CPIN         = Input Capacitance

                          ILEAKAGE = Leakage Current at the pin        due  to  various junctions

                          RIC          = Interconnect Resistance

                          RS           = Source Impedance

                          VA           = Analog Voltage

                          VT           = Threshold Voltage

DS41288F-page 64                                                                                   © 2009 Microchip Technology Inc.
                                                      PIC16F610/616/16HV610/616

8.8         Additional Comparator Features                                     8.8.2             SYNCHRONIZING COMPARATOR

There are three additional comparator features:                                                  C2 OUTPUT TO TIMER1

•   Timer1 count enable (gate)                                                 The Comparator C2 output can be synchronized with

                                                                               Timer1 by setting the C2SYNC bit of the CM2CON1

•   Synchronizing output with Timer1                                           register. When enabled, the C2 output is latched on the

•   Simultaneous read of comparator outputs                                    falling edge of the Timer1 clock source. If a prescaler is

                                                                               used with Timer1, the comparator output is latched after

8.8.1           COMPARATOR C2 GATING TIMER1                                    the prescaling function. To prevent a race condition, the

This feature can be used to time the duration or interval                      comparator output is latched on the falling edge of the

of      analog  events.   Clearing  the  T1GSS        bit  of  the             Timer1  clock     source  and  Timer1     increments   on   the

CM2CON1         register   will  enable  Timer1  to   increment                rising edge of its clock source. See the Comparator

based on the output of Comparator C2. This requires                            Block   Diagram   (Figure 8-3)     and    the  Timer1  Block

that       Timer1  is  on  and   gating  is   enabled.         See             Diagram (Figure 6-1) for more information.

Section 6.0 “Timer1 Module with Gate Control” for                              8.8.3             SIMULTANEOUS COMPARATOR

details.

It is recommended to synchronize the comparator with                                             OUTPUT READ

Timer1 by setting the C2SYNC bit when the comparator                           The MC1OUT and MC2OUT bits of the CM2CON1

is used as the Timer1 gate source. This ensures Timer1                         register are mirror copies of both comparator outputs.

does not miss an increment if the comparator changes                           The ability to read both outputs simultaneously from a

during an increment.                                                           single register eliminates the timing skew of reading

                                                                               separate registers.

                                                                               Note 1:           Obtaining the status of C1OUT or C2OUT

                                                                                                 by reading CM2CON1 does not affect the

                                                                                                 comparator interrupt mismatch registers.

REGISTER 8-3:              CM2CON1: COMPARATOR 2 CONTROL REGISTER 1

           R-0             R-0           U-0               R/W-0               R/W-0             R/W-0            R/W-1           R/W-0

        MC1OUT           MC2OUT          —                 T1ACS               C1HYS             C2HYS            T1GSS           C2SYNC

   bit 7                                                                                                                                 bit  0

   Legend:

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

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

   bit  7              MC1OUT: Mirror Copy of C1OUT bit

   bit  6              MC2OUT: Mirror Copy of C2OUT bit

   bit  5              Unimplemented: Read as ‘0’

   bit  4              T1ACS: Timer1 Alternate Clock Select bit

                       1 = Timer1 clock source is the system clock (FOSC)

                       0 = Timer1 clock source is the internal clock FOSC/4)

   bit  3              C1HYS: Comparator C1 Hysteresis Enable bit

                       1 = Comparator C1 Hysteresis enabled

                       0 = Comparator C1 Hysteresis disabled

   bit  2              C2HYS: Comparator C2 Hysteresis Enable bit

                       1 = Comparator C2 Hysteresis enabled

                       0 = Comparator C2 Hysteresis disabled

   bit  1              T1GSS: Timer1 Gate Source Select bit

                       1 = Timer1 gate source is T1G

                       0 = Timer1 gate source is SYNCC2OUT.

   bit  0              C2SYNC: Comparator C2 Output Synchronization bit

                       1 = C2 Output is synchronous to falling edge of Timer1  clock

                       0 = C2 Output is asynchronous

© 2009 Microchip Technology Inc.                                                                                         DS41288F-page 65
PIC16F610/616/16HV610/616

8.9     Comparator Hysteresis                               Figure 8-9 shows the relationship between the analog

                                                            input levels and digital output of a comparator with and

Each comparator has built-in hysteresis that is user        without  hysteresis.   The   output  of  the  comparator

enabled by setting the C1HYS or C2HYS bits of the           changes from a low state to a high state only when the

CM2CON1 register. The hysteresis feature can help           analog   voltage  at   VIN+  rises   above    the               upper

filter  noise  and  reduce    multiple  comparator  output  hysteresis  threshold  (VH+).      The   output    of           the

transitions when the output is changing state.              comparator changes from a high state to a low state

                                                            only when the analog voltage at VIN+ falls below the

                                                            lower hysteresis threshold (VH-).

FIGURE 8-7:            COMPARATOR HYSTERESIS

                                VIN+                  +

                                                                              Output

                                VIN-                  –

                            V+

                    VH+

                    VIN-

                    VH-

                    VIN+

               Output

        (Without Hysteresis)

               Output

        (With Hysteresis)

Note:          The black areas of the comparator output represents the uncertainty due to input offsets and response time.

DS41288F-page 66                                                                   © 2009 Microchip Technology Inc.
                                               PIC16F610/616/16HV610/616

TABLE 8-2:     SUMMARY OF REGISTERS ASSOCIATED WITH THE COMPARATOR AND

               VOLTAGE REFERENCE MODULES

                                                                                                                    Value on    Value on

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

                                                                                                                                Resets

ANSEL       ANS7    ANS6            ANS5       ANS4        ANS3(1)       ANS2(1)  ANS1       ANS0                   1111  1111  1111  1111

CM1CON0     C1ON    C1OUT           C1OE       C1POL       C1SP          C1R      C1CH1      C1CH0                  0000  0000  0000  0000

CM2CON0     C2ON    C2OUT           C2OE       C2POL       C2SP          C2R      C2CH1      C2CH0                  0000  0000  0000  0000

CM2CON1     MC1OUT  MC2OUT          —          T1ACS       C1HYS         C2HYS    T1GSS      C2SYNC                 00-0  0010  00-0  0010

INTCON      GIE     PEIE            T0IE       INTE        RAIE          T0IF     INTF       RAIF                   0000  000x  0000  000x

PIE1        —       ADIE(1)         CCP1IE(1)  C2IE        C1IE          —        TMR2IE(1)  TMR1IE                 -000  0-00  -000  0-00

PIR1        —       ADIF(1)         CCP1IF(1)  C2IF        C1IF          —        TMR2IF(1)  TMR1IF                 -000  0-00  -000  0-00

PORTA       —       —               RA5        RA4         RA3           RA2      RA1        RA0                    --x0  x000  --x0  x000

PORTC       —       —               RC5        RC4         RC3           RC2      RC1        RC0                    --xx  00xx  --uu  00uu

SRCON0      SR1     SR0             C1SEN      C2REN       PULSS         PULSR    —          SRCLKEN                0000  00-0  0000  00-0

SRCON1      SRCS1   SRCS0           —          —           —             —        —          —                      00--  ----  00--  ----

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

TRISC                               TRISC5     TRISC4      TRISC3        TRISC2   TRISC1     TRISC0                 1111  1111  1111  1111

VRCON       C1VREN  C2VREN          VRR        FVREN       VR3           VR2      VR1        VR0                    0000  0000  0000  0000

Legend:    x = unknown, u = unchanged, – = unimplemented,  read as ‘0’.  Shaded cells are not used for comparator.

Note   1:  PIC16F616/16HV616 only.

© 2009 Microchip Technology Inc.                                                                                          DS41288F-page 67
PIC16F610/616/16HV610/616

8.10       Comparator SR Latch                                           inputs are high the latch will go to the Reset state. Both

                                                                         the PULSS and PULSR bits are self resetting which

The SR latch module provides additional control of the                   means that a single write to either of the bits is all that is

comparator outputs. The module consists of a single                      necessary to complete a latch Set or Reset operation.

SR latch and output multiplexers. The SR latch can be

set, reset or toggled by the comparator outputs. The SR                  8.10.2    LATCH OUTPUT

latch  may    also  be  set       or   reset,  independent     of        The SR<1:0> bits of the SRCON0 register control the

comparator    output,   by    control    bits  in  the  SRCON0           latch output multiplexers and determine four possible

control register. The SR latch output multiplexers select                output configurations. In these four configurations, the

whether the latch outputs or the comparator outputs are                  CxOUT I/O port logic is connected to:

directed to the I/O port logic for eventual output to a pin.

The    SR  latch  also  has     a  variable    clock,   which  is        •  C1OUT and C2OUT

connected to the set input of the latch. The SRCLKEN                     •  C1OUT and SR latch Q

bit of SRCON0 enables the SR latch set clock. The                        •  C2OUT and SR latch Q

clock will periodically pulse the set input of the latch.                •  SR latch Q and Q

Control over the frequency of the SR latch set clock is                  After any Reset, the default output configuration is the

provided by the SRCS<1:0> bits of SRCON1 register.                       unlatched C1OUT and C2OUT mode. This maintains

8.10.1        LATCH OPERATION                                            compatibility with devices that do not have the SR latch

                                                                         feature.

The latch is a Set-Reset latch that does not depend on a                 The  applicable  TRIS        bits  of  the  corresponding  ports

clock source. Each of the Set and Reset inputs are                       must be cleared to enable the port pin output drivers.

active-high.  Each      latch     input  is    connected   to  a         Additionally, the CxOE comparator output enable bits of

comparator    output    and    a   software    controlled  pulse         the CMxCON0 registers must be set in order to make the

generator. The latch can be set by C1OUT or the PULSS                    comparator or latch outputs available on the output pins.

bit of the SRCON0 register. The latch can be reset by                    The latch configuration enable states are completely

C2OUT or the PULSR bit of the SRCON0 register. The                       independent of the enable states for the comparators.

latch is reset-dominant, therefore, if both Set and Reset

FIGURE 8-8:             SR LATCH SIMPLIFIED BLOCK                        DIAGRAM

                        SRCLKEN

                        SRCLK                                                      SR0

                                                                                                                C1OE

       PULSS          Pulse
                    Gen(2)
                                                                                              0

       C1OUT (from comparator)                                                                        MUX

                                                               S   Q                          1                       C1OUT pin(3)

       C1SEN

                                                               SR
                                                               Latch(1)
                                                                                                                C2OE

       SYNCC2OUT (from comparator)

       C2REN                                                   R   Q                          1

                                                                                                      MUX

                                                                                              0                       C2OUT pin(3)

       PULSR          Pulse                                                        SR1

                      Gen(2)

       Note   1:    If R = 1 and S = 1 simultaneously, Q = 0, Q = 1

              2:    Pulse generator causes a 1 TOSC pulse width.

              3:    Output shown for reference only. See I/O port pin block diagram for more detail.

DS41288F-page 68                                                                                      © 2009 Microchip Technology Inc.
                                                     PIC16F610/616/16HV610/616

REGISTER 8-4:            SRCON0: SR LATCH CONTROL 0 REGISTER

        R/W-0          R/W-0       R/W-0                   R/W-0             R/S-0           R/S-0          U-0                 R/W-0

        SR1(2)         SR0(2)      C1SEN                   C2REN         PULSS               PULSR          —                   SRCLKEN

bit 7                                                                                                                                  bit 0

Legend:                                                               S = Bit is set only -

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

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

bit  7             SR1: SR Latch Configuration bit(2)

                   1=    C2OUT pin is the latch Q output

                   0=    C2OUT pin is the C2 comparator output

bit  6             SR0: SR Latch Configuration bits(2)

                   1=    C1OUT pin is the latch Q output

                   0=    C1OUT pin is the C1 Comparator output

bit  5             C1SEN: C1 Set Enable bit

                   1=    C1 comparator output sets SR latch

                   0=    C1 comparator output has no effect on SR latch

bit  4             C2REN: C2 Reset Enable bit

                   1=    C2 comparator output resets SR latch

                   0=    C2 comparator output has no effect on SR latch

bit  3             PULSS: Pulse the SET Input of the SR Latch bit

                   1=    Triggers pulse generator to set SR latch. Bit is immediately reset by hardware.

                   0=    Does not trigger pulse generator

bit  2             PULSR: Pulse the Reset Input of the SR Latch bit

                   1=    Triggers pulse generator to reset SR latch. Bit is immediately reset by hardware.

                   0=    Does not trigger pulse generator

bit  1             Unimplemented: Read as ‘0’

bit  0             SRCLKEN: SR Latch Set Clock Enable bit

                   1=    Set input of SR latch is pulsed with SRCLK

                   0=    Set input of SR latch is not pulsed with the SRCLK

Note     1:     The C1OUT and C2OUT bits in the CMxCON0 register will always reflect the actual comparator output (not the      level  on

                the pin), regardless of the SR latch operation.

         2:     To enable an SR Latch output to the pin, the appropriate CxOE, and TRIS bits must be properly configured.

REGISTER 8-5:            SRCON1: SR LATCH CONTROL 1 REGISTER

        R/W-0          R/W-0       U-0                           U-0         U-0             U-0            U-0                 U-0

       SRCS1           SRCS0       —                             —           —               —              —                   —

bit 7                                                                                                                                  bit  0

Legend:                                                               S = Bit is set only -

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

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

bit 7-6            SRCS<1:0>: SR Latch Clock Prescale bits

                   00 =  FOSC/16

                   01 =  FOSC/32

                   10 =  FOSC/64

                   11 =  FOSC/128

bit 5-0            Unimplemented: Read as ‘0’

© 2009 Microchip Technology Inc.                                                                                 DS41288F-page 69
PIC16F610/616/16HV610/616

8.11        Comparator Voltage Reference                          8.11.3   OUTPUT CLAMPED TO VSS

The comparator voltage reference module provides an               The fixed voltage reference output voltage can be set

internally  generated         voltage      reference   for   the  to  Vss  with  no  power  consumption  by  clearing  the

comparators. The following features are available:                FVREN bit of the VRCON register (FVREN = 0). This

•  Independent from Comparator operation                          allows the comparator to detect a zero-crossing while

                                                                  not consuming additional module current.

•  Two 16-level voltage ranges

•  Output clamped to VSS                                          8.11.4   OUTPUT RATIOMETRIC TO VDD

•  Ratiometric with VDD                                           The comparator voltage reference is VDD derived and

•  Fixed Reference (0.6V)                                         therefore, the CVREF output changes with fluctuations in

The   VRCON         register  (Register 8-6)      controls   the  VDD. The tested absolute accuracy of the Comparator

voltage reference module shown in Figure 8-9.                     Voltage  Reference  can   be  found    in  Section 15.0

                                                                  “Electrical Specifications”.

8.11.1      INDEPENDENT OPERATION

The comparator voltage reference is independent of

the comparator configuration. Setting the FVREN bit of

the VRCON register will enable the voltage reference.

8.11.2      OUTPUT VOLTAGE SELECTION

The CVREF voltage reference has 2 ranges with 16

voltage     levels  in  each  range.       Range  selection  is

controlled by the VRR bit of the VRCON register. The

16 levels are set with the VR<3:0> bits of the VRCON

register.

The   CVREF         output  voltage    is  determined  by    the

following equations:

EQUATION 8-1:               CVREF OUTPUT VOLTAGE

   VRR     = 1 (low range):

            CVREF       = (VR<3:0>/24) × VDD

   VRR     = 0 (high range):

            CVREF = (VDD/4) + (VR<3:0> × VDD/32)

The full range of VSS to VDD cannot be realized due to

the construction of the module. See Figure 8-9.

DS41288F-page 70                                                                            © 2009 Microchip Technology Inc.
                                                   PIC16F610/616/16HV610/616

8.11.5       FIXED VOLTAGE REFERENCE                                    8.11.7         VOLTAGE REFERENCE

The fixed voltage reference is independent of VDD, with                                SELECTION

a nominal output voltage of 0.6V. This reference can be                 Multiplexers   on  the  output    of  the  voltage  reference

enabled  by      setting  the  FVREN  bit  of   the   VRCON             module enable selection of either the CVREF or fixed

register to ‘1’. This reference is always enabled when                  voltage reference for use by the comparators.

the HFINTOSC oscillator is active.                                      Setting the C1VREN bit of the VRCON register enables

8.11.6       FIXED VOLTAGE REFERENCE                                    current to flow in the CVREF voltage divider and selects

             STABILIZATION PERIOD                                       the  CVREF     voltage     for  use   by   C1.  Clearing     the

                                                                        C1VREN bit selects the fixed voltage for use by C1.

When the fixed voltage reference module is enabled, it                  Setting the C2VREN bit of the VRCON register enables

will require some time for the reference and its amplifier              current to flow in the CVREF voltage divider and selects

circuits to stabilize. The user program must include a                  the  CVREF     voltage     for  use   by   C2.  Clearing     the

small delay routine to allow the module to settle. See                  C2VREN bit selects the fixed voltage for use by C2.

the  electrical  specifications  section   for  the   minimum

delay requirement.                                                      When both the C1VREN and C2VREN bits are cleared,

                                                                        current flow in the CVREF voltage divider is disabled

                                                                        minimizing the power drain of the voltage reference

                                                                        peripheral.

FIGURE 8-9:                 COMPARATOR VOLTAGE REFERENCE BLOCK DIAGRAM

                                                               16 Stages

                                      8R           R        R                    R         R

     VDD

                                                                                                          8R                VRR

                                           Analog

                                           MUX

                                           15

     CVREF

     To Comparators

     and ADC Module                        0

                                                   VR<3:0>(1)

                                 C1VREN         4

                                 C2VREN

                 To ADC Module                     1.2V                                        FVREN

                                                               EN

                 Fixed Ref                         0.6V  Fixed Voltage

          To Comparators                                    Reference

          and ADC Module

                                                                       Note  1:  Care  should  be  taken  to  ensure  VREF  remains

                                                                                 within the comparator common mode input range.

                                                                                 See Section 15.0 “Electrical Specifications” for

                                                                                 more detail.

© 2009 Microchip Technology Inc.                                                                                   DS41288F-page 71
PIC16F610/616/16HV610/616

REGISTER 8-6:      VRCON: VOLTAGE REFERENCE CONTROL REGISTER

     R/W-0         R/W-0     R/W-0             R/W-0   R/W-0                 R/W-0     R/W-0               R/W-0

     C1VREN        C2VREN    VRR               FVREN   VR3                   VR2           VR1             VR0

bit 7                                                                                                           bit  0

Legend:

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

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

bit  7       C1VREN: Comparator 1 Voltage Reference Enable bit

             1 = CVREF circuit powered on and routed to C1VREF input of Comparator C1

             0 = 0.6 Volt constant reference routed to C1VREF input of Comparator C1

bit  6       C2VREN: Comparator 2 Voltage Reference Enable bit

             1 = CVREF circuit powered on and routed to C2VREF input of Comparator C2

             0 = 0.6 Volt constant reference routed to C2VREF input of Comparator C2

bit  5       VRR: CVREF Range Selection bit

             1 = Low range

             0 = High range

bit  4       FVREN: Fixed Voltage Reference (0.6V) Enable bit

             1 = Enabled

             0 = Disabled

bit  3-0     VR<3:0>: Comparator Voltage Reference CVREF Value Selection bits (0 ≤     VR<3:0>  ≤  15)

             When VRR = 1: CVREF = (VR<3:0>/24) * VDD

             When VRR = 0: CVREF = VDD/4 + (VR<3:0>/32) * VDD

DS41288F-page 72                                                                      © 2009 Microchip Technology Inc.
                                                      PIC16F610/616/16HV610/616

9.0    ANALOG-TO-DIGITAL                                                         Note:  The ADRESL and ADRESH registers are

       CONVERTER (ADC) MODULE                                                           read-only.

       (PIC16F616/16HV616 ONLY)

The    Analog-to-Digital         Converter     (ADC)       allows

conversion of an analog input signal to a 10-bit binary

representation of that signal. This device uses analog

inputs, which are multiplexed into a single sample and

hold   circuit.     The  output  of  the  sample      and  hold  is

connected to the input of the converter. The converter

generates        a  10-bit  binary   result    via    successive

approximation and stores the conversion result into the

ADC result registers (ADRESL and ADRESH).

The ADC voltage reference is software selectable to

either VDD or a voltage applied to the external reference

pins.

The ADC can generate an interrupt upon completion of

a conversion. This interrupt can be used to wake-up the

device from Sleep.

Figure 9-1 shows the block diagram of the ADC.

FIGURE 9-1:                 ADC BLOCK DIAGRAM

                                                              VDD

                                                                     VCFG  =  0

                                               VREF                  VCFG  =  1

                            RA0/AN0

                         RA1/AN1/VREF

                            RA2/AN2

                            RA4/AN3

                            RC0/AN4

                            RC1/AN5

                            RC2/AN6

                            RC3/AN7                                                ADC

                                 CVREF                           GO/DONE                              10

                         0.6V Reference                                                             0 = Left Justify

                         1.2V Reference                                                 ADFM        1 = Right Justify

                                                           4         ADON                             10

                                          CHS  <3:0>                          VSS             ADRESH  ADRESL

© 2009 Microchip Technology Inc.                                                                                      DS41288F-page 73
PIC16F610/616/16HV610/616

9.1           ADC Configuration                                        9.1.4          CONVERSION CLOCK

When configuring and using the ADC,                 the  following     The    source     of  the  conversion   clock    is  software

functions must be considered:                                          selectable via the ADCS bits of the ADCON1 register.

•  Port configuration                                                  There are seven possible clock options:

•  Channel selection                                                   •  FOSC/2

•  ADC voltage reference selection                                     •  FOSC/4

•  ADC conversion clock source                                         •  FOSC/8

•  Interrupt control                                                   •  FOSC/16

•  Results formatting                                                  •  FOSC/32

                                                                       •  FOSC/64

9.1.1         PORT CONFIGURATION                                       •  FRC (dedicated internal oscillator)

The ADC can be used to convert both analog and digital                 The time to complete one bit conversion is defined as

signals.  When     converting    analog    signals,  the  I/O  pin     TAD. One full 10-bit conversion requires 11 TAD periods

should be configured for analog by setting the associated              as shown in Figure 9-3.

TRIS     and  ANSEL      bits.   See  the  corresponding       Port    For correct conversion, the appropriate TAD specification

section for more information.                                          must   be  met.   See      A/D  conversion  requirements   in

   Note:      Analog voltages on any pin that is defined               Section 15.0      “Electrical   Specifications”      for  more

              as a digital input may cause the input buf-              information.   Table 9-1   gives  examples  of   appropriate

              fer to conduct excess current.                           ADC clock selections.

9.1.2         CHANNEL SELECTION                                           Note:      Unless using the FRC, any changes in the

                                                                                     system clock frequency will change the

The CHS bits of the ADCON0 register determine which                                  ADC     clock     frequency,     which      may

channel is connected to the sample and hold circuit.                                 adversely affect the ADC result.

When changing channels, a delay is required before

starting  the      next  conversion.     Refer  to   Section 9.2

“ADC Operation” for more information.

9.1.3         ADC VOLTAGE REFERENCE

The VCFG bit of the ADCON0 register provides control

of the positive voltage reference. The positive voltage

reference     can  be    either  VDD  or   an   external  voltage

source.   The      negative     voltage   reference  is   always

connected to the ground reference.

TABLE 9-1:               ADC CLOCK PERIOD (TAD) VS. DEVICE OPERATING FREQUENCIES (VDD > 3.0V)

              ADC Clock Period (TAD)                                         Device Frequency (FOSC)

   ADC Clock Source              ADCS<2:0>                     20 MHz         8 MHz               4 MHz                1 MHz

          FOSC/2                         000              100 ns(2)          250 ns(2)            500 ns(2)            2.0 μs

          FOSC/4                         100              200 ns(2)          500 ns(2)            1.0 μs(2)            4.0 μs

          FOSC/8                         001              400 ns(2)          1.0 μs(2)            2.0 μs              8.0 μs(3)

          FOSC/16                        101              800 ns(2)           2.0 μs              4.0 μs              16.0 μs(3)

          FOSC/32                        010                   1.6 μs         4.0 μs              8.0 μs(3)           32.0 μs(3)

          FOSC/64                        110                   3.2 μs        8.0 μs(3)            16.0 μs(3)          64.0 μs(3)

              FRC                        x11              2-6 μs(1,4)       2-6 μs(1,4)           2-6 μs(1,4)      2-6 μs(1,4)

   Legend:    Shaded cells are outside of recommended range.

   Note   1:  The FRC source has a typical TAD time of 4 μs for VDD > 3.0V.

          2:  These values violate the minimum required TAD time.

          3:  For faster conversion times, the selection of another clock source is recommended.

          4:  When the device frequency is greater than 1 MHz, the FRC clock source is only recommended if the

              conversion will be performed during Sleep.

DS41288F-page 74                                                                                  © 2009 Microchip Technology Inc.
                                                    PIC16F610/616/16HV610/616

FIGURE     9-2:       ANALOG-TO-DIGITAL CONVERSION TAD CYCLES

                TCY to TAD TAD1    TAD2       TAD3  TAD4     TAD5   TAD6  TAD7      TAD8    TAD9    TAD10 TAD11

                                      b9      b8    b7       b6     b5          b4  b3      b2      b1          b0

                      Conversion Starts

                 Holding Capacitor is Disconnected from Analog Input (typically 100 ns)

                Set GO/DONE bit                                           ADRESH and ADRESL registers are loaded,

                                                                          GO bit is cleared,

                                                                          ADIF bit is set,

                                                                          Holding capacitor is connected to analog input

9.1.5           INTERRUPTS                                                9.1.6           RESULT FORMATTING

The ADC module allows for the ability to generate an                      The 10-bit A/D conversion result can be supplied in two

interrupt  upon  completion        of     an  analog-to-digital           formats, left justified or right justified. The ADFM bit of

conversion. The ADC interrupt flag is the ADIF bit in the                 the ADCON0 register controls the output format.

PIR1 register. The ADC interrupt enable is the ADIE bit                   Figure 9-4 shows the two output formats.

in the PIE1 register. The ADIF bit must be cleared in

software.

    Note:       The ADIF bit is set at the completion of

                every conversion, regardless of whether

                or not the ADC interrupt is enabled.

This interrupt can be generated while the device is

operating or while in Sleep. If the device is in Sleep, the

interrupt will wake-up the device. Upon waking from

Sleep,     the  next  instruction     following     the      SLEEP

instruction is always executed. If the user is attempting

to  wake-up     from  Sleep      and   resume       in-line  code

execution, the global interrupt must be disabled. If the

global interrupt is enabled, execution will switch to the

interrupt service routine.

Please     see  Section 9.1.5      “Interrupts”     for      more

information.

FIGURE 9-3:           10-BIT A/D CONVERSION RESULT FORMAT

                                              ADRESH                                                    ADRESL

        (ADFM = 0)    MSB                                                                   LSB

                      bit 7                                              bit 0      bit  7                                    bit 0

                                                    10-bit A/D   Result                             Unimplemented:  Read  as  ‘0’

        (ADFM = 1)                                                  MSB                                                       LSB

                      bit 7                                              bit 0      bit  7                                    bit 0

                            Unimplemented: Read as ‘0’                                      10-bit  A/D Result

© 2009 Microchip Technology Inc.                                                                                    DS41288F-page 75
PIC16F610/616/16HV610/616

9.2        ADC Operation                                           9.2.5         SPECIAL EVENT TRIGGER

9.2.1         STARTING A CONVERSION                                The ECCP Special Event Trigger allows periodic ADC

                                                                   measurements       without  software     intervention.  When

To    enable  the  ADC     module,     the    ADON  bit  of  the   this trigger occurs, the GO/DONE bit is set by hardware

ADCON0 register must be set to a ‘1’. Setting the GO/              and the Timer1 counter resets to zero.

DONE bit of the ADCON0 register to a ‘1’ will start the            Using   the   Special   Event   Trigger  does    not    ensure

analog-to-digital conversion.                                      proper  ADC    timing.  It  is  the  user’s  responsibility  to

    Note:     The GO/DONE bit should not be set in the             ensure that the ADC timing requirements are met.

              same instruction that turns on the ADC.              See     Section 10.0    “Enhanced        Capture/Compare/

              Refer to Section 9.2.6 “A/D Conversion               PWM     (With     Auto-Shutdown       and    Dead       Band)

              Procedure”.                                          Module       (PIC16F616/16HV616          Only)”  for    more

                                                                   information.

9.2.2         COMPLETION OF A CONVERSION

When the conversion is complete, the ADC module will:              9.2.6         A/D CONVERSION PROCEDURE

•   Clear the GO/DONE bit                                          This is an example procedure for using the ADC to

•   Set the ADIF flag bit                                          perform an analog-to-digital conversion:

•   Update the ADRESH:ADRESL registers with new                    1.   Configure Port:

    conversion result                                                   •  Disable pin output driver (See TRIS register)

                                                                        •  Configure pin as analog

9.2.3         TERMINATING A CONVERSION                             2.   Configure the ADC module:

If a conversion must be terminated before completion,                   •  Select ADC conversion clock

the   GO/DONE      bit  can     be  cleared   in  software.  The        •  Configure voltage reference

ADRESH:ADRESL registers will not be updated with                        •  Select ADC input channel

the   partially   complete      analog-to-digital   conversion

sample. Instead, the ADRESH:ADRESL register pair                        •  Select result format

will retain the value of the previous conversion. Addi-                 •  Turn on ADC module

tionally, a 2 TAD delay is required before another acqui-          3.   Configure ADC interrupt (optional):

sition can be initiated. Following this delay, an input                 •  Clear ADC interrupt flag

acquisition   is   automatically     started  on   the  selected        •  Enable ADC interrupt

channel.                                                                •  Enable peripheral interrupt

    Note:     A device Reset forces all registers to their              •  Enable global interrupt(1)

              Reset     state.  Thus,    the  ADC   module   is    4.   Wait the required acquisition time(2).

              turned off and any pending conversion is             5.   Start conversion by setting the GO/DONE bit.

              terminated.

                                                                   6.   Wait for ADC conversion to complete by one of

9.2.4         ADC OPERATION DURING SLEEP                                the following:

The    ADC    module     can    operate  during    Sleep.    This       •  Polling the GO/DONE bit

requires the ADC clock source to be set to the FRC                      •  Waiting for the ADC interrupt (interrupts

option. When the FRC clock source is selected, the                         enabled)

ADC waits one additional instruction before starting the           7.   Read ADC Result

conversion. This allows the SLEEP instruction to be                8.   Clear the ADC interrupt flag (required if interrupt

executed, which can reduce system noise during the                      is enabled).

conversion. If the ADC interrupt is enabled, the device                Note 1:   The global interrupt may be disabled if the

will  wake-up      from    Sleep     when     the   conversion                   user is attempting to wake-up from Sleep

completes. If the ADC interrupt is disabled, the ADC                             and resume in-line code execution.

module is turned off after the conversion completes,

although the ADON bit remains set.                                         2:    See      Section 9.3    “A/D     Acquisition

When the ADC clock source is something other than                                Requirements”.

FRC,   a      SLEEP     instruction      causes    the   present

conversion    to   be   aborted     and  the  ADC   module   is

turned off, although the ADON bit remains set.

DS41288F-page 76                                                                               © 2009 Microchip Technology Inc.
                                               PIC16F610/616/16HV610/616

EXAMPLE 9-1:            A/D CONVERSION

;This   code  block     configures  the   ADC

;for    polling,   Vdd  reference,  Frc    clock

;and    AN0  input.

;

;Conversion   start     &  polling  for   completion

;  are  included.

;

BANKSEL       ADCON1       ;

MOVLW         B’01110000’  ;ADC     Frc   clock

MOVWF         ADCON1       ;

BANKSEL       TRISA        ;

BSF           TRISA,0      ;Set     RA0   to  input

BANKSEL       ANSEL        ;

BSF           ANSEL,0      ;Set     RA0   to  analog

BANKSEL       ADCON0       ;

MOVLW         B’10000001’  ;Right   justify,

MOVWF         ADCON0       ;Vdd     Vref,     AN0,  On

CALL          SampleTime   ;Acquisiton        delay

BSF           ADCON0,GO    ;Start   conversion

BTFSC         ADCON0,GO    ;Is      conversion      done?

GOTO          $-1          ;No,     test   again

BANKSEL       ADRESH       ;

MOVF          ADRESH,W     ;Read    upper     2  bits

MOVWF         RESULTHI     ;store   in     GPR   space

BANKSEL       ADRESL       ;

MOVF          ADRESL,W     ;Read    lower     8  bits

MOVWF         RESULTLO     ;Store   in     GPR   space

© 2009 Microchip Technology Inc.                           DS41288F-page 77
PIC16F610/616/16HV610/616

9.2.7         ADC REGISTER DEFINITIONS

The following registers are used to control the operation of the ADC.

REGISTER 9-1:              ADCON0: A/D CONTROL REGISTER 0

       R/W-0       R/W-0                R/W-0            R/W-0    R/W-0                 R/W-0              R/W-0               R/W-0

       ADFM        VCFG                 CHS3             CHS2     CHS1                  CHS0               GO/DONE             ADON

bit 7                                                                                                                                 bit 0

Legend:

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

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

bit 7              ADFM: A/D Conversion Result Format Select bit

                   1 = Right justified

                   0 = Left justified

bit 6              VCFG: Voltage Reference bit

                   1 = VREF pin

                   0 = VDD

bit 5-2            CHS<3:0>: Analog Channel Select bits

                   0000 =   Channel 00 (AN0)

                   0001 =   Channel 01 (AN1)

                   0010 =   Channel 02 (AN2)

                   0011 =   Channel 03 (AN3)

                   0100 =   Channel 04 (AN4)

                   0101 =   Channel 05 (AN5)

                   0110 =   Channel 06 (AN6)

                   0111 =   Channel 07 (AN7)

                   1000 =   Reserved – do not use

                   1001 =   Reserved – do not use

                   1010 =   Reserved – do not use

                   1011 =   Reserved – do not use

                   1100 =   CVREF

                   1101 =   0.6V Fixed Voltage Reference(1)

                   1110 =   1.2V Fixed Voltage Reference(1)

                   1111 =   Reserved – do not use

bit 1              GO/DONE: A/D Conversion Status bit

                   1 = A/D conversion cycle in progress. Setting this bit starts an A/D conversion cycle.

                   This bit is automatically cleared by hardware when the A/D conversion has completed.

                   0 = A/D conversion completed/not in progress

bit 0              ADON: ADC Enable bit

                   1 = ADC is enabled

                   0 = ADC is disabled and consumes no operating current

Note     1:   When the CHS<3:0> bits change to select the 1.2V or 0.6V Fixed Voltage Reference, the reference       output voltage will

              have a transient. If the Comparator module uses this VP6 reference voltage, the comparator output     may momentarily

              change state due to the transient.

DS41288F-page 78                                                                               © 2009 Microchip Technology Inc.
                                                    PIC16F610/616/16HV610/616

REGISTER     9-2:  ADCON1: A/D CONTROL REGISTER 1

        U-0        R/W-0          R/W-0             R/W-0               U-0                 U-0                 U-0             U-0

          —        ADCS2          ADCS1             ADCS0               —                        —              —               —

bit 7                                                                                                                                bit  0

Legend:

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

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

bit  7             Unimplemented: Read as ‘0’

bit  6-4           ADCS<2:0>: A/D Conversion Clock Select     bits

                   000 = FOSC/2

                   001 = FOSC/8

                   010 = FOSC/32

                   x11 = FRC (clock derived from a dedicated  internal  oscillator  =  500  kHz  max)

                   100 = FOSC/4

                   101 = FOSC/16

                   110 = FOSC/64

bit  3-0           Unimplemented: Read as ‘0’

© 2009 Microchip Technology Inc.                                                                                     DS41288F-page 79
PIC16F610/616/16HV610/616

REGISTER 9-3:       ADRESH: ADC RESULT REGISTER HIGH (ADRESH) ADFM = 0 (READ-ONLY)

         R-x        R-x                   R-x                R-x  R-x                   R-x              R-x        R-x

ADRES9              ADRES8  ADRES7             ADRES6             ADRES5                ADRES4        ADRES3        ADRES2

bit 7                                                                                                                    bit  0

Legend:

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

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

bit 7-0            ADRES<9:2>: ADC Result Register bits

                   Upper 8 bits of 10-bit conversion result

REGISTER      9-4:  ADRESL: ADC RESULT REGISTER                   LOW     (ADRESL)           ADFM     =  0 (READ-ONLY)

         R-x        R-x     U-0                              U-0  U-0                   U-0              U-0        U-0

ADRES1              ADRES0                —                  —    —                     —                —          —

bit 7                                                                                                                    bit  0

Legend:

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

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

bit 7-6            ADRES<1:0>: ADC Result Register bits

                   Lower 2 bits of 10-bit conversion result

bit 5-0            Reserved: Do not use.

REGISTER      9-5:  ADRESH: ADC RESULT REGISTER HIGH                      (ADRESH)              ADFM = 1 (READ-ONLY)

         U-0        U-0     U-0                              U-0  U-0                   U-0              R-x        R-x

         —          —                     —                  —    —                     —             ADRES9        ADRES8

bit 7                                                                                                                    bit  0

Legend:

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

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

bit 7-2            Reserved: Do not use.

bit 1-0            ADRES<9:8>: ADC Result Register bits

                   Upper 2 bits of 10-bit conversion result

REGISTER      9-6:  ADRESL: ADC RESULT REGISTER LOW                       (ADRESL) ADFM = 1 (READ-ONLY)

         R-x        R-x                   R-x                R-x  R-x                   R-x              R-x        R-x

ADRES7              ADRES6  ADRES5             ADRES4             ADRES3                ADRES2        ADRES1        ADRES0

bit 7                                                                                                                    bit  0

Legend:

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

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

bit 7-0            ADRES<7:0>: ADC Result Register bits

                   Lower 8 bits of 10-bit conversion result

DS41288F-page 80                                                                                © 2009 Microchip Technology Inc.
                                                                            PIC16F610/616/16HV610/616

9.3      A/D Acquisition Requirements

For the ADC to meet its specified accuracy, the charge

holding  capacitor       (CHOLD)               must  be               allowed   to       fully

charge to the input channel voltage level. The Analog

Input  model    is       shown             in  Figure 9-4.                The      source

impedance (RS) and the internal sampling switch (RSS)

impedance directly affect the time required to charge the

capacitor CHOLD. The sampling switch (RSS) impedance

varies over the device voltage (VDD), see Figure 9-4.

The maximum recommended impedance for analog

sources     is  10       kΩ.         As     the   source              impedance              is

decreased,      the   acquisition              time  may              be  decreased.

After the analog input channel is selected (or changed),

an A/D acquisition must be done before the conversion

can be started. To calculate the minimum acquisition

time,    Equation 9-1             may         be  used.               This     equation

assumes that 1/2 LSb error is used (1024 steps for the

ADC). The 1/2 LSb error is the maximum error allowed

for the ADC to meet its specified resolution.

EQUATION 9-1:                     ACQUISITION TIME EXAMPLE

       Assumptions:                  Temperature =                        50°C and external impedance of 10kΩ 5.0V VDD

                TACQ              =     Amplifier Settling Time + Hold Capacitor Charging Time + Temperature Coefficient

                                  =     TAMP + TC + TCOFF

                                  =     5µs + TC + [(Temperature - 25°C)(0.05µs/°C)]

       The  value for TC can be approximated with the following equations:

                V  A  P  P  L  I  E  D  ⎛  1   –  2----0-1--4---7-⎠⎞  =   VCHOLD                                             ;[1] VCHOLD charged to within 1/2 lsb
                                        ⎝

                                        ⎛         e–-R---T--C-C--⎟⎞                                                          ;[2] VCHOLD charge response to VAPPLIED
                VAPPLIED⎜1                     –                      =   VCHOLD

                                        ⎝            ⎠

                                         ⎛        e –-R---T-C--c- ⎟⎞                            ⎛        2---0--1-4---7--⎠⎞  ;combining [1] and [2]
                VAPPLIED⎜1                     –                      =   V                        1  –
                                                                             A  P  P  L  IE  D  ⎝

                                         ⎝           ⎠

       Solving for TC:

                     TC =            –CHOLD(RIC + RSS + RS) ln(1/2047)

                            =        –10pF(1kΩ + 7kΩ + 10kΩ) ln(0.0004885)

                            =        1.37µs

       Therefore:

                TACQ        =        5µs + 1.37µs + [(50°C- 25°C)(0.05µs/°C)]

                            =        7.67µs

Note 1:         The reference voltage (VREF) has no effect on the equation, since it cancels itself out.

         2:     The charge holding capacitor (CHOLD) is not discharged after each conversion.

         3:     The maximum recommended impedance for analog sources is 10 kΩ. This is required to meet the pin

                leakage specification.

© 2009 Microchip Technology Inc.                                                                                                                     DS41288F-page 81
PIC16F610/616/16HV610/616

FIGURE 9-4:         ANALOG INPUT MODEL

                                                              VDD                           Sampling

                                                                   VT = 0.6V                Switch

                                   Rs  ANx                                       RIC ≤ 1k   SS  Rss

                    VA                 CPIN                   VT = 0.6V          I LEAKAGE                  CHOLD = 10 pF

                                       5 pF                                      ± 500 nA

                                                                                                            VSS/VREF-

                                                                                                6V

                                                                                                5V             RSS

Legend:  CPIN                      = Input Capacitance                                      VDD 4V

         VT                        = Threshold Voltage                                          3V

         I LEAKAGE                 = Leakage current at the pin due to                          2V

                                   various junctions

         RIC                       = Interconnect Resistance                                          5 6 7 8 9 10 11

         SS                        = Sampling Switch                                                  Sampling Switch

         CHOLD                     = Sample/Hold Capacitance                                                 (kΩ)

FIGURE 9-5:         ADC TRANSFER FUNCTION

                                                              Full-Scale  Range

                                       3FFh

                                       3FEh

                                       3FDh

                  ADC Output Code      3FCh                                                     1 LSB ideal

                                       3FBh

                                                                                                Full-Scale

                                       004h                                                     Transition

                                       003h

                                       002h

                                       001h

                                       000h                                                     Analog  Input  Voltage

                                                        1 LSB ideal

                  VSS/VREF-                             Zero-Scale               VDD/VREF+

                                                        Transition

DS41288F-page 82                                                                                            © 2009 Microchip  Technology  Inc.
                                                 PIC16F610/616/16HV610/616

TABLE 9-2:      SUMMARY OF ASSOCIATED ADC REGISTERS

                                                                                                                        Value on  Value on

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

                                                                                                                                  Resets

ADCON0(1)    ADFM   VCFG              CHS3       CHS2        CHS1          CHS0          GO/DONE       ADON    0000     0000      0000  0000

ADCON1(1)    —      ADCS2             ADCS1      ADCS0       —             —             —             —       -000     ----      -000  ----

ANSEL        ANS    ANS6              ANS5       ANS4        ANS3(1)       ANS2(1)       ANS1          ANS0    1111     1111      1111  1111

ADRESH(1,2)  A/D Result Register High Byte                                                                     xxxx     xxxx      uuuu  uuuu

ADRESL(1,2)  A/D Result Register Low Byte                                                                      xxxx     xxxx      uuuu  uuuu

INTCON       GIE    PEIE              T0IE       INTE        RAIE          T0IF          INTF          RAIF    0000     0000      0000  0000

PIE1         —      ADIE(1)           CCP1IE(1)  C2IE        C1IE          —             TMR2IE(1)     TMR1IE  -000     0-00      -000  0-00

PIR1         —      ADIF(1)           CCP1IF(1)  C2IF        C1IF          —             TMR2IF(1)     TMR1IF  -000     0-00      -000  0-00

PORTA        —      —                 RA5        RA4         RA3           RA2           RA1           RA0     --x0     x000      --u0  u000

PORTC        —      —                 RC5        RC4         RC3           RC2           RC1           RC0     --xx     00xx      --uu  00uu

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

TRISC        —      —                 TRISC5     TRISC4      TRISC3        TRISC2        TRISC1        TRISC0  --11     1111      --11  1111

Legend:      x = unknown, u = unchanged, –  = unimplemented  read as ‘0’.  Shaded cells  are not used  for ADC module.

Note   1:    PIC16F616/16HV616 only.

       2:    Read-only Register.

© 2009 Microchip Technology Inc.                                                                                        DS41288F-page 83
PIC16F610/616/16HV610/616

NOTES:

DS41288F-page 84           © 2009 Microchip Technology Inc.
                                                     PIC16F610/616/16HV610/616

10.0       ENHANCED CAPTURE/                                            event    when         a  predetermined  amount     of  time    has

           COMPARE/PWM (WITH AUTO-                                      expired. The PWM mode can generate a Pulse-Width

           SHUTDOWN AND DEAD BAND)                                      Modulated signal of varying frequency and duty cycle.

           MODULE                                                       Table 10-1 shows the timer resources required by the

           (PIC16F616/16HV616 ONLY)                                     ECCP module.

The    Enhanced   Capture/Compare/PWM            module   is  a         TABLE 10-1:              ECCP MODE – TIMER

peripheral which allows the user to time and control                                             RESOURCES REQUIRED

different  events.    In  Capture  mode,     the     peripheral                  ECCP Mode                      Timer Resource

allows   the  timing  of  the  duration  of  an   event.  The                         Capture                         Timer1

Compare mode allows the user to trigger an external

                                                                                      Compare                         Timer1

                                                                                      PWM                             Timer2

REGISTER 10-1:            CCP1CON: ENHANCED CCP1 CONTROL REGISTER

     R/W-0            R/W-0        R/W-0                 R/W-0          R/W-0                 R/W-0            R/W-0           R/W-0

       P1M1           P1M0         DC1B1              DC1B0             CCP1M3                CCP1M2   CCP1M1              CCP1M0

bit 7                                                                                                                                  bit 0

Legend:

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

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

bit 7-6          P1M<1:0>: PWM Output Configuration bits

                 If CCP1M<3:2> =         00, 01, 10:

                 xx = P1A assigned as Capture/Compare input; P1B, P1C, P1D assigned as port pins

                 If CCP1M<3:2> = 11:

                 00 = Single output; P1A modulated; P1B, P1C, P1D assigned as port pins

                 01 = Full-Bridge output forward; P1D modulated; P1A active; P1B, P1C inactive

                 10 = Half-Bridge output; P1A, P1B modulated with dead-time control; P1C, P1D assigned as port pins

                 11 = Full-Bridge output reverse; P1B modulated; P1C active; P1A, P1D inactive

bit 5-4          DC1B<1:0>: PWM Duty Cycle Least Significant bits

                 Capture mode:

                 Unused.

                 Compare mode:

                 Unused.

                 PWM mode:

                 These bits are the two LSbs of the PWM duty cycle. The eight MSbs are found in CCPR1L.

bit 3-0          CCP1M<3:0>: ECCP Mode Select bits

                 0000 =   Capture/Compare/PWM off (resets ECCP module)

                 0001 =   Unused (reserved)

                 0010 =   Compare mode, toggle output on match (CCP1IF bit is set)

                 0011 =   Unused (reserved)

                 0100 =   Capture mode, every falling edge

                 0101 =   Capture mode, every rising edge

                 0110 =   Capture mode, every 4th rising edge

                 0111 =   Capture mode, every 16th rising edge

                 1000 =   Compare mode, set output on match (CCP1IF bit is set)

                 1001 =   Compare mode, clear output on match (CCP1IF bit is set)

                 1010 =   Compare mode, generate software interrupt on match (CCP1IF bit is            set, CCP1 pin  is unaffected)

                 1011 =   Compare  mode,     trigger  special    event  (CCP1IF  bit  is  set;   CCP1  resets  TMR1   and  starts  an  A/D

                          conversion, if the ADC module is enabled)

                 1100 =   PWM mode; P1A, P1C active-high; P1B, P1D active-high

                 1101 =   PWM mode; P1A, P1C active-high; P1B, P1D active-low

                 1110 =   PWM mode; P1A, P1C active-low; P1B, P1D active-high

                 1111 =   PWM mode; P1A, P1C active-low; P1B, P1D active-low

© 2009 Microchip Technology Inc.                                                                                      DS41288F-page 85
PIC16F610/616/16HV610/616

10.1       Capture Mode                                          10.1.2         TIMER1 MODE SELECTION

In  Capture  mode,       CCPR1H:CCPR1L            captures  the  Timer1 must be running in Timer mode or Synchronized

16-bit value of the TMR1 register when an event occurs           Counter mode for the CCP module to use the capture

on  pin    CCP1.  An     event  is  defined   as  one  of   the  feature. In Asynchronous Counter mode, the capture

following and is configured by the CCP1M<3:0> bits of            operation may not work.

the CCP1CON register:                                            10.1.3         SOFTWARE INTERRUPT

•   Every falling edge                                           When the Capture mode is changed, a false capture

•   Every rising edge                                            interrupt may be generated. The user should keep the

•   Every 4th rising edge                                        CCP1IE interrupt enable bit of the PIE1 register clear to

•   Every 16th rising edge                                       avoid   false  interrupts.  Additionally,     the  user     should

When a capture is made, the Interrupt Request Flag bit           clear the CCP1IF interrupt flag bit of the PIR1 register

CCP1IF of the PIR1 register is set. The interrupt flag           following any change in operating mode.

must be cleared in software. If another capture occurs           10.1.4         CCP PRESCALER

before the value in the CCPR1H, CCPR1L register pair

is read, the old captured value is overwritten by the new        There     are  four  prescaler   settings     specified  by     the

captured value (see Figure 10-1).                                CCP1M<3:0>           bits   of  the       CCP1CON        register.

                                                                 Whenever the CCP module is turned off, or the CCP

10.1.1       CCP1 PIN CONFIGURATION                              module is not in Capture mode, the prescaler counter

In Capture mode, the CCP1 pin should be configured               is cleared. Any Reset will clear the prescaler counter.

as an input by setting the associated TRIS control bit.          Switching from one capture prescaler to another does not

    Note:    If the CCP1 pin is configured as an output,         clear the prescaler and may generate a false interrupt. To

             a write to the port can cause a capture             avoid this unexpected operation, turn the module off by

             condition.                                          clearing  the  CCP1CON          register  before   changing     the

                                                                 prescaler (see Example 10-1).

FIGURE 10-1:               CAPTURE MODE                          EXAMPLE 10-1:               CHANGING BETWEEN

                           OPERATION BLOCK                                                   CAPTURE PRESCALERS

                           DIAGRAM

                         Set Flag bit CCP1IF                     BANKSEL CCP1CON             ;Set     Bank  bits    to    point

                         (PIR1 register)                                                     ;to   CCP1CON

             Prescaler                                           CLRF      CCP1CON           ;Turn     CCP  module      off

             ÷ 1, 4, 16                                          MOVLW     NEW_CAPT_PS ;Load           the  W  reg   with

   CCP1                                   CCPR1H  CCPR1L                                     ;   the   new  prescaler

    pin                                                                                      ;   move   value   and     CCP  ON

             and                    Capture                      MOVWF     CCP1CON           ;Load     CCP1CON      with  this

           Edge Detect              Enable                                                   ;   value

                                          TMR1H   TMR1L

                  CCP1CON<3:0>

    System Clock (FOSC)

DS41288F-page 86                                                                             © 2009 Microchip Technology Inc.
                                                  PIC16F610/616/16HV610/616

TABLE 10-2:      SUMMARY OF REGISTERS ASSOCIATED WITH CAPTURE

                                                                                                                       Value on    Value on

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

                                                                                                                                   Resets

CCP1CON(1)    P1M1    P1M0             DC1B1      DC1B0    CCP1M3   CCP1M2                 CCP1M1         CCP1M0       0000  0000  0000  0000

CCPR1L(1)     Capture/Compare/PWM Register 1 Low Byte                                                                  xxxx  xxxx  uuuu  uuuu

CCPR1H(1)     Capture/Compare/PWM Register 1 High Byte                                                                 xxxx  xxxx  uuuu  uuuu

INTCON        GIE     PEIE             T0IE       INTE     RAIE     T0IF                   INTF           RAIF         0000  0000  0000  0000

PIE1          —       ADIE(1)          CCP1IE(1)  C2IE     C1IE     —                      TMR2IE(1)      TMR1IE       -000  0-00  0000  0-00

PIR1          —       ADIF(1)          CCP1IF(1)  C2IF     C1IF     —                      TMR2IF(1)      TMR1IF       -000  0-00  0000  0-00

T1CON         T1GINV  TMR1GE           T1CKPS1    T1CKPS0  T1OSCEN  T1SYNC                 TMR1CS         TMR1ON       0000  0000  uuuu  uuuu

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

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

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

TRISC         —       —                TRISC5     TRISC4   TRISC3   TRISC2                 TRISC1         TRISC0       --11  1111  --11  1111

Legend:    –  = Unimplemented locations, read as ‘0’, u = unchanged, x = unknown. Shaded   cells are not  used by the  Capture, Compare and PWM.

Note   1:     PIC16F616/16HV616 only.

© 2009 Microchip Technology Inc.                                                                                             DS41288F-page 87
PIC16F610/616/16HV610/616

10.2      Compare Mode                                                    10.2.2          TIMER1 MODE SELECTION

In Compare mode, the 16-bit CCPR1 register value is                       In Compare mode, Timer1 must be running in either

constantly compared against the TMR1 register pair                        Timer   mode    or     Synchronized       Counter     mode.         The

value. When a match occurs, the CCP1 module may:                          compare      operation   may      not   work   in  Asynchronous

•  Toggle the CCP1 output                                                 Counter mode.

•  Set the CCP1 output                                                    10.2.3          SOFTWARE INTERRUPT MODE

•  Clear the CCP1 output                                                  When    Generate       Software    Interrupt   mode       is  chosen

•  Generate a Special Event Trigger                                       (CCP1M<3:0> = 1010),           the   CCP1      module       does    not

•  Generate a Software Interrupt                                          assert control of the CCP1 pin (see the CCP1CON

The action on the pin is based on the value of the                        register).

CCP1M<3:0> control bits of the CCP1CON register.                          10.2.4          SPECIAL EVENT TRIGGER

All Compare modes can generate an interrupt.                              When    Special        Event   Trigger         mode     is    chosen

FIGURE 10-2:                    COMPARE MODE                              (CCP1M<3:0> = 1011),           the   CCP1      module       does    the

                                                                          following:

                                OPERATION BLOCK                           •  Resets Timer1

                                DIAGRAM                                   •  Starts an ADC conversion if ADC is enabled

                        CCP1CON<3:0>                                      The CCP1 module does not assert control of the CCP1

                           Mode Select

                                                                          pin in this mode (see the CCP1CON register).

                                Set CCP1IF Interrupt Flag                 The Special Event Trigger output of the CCP occurs

   CCP1                         4      (PIR1)                             immediately     upon     a   match      between      the      TMR1H,

   Pin                                         CCPR1H      CCPR1L         TMR1L       register   pair   and    the  CCPR1H,           CCPR1L

                     Q  S    Output                                       register pair. The TMR1H, TMR1L register pair is not

                                Logic   Match  Comparator                 reset until the next rising edge of the Timer1 clock. This

                        R

                                               TMR1H             TMR1L    allows   the    CCPR1H,        CCPR1L          register       pair  to

        TRIS                                                              effectively     provide  a     16-bit   programmable          period

        Output  Enable                                                    register for Timer1.

                        Special Event Trigger                                Note 1:      The Special Event Trigger from the CCP

   Special Event Trigger will:                                                            module    does     not    set  interrupt      flag  bit

   •    Clear TMR1H and TMR1L registers.                                                  TMR1IF of the PIR1 register.

   •    NOT set interrupt flag bit TMR1IF of the PIR1 register.                       2:  Removing       the      match      condition        by

   •    Set the GO/DONE bit to start the ADC conversion.

                                                                                          changing     the  contents     of  the    CCPR1H

                                                                                          and CCPR1L register pair, between the

10.2.1          CCP1 PIN CONFIGURATION                                                    clock    edge  that    generates     the      Special

The user must configure the CCP1 pin as an output by                                      Event    Trigger   and    the  clock    edge        that

clearing the associated TRIS bit.                                                         generates the Timer1 Reset, will preclude

                                                                                          the Reset from occurring.

   Note:        Clearing the CCP1CON register will force

                the  CCP1       compare        output  latch     to  the

                default low level. This is not the PORT I/O

                data latch.

DS41288F-page 88                                                                                         © 2009 Microchip Technology Inc.
                                                  PIC16F610/616/16HV610/616

TABLE 10-3:      SUMMARY OF REGISTERS ASSOCIATED WITH COMPARE

                                                                                                                       Value on    Value on

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

                                                                                                                                   Resets

CCP1CON(1)    P1M1    P1M0             DC1B1      DC1B0    CCP1M3   CCP1M2                 CCP1M1         CCP1M0       0000  0000  0000  0000

CCPR1L(1)     Capture/Compare/PWM Register 1 Low Byte                                                                  xxxx  xxxx  uuuu  uuuu

CCPR1H(1)     Capture/Compare/PWM Register 1 High Byte                                                                 xxxx  xxxx  uuuu  uuuu

INTCON        GIE     PEIE             T0IE       INTE     RAIE     T0IF                   INTF           RAIF         0000  0000  0000  0000

PIE1          —       ADIE(1)          CCP1IE(1)  C2IE     C1IE     —                      TMR2IE(1)      TMR1IE       -000  0-00  0000  0-00

PIR1          —       ADIF(1)          CCP1IF(1)  C2IF     C1IF     —                      TMR2IF(1)      TMR1IF       -000  0-00  0000  0-00

T1CON         T1GINV  TMR1GE           T1CKPS1    T1CKPS0  T1OSCEN  T1SYNC                 TMR1CS         TMR1ON       0000  0000  uuuu  uuuu

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

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

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

TRISC         —       —                TRISC5     TRISC4   TRISC3   TRISC2                 TRISC1         TRISC0       --11  1111  --11  1111

Legend:    –  = Unimplemented locations, read as ‘0’, u = unchanged, x = unknown. Shaded   cells are not  used by the  Capture, Compare and PWM.

Note   1:     PIC16F616/16HV616 only.

© 2009 Microchip Technology Inc.                                                                                             DS41288F-page 89
PIC16F610/616/16HV610/616

10.3       PWM Mode                                                      The  PWM  output      (Figure 10-4)  has  a  time  base

                                                                         (period) and a time that the output stays high (duty

The PWM mode generates a Pulse-Width Modulated                           cycle).

signal on the CCP1 pin. The duty cycle, period and

resolution are determined by the following registers:                    FIGURE 10-4:          CCP PWM OUTPUT

•   PR2

•   T2CON                                                                          Period

•   CCPR1L                                                                        Pulse Width

•   CCP1CON                                                                                    TMR2 = PR2

In  Pulse-Width          Modulation     (PWM)      mode,  the  CCP                             TMR2 = CCPR1L:CCP1CON<5:4>

module produces up to a 10-bit resolution PWM output                              TMR2 = 0

on the CCP1 pin. Since the CCP1 pin is multiplexed

with the PORT data latch, the TRIS for that pin must be

cleared to make the CCP1 pin an output.

    Note:    Clearing          the   CCP1CON        register       will

             relinquish CCP1 control of the CCP1 pin.

Figure 10-3 shows a simplified block diagram of PWM

operation.

Figure 10-4       shows  a     typical  waveform    of    the  PWM

signal.

For a step-by-step procedure on how to set up the CCP

module       for  PWM          operation,     see   Section 10.3.7

“Setup for PWM Operation”.

FIGURE 10-3:                   SIMPLIFIED PWM BLOCK

                               DIAGRAM

                                    CCP1CON<5:4>

         Duty Cycle Registers

           CCPR1L

      CCPR1H(2) (Slave)

                                                               CCP1

             Comparator                       R  Q

             TMR2              (1)            S

                                                    TRIS

         Comparator

                               Clear Timer2,

                               toggle CCP1 pin and

             PR2               latch duty cycle

   Note  1:       The 8-bit timer TMR2 register is concatenated

                  with the 2-bit internal system clock (FOSC), or

                  2 bits of the prescaler, to create the 10-bit time

                  base.

         2:       In PWM mode, CCPR1H is a read-only register.

DS41288F-page 90                                                                               © 2009 Microchip Technology Inc.
                                                     PIC16F610/616/16HV610/616

10.3.1        PWM PERIOD                                                EQUATION 10-2:                PULSE WIDTH

The PWM period is specified by writing to the PR2

register of Timer2. The PWM period can be calculated                           Pulse Width   =  ( CCPR1L:CCP1CON<5:4> )                                                      •

using the formula of Equation 10-1.                                                             TOSC  •  (TMR2 Prescale Value)

EQUATION 10-1:               PWM PERIOD

        PWM Period       =   [(PR2) + 1] • 4 • TOSC •                   EQUATION 10-3:                DUTY CYCLE RATIO

                             (TMR2 Prescale Value)                                                    (---C----C----P----R---1---L-4---:(--C-P---C-R---P-2--1--+-C----O-1---)-N----<----5---:--4--->-----)

                                                                        Duty Cycle Ratio           =

When TMR2 is equal to PR2, the following three events

occur on the next increment cycle:                                      The CCPR1H register and a 2-bit internal latch are

•  TMR2 is cleared                                                      used to double buffer the PWM duty cycle. This double

•  The CCP1 pin is set. (Exception: If the PWM duty                     buffering is essential for glitchless PWM operation.

   cycle = 0%, the pin will not be set.)                                The    8-bit  timer  TMR2     register  is   concatenated                                                                           with

•  The PWM duty cycle is latched from CCPR1L into                       either the 2-bit internal system clock (FOSC), or 2 bits of

   CCPR1H.                                                              the prescaler, to create the 10-bit time base. The system

                                                                        clock is used if the Timer2 prescaler is set to 1:1.

   Note:      The     Timer2  postscaler     (see   Section 7.1         When the 10-bit time base matches the CCPR1H and

              “Timer2 Operation”) is not used in the                    2-bit   latch,  then    the   CCP1      pin   is                                            cleared                                 (see

              determination of the PWM frequency.                       Figure 10-3).

10.3.2        PWM DUTY CYCLE                                            10.3.3          PWM RESOLUTION

The PWM duty cycle is specified by writing a 10-bit                     The resolution determines the number of available duty

value   to  multiple     registers:  CCPR1L         register  and       cycles for a given period. For example, a 10-bit resolution

CCP1<1:0>      bits      of  the  CCP1CON          register.  The       will result in 1024 discrete duty cycles, whereas an 8-bit

CCPR1L contains the eight MSbs and the CCP1<1:0>                        resolution will result in 256 discrete duty cycles.

bits of the CCP1CON register contain the two LSbs.                      The maximum PWM resolution is 10 bits when PR2 is

CCPR1L      and       CCP1<1:0>      bits  of  the   CCP1CON            255. The resolution is a function of the PR2 register

register can be written to at any time. The duty cycle                  value as shown by Equation 10-4.

value is not latched into CCPR1H until after the period

completes     (i.e.,  a  match    between      PR2   and  TMR2

registers occurs). While using the PWM, the CCPR1H                      EQUATION 10-4:                PWM RESOLUTION

register is read-only.

Equation 10-2    is   used    to  calculate    the  PWM       pulse             Resolution         =  l--o---g----[--4---l-(o--P-g---R-(--2-2---)--+-----1----)--]  bits

width.

Equation 10-3 is used to calculate the PWM duty cycle

ratio.                                                                  Note:         If the pulse width value is greater than the

                                                                                      period    the   assigned       PWM                                            pin(s)                                  will

                                                                                      remain unchanged.

TABLE 10-4:           EXAMPLE        PWM FREQUENCIES AND                RESOLUTIONS (FOSC = 20 MHz)

        PWM Frequency                      1.22 kHz           4.88 kHz  19.53 kHz       78.12 kHz        156.3 kHz                                                  208.3 kHz

   Timer Prescale (1, 4, 16)                   16             4              1                  1               1                                                         1

   PR2 Value                               0xFF               0xFF      0xFF                 0x3F               0x1F                                                      0x17

   Maximum Resolution (bits)                   10             10        10                      8               7                                                         6.6

TABLE 10-5:           EXAMPLE        PWM FREQUENCIES AND                RESOLUTIONS (FOSC = 8 MHz)

        PWM Frequency                      1.22 kHz           4.90 kHz  19.61 kHz       76.92 kHz        153.85 kHz                                                 200.0 kHz

   Timer Prescale (1, 4, 16)                   16             4              1                  1               1                                                         1

   PR2 Value                               0x65               0x65      0x65                 0x19           0x0C                                                          0x09

   Maximum Resolution (bits)                   8              8              8                  6               5                                                         5

© 2009 Microchip Technology Inc.                                                                                      DS41288F-page 91
PIC16F610/616/16HV610/616

10.3.4        OPERATION IN SLEEP MODE                          10.3.7        SETUP FOR PWM OPERATION

In Sleep mode, the TMR2 register will not increment            The following steps should be taken when configuring

and the state of the module will not change. If the CCP1       the CCP module for PWM operation:

pin is driving a value, it will continue to drive that value.  1.  Configure the PWM pin (CCP1) as an input by

When the device wakes up, TMR2 will continue from its              setting the associated TRIS bit.

previous state.                                                2.  Set the PWM period by loading the PR2 register.

10.3.5        CHANGES IN SYSTEM CLOCK                          3.  Configure the CCP module for the PWM mode

              FREQUENCY                                            by  loading  the    CCP1CON       register  with  the

The PWM frequency is derived from the system clock                 appropriate values.

frequency. Any changes in the system clock frequency           4.  Set the PWM duty cycle by loading the CCPR1L

will  result  in  changes  to  the  PWM  frequency.  See           register and CCP1 bits of the CCP1CON register.

Section 3.0       “Oscillator  Module”   for  additional       5.  Configure and start Timer2:

details.                                                           •   Clear the TMR2IF interrupt flag bit of the

                                                                       PIR1 register.

10.3.6        EFFECTS OF RESET                                     •   Set the Timer2 prescale value by loading the

Any Reset will force all ports to Input mode and the                   T2CKPS bits of the T2CON register.

CCP registers to their Reset states.                               •   Enable Timer2 by setting the TMR2ON bit of

                                                                       the T2CON register.

                                                               6.  Enable PWM output after a new PWM cycle has

                                                                   started:

                                                                   •   Wait until Timer2 overflows (TMR2IF bit of

                                                                       the PIR1 register is set).

                                                                   •   Enable the CCP1 pin output by clearing the

                                                                       associated TRIS bit.

DS41288F-page 92                                                                        © 2009 Microchip Technology Inc.
                                                       PIC16F610/616/16HV610/616

10.4       PWM (Enhanced Mode)                                                    The PWM outputs are multiplexed with I/O pins and are

                                                                                  designated P1A, P1B, P1C and P1D. The polarity of the

The Enhanced PWM Mode can generate a PWM signal                                   PWM pins is configurable and is selected by setting the

on up to four different output pins with up to 10-bits of                         CCP1M bits in the CCP1CON register appropriately.

resolution. It can do this through four different PWM                             Table 10-6  shows       the  pin     assignments                     for     each

Output modes:                                                                     Enhanced PWM mode.

•  Single PWM                                                                     Figure 10-5 shows an example of a simplified block

•  Half-Bridge PWM                                                                diagram of the Enhanced PWM module.

•  Full-Bridge PWM, Forward mode

•  Full-Bridge PWM, Reverse mode                                                     Note:    To      prevent     the  generation                          of  an

                                                                                              incomplete waveform when the PWM is

To select an Enhanced PWM mode, the P1M bits of the                                           first enabled, the ECCP module waits until

CCP1CON register must be set appropriately.                                                   the  start  of   a  new  PWM       period                     before

                                                                                              generating a PWM signal.

FIGURE 10-5:                    EXAMPLE SIMPLIFIED BLOCK DIAGRAM OF THE                               ENHANCED PWM               MODE

                                   CCP1<1:0>           P1M<1:0>                   CCP1M<3:0>

      Duty Cycle Registers                                            2           4

           CCPR1L

                                                                      CCP1/P1A                                         CCP1/P1A

                                                                                            TRISC<5>

      CCPR1H (Slave)                                                              P1B                                  P1B

               Comparator                          R   Q              Output                TRISC<4>

                                                                      Controller

                                                                              P1C                                      P1C

           TMR2            (1)                                                              TRISC<3>

                                                    S

                                                                              P1D                                      P1D

           Comparator

                                Clear Timer2,                                               TRISC<2>

                                toggle PWM pin and

           PR2                  latch duty cycle

                                                                      PWM1CON

      Note      1:     The 8-bit timer TMR2 register is concatenated with the 2-bit internal Q clock, or 2 bits of the prescaler to create the 10-bit

                       time base.

   Note 1:      The TRIS register value for each PWM output must be configured appropriately.

           2:   Clearing the CCP1CON register will relinquish ECCP control of all PWM output pins.

           3:   Any pin not used by an Enhanced PWM mode is available for alternate pin functions

TABLE 10-6:            EXAMPLE PIN ASSIGNMENTS FOR VARIOUS PWM ENHANCED MODES

   ECCP Mode                       P1M                    CCP1/P1A                     P1B                     P1C                                     P1D

   Single                                      00                Yes                   No                      No                                      No

   Half-Bridge                                 10                Yes                   Yes                     No                                      No

   Full-Bridge, Forward                        01                Yes                   Yes                     Yes                                     Yes

   Full-Bridge, Reverse                        11                Yes                   Yes                     Yes                                     Yes

© 2009 Microchip Technology Inc.                                                                                            DS41288F-page 93
PIC16F610/616/16HV610/616

FIGURE 10-6:            EXAMPLE PWM (ENHANCED MODE) OUTPUT RELATIONSHIPS (ACTIVE-HIGH

                        STATE)

                                    Signal                              Pulse                       PR2+1

P1M<1:0>                                                   0

                                                                        Width

                                                                                   Period

00     (Single Output)       P1A Modulated

                                                              Delay(1)             Delay(1)

                             P1A Modulated

10     (Half-Bridge)         P1B Modulated

                             P1A Active

       (Full-Bridge,         P1B Inactive

01            Forward)

                             P1C Inactive

                             P1D Modulated

                             P1A Inactive

11     (Full-Bridge,         P1B Modulated

              Reverse)

                             P1C Active

                             P1D Inactive

Relationships:

    •  Period = 4 * TOSC * (PR2 + 1) * (TMR2 Prescale Value)

    •  Pulse Width = TOSC * (CCPR1L<7:0>:CCP1CON<5:4>) * (TMR2 Prescale Value)

    •  Delay = 4 * TOSC * (PWM1CON<6:0>)

Note          1:  Dead-band  delay  is  programmed  using  the  PWM1CON  register  (Section 10.4.6  “Programmable  Dead-Band  Delay

                  mode”).

DS41288F-page 94                                                                                    © 2009 Microchip Technology Inc.
                                                 PIC16F610/616/16HV610/616

FIGURE 10-7:            EXAMPLE ENHANCED PWM OUTPUT RELATIONSHIPS (ACTIVE-LOW STATE)

                                                         0                 Pulse                      PR2+1

P1M<1:0>                          Signal

                                                                           Width

                                                                                     Period

00     (Single Output)            P1A Modulated

                                  P1A Modulated

                                                                 Delay(1)            Delay(1)

10        (Half-Bridge)           P1B Modulated

                                  P1A Active

          (Full-Bridge,           P1B Inactive

01            Forward)

                                  P1C Inactive

                                  P1D Modulated

                                  P1A Inactive

11        (Full-Bridge,           P1B Modulated

              Reverse)

                                  P1C Active

                                  P1D Inactive

Relationships:

    •     Period = 4 * TOSC * (PR2 + 1) * (TMR2 Prescale Value)

    •     Pulse Width = TOSC * (CCPR1L<7:0>:CCP1CON<5:4>) * (TMR2 Prescale Value)

    •     Delay = 4 * TOSC * (PWM1CON<6:0>)

    Note  1:    Dead-band  delay  is  programmed  using  the     PWM1CON   register  (Section 10.4.6  “Programmable  Dead-Band  Delay

                mode”).

© 2009 Microchip Technology Inc.                                                                                     DS41288F-page 95
PIC16F610/616/16HV610/616

10.4.1       HALF-BRIDGE MODE                                       Since the P1A and P1B outputs are multiplexed with

In Half-Bridge mode, two pins are used as outputs to                the PORT data latches, the associated TRIS bits must

drive push-pull loads. The PWM output signal is output              be cleared to configure P1A and P1B as outputs.

on the CCP1/P1A pin, while the complementary PWM                    FIGURE      10-8:         EXAMPLE OF HALF-

output signal is output on the P1B pin (see Figure 10-8).

This mode can be used for half-bridge applications, as                                        BRIDGE PWM OUTPUT

shown    in  Figure 10-9,  or  for  full-bridge    applications,                     Period               Period

where four power switches are being modulated with

two PWM signals.                                                                 Pulse Width

In Half-Bridge mode, the programmable dead-band delay               P1A(2)

can be used to prevent shoot-through current in half-                            td

bridge power devices. The value of the PDC<6:0> bits of                                      td

the PWM1CON register sets the number of instruction                 P1B(2)

cycles before the output is driven active. If the value is

greater than the duty cycle, the corresponding output                       (1)                      (1)                   (1)

remains  inactive  during  the  entire     cycle.  See  10.4.6

“Programmable      Dead-Band        Delay  mode”   for  more        td = Dead-Band Delay

details of the dead-band delay operations.                          Note    1:   At this time, the TMR2 register is equal to the

                                                                                 PR2 register.

                                                                            2:   Output signals are shown as active-high.

FIGURE 10-9:               EXAMPLE OF HALF-BRIDGE APPLICATIONS

Standard Half-Bridge Circuit (“Push-Pull”)

                                                            FET

                                                            Driver                                +

                                                   P1A                                            -

                                                                                 Load

                                                            FET

                                                            Driver                                +

                                                   P1B

                                                                                                  -

Half-Bridge        Output  Driving a Full-Bridge   Circuit

                                                                    V+

                                                   FET                                       FET

                                                   Driver                                    Driver

                                P1A

                                                   FET              Load                     FET

                                                   Driver                                    Driver

                                P1B

DS41288F-page 96                                                                                 © 2009 Microchip Technology Inc.
                                                    PIC16F610/616/16HV610/616

10.4.2  FULL-BRIDGE MODE                                               P1A, P1B, P1C and P1D outputs are multiplexed with

In Full-Bridge mode, all four pins are used as outputs.                the PORT data latches. The associated TRIS bits must

An   example   of  full-bridge    application   is  shown      in      be cleared to configure the P1A, P1B, P1C and P1D

Figure 10-10.                                                          pins as outputs.

In the Forward mode, pin CCP1/P1A is driven to its

active state, pin P1D is modulated, while P1B and P1C

will be driven to their inactive state as shown in Figure 10-

11.

In the Reverse mode, P1C is driven to its active state,

pin P1B is modulated, while P1A and P1D will be driven

to their inactive state as shown Figure 10-11.

FIGURE 10-10:      EXAMPLE        OF           FULL-BRIDGE         APPLICATION

                                                                       V+

                                                    FET            QA                    QC  FET

                                                    Driver                                   Driver

                   P1A

                   P1B                                                 Load

                                                    FET                                      FET

                                                    Driver                                   Driver

                   P1C                                             QB                    QD

                                                                       V-

                   P1D

© 2009 Microchip Technology Inc.                                                                     DS41288F-page 97
PIC16F610/616/16HV610/616

FIGURE 10-11:     EXAMPLE OF FULL-BRIDGE PWM OUTPUT

Forward Mode

                                                          Period

P1A(2)

                            Pulse Width

P1B(2)

P1C(2)

P1D(2)

                  (1)                                                              (1)

Reverse Mode

                                                          Period

                            Pulse Width

P1A(2)

P1B(2)

P1C(2)

P1D(2)

                       (1)                                                         (1)

Note  1:          At this time, the TMR2 register is equal to the  PR2  register.

      2:          Output signal is shown as active-high.

DS41288F-page 98                                                                        © 2009 Microchip Technology Inc.
                                               PIC16F610/616/16HV610/616

10.4.2.1         Direction Change in Full-Bridge                The     Full-Bridge  mode   does           not  provide         dead-band

                 Mode                                           delay. As one output is modulated at a time, dead-band

In the Full-Bridge mode, the P1M1 bit in the CCP1CON            delay is generally not required. There is a situation

register  allows  users      to  control  the  forward/reverse  where   dead-band     delay   is           required.      This  situation

direction. When the application firmware changes this           occurs when both of the following conditions are true:

direction control bit, the module will change to the new        1.    The direction of the PWM output changes when

direction on the next PWM cycle.                                      the duty cycle of the output is at or near 100%.

A direction change is initiated in software by changing         2.    The turn off time of the power switch, including

the P1M1 bit of the CCP1CON register. The following                   the power device and driver circuit, is greater

sequence occurs four Timer2 cycles prior to the end of                than the turn on time.

the current PWM period:                                         Figure 10-13 shows an example of the PWM direction

•  The modulated outputs (P1B and P1D) are placed               changing from forward to reverse, at a near 100% duty

   in their inactive state.                                     cycle. In this example, at time t1, the output P1A and

•  The associated unmodulated outputs (P1A and                  P1D     become   inactive,    while        output         P1C   becomes

   P1C) are switched to drive in the opposite                   active. Since the turn off time of the power devices is

   direction.                                                   longer than the turn on time, a shoot-through current

                                                                will  flow  through   power   devices           QC        and   QD   (see

•  PWM modulation resumes at the beginning of the               Figure 10-10)    for  the     duration          of        ‘t’.  The  same

   next period.                                                 phenomenon will occur to power devices QA and QB

See Figure 10-12 for an illustration of this sequence.          for PWM direction change from reverse to forward.

                                                                If changing PWM direction at high duty cycle is required

                                                                for an application, two possible solutions for eliminating

                                                                the shoot-through current are:

                                                                1.    Reduce PWM duty cycle for one PWM period

                                                                      before changing directions.

                                                                2.    Use switch drivers that can drive the switches off

                                                                      faster than they can drive them on.

                                                                Other options to prevent shoot-through current may

                                                                exist.

FIGURE 10-12:                EXAMPLE OF PWM DIRECTION           CHANGE

          Signal                               Period(1)                              Period

          P1A (Active-High)

          P1B (Active-High)

                                                                        Pulse Width

          P1C (Active-High)

                                                                            (2)

          P1D (Active-High)

                                  Pulse Width

   Note   1:     The direction bit P1M1 of the CCP1CON register is written any time during the PWM cycle.

          2:     When changing directions, the P1A and P1C signals switch before the end of the current PWM cycle. The

                 modulated P1B and P1D signals are inactive at this time. The length of this time is four Timer2 counts.

© 2009 Microchip Technology Inc.                                                                                DS41288F-page 99
PIC16F610/616/16HV610/616

FIGURE 10-13:      EXAMPLE    OF  PWM DIRECTION      CHANGE                  AT  NEAR 100% DUTY  CYCLE

                                  Forward Period                         t1      Reverse Period

                   P1A

                   P1B                                                                 DC

                   P1C

                   P1D                           PW

                                                                                 TON

External       Switch C

                                                                                 TOFF

External Switch D

                   Potential                                                     T = TOFF – TON

Shoot-Through Current

Note  1:  All signals are shown as active-high.

      2:  TON is the turn on delay of power switch QC and its driver.

      3:  TOFF is the turn off delay of power switch QD and its driver.

DS41288F-page 100                                                                      © 2009 Microchip Technology  Inc.
                                               PIC16F610/616/16HV610/616

10.4.3        START-UP CONSIDERATIONS

When     any  PWM  mode    is      used,  the  application

hardware must use the proper external pull-up and/or

pull-down resistors on the PWM output pins.

    Note:     When the microcontroller is released from

              Reset, all of the I/O pins are in the high-

              impedance    state.  The    external  circuits

              must keep the power switch devices in the

              OFF state until the microcontroller drives

              the I/O pins with the proper signal levels or

              activates the PWM output(s).

The CCP1M<1:0> bits of the CCP1CON register allow

the user to choose whether the PWM output signals are

active-high or active-low for each pair of PWM output pins

(P1A/P1C and P1B/P1D). The PWM output polarities

must be selected before the PWM pins are configured as

outputs. Changing the polarity configuration while the

PWM pins are configured as outputs is not recommended

since it may result in damage to the application circuits.

The P1A, P1B, P1C and P1D output latches may not be

in  the    proper  states  when    the  PWM    module        is

initialized. Enabling the PWM pins for output at the

same time as the Enhanced PWM modes may cause

damage to the application circuit. The Enhanced PWM

modes must be enabled in the proper Output mode and

complete a full PWM cycle before configuring the PWM

pins as outputs. The completion of a full PWM cycle is

indicated by the TMR2IF bit of the PIR1 register being

set as the second PWM period begins.

© 2009 Microchip Technology Inc.                                 DS41288F-page 101
PIC16F610/616/16HV610/616

10.4.4             ENHANCED PWM AUTO-                                A shutdown condition is indicated by the ECCPASE

                   SHUTDOWN MODE                                     (Auto-Shutdown        Event    Status)        bit  of   the  ECCPAS

The PWM mode supports an Auto-Shutdown mode that                     register. If the bit is a ‘0’, the PWM pins are operating

will      disable  the   PWM     outputs  when       an  external    normally. If the bit is a ‘1’, the PWM outputs are in the

shutdown event occurs. Auto-Shutdown mode places                     shutdown state.

the PWM output pins into a predetermined state. This                 When a shutdown event occurs, two things happen:

mode is used to help prevent the PWM from damaging                   The    ECCPASE        bit  is  set  to  ‘1’.  The      ECCPASE      will

the application.                                                     remain set until cleared in firmware or an auto-restart

The        auto-shutdown  sources  are    selected       using  the  occurs (see Section 10.4.5 “Auto-Restart Mode”).

ECCPASx        bits  of  the  ECCPAS      register.  A   shutdown    The enabled PWM pins are asynchronously placed in

event may be generated by:                                           their  shutdown       states.  The      PWM        output    pins   are

•  A logic ‘0’ on the INT pin                                        grouped into pairs [P1A/P1C] and [P1B/P1D]. The state

•  Comparator C1                                                     of  each   pin  pair  is     determined       by   the  PSSAC       and

•  Comparator C2                                                     PSSBD bits of the ECCPAS register. Each pin pair may

                                                                     be placed into one of three states:

•  Setting the ECCPASE bit in firmware                               •   Drive logic ‘1’

                                                                     •   Drive logic ‘0’

                                                                     •   Tri-state (high-impedance)

REGISTER 10-2:                ECCPAS: ENHANCED CAPTURE/COMPARE/PWM AUTO-SHUTDOWN

                              CONTROL REGISTER

        R/W-0             R/W-0           R/W-0          R/W-0       R/W-0                 R/W-0             R/W-0                R/W-0

   ECCPASE               ECCPAS2      ECCPAS1            ECCPAS0     PSSAC1          PSSAC0              PSSBD1              PSSBD0

   bit 7                                                                                                                          bit 0

   Legend:

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

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

   bit  7            ECCPASE: ECCP Auto-Shutdown Event Status bit

                     1 = A shutdown event has occurred; ECCP outputs are in     shutdown          state

                     0 = ECCP outputs are operating

   bit  6-4          ECCPAS<2:0>: ECCP Auto-shutdown Source Select bits

                     000 = Auto-Shutdown is disabled

                     001 = Comparator C1 output high

                     010 = Comparator C2 output high(1)

                     011 = Either Comparators output is high

                     100 = VIL on INT pin

                     101 = VIL on INT pin or Comparator C1 output high

                     110 = VIL on INT pin or Comparator C2 output high

                     111 = VIL on INT pin or either Comparators output is high

   bit  3-2          PSSACn: Pins P1A and P1C Shutdown State Control bits

                     00 = Drive pins P1A and P1C to ‘0’

                     01 = Drive pins P1A and P1C to ‘1’

                     1x = Pins P1A and P1C tri-state

   bit  1-0          PSSBDn: Pins P1B and P1D Shutdown State Control bits

                     00 = Drive pins P1B and P1D to ‘0’

                     01 = Drive pins P1B and P1D to ‘1’

                     1x = Pins P1B and P1D tri-state

DS41288F-page 102                                                                                   © 2009 Microchip Technology Inc.
                                                 PIC16F610/616/16HV610/616

Note 1:      The auto-shutdown condition is a level-

             based signal, not an edge-based signal.

             As long as the level is present, the auto-

             shutdown will persist.

        2:   Writing to the ECCPASE bit is disabled

             while      an  auto-shutdown        condition

             persists.

        3:   Once   the     auto-shutdown       condition  has

             been   removed  and       the  PWM  restarted

             (either through firmware or auto-restart),

             the PWM signal will always restart at the

             beginning of the next PWM period.

FIGURE 10-14:              PWM AUTO-SHUTDOWN WITH FIRMWARE                     RESTART       (PRSEN             =  0)

                                                                 PWM Period

        Shutdown Event

             ECCPASE bit

             PWM  Activity

                                                Normal PWM                                   ECCPASE

                                                                                             Cleared by

                            Start of                             Shutdown      Shutdown      Firmware    PWM

                           PWM Period                            Event Occurs  Event Clears              Resumes

10.4.5       AUTO-RESTART MODE

The Enhanced PWM can be configured to automati-

cally restart the PWM signal once the auto-shutdown

condition has been removed. Auto-restart is enabled by

setting the PRSEN bit in the PWM1CON register.

If auto-restart is enabled, the ECCPASE bit will remain

set as long as the auto-shutdown condition is active.

When    the  auto-shutdown   condition      is  removed,    the

ECCPASE bit will be cleared via hardware and normal

operation will resume.

FIGURE 10-15:              PWM AUTO-SHUTDOWN WITH                     AUTO-RESTART           ENABLED (PRSEN            =  1)

                                                                 PWM  Period

        Shutdown Event

             ECCPASE bit

             PWM Activity

                                            Normal PWM

                            Start of                             Shutdown      Shutdown                  PWM

                        PWM Period                              Event Occurs   Event Clears            Resumes

© 2009 Microchip Technology Inc.                                                                                   DS41288F-page 103
PIC16F610/616/16HV610/616

10.4.6       PROGRAMMABLE DEAD-BAND                                 FIGURE  10-16:             EXAMPLE OF HALF-

             DELAY MODE                                                                        BRIDGE PWM OUTPUT

In half-bridge applications where all power switches are                              Period              Period

modulated at the PWM frequency, the power switches                                Pulse Width

normally require more time to turn off than to turn on. If

both the upper and lower power switches are switched                P1A(2)

at the same time (one turned on, and the other turned                             td

off), both switches may be on for a short period of time                                      td

until one switch completely turns off. During this brief            P1B(2)

interval, a very high current (shoot-through current) will

flow through both power switches, shorting the bridge                       (1)                      (1)                    (1)

supply.  To  avoid  this  potentially  destructive   shoot-

through current from flowing during switching, turning              td = Dead-Band Delay

on either of the power switches is normally delayed to

allow the other switch to completely turn off.                      Note    1:    At this time, the TMR2 register is equal to the

In Half-Bridge mode, a digitally programmable dead-                               PR2 register.

band delay is available to avoid shoot-through current                      2:    Output signals are shown as active-high.

from destroying the bridge power switches. The delay

occurs at the signal transition from the non-active state

to the active state. See Figure 10-16 for illustration.

The lower seven bits of the associated PWM1CON

register (Register 10-3) sets the delay period in terms

of microcontroller instruction cycles (TCY or 4 TOSC).

FIGURE 10-17:             EXAMPLE OF HALF-BRIDGE                    APPLICATIONS

                                                                    V+

Standard Half-Bridge Circuit (“Push-Pull”)

                                                            FET

                                                            Driver                                +

                                                P1A                                               V

                                                                                                  -

                                                                                  Load

                                                            FET

                                                            Driver                                +

                                                P1B                                               V

                                                                                                  -

                                                                    V-

DS41288F-page 104                                                                                 © 2009 Microchip Technology Inc.
                                                       PIC16F610/616/16HV610/616

REGISTER 10-3:        PWM1CON: ENHANCED PWM CONTROL REGISTER

      R/W-0         R/W-0             R/W-0            R/W-0               R/W-0                R/W-0                  R/W-0           R/W-0

PRSEN               PDC6              PDC5             PDC4                PDC3                 PDC2                   PDC1            PDC0

bit 7                                                                                                                                         bit 0

Legend:

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

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

bit 7        PRSEN: PWM Restart Enable bit

             1=       Upon auto-shutdown, the ECCPASE bit clears automatically once the shutdown                                       event  goes

                      away; the PWM restarts automatically

             0=       Upon auto-shutdown, ECCPASE must be cleared in software to restart the PWM

bit 6-0      PDC<6:0>: PWM Delay Count bits

             PDCn =   Number          of  FOSC/4       (4 * TOSC)  cycles  between         the  scheduled  time        when      a     PWM    signal

                      should transition active and the actual time it transitions active

TABLE 10-7:        SUMMARY OF REGISTERS ASSOCIATED WITH PWM

                                                                                                                       Value on        Value on

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

                                                                                                                                       Resets

CCP1CON(1)   P1M1     P1M0            DC1B1            DC1B0   CCP1M3      CCP1M2          CCP1M1         CCP1M0       0000      0000  0000   0000

CCPR1L(1)    Capture/Compare/PWM Register 1 Low Byte                                                                   xxxx      xxxx  uuuu   uuuu

CCPR1H(1)    Capture/Compare/PWM Register 1 High Byte                                                                  xxxx      xxxx  uuuu   uuuu

CM1CON0      C1ON     C1OUT           C1OE             C1POL       —       C1R             C1CH1          C1CH0        0000      -000  0000   -000

CM2CON0      C2ON     C2OUT           C2OE             C2POL       —       C2R             C2CH1          C2CH0        0000      -000  0000   -000

CM2CON1      MC1OUT   MC2OUT              —            T1ACS   C1HYS       C2HYS           T1GSS          C2SYNC       00-0      0010  00-0   0010

ECCPAS(1)    ECCPASE  ECCPAS2         ECCPAS1    ECCPAS0       PSSAC1      PSSAC0          PSSBD1         PSSBD0       0000      0000  0000   0000

INTCON       GIE      PEIE            T0IE             INTE        RAIE    T0IF            INTF           RAIF         0000      0000  0000   0000

PIE1         —        ADIE(1)         CCP1IE(1)        C2IE        C1IE    —               TMR2IE(1)      TMR1IE       -000      0-00  0000   0-00

PIR1         —        ADIF(1)         CCP1IF(1)        C2IF        C1IF    —               TMR2IF(1)      TMR1IF       -000      0-00  0000   0-00

PWM1CON(1)   PRSEN    PDC6            PDC5             PDC4        PDC3    PDC2            PDC1           PDC0         0000      0000  0000   0000

T2CON(1)     —        TOUTPS3         TOUTPS2    TOUTPS1       TOUTPS0     TMR2ON          T2CKPS1        T2CKPS0      -000      0000  -000   0000

TMR2(1)      Timer2 Module Register                                                                                    0000      0000  0000   0000

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

TRISC        —             —          TRISC5           TRISC4  TRISC3      TRISC2          TRISC1         TRISC0       --11      1111  --11   1111

Legend:      – = Unimplemented locations, read as ‘0’, u = unchanged, x = unknown. Shaded  cells are not  used by the  Capture,  Compare and PWM.

Note     1:  PIC16F616/16HV616 only.

© 2009 Microchip Technology Inc.                                                                                                 DS41288F-page 105
PIC16F610/616/16HV610/616

NOTES:

DS41288F-page 106          © 2009 Microchip Technology Inc.
                                              PIC16F610/616/16HV610/616

11.0      VOLTAGE REGULATOR                                     An  external  current    limiting  resistor,  RSER,  located

                                                                between the unregulated supply, VUNREG, and the VDD

The   PIC16HV610/16HV616          include  a  permanent         pin, drops the difference in voltage between VUNREG

internal 5 volt (nominal) shunt regulator in parallel with      and VDD. RSER must be between RMAX and RMIN as

the VDD pin. This eliminates the need for an external           defined by Equation 11-1.

voltage   regulator   in   systems   sourced      by        an

unregulated  supply.  All  external  devices  connected         EQUATION 11-1:           RSER LIMITING RESISTOR

directly to the VDD pin will share the regulated supply

voltage and contribute to the total VDD supply current                                   (VUMIN - 5V)

(ILOAD).                                                                     RMAX =  1.05 • (4 MA + ILOAD)

11.1      Regulator Operation

A shunt regulator generates a specific supply voltage                        RMIN =      (VUMAX - 5V)

by creating a voltage drop across a pass resistor RSER.           &nb