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

型号

产品描述

搜索

PIC24FJ16MC101T-I-SO

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

器件描述

16-bit Microcontrollers - MCU 16bt Mtr Ctrl 16MIPS 16KB FL 1KB RAM

参数

产品属性属性值
产品种类:
Product Category:
16-bit Microcontrollers - MCU
制造商:
Manufacturer:
Microchip
RoHS:YES
安装风格:
Mounting Style:
SMD/SMT
封装 / 箱体:
Package / Case:
SOIC-20
系列:
Series:
PIC24F
Core:PIC24
Data Bus Width:16 bit
Maximum Clock Frequency:32 MHz
Program Memory Size:16 kB
Data RAM Size:1 kB
ADC Resolution:10 bit
Number of I/Os:15 I/O
工作电源电压:
Operating Supply Voltage:
3 V to 3.6 V
最大工作温度:
Maximum Operating Temperature:
+ 85 C
接口类型:
Interface Type:
I2C/SPI/UART
封装:
Packaging:
Reel
商标:
Brand:
Microchip Technology
Data RAM Type:RAM
高度:
Height:
2.05 mm (Min)
长度:
Length:
12.8 mm
最小工作温度:
Minimum Operating Temperature:
- 40 C
Number of ADC Channels:4 Channel
Number of Timers/Counters:3 Timer
Processor Series:PIC24F
产品:
Product:
MCU
Program Memory Type:Flash
工厂包装数量:
Factory Pack Quantity:
1600
宽度:
Width:
7.5 mm
单位重量:
Unit Weight:
0.028254 oz

PIC24FJ16MC101T-I-SO器件文档内容

                                                   PIC24FJ16MC101/102 AND

                                                     PIC24FJ32MC101/102/104

                                       16-Bit Microcontrollers

      (up to 32-Kbyte Flash and 2-Kbyte SRAM)

Operating Conditions                                      Advanced Analog Features

•  3.0V to 3.6V, -40ºC to +125ºC, DC to 16 MIPS           •  ADC module:

                                                             -  10-bit, 1.1 Msps with four S&H

Core: 16-Bit PIC24F CPU                                      -  Six analog inputs on 20-pin devices, eight analog

                                                                inputs on 28-pin devices and up to 16 analog inputs

•  Code-Efficient (C and Assembly) Architecture                 on 44-pin devices

•  Two 40-Bit Wide Accumulators                           •  Flexible and Independent ADC Trigger Sources

•  Single-Cycle (MAC/MPY) with Dual Data Fetch            •  Three Comparator modules

•  Single-Cycle Mixed-Sign MUL plus Hardware Divide       •  Charge Time Measurement Unit (CTMU):

•  32-Bit Multiply Support                                   -  Supports mTouch™ capacitive touch sensing

                                                             -  Provides high-resolution time measurement (1 ns)

Clock Management                                             -  On-chip temperature measurement

•  ±0.25% Internal Oscillator                             Timers/Output Compare/Input Capture

•  Programmable PLLs and Oscillator Clock Sources         •  Five General Purpose Timers:

•  Fail-Safe Clock Monitor (FSCM)                            -  One 16-bit and two 32-bit timers/counters

•  Independent Watchdog Timer (WDT)                       •  Two Output Compare modules

•  Fast Wake-up and Start-up                              •  Three Input Capture modules

                                                          •  Peripheral Pin Select (PPS) to allow Function Remap

Power Management                                          Communication Interfaces

•  Low-Power Management modes (Sleep, Idle, Doze)

•  Integrated Power-on Reset and Brown-out Reset          •  UART module (4 Mbps):

•  1 mA/MHz Dynamic Current (typical)                        -  With support for LIN/J2602 protocols and IrDA®

•  30 µA IPD Current (typical)                            •  4-Wire SPI module (8 MHz maximum speed):

                                                             -  Remappable pins in 32-Kbyte Flash devices

PWM                                                       •  I2C™ module (400 kHz)

•  Up to Three PWM Pairs                                  Input/Output

•  Two Dead-Time Generators                               •  Sink/Source 10 mA or 6 mA, Pin-Specific for Standard

•  31.25 ns PWM Resolution                                   VOH/VOL, up to 16 mA or 12 mA for Non-Standard VOH1

•  PWM Support for:                                       •  5V Tolerant Pins

   -  Inverters, PFC, UPS                                 •  Up to 21 Open-Drain, Pull-ups and Pull-Downs

   -  BLDC, PMSM, ACIM, SRM                               •  External Interrupts on most I/O Pins

•  Class B Compliant Fault Inputs                         Qualification and Class B Support

•  Possibility of ADC Synchronization  with  PWM  Signal  •  AEC-Q100 REV G (Grade 0, -40ºC to +125ºC) Planned

                                                          •  Class B Safety Library, IEC 60730, UDE Certified

                                                          Debugger Development Support

                                                          •  In-Circuit and In-Application Programming

                                                          •  Up to Three Complex Data Breakpoints

                                                          •  Trace and Run-Time Watch

 2011-2014 Microchip Technology Inc.                                                           DS30009997E-page 1
PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

PIC24FJ16MC101/102 AND

PIC24FJ32MC101/102/104 PRODUCT

FAMILIES

The  device   names,       pin       counts,                               memory                              sizes,         and

peripheral   availability        of  each                                  device           are                listed                         in

Table 1  and     table.  The         following                             pages                               show           their

pinout diagrams.

TABLE 1:          PIC24FJ16MC101/102 CONTROLLER FAMILIES

                                     Program Flash (Kbytes)                                 Remappable Peripherals                                                                                                     10-Bit, 1.1 Msps ADC

         Device            Pins                              RAM (Kbytes)  Remappable Pins  16-Bit Timer(1,3)  Input Capture  Output Compare      UART  External Interrupts(2)  SPI  Motor Control PWM  PWM Faults                           RTCC  I2C™  Comparators  CTMU  I/O Pins  Packages

PIC24FJ16MC101           20          16                      1             10               3                  3              2                   1     3                       1    6-ch               1           1 ADC,                   Y     1     3            Y     15        PDIP,

                                                                                                                                                                                                                       4-ch                                                           SOIC,

                                                                                                                                                                                                                                                                                      SSOP

PIC24FJ16MC102           28          16                      1             16               3                  3              2                   1     3                       1    6-ch               2           1 ADC,                   Y     1     3            Y     21        SPDIP,

                                                                                                                                                                                                                       6-ch                                                           SOIC,

                                                                                                                                                                                                                                                                                      SSOP,

                                                                                                                                                                                                                                                                                      QFN

                         36          16                      1             16               3                  3              2                   1     3                       1    6-ch               2           1 ADC,                   Y     1     3            Y     21        VTLA

                                                                                                                                                                                                                       6-ch

Note     1:  Two out of three timers are remappable.

         2:  Two out of three interrupts are remappable.

         3:  One pair can be combined to create a 32-bit timer.

TABLE 2:          PIC24FJ32MC101/102/104 CONTROLLER FAMILIES

                                     Program Flash (Kbytes)                                 Remappable Peripherals                                                                                                     10-Bit, 1.1 Msps ADC

         Device            Pins                              RAM (Kbytes)  Remappable Pins  16-bit Timer(1,3)  Input Capture  Output Compare      UART  External Interrupts(2)  SPI  Motor Control PWM  PWM Faults                           RTCC  I2C™  Comparators  CTMU  I/O Pins  Packages

PIC24FJ32MC101           20          32                      2             10               5                  3              2                   1     3                       1    6-ch               1           1  ADC,                  Y     1     3            Y     15        PDIP,

                                                                                                                                                                                                                       6-ch                                                           SOIC,

                                                                                                                                                                                                                                                                                      SSOP

PIC24FJ32MC102           28          32                      2             16               5                  3              2                   1     3                       1    6-ch               2           1  ADC,                  Y     1     3            Y     21        SPDIP,

                                                                                                                                                                                                                       8-ch                                                           SOIC,

                                                                                                                                                                                                                                                                                      SSOP,

                                                                                                                                                                                                                                                                                      QFN

                         36          32                      2             16               5                  3              2                   1     3                       1    6-ch               2           1  ADC,                  Y     1     3            Y     21        VTLA

                                                                                                                                                                                                                       8-ch

PIC24FJ32MC104           44          32                      2             26               1                  3              2                   1     3                       1    6-ch               2              14                    Y     1     3            Y     35        TQFP,

                                                                                                                                                                                                                                                                                      QFN,

                                                                                                                                                                                                                                                                                      VTLA

Note     1:  Two out of three timers are remappable.

         2:  Two out of three interrupts are remappable.

         3:  Two pairs can be combined to create two 32-bit timers.

DS30009997E-page 2                                                                                                                                                                                                      2011-2014 Microchip                                Technology Inc.
PIC24FJ16MC101/102 AND                                          PIC24FJ32MC101/102/104

Pin Diagrams

20-Pin PDIP/SOIC/SSOP                                                                     = Pins are up to 5V tolerant

                                       MCLR                 1                   20  VDD

              PGED2/AN0/C3INB/C1INA/CTED1/CN2/RA0           2   PIC24FJ16MC101  19  VSS

              PGEC2/AN1/C3INA/C1INB/CTED2/CN3/RA1           3                   18  PWM1L1/RP15(1)/CN11/RB15

              PGED1/AN2/C2INA/C1INC/RP0(1)/CN4/RB0          4                   17  PWM1H1/RTCC/RP14(1)/CN12/RB14

PGEC1/AN3/CVREFIN/CVREFOUT/C2INB/C1IND/RP1(1)/CN5/RB1       5                   16  PWM1L2/RP13(1)/CN13/RB13

                                       VSS                  6                   15  PWM1H2/RP12(1)/CN14/RB12

                                       OSCI/CLKI/CN30/RA2   7                   14  VCAP

                                       OSCO/CLKO/CN29/RA3   8                   13  SDA1/SDI1/PWM1L3/RP9(1)/CN21/RB9

                       PGED3/SOSCI/RP4(1)/CN1/RB4           9                   12  SCL1/SDO1/PWM1H3/RP8(1)/CN22/RB8

                       PGEC3/SOSCO/T1CK/CN0/RA4             10                  11  FLTA1(2)/SCK1/INT0/RP7(1)/CN23/RB7

                                       MCLR                 1                   20  VDD

              PGED2/AN0/C3INB/C1INA/CTED1/CN2/RA0           2   PIC24FJ32MC101  19  VSS

              PGEC2/AN1/C3INA/C1INB/CTED2/CN3/RA1           3                   18  PWM1L1/RP15(1)/CN11/RB15

              PGED1/AN2/C2INA/C1INC/RP0(1)/CN4/RB0          4                   17  PWM1H1/RTCC/RP14(1)/CN12/RB14

PGEC1/AN3/CVREFIN/CVREFOUT/C2INB/C1IND/RP1(1)/CN5/RB1       5                   16  PWM1L2/RP13(1)/CN13/RB13

                                                       VSS  6                   15  PWM1H2/RP12(1)/CN14/RB12

                                       OSCI/CLKI/CN30/RA2   7                   14  VCAP

                                       OSCO/CLKO/CN29/RA3   8                   13  SDA1/PWM1L3/RP9(1)/CN21/RB9

              PGED3/SOSCI/AN9/RP4(1)/CN1/RB4                9                   12  SCL1/PWM1H3/RP8(1)/CN22/RB8

              PGEC3/SOSCO/AN10/T1CK/CN0/RA4                 10                  11  FLTA1(2)/INT0/RP7(1)/CN23/RB7

Note  1:  The RPn pins can be used by any remappable peripheral. See Table 1 for the list of available peripherals.

      2:  The PWMx Fault pins are enabled and asserted during any Reset event. Refer to Section 15.2 “PWMx

          Faults” for more information on the PWMx Faults.

 2011-2014 Microchip Technology Inc.                                                                         DS30009997E-page 3
PIC24FJ16MC101/102 AND                                      PIC24FJ32MC101/102/104

Pin Diagrams (Continued)

28-Pin SPDIP/SOIC/SSOP                                                                    = Pins are up to 5V       tolerant

                          MCLR                              1                   28  AVDD

                    PGED2/AN0/C3INB/C1INA/CTED1/CN2/RA0     2                   27  AVSS

                    PGEC2/AN1/C3INA/C1INB/CTED2/CN3/RA1     3                   26  PWM1L1/RP15(1)/CN11/RB15

                    PGED1/AN2/C2INA/C1INC/RP0(1)/CN4/RB0    4   PIC24FJ16MC102  25  PWM1H1/RTCC/RP14(1)/CN12/RB14

PGEC1/AN3/CVREFIN/CVREFOUT/C2INB/C1IND/RP1(1)/CN5/RB1       5                   24  PWM1L2/RP13(1)/CN13/RB13

                    AN4/C3INC/C2INC/RP2(1)/CN6/RB2          6                   23  PWM1H2/RP12(1)/CN14/RB12

                    AN5/C3IND/C2IND/RP3(1)/CN7/RB3          7                   22  PWM1L3/RP11(1)/CN15/RB11

                          VSS                               8                   21  PWM1H3/RP10(1)/CN16/RB10

                          OSCI/CLKI/CN30/RA2                9                   20  VCAP

                          OSCO/CLKO/CN29/RA3                10                  19  VSS

                    PGED3/SOSCI/RP4(1)/CN1/RB4              11                  18  SDA1/SDI1/RP9(1)/CN21/RB9

                    PGEC3/SOSCO/T1CK/CN0/RA4                12                  17  SCL1/SDO1/RP8(1)/CN22/RB8

                          VDD                               13                  16  SCK1/INT0/RP7(1)/CN23/RB7

                    FLTB1(2)/ASDA1/RP5(1)/CN27/RB5          14                  15  FLTA1(2)/ASCL1/RP6(1)/CN24/RB6

                          MCLR                              1                   28  AVDD

                    PGED2/AN0/C3INB/C1INA/CTED1/CN2/RA0     2                   27  AVSS

                    PGEC2/AN1/C3INA/C1INB/CTED2/CN3/RA1     3                   26  PWM1L1/RP15(1)/CN11/RB15

                    PGED1/AN2/C2INA/C1INC/RP0(1)/CN4/RB0    4   PIC24FJ32MC102  25  PWM1H1/RTCC/RP14(1)/CN12/RB14

PGEC1/AN3/CVREFIN/CVREFOUT/C2INB/C1IND/RP1(1)/CN5/RB1       5                   24  PWM1L2/RP13(1)/CN13/RB13

                    AN4/C3INC/C2INC/RP2(1)/CN6/RB2          6                   23  PWM1H2/RP12(1)/CN14/RB12

                    AN5/C3IND/C2IND/RP3(1)/CN7/RB3          7                   22  PWM1L3/RP11(1)/CN15/RB11

                          VSS                               8                   21  PWM1H3/RP10(1)/CN16/RB10

                          OSCI/CLKI/CN30/RA2                9                   20  VCAP

                          OSCO/CLKO/CN29/RA3                10                  19  VSS

                    PGED3/SOSCI/AN9/RP4(1)/CN1/RB4          11                  18  SDA1/RP9(1)/CN21/RB9

                    PGEC3/SOSCO/AN10/T1CK/CN0/RA4           12                  17  SCL1/RP8(1)/CN22/RB8

                          VDD                               13                  16  INT0/RP7(1)/CN23/RB7

                    FLTB1(2)/ASDA1/RP5(1)/CN27/RB5          14                  15  FLTA1(2)/ASCL1/RP6(1)/CN24/RB6

Note  1:  The RPn pins can be used by any remappable peripheral. See Table 1 for the list of available peripherals.

      2:  The PWMx Fault pins are enabled and asserted during any Reset event. Refer to Section 15.2 “PWMx

          Faults” for more information on the PWMx Faults.

DS30009997E-page 4                                                                         2011-2014 Microchip Technology    Inc.
   PIC24FJ16MC101/102 AND                                         PIC24FJ32MC101/102/104

Pin Diagrams (Continued)

   28-Pin QFN(2)                                                                                                                                                                                                                                                            = Pins are up to 5V tolerant

                                                                  PGEC2/AN1/C3INA/C1INB/CTED2/CN3/RA1  PGED2/AN0/C3INB/C1INA/CTED1/CN2/RA0  MCLR  AVDD                            AVSS                            PWM1L1/RP15(1)/CN11/RB15   PWM1H1/RTCC/RP14(1)/CN12/RB14

                                                                  28                                   27                                   26    25                              24                              23                         22

             PGED1/AN2/C2INA/C1INC/CTCMP/RP0(1)/CN4/RB0        1                                                                                                                                                                                                            21  PWM1L2/RP13(1)/CN13/RB13

   PGEC1/AN3/CVREFIN/CVREFOUT/C2INB/C1IND/RP1(1)/CN5/RB1       2                                                                                                                                                                                                            20  PWM1H2/RP12(1)/CN14/RB12

                  AN4/C3INC/C2INC/RP2(1)/CN6/RB2               3                                                                                                                                                                                                            19  PWM1L3/RP11(1)/CN15/RB11

                  AN5/C3IND/C2IND/RP3(1)/CN7/RB3               4  PIC24FJ16MC102                                                                                                                                                                                            18  PWM1H3/RP10(1)/CN16/RB10

                                        VSS                    5                                                                                                                                                                                                            17  VCAP

                                        OSCI/CLKI/CN30/RA2     6                                                                                                                                                                                                            16  VSS

                                        OSCO/CLKO/CN29/RA3     7                                                                                                                                                                                                            15  SDA1/SDI1/RP9(1)/CN21/RB9

                                                                  8                                    9                                    10    11                              12                              13                         14

                                                                  PGED3/SOSCI/RP4(1)/CN1/RB4           PGEC3/SOSCO/T1CK/CN0/RA4             VDD   FLTB1(3)/ASDA1/RP5(1)/CN27/RB5  FLTA1(3)/ASCL1/RP6(1)/CN24/RB6  SCK1/INT0/RP7(1)/CN23/RB7  SCL1/SDO1/RP8(1)/CN22/RB8

   Note  1:  The RPn pins can be used by any remappable peripheral. See Table 1 for the list of available peripherals.

         2:  The metal pad at the bottom of the device is not connected to any pins and is recommended to be connected

             to VSS externally.

         3:  The PWMx Fault pins are enabled and asserted during any Reset event. Refer to Section 15.2 “PWMx

             Faults” for more information on the PWMx Faults.

  2011-2014 Microchip Technology Inc.                                                                                                                                                                                                                                                DS30009997E-page     5
PIC24FJ16MC101/102 AND                                      PIC24FJ32MC101/102/104

Pin Diagrams (Continued)

28-Pin QFN(2)                                                                                                                                                                                                                                                           = Pins are up to 5V tolerant

                                                               PGEC2/AN1/C3INA/C1INB/CTED2/CN3/RA1  PGED2/AN0/C3INB/C1INA/CTED1/CN2/RA0  MCLR  AVDD                            AVSS                            PWM1L1/RP15(1)/CN11/RB15  PWM1H1/RTCC/RP14(1)/CN12/RB14

                                                               28                                   27                                   26    25                              24                              23                        22

                    PGED1/AN2/C2INA/C1INC/RP0(1)/CN4/RB0    1                                                                                                                                                                                                           21  PWM1L2/RP13(1)/CN13/RB13

PGEC1/AN3/CVREFIN/CVREFOUT/C2INB/C1IND/RP1(1)/CN5/RB1       2                                                                                                                                                                                                           20  PWM1H2/RP12(1)/CN14/RB12

                    AN4/C3INC/C2INC/RP2(1)/CN6/RB2          3                                                                                                                                                                                                           19  PWM1L3/RP11(1)/CN15/RB11

                    AN5/C3IND/C2IND/RP3(1)/CN7/RB3          4  PIC24FJ32MC102                                                                                                                                                                                           18  PWM1H3/RP10(1)/CN16/RB10

                              VSS                           5                                                                                                                                                                                                           17  VCAP

                              OSCI/CLKI/CN30/RA2            6                                                                                                                                                                                                           16  VSS

                              OSCO/CLKO/CN29/RA3            7                                                                                                                                                                                                           15  SDA1/RP9(1)/CN21/RB9

                                                               8                                    9                                    10    11                              12                              13                        14

                                                               PGED3/SOSCI/AN9/RP4(1)/CN1/RB4       PGEC3/SOSCO/AN10/T1CK/CN0/RA4        VDD   FLTB1(3)/ASDA1/RP5(1)/CN27/RB5  FLTA1(3)/ASCL1/RP6(1)/CN24/RB6  INT0/RP7(1)/CN23/RB7      SCL1/RP8(1)/CN22/RB8

Note  1:  The RPn pins can be used by any remappable peripheral. See Table 1 for the list of available peripherals.

      2:  The metal pad at the bottom of the device is not connected to any pins and is recommended to be connected

          to VSS externally.

      3:  The PWMx Fault pins are enabled and asserted during any Reset event. Refer to Section 15.2 “PWMx

          Faults” for more information on the PWMx Faults.

DS30009997E-page 6                                                                                                                                                                                                                        2011-2014 Microchip Technology                             Inc.
   PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

Pin Diagrams (Continued)

   36-Pin VTLA                                                                                                                                                                                                                                                        = Pins are up to 5V tolerant

                                                            PGEC2/AN1/C3INA/C1INB/CTED2/CN3/RA1  PGED2/AN0/C3INB/C1INA/CTED1/CN2/RA0  N/C  N/C        MCLR  AVDD       AVSS                            PWM1L1/RP15(1)/CN11/RB15        PWM1H1/RTCC/RP14(1)/CN12/RB14

                                                            36                                   35                                   34   33         32    31         30                              29                              28                             27                         PWM1L2/RP13(1)/CN13/RB13

                PGED1/AN2/C2INA/C1INC/RP0(1)/CN4/RB0        1                                                                                                                                                                                                         26                         PWM1H2/RP12(1)/CN14/RB12

   PGEC1/AN3/CVREFIN/CVREFOUT/C2INB/C1IND/RP1(1)/CN5/RB1    2                                                                                                                                                                                                         25                         PWM1L3/RP11(1)/CN15/RB11

                AN4/C3INC/C2INC/RP2(1)/CN6/RB2              3                                                                                                                                                                                                         24                         PWM1H3/RP10(1)/CN16/RB10

                AN5/C3IND/C2IND/RP3(1)/CN7/RB3              4                                                                              PIC24FJ16MC102                                                                                                             23                         VDD

                                        VDD                 5                                                                                                                                                                                                         22                         VCAP

                                        VSS                 6                                                                                                                                                                                                         21                         VSS

                                        OSCI/CLKI/CN30/RA2  7                                                                                                                                                                                                         20                         N/C

                                 OSCO/CLKO/CN29/RA3         8                                                                                                                                                                                                         19                         SDA1/SDI1/RP9(1)/CN21/RB9

                PGED3/SOSCI/RP4(1)/CN1/RB4                  9                                    10                                   11   12         13    14         15                              16                              17                             18

                                                                                                 PGEC3/SOSCO/T1CK/CN0/RA4             N/C  N/C (Vss)  VDD   N/C (VDD)  FLTB1(3)/ASDA1/RP5(1)/CN27/RB5  FLTA1(3)/ASCL1/RP6(1)/CN24/RB6  SCK1/INT0/RP7(1)/CN23/RB7      SCL1/SDO1/RP8(1)/CN22/RB8

   Note  1:  The RPn pins can be used by any remappable peripheral. See Table 1 for the list of available peripherals.

         2:  The metal pad at the bottom of the device is not connected to any pins and is recommended to be connected

             to VSS externally.

         3:  The PWMx Fault pins are enabled and asserted during any Reset event. Refer to Section 15.2 “PWMx

             Faults” for more information on the PWMx Faults.

  2011-2014 Microchip Technology Inc.                                                                                                                                                                                                                                                                 DS30009997E-page     7
PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

Pin Diagrams (Continued)

36-Pin VTLA(2)                                                                                                                                                                                                                                                   = Pins are up to 5V tolerant

                                                       PGEC2/AN1/C3INA/C1INB/CTED2/CN3/RA1  PGED2/AN0/C3INB/C1INA/CTED1/CN2/RA0  N/C  N/C        MCLR  AVDD       AVSS                            PWM1L1/RP15(1)/CN11/RB15        PWM1H1/RTCC/RP14(1)/CN12/RB14

                                                       36                                   35                                   34   33         32    31         30                              29                              28                             27                    PWM1L2/RP13(1)/CN13/RB13

          PGED1/AN2/C2INA/C1INC/RP0(1)/CN4/RB0         1                                                                                                                                                                                                         26                    PWM1H2/RP12(1)/CN14/RB12

PGEC1/AN3/CVREFIN/CVREFOUT/C2INB/C1IND/RP1(1)/CN5/RB1  2                                                                                                                                                                                                         25                    PWM1L3/RP11(1)/CN15/RB11

                    AN4/C3INC/C2INC/RP2(1)/CN6/RB2     3                                                                                                                                                                                                         24                    PWM1H3/RP10(1)/CN16/RB10

                    AN5/C3IND/C2IND/RP3(1)/CN7/RB3     4                                                                              PIC24FJ32MC102                                                                                                             23                    VDD

                              VDD                      5                                                                                                                                                                                                         22                    VCAP

                              VSS                      6                                                                                                                                                                                                         21                    VSS

                              OSCI/CLKI/CN30/RA2       7                                                                                                                                                                                                         20                    N/C

                              OSCO/CLKO/CN29/RA3       8                                                                                                                                                                                                         19                    SDA1/RP9(1)/CN21/RB9

                    PGED3/SOSCI/AN9/RP4(1)/CN1/RB4     9                                    10                                   11   12         13    14         15                              16                              17                             18

                                                                                            PGEC3/SOSCO/AN10/T1CK/CN0/RA4        N/C  N/C (Vss)  VDD   N/C (VDD)  FLTB1(3)/ASDA1/RP5(1)/CN27/RB5  FLTA1(3)/ASCL1/RP6(1)/CN24/RB6  INT0/RP7(1)/CN23/RB7           SCL1/RP8(1)/CN22/RB8

Note  1:  The RPn pins can be used by any remappable peripheral. See Table 1 for the list of available peripherals.

      2:  The metal pad at the bottom of the device is not connected to any pins and is recommended to be connected

          to VSS externally.

      3:  The PWMx Fault pins are enabled and asserted during any Reset event. Refer to Section 15.2 “PWMx

          Faults” for more information on the PWMx Faults.

DS30009997E-page 8                                                                                                                                                                                                                 2011-2014 Microchip Technology                                               Inc.
PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

Pin Diagrams (Continued)

44-Pin TQFP                                                                                                                                                                                                                                                                                                                                                      = Pins are up to 5V tolerant

                                       SCL1/RP8(1)/CN22/RB8  INT0/RP7(1)/CN23/RB7  FLTA1(2)/ASCL1/RP6(1)/CN24/RB6  FLTB1(2)/ASDA1/RP5(1)/CN27/RB5  VDD   VSS   AN15/RP21(1)/CN26/RC5  AN12/RP20(1)/CN25/RC4                AN11/RP19(1)/CN28/RC3                RA9                                   PGEC3/SOSCO/AN10/T1CK/CN0/RA4

                                       44                    43                    42                              41                              40    39    38                     37                                   36                                   35                                    34

SDA1/RP9(1)/CN21/RB9      1                                                                                                                                                                                                                                                                                                                                  33  PEGED3/SOSCI/AN9/RP4(1)/CN1/RB4

      RP22(1)/CN18/RC6    2                                                                                                                                                                                                                                                                                                                                  32  RA8

      RP23(1)/CN17/RC7    3                                                                                                                                                                                                                                                                                                                                  31  OSC2/CLK0/CN29/RA3

      RP24(1)/CN20/RC8    4                                                                                                                                                                                                                                                                                                                                  30  OSC1/CLKI/CN30/RA2

      RP25(1)/CN19/RC9    5                                                                                                                                                                                                                                                                                                                                  29  VSS

             VSS          6                                                        PIC24FJ32MC104                                                                                                                                                                                                                                                            28  VDD

             VCAP         7                                                                                                                                                                                                                                                                                                                                  27  AN8/RP18(1)/CN10/RC2

PWM1H3/RP10(1)/CN16/RB10  8                                                                                                                                                                                                                                                                                                                                  26  AN7/RP17(1)/CN9/RC1

PWM1L3/RP11(1)/CN15/RB11  9                                                                                                                                                                                                                                                                                                                                  25  AN6/RP16(1)/CN8/RC0

PWM1H2/RP12(1)/CN14/RB12  10                                                                                                                                                                                                                                                                                                                                 24  AN5/C3IND/C2IND/RP3(1)/CN7/RB3

PWM1L2/RP13(1)/CN13/RB13  11                                                                                                                                                                                                                                                                                                                                 23  AN4/C3INC/C2INC/RP2(1)/CN6/RB2

                                       12                    13                    14                              15                              16    17    18                     19                                   20                                   21                                    22

                                       RA10                  RA7                   PWM1H1/RTCC/RP14(1)/CN12/RB14   PWM1L1/RP15(1)/CN11/RB15        AVSS  AVDD  MCLR                   PGED2/AN0/C3INB/C1INA/CTED1/CN2/RA0  PGEC2/AN1/C3INA/C1INB/CTED2/CN3/RA1  PGED1/AN2/C2INA/C1INC/RP0(1)/CN4/RB0  PGEC1/AN3/CVREFIN/CVREFOUT/C2INB/C1IND/RP1(1)/CN5/RB1

Note  1:  The RPn pins can be used by any remappable peripheral. See Table 1 for the list of available peripherals.

      2:  The PWMx Fault pins are enabled and asserted during any Reset event. Refer to Section 15.2 “PWMx

          Faults” for more information on the PWMx Faults.

 2011-2014 Microchip Technology Inc.                                                                                                                                                                                                                                                                                                                                 DS30009997E-page 9
PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

Pin Diagrams (Continued)

44-pin QFN(2)                                                                                                                                                                                                                                                                                                                                               = Pins are up to 5V tolerant

                                  SCL1/RP8(1)/CN22/RB8  INT0/RP7(1)/CN23/RB7  FLTA1(3)/ASCL1/RP6(1)/CN24/RB6  FLTB1(3)/ASDA1/RP5(1)/CN27/RB5  VDD   VSS   AN15/RP21(1)/CN26/RC5  AN12/RP20(1)/CN25/RC4                AN11/RP19(1)/CN28/RC3                RA9                                   PGEC3/SOSCO/AN10/T1CK/CN0/RA4

                                  44                    43                    42                              41                              40    39    38                     37                                   36                                   35                                    34

      SDA1/RP9(1)/CN21/RB9    1                                                                                                                                                                                                                                                                                                                         33  PGED3/SOSCI/AN9/RP4(1)/CN1/RB4

          RP22(1)/CN18/RC6    2                                                                                                                                                                                                                                                                                                                         32  RA8

          RP23(1)/CN17/RC7    3                                                                                                                                                                                                                                                                                                                         31  OSC2/CLKO/CN29/RA3

          RP24(1)/CN20/RC8    4                                                                                                                                                                                                                                                                                                                         30  OSC1/CLKI/CN30/RA2

          RP25(1)/CN19/RC9    5                                                                                                                                                                                                                                                                                                                         29  VSS

                     VSS      6                                                   PIC24FJ32MC104                                                                                                                                                                                                                                                        28  VDD

                     VCAP     7                                                                                                                                                                                                                                                                                                                         27  AN8/RP18(1)/CN10/RC2

PWM1H3/RP10(1)/CN16/RB10      8                                                                                                                                                                                                                                                                                                                         26  AN7/RP17(1)/CN9/RC1

PWM1L3/RP11(1)/CN15/RB11      9                                                                                                                                                                                                                                                                                                                         25  AN6/RP16(1)/CN8/RC0

PWM1H2/RP12(1)/CN14/RB12      10                                                                                                                                                                                                                                                                                                                        24  AN5/C3IND/C2IND/RP3(1)/CN7/RB3

PWM1L2/RP13(1)/CN13/RB13      11                                                                                                                                                                                                                                                                                                                        23  AN4/C3INC/C2INC/RP2(1)/CN6/RB2

                                  12                    13                    14                              15                              16    17    18                     19                                   20                                   21                                    22

                                  RA10                  RA7                   PWM1H1/RTCC/RP14(1)/CN12/RB14   PWM1L1/RP15(1)/CN11/RB15        AVSS  AVDD  MCLR                   PGED2/AN0/C3INB/C1INA/CTED1/CN2/RA0  PGEC2/AN1/C3INA/C1INB/CTED2/CN3/RA1  PGED1/AN2/C2INA/C1INC/RP0(1)/CN4/RB0  PGEC1/AN3/CVREFIN/CVREFOUT/C2INB/C1IND/RP1(1)/CN5/RB1

Note  1:  The RPn pins can be used by any remappable peripheral. See Table 1 for the list of available peripherals.

      2:  The metal pad at the bottom of the device is not connected to any pins and is recommended to be connected

          to VSS externally.

      3:  The PWMx Fault pins are enabled and asserted during any Reset event. Refer to Section 15.2 “PWMx

          Faults” for more information on the PWMx Faults.

DS30009997E-page 10                                                                                                                                                                                                                                                                                                                                          2011-2014 Microchip Technology  Inc.
   PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

Pin Diagrams (Continued)

         44-Pin TLA(2)                                                                                                                                                                                                                                                                                                                                                                                   = Pins are up to 5V tolerant

                                        SCL1/RP8(1)/CN22/RB8  INT0/RP7(1)/CN23/RB7  FLTA1(3)/ASCL1/RP6(1)/CN24/RB6  FLTB1(3)/ASDA1/RP5(1)/CN27/RB5  VDD                       VSS   AN15/RP21(1)/CN26/RC5  AN12/RP20(1)/CN25/RC4  AN11/RP19(1)/CN28/RC3                RA9                                  PGEC3/SOSCO/AN10/T1CK/CN0/RA4

                                        44                    43                    42                              41                              40                        39    38                     37                     36                                   35                                   34                                    33                                                     PGED3/SOSCI/AN9/RP4(1)/CN1/RB4

             SDA1/RP9(1)/CN21/RB9       1                                                                                                                                                                                                                                                                                                         32                                                     RA8

             RP22(1)/CN18/RC6           2                                                                                                                                                                                                                                                                                                         31                                                     OSC2/CLKO/CN29/RA3

             RP23(1)/CN17/RC7           3                                                                                                                                                                                                                                                                                                         30                                                     OSC1/CLKI/CN30/RA2

             RP24(1)/CN20/RC8           4                                                                                                                                                                                                                                                                                                         29                                                     VSS

             RP25(1)/CN19/RC9           5                                                                           PIC24FJ32MC104                                                                                                                                                                                                                28                                                     VDD

                                 VSS    6                                                                                                                                                                                                                                                                                                         27                                                     AN8/RP18(1)/CN10/RC2

                        VCAP            7                                                                                                                                                                                                                                                                                                         26                                                     AN7/RP17(1)/CN9/RC1

         PWM1H3/RP10(1)/CN16/RB10       8                                                                                                                                                                                                                                                                                                         25                                                     AN6/RP16(1)/CN8/RC0

         PWM1L3/RP11(1)/CN15/RB11       9                                                                                                                                                                                                                                                                                                         24                                                     AN5/C3IND/C2IND/RP3(1)/CN7/RB3

         PWM1H2/RP12(1)/CN14/RB12       10                                                                                                                                                                                                                                                                                                        23                                                     AN4/C3INC/C2INC/RP2(1)/CN6/RB2

         PWM1L2/RP13(1)/CN13/RB13       11                    12                    13                              14                              15                        16    17                     18                     19                                   20                                   21                                    22

                                                              RA10                  RA7                             PWM1H1/RTCC/RP14(1)/CN12/RB14   PWM1L1/RP15(1)/CN11/RB15  AVSS  AVDD                   MCLR                   PGED2/AN0/C3INB/C1INA/CTED1/CN2/RA0  PGEC2/AN1/C3INA/C1INB/CTED2/CN3/RA1  PGED1/AN2/C2INA/C1INC/RP0(1)/CN4/RB0  PGEC1/AN3/CVREFIN/CVREFOUT/C2INB/C1IND/RP1(1)/CN5/RB1

   Note  1:  The RPn pins can be used by any remappable peripheral. See Table 1 for the list of available peripherals.

         2:  The metal pad at the bottom of the device is not connected to any pins and is recommended to be connected

             to VSS externally.

         3:  The PWMx Fault pins are enabled and asserted during any Reset event. Refer to Section 15.2 “PWMx

             Faults” for more information on the PWMx Faults.

  2011-2014 Microchip Technology Inc.                                                                                                                                                                                                                                                                                                                                                                                         DS30009997E-page  11
PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

Table of Contents

1.0   Device Overview ........................................................................................................................................................................ 15

2.0   Guidelines for Getting Started with 16-Bit Microcontrollers ........................................................................................................ 21

3.0   CPU ............................................................................................................................................................................................ 25

4.0   Memory Organization ................................................................................................................................................................. 31

5.0   Flash Program Memory .............................................................................................................................................................. 61

6.0   Resets ....................................................................................................................................................................................... 65

7.0   Interrupt Controller ..................................................................................................................................................................... 73

8.0   Oscillator Configuration ............................................................................................................................................................ 103

9.0   Power-Saving Features ............................................................................................................................................................ 111

10.0  I/O Ports ................................................................................................................................................................................... 117

11.0  Timer1 ...................................................................................................................................................................................... 143

12.0  Timer2/3 and Timer4/5 Features .............................................................................................................................................. 145

13.0  Input Capture............................................................................................................................................................................ 153

14.0  Output Compare ....................................................................................................................................................................... 155

15.0  Motor Control PWM Module ..................................................................................................................................................... 159

16.0  Serial Peripheral Interface (SPI)............................................................................................................................................... 175

17.0  Inter-Integrated Circuit™ (I2C™) .............................................................................................................................................. 181

18.0  Universal Asynchronous Receiver Transmitter (UART) ........................................................................................................... 189

19.0  10-Bit Analog-to-Digital Converter (ADC)................................................................................................................................. 195

20.0  Comparator Module.................................................................................................................................................................. 209

21.0  Real-Time Clock and Calendar (RTCC) .................................................................................................................................. 223

22.0  Charge Time Measurement Unit (CTMU)  ............................................................................................................................... 235

23.0  Special Features ...................................................................................................................................................................... 241

24.0  Instruction Set Summary .......................................................................................................................................................... 249

25.0  Development Support............................................................................................................................................................... 257

26.0  Electrical Characteristics .......................................................................................................................................................... 261

27.0  Packaging Information.............................................................................................................................................................. 321

Appendix A: Revision History............................................................................................................................................................. 349

Index .................................................................................................................................................................................................    355

The Microchip Web Site ..................................................................................................................................................................... 361

Customer Change Notification Service .............................................................................................................................................. 361

Customer Support .............................................................................................................................................................................. 361

Product Identification System............................................................................................................................................................. 363

DS30009997E-page 12                         2011-2014 Microchip Technology Inc.
   PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

                                       TO OUR VALUED CUSTOMERS

It is our intention to provide our valued customers with the best documentation possible to ensure successful use of your Microchip

products. To this end, we will continue to improve our publications to better suit your needs. Our publications will be refined and

enhanced as new volumes and updates are introduced.

If you have any questions or comments regarding this publication, please contact the Marketing Communications Department via

E-mail at docerrors@microchip.com. We welcome your feedback.

Most Current Data Sheet

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

   http://www.microchip.com

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

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

Errata

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

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

of silicon and revision of document to which it applies.

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

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

•  Your local Microchip sales office (see last page)

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

using.

Customer Notification System

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

 2011-2014 Microchip Technology Inc.                                                                          DS30009997E-page 13
PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

Referenced Sources

This  device  data  sheet    is   based    on  the  following

individual chapters of the “dsPIC33/PIC24 Family Ref-

erence    Manual”.   These        documents    should    be

considered as the primary reference for the operation

of a particular module or device feature.

   Note:  To  access         the      documents       listed

          below,    browse        to  the  documentation

          section       of   the      PIC24FJ16MC102

          product     page        of  the  Microchip     Web

          site (www.microchip.com).

          In  addition   to  parameters,       features  and

          other documentation, the resulting page

          provides    a     list  of  the  related    family

          reference manual sections.

•  “Introduction” (DS39718)

•  “CPU” (DS39703)

•  “Data Memory” (DS39717)

•  “Program Memory” (DS39715)

•  “Oscillator” (DS39700)

•  “Reset” (DS39712)

•  “Interrupts” (DS39707)

•  “Watchdog Timer (WDT)” (DS39697)

•  “Power-Saving Features” (DS39698)

•  “Charge Time Measurement Unit (CTMU)” (DS39724)

•  “I/O Ports with Peripheral Pin Select (PPS)” (DS39711)

•  “Timers” (DS39704)

•  “Input Capture” (DS70000352)

•  “Output Compare” (DS70005157)

•  “UART” (DS39708)

•  “Serial Peripheral Interface (SPI)” (DS39699)

•  “Inter-Integrated Circuit™ (I2C™)” (DS70000195)

•  “Real-Time Clock and Calendar (RTCC)” (DS39696)

•  “High-Level Device Integration” (DS39719)

•  “Programming and Diagnostics” (DS39716)

•  “10-bit Analog-to-Digital Converter (ADC) with 4 Simultaneous  Conversions”  (DS39737)

•  “Motor Control PWM” (DS39735)

•  “Comparator with Blanking” (DS39741)

DS30009997E-page 14                                                2011-2014 Microchip Technology Inc.
     PIC24FJ16MC101/102 AND                                  PIC24FJ32MC101/102/104

1.0   DEVICE OVERVIEW                                        This document contains device specific information for

                                                             the  PIC24FJ16MC101/102       and     PIC24FJ32MC101/

Note  1:  This    data  sheet          summarizes       the  102/104 Microcontroller (MCU) devices. Central to all

          features  of  the    PIC24FJ16MC101/102            PIC24F  devices  is      the  16-bit  modified    Harvard

          and PIC24FJ32MC101/102/104 devices.                architecture, first introduced with Microchip’s dsPIC®

          However, it is not intended to be a compre-        Digital Signal Controllers (DSCs).

          hensive reference source. To complement            Figure 1-1 shows a general block diagram of the core

          the information in this data sheet, refer to       and peripheral modules in the PIC24FJ16MC101/102

          the latest family reference sections of the        and  PIC24FJ32MC101/102/104           family  of  devices.

          “dsPIC33/PIC24       Family             Reference  Table 1-1 lists the functions of the various pins shown

          Manual”,  which      are     available  from  the  in the pinout diagrams.

          Microchip web site (www.microchip.com).

      2:  It  is    important  to      note       that  the

          specifications in Section 26.0 “Electri-

          cal Characteristics” of this data sheet

          supercede any specifications that may be

          provided in the “dsPIC33/PIC24 Family

          Reference Manual” sections.

 2011-2014 Microchip Technology Inc.                                                            DS30009997E-page 15
PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

FIGURE 1-1:                 PIC24FJ16MC101/102                AND PIC24FJ32MC101/102/104                                  BLOCK     DIAGRAM

PSV and Table

Data Access

Control Block

                   Interrupt                                        X Data  Bus

                   Controller                                                                                                           PORTA

                                                        16                               16

                                8                                   16

                                                                                    Data Latch

       23

                           23   PCU             PCH  PCL                            X RAM                                               PORTB

                                Program Counter

                                Stack                Loop                           Address

                                Control              Control                        Latch

                                Logic                Logic                                                                          16

               23                                                                        16

                                                                                                                                        Remappable

Address Latch                                                               Address Generator   Units                                   Pins

Program Memory

                                                                                                EA MUX

       Data Latch                                                           ROM Latch

                                24                                                              16            16

                                Instruction                                                     Literal Data

                                Decode and

                                Control                                 Instruction Reg

                               Control Signals

                               to Various Blocks              17 x 17 Multiplier

                                                                                                16 x 16

OSC2/CLKO          Timing       Power-up                                                     W Register Array

OSC1/CLKI      Generation            Timer                          Divide Support                                              16

                                Oscillator

               FRC/LPRC         Start-up Timer

               Oscillators      Power-on

                                     Reset

               Precision                                                                                      16-Bit ALU

               Band Gap         Watchdog

               Reference             Timer                                                                                16

                   Voltage      Brown-out

               Regulator             Reset

                   VCAP         VDD, VSS          MCLR

                   External     Timers                                                          OC/

CTMU               Interrupts   1-5                         UART1           ADC1             PWM1-2               RTCC

                     1-3

                   Comparators  SPI1                       IC1-IC3          CNx                 I2C1              PWM1

                     1-3                                                                                                  6 Ch

Note:  Not all pins or features are implemented on all device pinout configurations. See “Pin Diagrams” for the specific pins

       and features present on each device.

DS30009997E-page 16                                                                                            2011-2014 Microchip Technology Inc.
PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

TABLE 1-1:   PINOUT I/O DESCRIPTIONS

Pin Name     Pin         Buffer        PPS                                Description

             Type        Type

AN0-AN10(5)  I           Analog        No   Analog input channels.

AN11, AN12,

AN15(4)

CLKI         I           ST/CMOS       No   External clock source input. Always associated with OSC1 pin function.

CLKO         O           —             No   Oscillator crystal output. Connects to crystal or resonator in Crystal

                                            Oscillator mode. Optionally functions as CLKO in RC and EC modes.

                                            Always associated with OSC2 pin function.

OSC1         I           ST/CMOS       No   Oscillator crystal input. ST buffer when configured in RC mode; CMOS

                         —                  otherwise.

OSC2         I/O                       No   Oscillator crystal output. Connects to crystal or resonator in Crystal

                                            Oscillator mode. Optionally functions as CLKO in RC and EC modes.

SOSCI        I           ST/CMOS       No   32.768 kHz low-power oscillator crystal input; CMOS otherwise.

SOSCO        O           —             No   32.768 kHz low-power oscillator crystal output.

CN0-CN30(5)  I           ST            No   Input Change Notification inputs. Can be software programmed for internal

                         ST            No   weak pull-ups on all inputs.

                         ST            No

                         ST            No

                         ST            No

                         ST            No

                         ST            No

IC1-IC3      I           ST            Yes  Capture Inputs 1/2/3.

OCFA         I           ST            Yes  Compare Fault A input (for Compare  Channels     1  and  2).

OC1-OC2      O           —             Yes  Compare Outputs 1 through 2.

INT0         I           ST            No   External Interrupt 0.

INT1         I           ST            Yes  External Interrupt 1.

INT2         I           ST            Yes  External Interrupt 2.

RA0-RA4      I/O         ST            No   PORTA is a bidirectional I/O port.

RA7-RA10(4)

RB0-RB15     I/O         ST            No   PORTB is a bidirectional I/O port.

RC0-RC9(4)   I/O         ST            No   PORTC is a bidirectional I/O port.

T1CK         I           ST            No   Timer1 external clock input.

T2CK         I           ST            Yes  Timer2 external clock input.

T3CK         I           ST            Yes  Timer3 external clock input.

T4CK         I           ST            Yes  Timer4 external clock input.

T5CK         I           ST            Yes  Timer5 external clock input.

U1CTS        I           ST            Yes  UART1 Clear-to-Send.

U1RTS        O           —             Yes  UART1 Ready-to-Send.

U1RX         I           ST            Yes  UART1 receive.

U1TX         O           —             Yes  UART1 transmit.

Legend:   CMOS = CMOS compatible input or output                   Analog = Analog input        P = Power

          ST = Schmitt Trigger input with CMOS levels              O = Output                   I = Input

          PPS = Peripheral Pin Select

Note  1:  An external pull-down resistor is required for the FLTA1 pin on PIC24FJ16MC101 (20-pin) devices.

      2:  The FLTB1 pin is available on PIC24FJ(16/32)MC102/104 devices only.

      3:  The PWMx Fault pins are enabled during any Reset event. Refer to Section 15.2 “PWMx Faults” for

          more information on the PWMx Faults.

      4:  This pin is available on PIC24FJ(16/32)MC104 devices only.

      5:  Not all pins are available on all devices. Refer to the specific device in the “Pin Diagrams” section for

          availability.

 2011-2014 Microchip Technology Inc.                                                                DS30009997E-page 17
PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

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

Pin Name    Pin            Buffer   PPS                                  Description

            Type           Type

SCK1        I/O            ST       Yes  Synchronous serial clock input/output for SPI1.

SDI1        I              ST       Yes  SPI1 data in.

SDO1        O              —        Yes  SPI1 data out.

SS1         I/O            ST       Yes  SPI1 slave synchronization or frame pulse I/O.

SCL1        I/O            ST       No   Synchronous serial clock input/output for I2C1.

SDA1        I/O            ST       No   Synchronous serial data input/output for I2C1.

ASCL1       I/O            ST       No   Alternate synchronous serial clock input/output for I2C1.

ASDA1       I/O            ST       No   Alternate synchronous serial data input/output for I2C1.

FLTA1(1,3)  I              ST       No   PWM1 Fault A input.

FLTB1(2,3)  I              ST       No   PWM1 Fault B input.

PWM1L1      O              —        No   PWM1 Low Output 1.

PWM1H1      O              —        No   PWM1 High Output 1.

PWM1L2      O              —        No   PWM1 Low Output 2.

PWM1H2      O              —        No   PWM1 High Output 2.

PWM1L3      O              —        No   PWM1 Low Output 3.

PWM1H3      O              —        No   PWM1 High Output 3.

RTCC        O              Digital  No   RTCC alarm output.

CTPLS       O              Digital  Yes  CTMU pulse output.

CTED1       I              Digital  No   CTMU External Edge Input 1.

CTED2       I              Digital  No   CTMU External Edge Input 2.

CTCMP       I              Analog   No   CTMU timing comparator input.

CVREF       I              Analog   No   Comparator voltage positive reference input.

C1INA       I              Analog   No   Comparator 1 Positive Input A.

C1INB       I              Analog   No   Comparator 1 Negative Input B.

C1INC       I              Analog   No   Comparator 1 Negative Input C.

C1IND       I              Analog   No   Comparator 1 Negative Input D.

C1OUT       O              Digital  Yes  Comparator 1 output.

C2INA       I              Analog   No   Comparator 2 Positive Input A.

C2INB       I              Analog   No   Comparator 2 Negative Input B.

C2INC       I              Analog   No   Comparator 2 Negative Input C.

C2IND       I              Analog   No   Comparator 2 Negative Input D.

C2OUT       O              Digital  Yes  Comparator 2 output.

C3INA       I              Analog   No   Comparator 3 Positive Input A.

C3INB       I              Analog   No   Comparator 3 Negative Input B.

C3INC       I              Analog   No   Comparator 3 Negative Input C.

C3IND       I              Analog   No   Comparator 3 Negative Input D.

C3OUT       O              Digital  Yes  Comparator 3 output.

Legend:     CMOS = CMOS compatible input or output             Analog = Analog input      P = Power

            ST = Schmitt Trigger input with CMOS levels        O = Output                 I = Input

            PPS = Peripheral Pin Select

Note   1:   An external pull-down resistor is required for the FLTA1 pin on PIC24FJ16MC101 (20-pin) devices.

       2:   The FLTB1 pin is available on PIC24FJ(16/32)MC102/104 devices only.

       3:   The PWMx Fault pins are enabled during any Reset event. Refer to Section 15.2 “PWMx Faults” for

            more information on the PWMx Faults.

       4:   This pin is available on PIC24FJ(16/32)MC104 devices only.

       5:   Not all pins are available on all devices. Refer to the specific device in the “Pin Diagrams” section for

            availability.

DS30009997E-page 18                                                               2011-2014 Microchip Technology Inc.
PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

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

Pin Name    Pin          Buffer        PPS                            Description

            Type         Type

PGED1       I/O          ST            No   Data I/O pin for programming/debugging Communication Channel 1.

PGEC1       I            ST            No   Clock input pin for programming/debugging Communication Channel 1.

PGED2       I/O          ST            No   Data I/O pin for programming/debugging Communication Channel 2.

PGEC2       I            ST            No   Clock input pin for programming/debugging Communication Channel 2.

PGED3       I/O          ST            No   Data I/O pin for programming/debugging Communication Channel 3.

PGEC3       I            ST            No   Clock input pin for programming/debugging Communication Channel 3.

MCLR        I/P          ST            No   Master Clear (Reset) input. This pin is an active-low Reset to the device.

AVDD        P            P             No   Positive supply for analog modules. This pin must be connected at all

                                            times. AVDD is connected to VDD in 28-pin PIC24FJXXMC102 devices. In

                                            all other devices, AVDD is separated from VDD.

AVSS        P            P             No   Ground reference for analog modules. AVSS is connected to VSS in 28-pin

                                            PIC24FJXXMC102 devices. In all other devices, AVSS is separated from

                                            VSS.

VDD         P            —             No   Positive supply for peripheral logic and I/O pins.

VCAP        P            —             No   CPU logic filter capacitor connection.

VSS         P            —             No   Ground reference for logic and I/O pins.

Legend:   CMOS = CMOS compatible input or output       Analog = Analog input                    P = Power

          ST = Schmitt Trigger input with CMOS levels  O = Output                               I = Input

          PPS = Peripheral Pin Select

Note  1:  An external pull-down resistor is required for the FLTA1 pin on PIC24FJ16MC101 (20-pin) devices.

      2:  The FLTB1 pin is available on PIC24FJ(16/32)MC102/104 devices only.

      3:  The PWMx Fault pins are enabled during any Reset event. Refer to Section 15.2 “PWMx Faults” for

          more information on the PWMx Faults.

      4:  This pin is available on PIC24FJ(16/32)MC104 devices only.

      5:  Not all pins are available on all devices. Refer to the specific device in the “Pin Diagrams” section for

          availability.

 2011-2014 Microchip Technology Inc.                                                           DS30009997E-page 19
PIC24FJ16MC101/102   AND  PIC24FJ32MC101/102/104

NOTES:

DS30009997E-page 20        2011-2014 Microchip Technology Inc.
     PIC24FJ16MC101/102 AND                                         PIC24FJ32MC101/102/104

2.0      GUIDELINES FOR GETTING                                     2.2       Decoupling Capacitors

         STARTED WITH 16-BIT                                        The  use  of  decoupling  capacitors   on  every      pair  of

         MICROCONTROLLERS                                           power  supply  pins,  such  as  VDD,   VSS,        AVDD  and

                                                                    AVSS is required.

   Note  1:  This      data      sheet      summarizes       the    Consider the following criteria when using decoupling

             features    of  the      PIC24FJ16MC101/102            capacitors:

             and   PIC24FJ32MC101/102/104                 family

             of   devices.   It   is   not  intended  to    be  a   •  Value and type of capacitor: Recommendation

             comprehensive            reference   source.       To     of 0.1 µF (100 nF), 10V-20V. This capacitor

             complement the information in this data                   should be a low-ESR and have resonance

             sheet, refer to the “dsPIC33/PIC24 Fam-                   frequency in the range of 20 MHz and higher. It is

             ily  Reference      Manual”.   Please    see    the       recommended that ceramic capacitors be used.

             Microchip web site (www.microchip.com)                 •  Placement on the printed circuit board: The

             for   the  latest    “dsPIC33/PIC24          Family       decoupling capacitors should be placed as close

             Reference Manual” sections.                               to the pins as possible. It is recommended to

         2:  It    is   important       to  note      that   the       place the capacitors on the same side of the

             specifications in Section 26.0 “Electri-                  board as the device. If space is constricted, the

             cal Characteristics” of this data sheet                   capacitor can be placed on another layer on the

             supercede any specifications that may be                  PCB using a via; however, ensure that the trace

             provided in the “dsPIC33/PIC24 Family                     length from the pin to the capacitor is within

             Reference Manual” sections.                               one-quarter inch (6 mm) in length.

         3:  Some       registers      and  associated       bits   •  Handling high-frequency noise: If the board is

             described       in  this  section   may  not       be     experiencing high-frequency noise, upward of

             available       on   all   devices.      Refer     to     tens of MHz, add a second ceramic-type capacitor

             Section 4.0 “Memory Organization” in                      in parallel to the above described decoupling

             this data sheet for device-specific register              capacitor. The value of the second capacitor can

             and bit information.                                      be in the range of 0.01 µF to 0.001 µF. Place this

                                                                       second capacitor next to the primary decoupling

2.1      Basic Connection Requirements                                 capacitor. In high-speed circuit designs, consider

                                                                       implementing a decade pair of capacitances as

Getting  started       with  the      PIC24FJ16MC101/102               close to the power and ground pins as possible.

and  PIC24FJ32MC101/102/104                 family    of    16-bit     For example, 0.1 µF in parallel with 0.001 µF.

microcontrollers (MCUs) requires attention to a minimal             •  Maximizing performance: On the board layout

set of device pin connections before proceeding with                   from the power supply circuit, run the power and

development. The following is a list of pin names, which               return traces to the decoupling capacitors first,

must always be connected:                                              and then to the device pins. This ensures that the

•  All VDD and VSS pins                                                decoupling capacitors are first in the power chain.

   (see Section 2.2 “Decoupling Capacitors”)                           Equally important is to keep the trace length

                                                                       between the capacitor and the power pins to a

•  All AVDD and AVSS pins, if present on the device                    minimum thereby reducing PCB track inductance.

   (regardless if ADC module is not used)

   (see Section 2.2 “Decoupling Capacitors”)

•  VCAP

   (see Section 2.3 “CPU Logic Filter Capacitor

   Connection (VCAP)”)

•  MCLR pin

   (see Section 2.4 “Master Clear (MCLR) Pin”)

•  PGECx/PGEDx pins used for In-Circuit Serial

   Programming™ (ICSP™) and debugging purposes

   (see Section 2.5 “ICSP Pins”)

•  OSC1 and OSC2 pins when external oscillator

   source is used

   (see Section 2.6 “External Oscillator Pins”)

 2011-2014 Microchip Technology Inc.                                                               DS30009997E-page 21
PIC24FJ16MC101/102 AND                                                                                PIC24FJ32MC101/102/104

FIGURE 2-1:                                   RECOMMENDED                                             The placement of this capacitor should be close to the

                                              MINIMUM CONNECTION                                      VCAP.    It  is  recommended                that  the   trace  length      not

                                                                                                      exceed one-quarter inch (6 mm). Refer to Section 23.2

                                                                                        0.1 µF        “On-Chip Voltage Regulator” for details.

VDD                    10 µF                                                            Ceramic

                    Tantalum

                                                                                                      2.4          Master Clear (MCLR) Pin

       R                                      VCAP                       VDD       VSS                The     MCLR          pin      provides           two   specific     device

             R1                                                                                       functions:

                       MCLR

                                                                                                      •  Device Reset

       C                                                                                              •  Device Programming and Debugging

                                                          PIC24F

                                                                                                      During       device      programming              and   debugging,         the

                       VSS                                                         VDD                resistance and capacitance that can be added to the

                                                                                   VSS                pin  must        be   considered.       Device         programmers         and

     0.1 µF            VDD             AVDD                                                           debuggers        drive         the      MCLR      pin.    Consequently,

                                                          AVSS           VDD       VSS       0.1 µF

Ceramic                                                                                      Ceramic  specific     voltage     levels     (VIH    and   VIL)    and  fast  signal

                                                                                                      transitions must not be adversely affected. Therefore,

                                                                0.1 µF                  0.1 µF        specific values of R and C will need to be adjusted

                                                                Ceramic                 Ceramic       based on the application and PCB requirements.

                    L1(1)                                                                             For    example,            as   shown       in         Figure 2-2,     it      is

Note      1:     As an option, instead of a hard-wired connection, an                                 recommended that the capacitor C, be isolated from

                 inductor (L1) can be substituted between VDD and                                     the  MCLR        pin     during     programming           and  debugging

                 AVDD to improve ADC noise rejection. The inductor                                    operations.

                 impedance should be less than 1 and the inductor

                 capacity greater than 10 mA.                                                         Place    the     components             shown     in   Figure 2-2    within

                 Where:                                                                               one-quarter inch (6 mm) from the MCLR pin.

             f  =   F-----C---N----V-         (i.e., ADC conversion rate/2)                           FIGURE 2-2:                      EXAMPLE OF MCLR PIN
                       2
                                                                                                                                       CONNECTIONS
                    -----------1------------
             f  =

                    2                LC                                                                             VDD

                      ---2-------f1------C-----  2

             L   =                                                                                                        R(1)

                                                                                                                                      R1(2)

                                                                                                                                                  MCLR

2.2.1            TANK CAPACITORS                                                                                                                        PIC24F

On boards with power traces running longer than six                                                                        JP

inches in length, it is suggested to use a tank capacitor                                                                   C

for integrated circuits including MCUs to supply a local

power source. The value of the tank capacitor should

be determined based on the trace resistance that con-                                                    Note      1:  R      10 k      is  recommended.      A    suggested

nects the power supply source to the device, and the                                                                   starting      value    is  10 k.     Ensure  that    the

maximum current drawn by the device in the applica-                                                                    MCLR pin VIH and VIL specifications are met.

tion. In other words, select the tank capacitor so that it                                                         2:  R1       470 will limit any current flowing into

meets the acceptable voltage sag at the device. Typical                                                                MCLR from the external capacitor, C, in the

values range from 4.7 µF to 47 µF.                                                                                     event     of  MCLR         pin   breakdown,      due      to

                                                                                                                       Electrostatic      Discharge     (ESD)   or   Electrical

2.3          CPU Logic Filter Capacitor                                                                                Overstress (EOS). Ensure that the MCLR pin

             Connection (VCAP)                                                                                         VIH and VIL specifications are met.

A low-ESR (< 5 Ohms) capacitor is required on the

VCAP   pin,        which               is     used              to  stabilize           the  voltage

regulator output voltage. The VCAP pin must not be

connected to VDD, and must have a capacitor between

4.7 µF and 10 µF, 16V connected to ground. The type

can  be      ceramic       or          tantalum.                    Refer     to   Section 26.0

“Electrical            Characteristics”                                       for       additional

information.

DS30009997E-page 22                                                                                                               2011-2014 Microchip Technology Inc.
       PIC24FJ16MC101/102 AND                                    PIC24FJ32MC101/102/104

2.5         ICSP Pins                                            2.6         External Oscillator Pins

The PGECx and PGEDx pins are used for In-Circuit                 Many MCUs have options for at least two oscillators: a

Serial Programming™ (ICSP™) and debugging pur-                   high-frequency primary oscillator and a low-frequency

poses.  It  is   recommended    to  keep  the     trace  length  secondary oscillator (refer to Section 8.0 “Oscillator

between the ICSP connector and the ICSP pins on the              Configuration” for details).

device as short as possible. If the ICSP connector is            The oscillator circuit should be placed on the same

expected to experience an ESD event, a series resistor           side   of   the     board   as  the  device.  Also,    place    the

is recommended, with the value in the range of a few             oscillator circuit close to the respective oscillator pins,

tens of Ohms, not to exceed 100 Ohms.                            not    exceeding        one-half     inch    (12 mm)       distance

Pull-up resistors, series diodes, and capacitors on the          between them. The load capacitors should be placed

PGECx and PGEDx pins are not recommended as they                 next to the oscillator itself, on the same side of the

will interfere with the programmer/debugger communi-             board.     Use      a   grounded     copper   pour     around   the

cations to the device. If such discrete components are           oscillator     circuit  to  isolate  them     from     surrounding

an application requirement, they should be removed               circuits. The grounded copper pour should be routed

from the circuit during programming and debugging.               directly   to  the     MCU  ground.  Do      not  run  any  signal

Alternately, refer to the AC/DC characteristics and              traces or power traces inside the ground pour. Also, if

timing requirement information in the “PIC24FJXX-                using   a   two-sided       board,   avoid   any  traces    on  the

MCXXX Flash Programming Specification” for informa-              other side of the board where the crystal is placed. A

tion on capacitive loading limits and pin input voltage          suggested layout is shown in Figure 2-3.

high (VIH) and input low (VIL) requirements.

Ensure that the “Communication Channel Select” (i.e.,            FIGURE 2-3:                 SUGGESTED PLACEMENT

PGECx/PGEDx      pins)     programmed       into  the    device                              OF THE OSCILLATOR

matches     the  physical  connections    for  the  ICSP  to                                 CIRCUIT

MPLAB® ICD 2, MPLAB ICD 3 or MPLAB REAL ICE™.

For more information on ICD 2, ICD 3 and REAL ICE                      Main Oscillator

connection       requirements,  refer   to     the  following                                                           13

documents that are available on the Microchip web                       Guard Ring                                      14

site.

   “MPLAB® ICD 2 In-Circuit Debugger User’s                                                                             15

•                                                                       Guard Trace

   Guide” (DS51331)                                                                                                     16

•  “Using MPLAB® ICD 2” (poster) (DS51265)                               Secondary                                      17

•  “MPLAB® ICD 2 Design Advisory” (DS51566)                              Oscillator                                     18

•  “Using MPLAB® ICD 3” (poster) (DS51765)                                                                              19

•  “MPLAB® ICD 3 Design Advisory” (DS51764)                                                                             20

•  “MPLAB® REAL ICE™ In-Circuit Debugger

   User’s Guide” (DS51616)

•  “Using MPLAB® REAL ICE™” (poster) (DS51749)

 2011-2014 Microchip Technology Inc.                                                                       DS30009997E-page 23
PIC24FJ16MC101/102 AND                                                    PIC24FJ32MC101/102/104

2.7        Oscillator Value Conditions on                                 The  bits   in  the  register     that    correspond     to   the

           Device Start-up                                                Analog-to-Digital    pins  that   are   initialized  by  MPLAB

                                                                          ICD 3 or MPLAB REAL ICE in-circuit emulator, must

If  the    PLL     of   the   target    device    is  enabled      and    not  be    cleared   by    the  user    application      firmware;

configured      for     the   device    start-up      oscillator,  the    otherwise,  communication         errors  will  result   between

maximum oscillator source frequency must be limited                       the debugger and the device.

to   4   MHz    <  FIN     <  8  MHz    (for    MSPLL      mode)   or     If your application needs to use certain Analog-to-Digital

3 MHz < FIN < 8 MHz (for ECPLL mode) to comply with                       pins as analog input pins during the debug session, the

device PLL start-up conditions. HSPLL mode is not                         user application must clear the corresponding bits in the

supported. This means that if the external oscillator                     AD1PCFGL        register  during  initialization     of  the  ADC

frequency is outside this range, the application must                     module.

start-up in the FRC mode first. The fixed PLL settings

of 4x after a POR with an oscillator frequency outside                    When MPLAB ICD 3 or MPLAB REAL ICE in-circuit

this range will violate the device operating speed.                       emulator is used as a programmer, the user application

Once the device powers up, the application firmware                       firmware    must    correctly    configure   the     AD1PCFGL

can enable the PLL, and then perform a clock switch to                    register. Automatic initialization of this register is only

the  Oscillator      +  PLL      clock  source.   Note  that       clock  done during debugger operation. Failure to correctly

switching must be enabled in the device Configuration                     configure   the      register(s)       will     result   in   all

Word.                                                                     Analog-to-Digital pins being recognized as analog input

                                                                          pins, resulting in the port value being read as a logic ‘0’,

2.8        Configuration of Analog and                                    which may affect user application functionality.

           Digital Pins During ICSP                                       2.9        Unused I/Os

           Operations                                                     Unused I/O pins should be configured as outputs and

If  MPLAB       ICD     3    or  MPLAB  REAL          ICE  in-circuit     driven to a logic-low state.

emulator is selected as a debugger, it automatically                      Alternately, connect a 1k to 10k resistor between VSS

initializes all of the Analog-to-Digital input pins (ANx) as              and unused pins.

“digital”  pins,   by   setting  all    bits  in  the  AD1PCFGL

register.

DS30009997E-page 24                                                                             2011-2014 Microchip Technology Inc.
      PIC24FJ16MC101/102 AND                                                  PIC24FJ32MC101/102/104

3.0        CPU                                                                The  PIC24FJ16MC101/102            and  PIC24FJ32MC101/

                                                                              102/104 family instruction set includes many addressing

Note       1:   This      data        sheet         summarizes         the    modes  and       is   designed  for     optimum  C      compiler

                features of the PIC24FJ16MC101/102                            efficiency. For most instructions, PIC24FJ16MC101/102

                and      PIC24FJ32MC101/102/104                     family    and PIC24FJ32MC101/102/104 devices are capable of

                of devices. However, it is not intended to                    executing a data (or program data) memory read, a

                be    a   comprehensive             reference    source.      Working register (data) read, a data memory write, and

                To    complement         the        information  in    this   a  program   (instruction)    memory    read   per    instruction

                data sheet, refer to “CPU” (DS39703) in                       cycle. As a result, three parameter instructions can be

                the   “dsPIC33/PIC24                Family     Reference      supported, allowing A + B = C operations to be executed

                Manual”,          which     is    available     from   the    in a single cycle.

                Microchip web site (www.microchip.com).                       A block diagram of the CPU is shown in Figure 3-1

           2:   It    is    important           to  note        that   the    and    the           programmer’s       model         for  the

                specifications in Section 26.0 “Electri-                      PIC24FJ16MC101/102            and    PIC24FJ32MC101/102/

                cal Characteristics” of this data sheet                       104 devices is shown in Figure 3-2.

                supercede any specifications that may be

                provided in the “dsPIC33/PIC24 Family                         3.1         Data Addressing Overview

                Reference Manual” sections.

           3:   Some        registers         and   associated         bits   The data space can be linearly addressed as 32K words

                described         in  this      section    may   not   be     or 64 Kbytes using an Address Generation Unit (AGU).

                available         on     all    devices.        Refer  to     The upper 32 Kbytes of the data space memory map can

                Section 4.0 “Memory Organization” in                          optionally be mapped into program space at any 16K

                this data sheet for device-specific register                  program word boundary defined by the 8-bit Program

                and bit information.                                          Space Visibility Page register (PSVPAG). The program to

                                                                              data space mapping feature lets any instruction access

The   PIC24FJ16MC101/102                 and        PIC24FJ32MC101/           program space as if it were data space.

102/104     CPU       module      has    a    16-bit    (data)   modified

Harvard architecture with an enhanced instruction set                         3.2         Special MCU Features

and   addressing          modes.       The        CPU      has   a    24-bit  The  PIC24FJ16MC101/102            and  PIC24FJ32MC101/

instruction word with a variable length opcode field.                         102/104 family features a 17-bit by 17-bit, single-cycle

The   Program         Counter         (PC)    is    23   bits   wide   and    multiplier. The multiplier can perform signed, unsigned

addresses up to 4M by 24 bits of user program memory                          and mixed-sign multiplication. Using a 17-bit by 17-bit

space.     The      actual    amount            of  program      memory       multiplier  for  16-bit  by     16-bit  multiplication     makes

implemented           varies      by     device.        A      single-cycle   mixed-sign multiplication possible.

instruction    prefetch       mechanism             is   used    to    help

maintain       throughput         and           provides       predictable    The  PIC24FJ16MC101/102            and  PIC24FJ32MC101/

execution. All instructions execute in a single cycle,                        102/104 family supports 16/16 and 32/16 integer divide

with  the    exception        of  instructions        that   change    the    operations.      All  divide    instructions     are    iterative

program        flow,     the      double-word           move     (MOV.D)      operations. They must be executed within a REPEAT

instruction and the table instructions. Overhead-free,                        loop, resulting in a total execution time of 19 instruction

single-cycle    program       loop     constructs        are    supported     cycles. The divide operation can be interrupted during

using the REPEAT instruction, which is interruptible at                       any of those 19 cycles without loss of data.

any point.                                                                    A multi-bit data shifter is used to perform up to a 16-bit,

The PIC24FJ16MC101/102 and PIC24FJ32MC101/102/                                left or right shift in a single cycle.

104 devices have sixteen, 16-bit Working registers in the

programmer’s model. Each of the Working registers can

serve as a data, address or address offset register. The

16th Working register (W15) operates as a Software

Stack Pointer (SSP) for interrupts and calls.

 2011-2014 Microchip Technology Inc.                                                                                 DS30009997E-page 25
PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

FIGURE 3-1:          PIC24FJ16MC101/102                  AND PIC24FJ32MC101/102/104                CPU CORE

                     BLOCK DIAGRAM

PSV and Table

Data Access

Control Block

                   Interrupt                             X   Data Bus

                   Controller

                               8                  16     16              16

                                                             Data Latch

23

                     23        PCU      PCH       PCL             X RAM                                            16

                               Program Counter

                               Stack              Loop       Address

                               Control          Control              Latch

                               Logic              Logic

               23

                                                                         16

Address Latch                                                Address Generator   Units

Program Memory

                                                                                 EA MUX

Data Latch                                                   ROM Latch

                               24                                                16            16

                               Instruction                                       Literal Data

                               Decode and                    Instruction Reg

                               Control

                                                                                               16

                               Control Signals           17 x 17

                               to Various Blocks         Multiplier

                                                                                 16 x 16

                                                         Divide Support       W  Register Array

                                                                                                               16

                                                                                               16-Bit ALU

                                                                                                           16

                                                                                                                   To Peripheral Modules

DS30009997E-page 26                                                                             2011-2014 Microchip Technology           Inc.
PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

FIGURE 3-2:     PIC24FJ16MC101/102                 AND PIC24FJ32MC101/102/104 PROGRAMMER’S MODEL

                                              D15                        D0

                                                       W0/WREG                                      PUSH.S Shadow

                                                          W1

                                                          W2                                        DO Shadow

                                                          W3                                        Legend

                                                          W4

                                                          W5

                                                          W6

                                                          W7

                                                          W8                       Working  Registers

                                                          W9

                                                          W10

                                                          W11

                                                          W12

                                                          W13

                                                   W14/Frame Pointer

                                                   W15/Stack Pointer

                                                       SPLIM                       Stack Pointer Limit Register

   PC22                                                               PC0

                                                                         0         Program Counter

                                                    7                       0

                                                          TBLPAG                   Data Table Page Address

                                                    7                       0

                                                          PSVPAG                   Program Space Visibility Page  Address

                                              15                         0

                                                       RCOUNT                      REPEAT Loop Counter

                                              15                         0

                                                       CORCON                      Core Configuration Register

—  —         —  —  —  —                —  DC  IPL2  IPL1  IPL0  RA    N        OV  Z  C     STATUS Register

                SRH                                             SRL

 2011-2014 Microchip Technology Inc.                                                                  DS30009997E-page 27
PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

3.3          CPU Control Registers

REGISTER 3-1:        SR: CPU STATUS REGISTER

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

         —           —        —                       —         —                   —             —                 DC

bit 15                                                                                                                        bit 8

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

     IPL2(1,2)     IPL1(1,2)  IPL0(1,2)               RA        N                   OV            Z                 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 15-9        Unimplemented: Read as ‘0’

bit 8           DC: MCU ALU Half Carry/Borrow bit

                1=   A carry-out from the 4th low-order bit (for byte-sized data) or 8th low-order bit (for word-sized data)

                     of the result occurred

                0=   No carry-out from the 4th low-order bit (for byte-sized data) or 8th low-order bit (for word-sized

                     data) of the result occurred

bit 7-5         IPL<2:0>: CPU Interrupt Priority Level Status bits(1,2)

                111 = CPU Interrupt Priority Level is 7 (15), user interrupts disabled

                110 = CPU Interrupt Priority Level is 6 (14)

                101 = CPU Interrupt Priority Level is 5 (13)

                100 = CPU Interrupt Priority Level is 4 (12)

                011 = CPU Interrupt Priority Level is 3 (11)

                010 = CPU Interrupt Priority Level is 2 (10)

                001 = CPU Interrupt Priority Level is 1 (9)

                000 = CPU Interrupt Priority Level is 0 (8)

bit 4           RA: REPEAT Loop Active bit

                1 = REPEAT loop in progress

                0 = REPEAT loop not in progress

bit 3           N: MCU ALU Negative bit

                1 = Result was negative

                0 = Result was non-negative (zero or positive)

bit 2           OV: MCU ALU Overflow bit

                This bit is used for signed arithmetic (2’s complement). It indicates an overflow of the magnitude which

                causes the sign bit to change state.

                1 = Overflow occurred for signed arithmetic (in this arithmetic operation)

                0 = No overflow occurred

bit 1           Z: MCU ALU Zero bit

                1 = An operation which affects the Z bit has set it at some time in the past

                0 = The most recent operation which affects the Z bit has cleared it (i.e., a non-zero result)

bit 0           C: MCU ALU Carry/Borrow bit

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

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

Note     1:  The IPL<2:0> bits are concatenated with the IPL<3> bit (CORCON<3>) to form the CPU Interrupt Priority

             Level. The value in parentheses indicates the IPL if IPL<3> = 1. User interrupts are disabled when IPL<3> = 1.

         2:  The IPL<2:0> Status bits are read-only when NSTDIS = 1 (INTCON1<15>).

DS30009997E-page 28                                                                      2011-2014 Microchip Technology Inc.
PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

REGISTER 3-2:      CORCON: CORE CONTROL REGISTER

        U-0        U-0                 U-0    U-0                     U-0              U-0             U-0                  U-0

         —         —                   —      —                       —                —               —                    —

bit 15                                                                                                                           bit  8

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

         —         —                   —      —                       IPL3(1)          PSV             —                    —

bit 7                                                                                                                            bit  0

Legend:                 C = Clearable bit

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

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

bit 15-4          Unimplemented: Read as ‘0’

bit 3             IPL3: CPU Interrupt Priority Level Status bit 3(1)

                  1 = CPU Interrupt Priority Level is greater than 7

                  0 = CPU Interrupt Priority Level is 7 or less

bit 2             PSV: Program Space Visibility in Data Space Enable bit

                  1 = Program space is visible in data space

                  0 = Program space is not visible in data space

bit 1-0           Unimplemented: Read as ‘0’

Note     1:  The  IPL3 bit is concatenated with the IPL<2:0> bits (SR<7:5>)    to      form  the  CPU  Interrupt  Priority  Level.

 2011-2014 Microchip Technology Inc.                                                                  DS30009997E-page 29
PIC24FJ16MC101/102 AND                                                 PIC24FJ32MC101/102/104

3.4         Arithmetic Logic Unit (ALU)                                3.4.2     DIVIDER

The    PIC24FJ16MC101/102            and      PIC24FJ32MC101/          The divide block supports 32-bit/16-bit and 16-bit/16-bit

102/104 ALU is 16 bits wide and is capable of addition,                signed and unsigned integer divide operations with the

subtraction,     bit  shifts  and  logic      operations.    Unless    following data sizes:

otherwise   mentioned,          arithmetic    operations    are   2’s  •  32-bit signed/16-bit signed divide

complement in nature. Depending on the operation, the                  •  32-bit unsigned/16-bit unsigned divide

ALU may affect the values of the Carry (C), Zero (Z),                  •  16-bit signed/16-bit signed divide

Negative    (N),    Overflow      (OV)   and  Digit   Carry  (DC)

Status bits in the SR register. The C and DC Status bits               •  16-bit unsigned/16-bit unsigned divide

operate as Borrow and Digit Borrow bits, respectively,                 The quotient for all divide instructions ends up in W0

for subtraction operations.                                            and  the  remainder    in  W1.  Sixteen-bit  signed  and

The    ALU    can     perform     8-bit  or   16-bit  operations,      unsigned DIV instructions can specify any W register

depending on the mode of the instruction that is used.                 for both the 16-bit divisor (Wn) and any W register

Data   for  the   ALU     operation      can  come    from   the  W    (aligned) pair (W(m + 1):Wm) for the 32-bit dividend.

register    array,    or  data    memory,     depending     on    the  The divide algorithm takes one cycle per bit of divisor,

addressing mode of the instruction. Likewise, output                   so both 32-bit/16-bit and 16-bit/16-bit instructions take

data from the ALU can be written to the W register array               the same number of cycles to execute.

or a data memory location.                                             3.4.3     MULTI-BIT DATA SHIFTER

Refer  to   the     “16-bit   MCU    and      DSC  Programmer’s

Reference Manual” (DS70157) for information on the                     The multi-bit data shifter is capable of performing up to

SR bits affected by each instruction.                                  16-bit arithmetic or logic right shifts, or up to 16-bit left

The    PIC24FJ16MC101/102            and      PIC24FJ32MC101/          shifts in a single cycle. The source can be either a

102/104 CPU incorporates hardware support for both                     Working register or a memory location.

multiplication and division. This includes a dedicated                 The shifter requires a signed binary value to determine

hardware    multiplier       and  support     hardware  for  16-bit    both the magnitude (number of bits) and direction of the

divisor division.                                                      shift operation. A positive value shifts the operand right.

                                                                       A negative value shifts the operand left. A value of ‘0’

3.4.1         MULTIPLIER                                               does not modify the operand.

Using the high-speed 17-bit x 17-bit multiplier, the ALU

supports unsigned, signed or mixed-sign operation in

several multiplication modes:

•  16-bit x 16-bit signed

•  16-bit x 16-bit unsigned

•  16-bit signed x 5-bit (literal) unsigned

•  16-bit unsigned x 16-bit unsigned

•  16-bit unsigned x 5-bit (literal) unsigned

•  16-bit unsigned x 16-bit signed

•  8-bit unsigned x 8-bit unsigned

DS30009997E-page 30                                                               2011-2014 Microchip Technology Inc.
     PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

4.0   MEMORY ORGANIZATION                                                                       4.1  Program Address Space

Note  1:   This        data  sheet        summarizes                             the            The  program            address  memory           space  of     the

           features of the PIC24FJ16MC101/102                                                   PIC24FJ16MC101/102               and   PIC24FJ32MC101/102/

           and     PIC24FJ32MC101/102/104                             family                    104  devices        is  4M  instructions.         The    space  is

           of devices. However, it is not intended to                                           addressable by a 24-bit value derived either from the

           be a comprehensive reference source. To                                              23-bit Program Counter (PC) during program execution,

           complement the information in this data                                              or from table operation or data space remapping as

           sheet, refer to “Data Memory” (DS39717)                                              described in Section 4.4 “Interfacing Program and

           and     “Program        Memory”                            (DS39715)  in             Data Memory Spaces”.

           the     “dsPIC33/PIC24         Family                      Reference                 User application access to the program memory space

           Manual”,        which   are    available                   from       the            is  restricted  to  the   lower  half  of  the    address  range

           Microchip web site (www.microchip.com).                                              (0x000000 to 0x7FFFFF). The exception is the use of

      2:   It      is  important    to          note                  that       the            TBLRD/TBLWT operations, which use TBLPAG<7> to

           specifications in Section 26.0 “Electri-                                             permit access to the Configuration bits and Device ID

           cal Characteristics” of this data sheet                                              sections of the configuration memory space.

           supercede any specifications that may be                                             The program memory maps for the PIC24FJ16MC101/

           provided in the “dsPIC33/PIC24 Family                                                102 and PIC24FJ32MC101/102/104 family of devices

           Reference Manual” sections.                                                          are shown in Figure 4-1 and Figure 4-2.

The  PIC24FJ16MC101/102            and    PIC24FJ32MC101/

102/104 family architecture features separate program

and data memory spaces and buses. This architecture

also allows the direct access of program memory from

the data space during code execution.

FIGURE 4-1:                PROGRAM MEMORY MAP FOR PIC24FJ16MC101/102 DEVICES

                                                                            GOTO Instruction         0x000000

                                                                                 Reset Address       0x000002

                                                                      Interrupt Vector Table         0x000004

                                                                                                     0x0000FE

                                                                                 Reserved            0x000100

                                                                      Alternate Vector Table         0x000104

                                          User Memory Space                                          0x0001FE

                                                                                 User Program        0x000200

                                                                                 Flash Memory

                                                                            (5.6K instructions)      0x002BFA

                                                                            Flash Configuration      0x002BFC

                                                                                 Words(1)            0x002BFE

                                                                                                     0x002C00

                                                                            Unimplemented

                                                                                 (Read ‘0’s)

                                                                                                     0x7FFFFE

                                                                                                     0x800000

                                          Configuration Memory Space             Reserved

                                                                                                     0xF7FFFE

                                                                      Device Configuration           0xF80000

                                                                            Shadow Registers         0xF80017

                                                                                                     0xF80018

                                                                                 Reserved

                                                                                                     0xFEFFFE

                                                                                 DEVID (2)           0xFF0000

                                                                                                     0xFFFFFE

     Note      1:      On  Reset,  these  bits  are                   automatically copied into the device Configuration  Shadow      registers.

 2011-2014 Microchip Technology Inc.                                                                                                  DS30009997E-page 31
PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

FIGURE 4-2:          PROGRAM MEMORY MAP FOR PIC24FJ32MC101/102/104 DEVICES

                                                 GOTO Instruction        0x000000

                                                 Reset Address           0x000002

                                                 Interrupt Vector Table  0x000004

                                                                         0x0000FE

                                                 Reserved                0x000100

                                                 Alternate Vector Table  0x000104

                     User Memory Space                                   0x0001FE

                                                 User Program            0x000200

                                                 Flash Memory

                                                 (11.2K instructions)    0x0057FA

                                                 Flash Configuration     0x0057FC

                                                 Words(1)                0x0057FE

                                                                         0x005800

                                                 Unimplemented

                                                 (Read ‘0’s)

                                                                         0x7FFFFE

                                                                         0x800000

                     Configuration Memory Space  Reserved

                                                                         0xF7FFFE

                                                 Device Configuration    0xF80000

                                                 Shadow Registers        0xF80020

                                                                         0xF80022

                                                 Reserved

                                                                         0xFEFFFE

                                                 DEVID (2)               0xFF0000

                                                                         0xFFFFFE

Note         1:      On Reset, these bits are automatically copied into the device Configuration Shadow registers.

DS30009997E-page 32                                                                 2011-2014 Microchip Technology  Inc.
     PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

4.1.1  PROGRAM MEMORY                                            4.1.2              INTERRUPT AND TRAP VECTORS

       ORGANIZATION                                              All PIC24FJ16MC101/102 and PIC24FJ32MC101/102/

The  program  memory    space   is     organized  in  word-      104 devices reserve the addresses between 0x00000

addressable blocks. Although it is treated as 24 bits            and 0x000200 for hard-coded program execution vec-

wide, it is more appropriate to think of each address of         tors. A hardware Reset vector is provided to redirect

the program memory as a lower and upper word, with               code execution from the default value of the PC on

the upper byte of the upper word being unimplemented.            device  Reset      to    the  actual  start  of  code.   A  GOTO

The lower word always has an even address, while the             instruction is programmed by the user application at

upper word has an odd address (Figure 4-3).                      0x000000, with the actual address for the start of code

Program memory addresses are always word-aligned                 at 0x000002.

on the lower word and addresses are incremented or               PIC24FJ16MC101/102              and   PIC24FJ32MC101/102/

decremented   by   two  during  code    execution.    This       104  devices       also  have   two   Interrupt  Vector  Tables,

arrangement provides compatibility with data memory              (IVTs)  located    from       0x000004       to  0x0000FF   and

space  addressing  and  makes   data    in  the   program        0x000100 to 0x0001FF. These vector tables allow each

memory space accessible.                                         of the device interrupt sources to be handled by sepa-

                                                                 rate Interrupt Service Routines (ISRs). A more detailed

                                                                 discussion of the Interrupt Vector Tables is provided in

                                                                 Section 7.1 “Interrupt Vector Table”.

FIGURE 4-3:             PROGRAM MEMORY ORGANIZATION

       msw                most significant word (msw)            least significant  word  (lsw)          PC Address

       Address                                                                                         (lsw Address)

                                        23                   16          8                       0

       0x000001           00000000                                                                       0x000000

       0x000003           00000000                                                                       0x000002

       0x000005           00000000                                                                       0x000004

       0x000007           00000000                                                                       0x000006

                   Program Memory                                Instruction Width

                        ‘Phantom’ Byte

                        (read as ‘0’)

 2011-2014 Microchip Technology Inc.                                                                    DS30009997E-page 33
PIC24FJ16MC101/102 AND                                                        PIC24FJ32MC101/102/104

4.2       Data Address Space                                                  All word accesses must be aligned to an even address.

                                                                              Misaligned word data fetches are not supported, so

The    PIC24FJ16MC101/102              and    PIC24FJ32MC101/                 care   must   be     taken  when      mixing      byte     and      word

102/104 CPU has a separate 16-bit-wide data memory                            operations, or translating from 8-bit MCU code. If a

space.   The    data      space  is    accessed      using       separate     misaligned read or write is attempted, an address error

Address Generation Units (AGUs) for read and write                            trap is generated. If the error occurred on a read, the

operations.     The       data   memory       maps       is  shown       in   instruction   in   progress      is   completed.       If  the      error

Figure 4-4.                                                                   occurred on a write, the instruction is executed but the

All Effective Addresses (EAs) in the data memory space                        write does not occur. In either case, a trap is then exe-

are 16 bits wide and point to bytes within the data space.                    cuted, allowing the system and/or user application to

This arrangement gives a data space address range of                          examine the machine state prior to execution of the

64 Kbytes    or   32K words.         The    lower    half    of  the  data    address Fault.

memory space (that is, when EA<15> = 0) is used for                           All byte loads into any W register are loaded into the

implemented memory addresses, while the upper half                            LSB. The MSB is not modified.

(EA<15>      =   1)  is   reserved     for    the    Program         Space    A Sign-Extend (SE) instruction is provided to allow user

Visibility area (see Section 4.4.3 “Reading Data from                         applications   to    translate   8-bit    signed  data        to    16-bit

Program Memory Using Program Space Visibility”).                              signed   values.     Alternately,    for  16-bit  unsigned          data,

Microchip PIC24FJ16MC101/102 and PIC24FJ32MC101/                              user applications can clear the MSB of any W register

102/104   devices      implement       up     to   2 Kbytes      of   data    by  executing     a  Zero-Extend        (ZE)   instruction        on  the

memory. Should an EA point to a location outside of                           appropriate address.

this area, an all-zero word or byte will be returned.

4.2.1           DATA SPACE WIDTH                                              4.2.3         SFR SPACE

                                                                              The first 2 Kbytes of the Near Data Space, from 0x0000

The    data     memory          space     is  organized          in   byte-   to 0x07FF, is primarily occupied by Special Function

addressable, 16-bit wide blocks. Data is aligned in data                      Registers     (SFRs).       These         are     used        by      the

memory    and     registers      as   16-bit  words,       but   all  data    PIC24FJ16MC101/102               and    PIC24FJ32MC101/102/

space   EAs     resolve   to     bytes.       The  Least     Significant      104 core and peripheral modules for controlling the

Bytes (LSBs) of each word have even addresses, while                          operation of the device.

the    Most     Significant      Bytes        (MSBs)         have     odd     SFRs    are  distributed    among         the  modules        that    they

addresses.                                                                    control and are generally grouped together by module.

4.2.2           DATA MEMORY ORGANIZATION                                      Much of the SFR space contains unused addresses;

                AND ALIGNMENT                                                 these are read as ‘0’.

To maintain backward compatibility with PIC® MCU                              Note:         The actual set of peripheral features and

devices    and    improve        data     space      memory          usage                  interrupts varies by the device. Refer to the

efficiency,          the        PIC24FJ16MC101/102                    and                   corresponding        device      tables   and   pinout

PIC24FJ32MC101/102/104                 family        instruction         set                diagrams for device-specific information.

supports     both    word       and    byte       operations.        As  a

consequence of byte accessibility, all Effective Address                      4.2.4         NEAR DATA SPACE

(EA) calculations are internally scaled to step through                       The   8-Kbyte     area  between       0x0000      and      0x1FFF     is

word-aligned memory. For example, the core recognizes                         referred to as the Near Data Space. Locations in this

that Post-Modified Register Indirect Addressing mode                          space are directly addressable via a 13-bit absolute

[Ws++] will result in a value of Ws + 1 for byte operations                   address    field  within    all  memory        direct   instructions.

and Ws + 2 for word operations.                                               Additionally, the whole data space is addressable using

Data   byte     reads     will  read   the    complete       word     that    the MOV class of instructions, which support Memory

contains     the   byte,  using        the    LSB    of    any       EA  to   Direct Addressing mode with a 16-bit address field, or

determine which byte to select. The selected byte is                          by  using    Indirect   Addressing        mode    with     a  Working

placed onto the LSB of the data path. That is, data                           register as an Address Pointer.

memory and registers are organized as two parallel

byte-wide entities with shared (word) address decoding

but separate write lines. Data byte writes only write to

the  corresponding        side   of    the    array  or    register   that

matches the byte address.

DS30009997E-page 34                                                                                    2011-2014 Microchip Technology Inc.
PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

FIGURE 4-4:   DATA MEMORY              MAP FOR PIC24FJ16MC101/102 DEVICES  WITH 1-KBYTE  RAM

              MSB                                           LSB

              Address                       16 Bits         Address

                                       MSb             LSb

2-Kbyte       0x0001                                        0x0000

SFR Space                                   SFR Space

              0x07FF                                        0x07FE

              0x0801                                        0x0800

                                                                           8-Kbyte

1-Kbyte                                X Data RAM (X)                      Near Data

SRAM Space                                                                 Space

              0x0BFF                                        0x0BFE

              0x0C01                                        0x0C00

              0x1FFF                                        0x1FFE

              0x2001                                        0x2000

              0x8001                                        0x8000

                                            X Data

                                       Unimplemented (X)

Optionally

Mapped

into Program

Memory

              0xFFFF                                        0xFFFE

 2011-2014 Microchip Technology Inc.                                      DS30009997E-page 35
PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

FIGURE 4-5:          DATA MEMORY MAP FOR PIC24FJ32MC101/102/104 DEVICES WITH 2-KBYTE RAM

                     MSB                           LSB

                     Address       16 Bits         Address

                              MSb             LSb

2-Kbyte              0x0001                        0x0000

SFR Space                          SFR Space

                     0x07FF                        0x07FE

                     0x0801                        0x0800

                                                            8-Kbyte

2-Kbyte                       X Data RAM (X)                Near Data

SRAM Space                                                  Space

                     0x0FFF                        0x0FFE

                     0x1001                        0x1000

                     0x1FFF                        0x1FFE

                     0x2001                        0x2000

                     0x8001                        0x8000

                                   X Data

                              Unimplemented (X)

Optionally

Mapped

into Program

Memory

                     0xFFFF                        0xFFFE

DS30009997E-page 36                                 2011-2014 Microchip Technology Inc.
 2011-2014 Microchip Technology Inc.  TABLE 4-1:           CPU CORE              REGISTERS MAP

                                       File Name      SFR      Bit 15             Bit 14  Bit 13      Bit 12    Bit 11      Bit 10      Bit 9  Bit 8           Bit 7     Bit 6   Bit 5  Bit 4  Bit 3  Bit 2              Bit 1     Bit 0  All     PIC24FJ16MC101/102

                                                      Addr                                                                                                                                                                                Resets

                                       WREG0          0000                                                                                     Working Register 0                                                                         xxxx

                                       WREG1          0002                                                                                     Working Register 1                                                                         xxxx

                                       WREG2          0004                                                                                     Working Register 2                                                                         xxxx

                                       WREG3          0006                                                                                     Working Register 3                                                                         xxxx

                                       WREG4          0008                                                                                     Working Register 4                                                                         xxxx

                                       WREG5          000A                                                                                     Working Register 5                                                                         xxxx

                                       WREG6          000C                                                                                     Working Register 6                                                                         xxxx

                                       WREG7          000E                                                                                     Working Register 7                                                                         xxxx

                                       WREG8          0010                                                                                     Working Register 8                                                                         xxxx

                                       WREG9          0012                                                                                     Working Register 9                                                                         xxxx

                                       WREG10         0014                                                                                     Working Register 10                                                                        xxxx

                                       WREG11         0016                                                                                     Working Register 11                                                                        xxxx

                                       WREG12         0018                                                                                     Working Register 12                                                                        xxxx

                                       WREG13         001A                                                                                     Working Register 13                                                                        xxxx

                                       WREG14         001C                                                                                     Working Register 14                                                                        xxxx    AND

                                       WREG15         001E                                                                                     Working Register 15                                                                        0800

                                       SPLIM          0020                                                                                 Stack Pointer Limit Register                                                                   xxxx

                                       PCL            002E                                                                              Program Counter Low Word Register                                                                 0000    PIC24FJ32MC101/102/104

                                       PCH            0030            —           —       —           —         —           —           —      —                                 Program Counter High Byte Register                       0000

                                       TBLPAG         0032            —           —       —           —         —           —           —      —                                 Table Page Address Pointer Register                      0000

                                       PSVPAG         0034            —           —       —           —         —           —           —      —                         Program Memory Visibility Page Address Pointer  Register         0000

                                       RCOUNT         0036                                                                              Repeat Loop Counter Register                                                                      xxxx

                                       SR             0042            —           —       —           —         —           —           —      DC              IPL2        IPL1  IPL0   RA     N      OV                 Z         C      0000

                                       CORCON         0044            —           —       —           —         —           —           —      —               —           —     —      —      IPL3   PSV                —         —      0020

                                       DISICNT        0052            —           —                                                            Disable Interrupts Counter Register                                                        0000

                                       Legend:  x  =  unknown  value  on  Reset,  —=  unimplemented,  read  as  ‘0’. Reset  values are  shown in hexadecimal.

DS30009997E-page 37
DS30009997E-page 38                    TABLE    4-2:  CHANGE NOTIFICATION REGISTER MAP FOR PIC24FJXXMC101 DEVICES                                                                                                                   PIC24FJ16MC101/102

                                       File     Addr  Bit 15   Bit 14   Bit 13   Bit 12   Bit 11   Bit 10   Bit 9    Bit 8                          Bit 7    Bit 6    Bit 5    Bit 4    Bit 3    Bit 2    Bit 1    Bit 0    All

                                       Name                                                                                                                                                                                 Resets

                                       CNEN1    0060  —        CN14IE   CN13IE   CN12IE   CN11IE   —        —        —                              —        —        CN5IE    CN4IE    CN3IE    CN2IE    CN1IE    CN0IE    0000

                                       CNEN2    0062  —        CN30IE   CN29IE   —        —        —        —        —                              CN23IE   CN22IE   CN21IE   —        —        —        —        —        0000

                                       CNPU1    0068  —        CN14PUE  CN13PUE  CN12PUE  CN11PUE  —        —        —                              —        —        CN5PUE   CN4PUE   CN3PUE   CN2PUE   CN1PUE   CN0PUE   0000

                                       CNPU2    006A  —        CN30PUE  CN29PUE  —        —        —        —        —                              CN23PUE  CN22PUE  CN21PUE  —        —        —        —        —        0000

                                       Legend:  x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.

                                       TABLE    4-3:  CHANGE NOTIFICATION REGISTER MAP FOR PIC24FJXXMC102 DEVICES

                                       File     Addr  Bit 15   Bit 14   Bit 13   Bit 12   Bit 11   Bit 10   Bit 9    Bit 8                          Bit 7    Bit 6    Bit 5    Bit 4    Bit 3    Bit 2    Bit 1    Bit 0    All

                                       Name                                                                                                                                                                                 Resets

                                       CNEN1    0060  CN15IE   CN14IE   CN13IE   CN12IE   CN11IE   —        —        —                              CN7IE    CN6IE    CN5IE    CN4IE    CN3IE    CN2IE    CN1IE    CN0IE    0000

                                       CNEN2    0062  —        CN30IE   CN29IE   —        CN27IE   —        —        CN24IE                         CN23IE   CN22IE   CN21IE   —        —        —        —        CN16IE   0000

                                       CNPU1    0068  CN15PUE  CN14PUE  CN13PUE  CN12PUE  CN11PUE  —        —        —                              CN7PUE   CN6PUE   CN5PUE   CN4PUE   CN3PUE   CN2PUE   CN1PUE   CN0PUE   0000

                                       CNPU2    006A  —        CN30PUE  CN29PUE  —        CN27PUE  —        —        CN24PUE                        CN23PUE  CN22PUE  CN21PUE  —        —        —        —        CN16PUE  0000    AND

                                       Legend:  x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.

                                       TABLE    4-4:  CHANGE NOTIFICATION REGISTER MAP FOR PIC24FJ32MC104 DEVICES                                                                                                                   PIC24FJ32MC101/102/104

                                       File     Addr  Bit 15   Bit 14   Bit 13   Bit 12   Bit 11   Bit 10   Bit 9    Bit 8                          Bit 7    Bit 6    Bit 5    Bit 4    Bit 3    Bit 2    Bit 1    Bit 0    All

                                       Name                                                                                                                                                                                 Resets

                                       CNEN1    0060  CN15IE   CN14IE   CN13IE   CN12IE   CN11IE   CN10IE   CN9IE    CN8IE                          CN7IE    CN6IE    CN5IE    CN4IE    CN3IE    CN2IE    CN1IE    CN0IE    0000

                                       CNEN2    0062  —        CN30IE   CN29IE   CN28IE   CN27IE   CN26IE   CN25IE   CN24IE                         CN23IE   CN22IE   CN21IE   CN20IE   CN19IE   CN18IE   CN17IE   CN16IE   0000

                                       CNPU1    0068  CN15PUE  CN14PUE  CN13PUE  CN12PUE  CN11PUE  CN10PUE  CN9PUE   CN8PUE                         CN7PUE   CN6PUE   CN5PUE   CN4PUE   CN3PUE   CN2PUE   CN1PUE   CN0PUE   0000

                                       CNPU2    006A  —        CN30PUE  CN29PUE  CN28PUE  CN27PUE  CN26PUE  CN25PUE  CN24PUE                        CN23PUE  CN22PUE  CN21PUE  CN20PUE  CN19PUE  CN18PUE  CN17PUE  CN16PUE  0000

 2011-2014 Microchip Technology Inc.  Legend:  x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
 2011-2014 Microchip Technology Inc.  TABLE 4-5:      INTERRUPT CONTROLLER REGISTER MAP

                                       File      Addr  Bit 15   Bit 14    Bit 13    Bit 12    Bit 11               Bit 10  Bit 9    Bit 8    Bit 7   Bit 6     Bit 5     Bit 4     Bit 3    Bit 2        Bit 1        Bit 0        All     PIC24FJ16MC101/102

                                       Name                                                                                                                                                                                        Resets

                                       INTCON1   0080  NSTDIS   —         —         —         —                    —       —        —        —       —         —         MATHERR   ADDRERR  STKERR       OSCFAIL      —            0000

                                       INTCON2   0082  ALTIVT   DISI      —         —         —                    —       —        —        —       —         —         —         —        INT2EP       INT1EP       INT0EP       0000

                                       IFS0      0084  —        —         AD1IF     U1TXIF    U1RXIF               SPI1IF  SPI1EIF  T3IF     T2IF    OC2IF     IC2IF     —         T1IF     OC1IF        IC1IF        INT0IF       0000

                                       IFS1      0086  —        —         INT2IF    T5IF(1)   T4IF(1)              —       —        —        —       —         —         INT1IF    CNIF     CMIF         MI2C1IF      SI2C1IF      0000

                                       IFS2      0088  —        —         —         —         —                    —       —        —        —       —         IC3IF     —         —        —            —            —            0000

                                       IFS3      008A  FLTA1IF  RTCCIF    —         —         —                    —       PWM1IF   —        —       —         —         —         —        —            —            —            0000

                                       IFS4      008C  —        —         CTMUIF    —         —                    —       —        —        —       —         —         —         —        —            U1EIF        FLTB1IF(2)   0000

                                       IEC0      0094  —        —         AD1IE     U1TXIE    U1RXIE           SPI1IE      SPI1EIE  T3IE     T2IE    OC2IE     IC2IE     —         T1IE     OC1IE        IC1IE        INT0IE       0000

                                       IEC1      0096  —        —         INT2IE    T5IE(1)   T4IE(1)              —       —        —        —       —         —         INT1IE    CNIE     CMIE         MI2C1IE      SI2C1IE      0000

                                       IEC2      0098  —        —         —         —         —                    —       —        —        —       —         IC3IE     —         —        —            —            —            0000

                                       IEC3      009A  FLTA1IE  RTCIE     —         —         —                    —       PWM1IE   —        —       —         —         —         —        —            —            —            0000

                                       IEC4      009C  —        —         CTMUIE    —         —                    —       —        —        —       —         —         —         —        —            U1EIE        FLTB1IE(2)   0000

                                       IPC0      00A4  —        T1IP2     T1IP1     T1IP0     —                OC1IP2      OC1IP1   OC1IP0   —       IC1IP2    IC1IP1    IC1IP0    —        INT0IP2      INT0IP1      INT0IP2      4444

                                       IPC1      00A6  —        T2IP2     T2IP1     T2IP0     —                OC2IP2      OC2IP1   OC2IP0   —       IC2IP2    IC2IP1    IC2IP0    —        —            —            —            4440

                                       IPC2      00A8  —        U1RXIP2   U1RXIP1   U1RXIP0   —                SPI1IP2     SPI1IP1  SPI1IP0  —       SPI1EIP2  SPI1EIP1  SPI1EIP2  —        T3IP2        T3IP1        T3IP0        4444    AND

                                       IPC3      00AA  —        —         —         —         —                    —       —        —        —       AD1IP2    AD1IP1    AD1IP0    —        U1TXIP2      U1TXIP1      U1TXIP0      0044

                                       IPC4      00AC  —        CNIP2     CNIP1     CNIP0     —                    CMIP2   CMIP1    CMIP0    —       MI2C1IP2  MI2C1IP1  MI2C1IP0  —        SI2C1IP2     SI2C1IP1     SI2C1IP0     4444

                                       IPC5      00AE  —        —         —         —         —                    —       —        —        —       —         —         —         —        INT1IP2      INT1IP1      INT1IP0      0004    PIC24FJ32MC101/102/104

                                       IPC6      00B0  —        T4IP2(1)  T4IP1(1)  T4IP0(1)  —                    —       —        —        —       —         —         —         —        —            —            —            4000

                                       IPC7      00B2  —        —         —         —         —                    —       —        —        —       INT2IP2   INT2IP1   INT2IP0   —        T5IP2(1)     T5IP2(1)     T5IP2(1)     0044

                                       IPC9      00B6  —        —         —         —         —                    —       —        —        —       IC3IP2    IC3IP1    IC3IP0    —        —            —            —            0040

                                       IPC14     00C0  —        —         —         —         —                    —       —        —        —       PWM1IP2   PWM1IP1   PWM1IP0   —        —            —            —            0040

                                       IPC15     00C2  —        FLTA1IP2  FLTA1IP1  FLTA1IP0  —                RTCIP2      RTCIP1   RTCIP0   —       —         —         —         —        —            —            —            4400

                                       IPC16     00C4  —        —         —         —         —                    —       —        —        —       U1EIP2    U1EIP1    U1EIP0    —        FLTB1IP2(2)  FLTB1IP2(2)  FLTB1IP2(2)  0040

                                       IPC19     00CA  —        —         —         —         —                    —       —        —        —       CTMUIP2   CTMUIP1   CTMUIP0   —        —            —            —            0040

                                       INTTREG   00E0  —        —         —         —         ILR3                 ILR2    ILR1     ILR0     —       VECNUM6   VECNUM5   VECNUM4   VECNUM3  VECNUM2      VECNUM1      VECNUM0      0000

                                       Legend:   x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.

                                       Note 1:   These bits are available in PIC24FJ32MC101/102/104 devices only.

                                             2:  These bits are available in PIC24FJ32MC102/104 devices only.

DS30009997E-page 39
DS30009997E-page 40                    TABLE 4-6:        TIMERS REGISTER MAP FOR PIC24FJ16MC101/102 DEVICES                                                                                                                                     PIC24FJ16MC101/102

                                       File Name   Addr  Bit 15         Bit 14        Bit 13  Bit 12        Bit 11           Bit 10  Bit 9  Bit 8              Bit 7    Bit 6               Bit 5  Bit   4  Bit 3  Bit 2  Bit 1  Bit 0  All

                                                                                                                                                                                                                                        Resets

                                       TMR1        0100                                                                                     Timer1 Register                                                                             0000

                                       PR1         0102                                                                                     Timer Period Register 1                                                                     FFFF

                                       T1CON       0104  TON            —             TSIDL   —                 —            —       —      —                  —        TGATE                TCKPS<1:0>     —      TSYNC  TCS    —      0000

                                       TMR2        0106                                                                                     Timer2 Register                                                                             0000

                                       TMR3HLD     0108                                                                      Timer3 Holding Register (for 32-bit timer  operations    only)                                             xxxx

                                       TMR3        010A                                                                                     Timer3 Register                                                                             0000

                                       PR2         010C                                                                                     Timer Period Register 2                                                                     FFFF

                                       PR3         010E                                                                                     Timer Period Register 3                                                                     FFFF

                                       T2CON       0110  TON            —             TSIDL   —                 —            —       —      —                  —        TGATE                TCKPS<1:0>     T32    —      TCS    —      0000

                                       T3CON       0112  TON            —             TSIDL   —                 —            —       —      —                  —        TGATE                TCKPS<1:0>     —      —      TCS    —      0000

                                       Legend:  x  = unknown value  on  Reset,  —  =  unimplemented,  read  as  ‘0’.  Reset  values are shown in hexadecimal.

                                       TABLE 4-7:        TIMERS REGISTER MAP FOR PIC24FJ32MC101/102/104 DEVICES                                                                                                                                 AND

                                       File        Addr  Bit 15     Bit 14         Bit 13     Bit 12        Bit 11    Bit 10         Bit 9  Bit 8              Bit 7    Bit 6               Bit 5  Bit   4  Bit 3  Bit 2  Bit 1  Bit 0  All

                                       Name                                                                                                                                                                                             Resets

                                       TMR1        0100                                                                                     Timer1 Register                                                                             0000    PIC24FJ32MC101/102/104

                                       PR1         0102                                                                                     Timer Period Register 1                                                                     FFFF

                                       T1CON       0104  TON            —          TSIDL      —             —                —       —      —                  —        TGATE               TCKPS<1:0>      —      TSYNC  TCS    —      0000

                                       TMR2        0106                                                                                     Timer2 Register                                                                             0000

                                       TMR3HLD     0108                                                                         Timer3 Holding Register (for 32-bit timer operations only)                                              xxxx

                                       TMR3        010A                                                                                     Timer3 Register                                                                             0000

                                       PR2         010C                                                                                     Timer Period Register 2                                                                     FFFF

                                       PR3         010E                                                                                     Timer Period Register 3                                                                     FFFF

 2011-2014 Microchip Technology Inc.  T2CON       0110  TON            —          TSIDL      —             —                —       —      —                  —        TGATE               TCKPS<1:0>      T32    —      TCS    —      0000

                                       T3CON       0112  TON            —          TSIDL      —             —                —       —      —                  —        TGATE               TCKPS<1:0>      —      —      TCS    —      0000

                                       TMR4        0114                                                                                     Timer4 Register                                                                             0000

                                       TMR5HLD     0116                                                                         Timer5 Holding Register (for 32-bit operations only)                                                    xxxx

                                       TMR5        0118                                                                                     Timer5 Register                                                                             0000

                                       PR4         011A                                                                                     Timer Period Register 4                                                                     FFFF

                                       PR5         011C                                                                                     Timer Period Register 5                                                                     FFFF

                                       T4CON       011E  TON            —          TSIDL      —             —                —       —      —                  —        TGATE               TCKPS<1:0>      T32    —      TCS    —      0000

                                       T5CON       0120  TON            —          TSIDL      —             —                —       —      —                  —        TGATE               TCKPS<1:0>      —      —      TCS    —      0000

                                       Legend:  x  = unknown value  on  Reset,  —  = unimplemented,   read  as ‘0’.   Reset  values are shown in hexadecimal.
 2011-2014 Microchip Technology Inc.  TABLE 4-8:         INPUT        CAPTURE REGISTER                MAP                                                                                                                     PIC24FJ16MC101/102

                                       File Name    Addr     Bit 15    Bit 14      Bit 13  Bit 12          Bit 11  Bit 10       Bit 9      Bit 8           Bit 7     Bit 6  Bit 5  Bit 4  Bit 3   Bit 2  Bit 1  Bit 0  All

                                                                                                                                                                                                                       Resets

                                       IC1BUF       0140                                                                                   Input Capture 1 Register                                                    xxxx

                                       IC1CON       0142     —         —           ICSIDL  —               —            —       —          —      ICTMR               ICI1  ICI0   ICOV   ICBNE   ICM2   ICM1   ICM0   0000

                                       IC2BUF       0144                                                                                   Input Capture 2 Register                                                    xxxx

                                       IC2CON       0146     —         —           ICSIDL  —               —            —       —          —      ICTMR               ICI1  ICI0   ICOV   ICBNE   ICM2   ICM1   ICM0   0000

                                       IC3BUF       0148                                                                                   Input Capture 3 Register                                                    xxxx

                                       IC3CON       014A     —         —           ICSIDL  —               —            —       —          —      ICTMR               ICI1  ICI0   ICOV   ICBNE   ICM2   ICM1   ICM0   0000

                                       Legend:  x = unknown value on   Reset, — = unimplemented, read  as ‘0’. Reset values     are shown  in hexadecimal.

                                       TABLE 4-9:         OUTPUT COMPARE REGISTER MAP

                                       File Name    Addr     Bit 15    Bit 14      Bit 13  Bit 12          Bit 11  Bit 10       Bit 9      Bit 8  Bit 7              Bit 6  Bit 5  Bit 4  Bit 3   Bit 2  Bit 1  Bit 0  All

                                                                                                                                                                                                                       Resets

                                       OC1RS        0180                                                                        Output Compare 1 Secondary Register                                                    xxxx

                                       OC1R         0182                                                                                   Output Compare 1 Register                                                   xxxx    AND

                                       OC1CON       0184     —         —           OCSIDL  —               —            —       —          —               —         —      —      OCFLT  OCTSEL  OCM2   OCM1   OCM0   0000

                                       OC2RS        0186                                                                        Output Compare 2 Secondary Register                                                    xxxx

                                       OC2R         0188                                                                                   Output Compare 2 Register                                                   xxxx

                                       OC2CON       018A     —         —           OCSIDL  —               —            —       —          —               —         —      —      OCFLT  OCTSEL  OCM2   OCM1   OCM0   0000    PIC24FJ32MC101/102/104

                                       Legend:  x=  unknown  value on  Reset, — =  unimplemented, read as  ‘0’.  Reset  values  are shown in hexadecimal.

DS30009997E-page 41
DS30009997E-page 42                    TABLE 4-10:           6-OUTPUT PWM1 REGISTER MAP                                                                                                                                                                     PIC24FJ16MC101/102

                                       File Name       Addr  Bit 15   Bit 14     Bit 13  Bit 12  Bit 11     Bit 10      Bit 9       Bit 8            Bit 7   Bit 6       Bit 5  Bit 4   Bit 3          Bit 2       Bit 1   Bit 0         Reset State

                                       P1TCON          01C0  PTEN     —          PTSIDL     —       —       —           —           —                PTOPS3  PTOPS2  PTOPS1     PTOPS0  PTCKPS1  PTCKPS0           PTMOD1  PTMOD0  0000  0000   0000  0000

                                       P1TMR           01C2  PTDIR                                                                  PWM1 Timer Count Value Register                                                                0000  0000   0000  0000

                                       P1TPER          01C4  —                                                                      PWM1 Time Base Period Register                                                                 0111  1111   1111  1111

                                       P1SECMP         01C6  SEVTDIR                                                                PWM1 Special Event Compare Register                                                            0000  0000   0000  0000

                                       PWM1CON1        01C8  —        —             —       —       —       PMOD3       PMOD2       PMOD1            —       PEN3H       PEN2H  PEN1H   —              PEN3L       PEN2L   PEN1L   0000  0000   0000  0000

                                       PWM1CON2        01CA  —        —             —       —    SEVOPS3    SEVOPS2     SEVOPS1     SEVOPS0          —       —           —      —       —              IUE         OSYNC   UDIS    0000  0000   0000  0000

                                       P1DTCON1        01CC  DTBPS1   DTBPS0     DTB5    DTB4    DTB3       DTB2        DTB1        DTB0             DTAPS1  DTAPS0      DTA5   DTA4    DTA3           DTA2        DTA1    DTA0    0000  0000   0000  0000

                                       P1DTCON2        01CE  —        —             —       —       —       —           —           —                —       —           DTS3A  DTS3I   DTS2A          DTS2I       DTS1A   DTS1I   0000  0000   0000  0000

                                       P1FLTACON       01D0  —        —       FAOV3H     FAOV3L  FAOV2H     FAOV2L      FAOV1H      FAOV1L           FLTAM   —           —      —       —              FAEN3       FAEN2   FAEN1   0000  0000   0000  0111

                                       P1FLTBCON       01D2  —        —       FBOV3H     FBOV3L  FBOV2H     FBOV2L      FBOV1H      FBOV1L           FLTBM   —           —      —       —              FBEN3       FBEN2   FBEN1   0000  0000   0000  0111

                                       P1OVDCON        01D4  —        —       POVD3H     POVD3L  POVD2H     POVD2L      POVD1H      POVD1L           —       —       POUT3H     POUT3L  POUT2H         POUT2L      POUT1H  POUT1L  0011  1111   0000  0000

                                       P1DC1           01D6                                                                     PWM1 Duty Cycle 1 Register                                                                         0000  0000   0000  0000

                                       P1DC2           01D8                                                                     PWM1 Duty Cycle 2 Register                                                                         0000  0000   0000  0000

                                       P1DC3           01DA                                                                     PWM1 Duty Cycle 3 Register                                                                         0000  0000   0000  0000  AND

                                       PWM1KEY         01DE                                                                         PWMKEY<15:0>                                                                                   0000  0000   0000  0000

                                       Legend:   x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.

                                       TABLE 4-11:           I2C1 REGISTER MAP                                                                                                                                                                              PIC24FJ32MC101/102/104

                                       File Name       Addr  Bit 15      Bit 14          Bit 13  Bit 12     Bit 11      Bit 10      Bit 9            Bit 8   Bit 7       Bit 6  Bit 5   Bit 4               Bit 3  Bit 2   Bit 1         Bit 0  All

                                                                                                                                                                                                                                                Resets

                                       I2C1RCV         0200     —             —          —       —          —           —           —                —                                  I2C1 Receive Register                                   0000

                                       I2C1TRN         0202     —             —          —       —          —           —           —                —                                  I2C1 Transmit Register                                  00FF

                                       I2C1BRG         0204     —             —          —       —          —           —           —                                           Baud Rate Generator Register                                    0000

                                       I2C1CON         0206  I2CEN            —        I2CSIDL   SCLREL     IPMIEN      A10M        DISSLW           SMEN    GCEN        STREN  ACKDT   ACKEN               RCEN   PEN     RSEN          SEN    1000

 2011-2014 Microchip Technology Inc.  I2C1STAT        0208  ACKSTAT     TRSTAT          —       —          —           BCL         GCSTAT           ADD10   IWCOL       I2COV  D_A        P                S      R_W     RBF           TBF    0000

                                       I2C1ADD         020A     —             —          —       —          —           —                                                       I2C1 Address Register                                           0000

                                       I2C1MSK         020C     —             —          —       —          —           —                                                       I2C1 Address Mask Register                                      0000

                                       Legend:   x  =  unknown value on Reset, — =  unimplemented, read as  ‘0’. Reset  values are  shown in hexadecimal.
 2011-2014 Microchip Technology Inc.  TABLE 4-12:      UART1 REGISTER MAP

                                       File Name  Addr  Bit 15    Bit 14  Bit 13    Bit 12             Bit 11         Bit 10      Bit 9  Bit 8           Bit 7   Bit 6       Bit 5  Bit 4   Bit 3     Bit 2   Bit 1   Bit 0   All     PIC24FJ16MC101/102

                                                                                                                                                                                                                              Resets

                                       U1MODE     0220  UARTEN    —       USIDL     IREN               RTSMD          —           UEN1   UEN0            WAKE   LPBACK       ABAUD  URXINV  BRGH      PDSEL1  PDSEL0  STSEL   0000

                                       U1STA      0222  UTXISEL1  UTXINV  UTXISEL0  —                  UTXBRK         UTXEN       UTXBF  TRMT   URXISEL1        URXISEL0     ADDEN  RIDLE   PERR      FERR    OERR    URXDA   0110

                                       U1TXREG    0224  —         —       —         —                  —              —           —                                          UART1 Transmit Register                          xxxx

                                       U1RXREG    0226  —         —       —         —                  —              —           —                                          UART1 Receive Register                           0000

                                       U1BRG      0228                                                                            Baud Rate Generator Prescaler                                                               0000

                                       Legend:    x = unknown value on Reset, — = unimplemented, read  as ‘0’. Reset  values are  shown in hexadecimal.

                                       TABLE 4-13:      SPI1 REGISTER MAP

                                       File Name  Addr  Bit 15    Bit 14  Bit 13    Bit 12             Bit 11         Bit 10      Bit 9  Bit 8           Bit 7   Bit 6       Bit 5  Bit 4   Bit 3     Bit 2   Bit 1   Bit 0   All

                                                                                                                                                                                                                              Resets

                                       SPI1STAT   0240  SPIEN     —       SPISIDL   —                  —              —           —      —               —      SPIROV       —      —       —         —       SPITBF  SPIRBF  0000

                                       SPI1CON1   0242  —         —       —         DISSCK             DISSDO         MODE16      SMP    CKE             SSEN    CKP         MSTEN  SPRE2   SPRE1     SPRE0   PPRE1   PPRE0   0000

                                       SPI1CON2   0244  FRMEN     SPIFSD  FRMPOL    —                  —              —           —      —               —       —           —      —       —         —       FRMDLY  —       0000

                                       SPI1BUF    0248                                                                            SPI1 Transmit and Receive Buffer Register                                                   0000    AND

                                       Legend:    x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset   values are  shown in hexadecimal.

DS30009997E-page 43                                                                                                                                                                                                                   PIC24FJ32MC101/102/104
DS30009997E-page 44                    TABLE 4-14:      ADC1 REGISTER MAP FOR PIC24FJXXMC101 DEVICES                                                                                                                          PIC24FJ16MC101/102

                                       File Name  Addr  Bit 15  Bit 14  Bit 13  Bit 12  Bit 11            Bit 10    Bit 9     Bit 8                 Bit 7  Bit 6  Bit 5  Bit 4   Bit 3   Bit 2     Bit 1     Bit 0    All

                                                                                                                                                                                                                      Resets

                                       ADC1BUF0   0300                                                                        ADC Data Buffer 0                                                                       xxxx

                                       ADC1BUF1   0302                                                                        ADC Data Buffer 1                                                                       xxxx

                                       ADC1BUF2   0304                                                                        ADC Data Buffer 2                                                                       xxxx

                                       ADC1BUF3   0306                                                                        ADC Data Buffer 3                                                                       xxxx

                                       ADC1BUF4   0308                                                                        ADC Data Buffer 4                                                                       xxxx

                                       ADC1BUF5   030A                                                                        ADC Data Buffer 5                                                                       xxxx

                                       ADC1BUF6   030C                                                                        ADC Data Buffer 6                                                                       xxxx

                                       ADC1BUF7   030E                                                                        ADC Data Buffer 7                                                                       xxxx

                                       ADC1BUF8   0310                                                                        ADC Data Buffer 8                                                                       xxxx

                                       ADC1BUF9   0312                                                                        ADC Data Buffer 9                                                                       xxxx

                                       ADC1BUFA   0314                                                                        ADC Data Buffer 10                                                                      xxxx

                                       ADC1BUFB   0316                                                                        ADC Data Buffer 11                                                                      xxxx

                                       ADC1BUFC   0318                                                                        ADC Data Buffer 12                                                                      xxxx    AND

                                       ADC1BUFD   031A                                                                        ADC Data Buffer 13                                                                      xxxx

                                       ADC1BUFE   031C                                                                        ADC Data Buffer 14                                                                      xxxx

                                       ADC1BUFF   031E                                                                        ADC Data Buffer 15                                                                      xxxx

                                       AD1CON1    0320  ADON    —       ADSIDL  —       —                 —         FORM1     FORM0                 SSRC2  SSRC1  SSRC0  —       SIMSAM  ASAM      SAMP      DONE     0000    PIC24FJ32MC101/102/104

                                       AD1CON2    0322  VCFG2   VCFG1   VCFG0   —       —                 CSCNA     CHPS1     CHPS0                 BUFS   —      SMPI3  SMPI2   SMPI1   SMPI0     BUFM      ALTS     0000

                                       AD1CON3    0324  ADRC    —       —       SAMC4   SAMC3             SAMC2     SAMC1     SAMC0                 ADCS7  ADCS6  ADCS5  ADCS4   ADCS3   ADCS2     ADCS1     ADCS0    0000

                                       AD1CHS123  0326  —       —       —       —       —                 CH123NB1  CH123NB0  CH123SB               —      —      —      —       —       CH123NA1  CH123NA0  CH123SA  0000

                                       AD1CHS0    0328  CH0NB   —       —       CH0SB4  CH0SB3            CH0SB2    CH0SB1    CH0SB0                CH0NA  —      —      CH0SA4  CH0SA3  CH0SA2    CH0SA1    CH0SA0   0000

                                       AD1PCFGL   032C  —       —       —       —       —                 PCFG<10:9>(1)       —                     —      —      —      —               PCFG<3:0>                    0000

                                       AD1CSSL    0330  —       —       —       —       —                 CSS<10:9>(1)        —                     —      —      —      —               CSS<3:0>                     0000

 2011-2014 Microchip Technology Inc.  Legend:  x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.

                                       Note 1:  These bits are available in PIC24FJ32MC101 devices only.
 2011-2014 Microchip Technology Inc.  TABLE 4-15:      ADC1 REGISTER MAP FOR PIC24FJXXMC102 DEVICES

                                       File Name  Addr  Bit 15  Bit 14  Bit 13  Bit 12  Bit 11               Bit 10    Bit 9            Bit 8         Bit 7  Bit 6  Bit 5  Bit 4   Bit 3   Bit 2     Bit 1     Bit 0    All     PIC24FJ16MC101/102

                                                                                                                                                                                                                        Resets

                                       ADC1BUF0   0300                                                                                  ADC Data Buffer 0                                                               xxxx

                                       ADC1BUF1   0302                                                                                  ADC Data Buffer 1                                                               xxxx

                                       ADC1BUF2   0304                                                                                  ADC Data Buffer 2                                                               xxxx

                                       ADC1BUF3   0306                                                                                  ADC Data Buffer 3                                                               xxxx

                                       ADC1BUF4   0308                                                                                  ADC Data Buffer 4                                                               xxxx

                                       ADC1BUF5   030A                                                                                  ADC Data Buffer 5                                                               xxxx

                                       ADC1BUF6   030C                                                                                  ADC Data Buffer 6                                                               xxxx

                                       ADC1BUF7   030E                                                                                  ADC Data Buffer 7                                                               xxxx

                                       ADC1BUF8   0310                                                                                  ADC Data Buffer 8                                                               xxxx

                                       ADC1BUF9   0312                                                                                  ADC Data Buffer 9                                                               xxxx

                                       ADC1BUFA   0314                                                                                  ADC Data Buffer 10                                                              xxxx

                                       ADC1BUFB   0316                                                                                  ADC Data Buffer 11                                                              xxxx

                                       ADC1BUFC   0318                                                                                  ADC Data Buffer 12                                                              xxxx

                                       ADC1BUFD   031A                                                                                  ADC Data Buffer 13                                                              xxxx

                                       ADC1BUFE   031C                                                                                  ADC Data Buffer 14                                                              xxxx    AND

                                       ADC1BUFF   031E                                                                                  ADC Data Buffer 15                                                              xxxx

                                       AD1CON1    0320  ADON    —       ADSIDL  —                         —  —         FORM1            FORM0    SSRC2       SSRC1  SSRC0  —       SIMSAM  ASAM      SAMP      DONE     0000

                                       AD1CON2    0322  VCFG2   VCFG1   VCFG0   —                         —  CSCNA     CHPS1            CHPS0         BUFS   —      SMPI3  SMPI2   SMPI1   SMPI0     BUFM      ALTS     0000    PIC24FJ32MC101/102/104

                                       AD1CON3    0324  ADRC    —       —       SAMC4   SAMC3                SAMC2     SAMC1            SAMC0    ADCS7       ADCS6  ADCS5  ADCS4   ADCS3   ADCS2     ADCS1     ADCS0    0000

                                       AD1CHS123  0326  —       —       —       —                         —  CH123NB1  CH123NB0         CH123SB       —      —      —      —       —       CH123NA1  CH123NA0  CH123SA  0000

                                       AD1CHS0    0328  CH0NB   —       —       CH0SB4  CH0SB3               CH0SB2    CH0SB1           CH0SB0   CH0NA       —      —      CH0SA4  CH0SA3  CH0SA2    CH0SA1    CH0SA0   0000

                                       AD1PCFGL   032C  —       —       —       —                         —  PCFG<10:9>(1)              —             —      —                            PCFG<5:0>                     0000

                                       AD1CSSL    0330  —       —       —       —                         —  CSS<10:9>(1)               —             —      —                            CSS<5:0>                      0000

                                       Legend:  x = unknown value on Reset, — = unimplemented, read as ‘0’.  Reset values are shown in  hexadecimal.

                                       Note 1:  These bits are available in PIC24FJ32MC101 devices only.

DS30009997E-page 45
DS30009997E-page 46                    TABLE 4-16:        ADC1 REGISTER MAP FOR PIC24FJ32MC104 DEVICES                                                                                                                                  PIC24FJ16MC101/102

                                       File Name    Addr  Bit 15  Bit 14     Bit 13  Bit 12      Bit 11        Bit 10        Bit 9         Bit 8         Bit 7  Bit 6       Bit 5  Bit 4   Bit 3   Bit 2     Bit 1     Bit 0    All

                                                                                                                                                                                                                                Resets

                                       ADC1BUF0     0300                                                                                   ADC Data Buffer 0                                                                    xxxx

                                       ADC1BUF1     0302                                                                                   ADC Data Buffer 1                                                                    xxxx

                                       ADC1BUF2     0304                                                                                   ADC Data Buffer 2                                                                    xxxx

                                       ADC1BUF3     0306                                                                                   ADC Data Buffer 3                                                                    xxxx

                                       ADC1BUF4     0308                                                                                   ADC Data Buffer 4                                                                    xxxx

                                       ADC1BUF5     030A                                                                                   ADC Data Buffer 5                                                                    xxxx

                                       ADC1BUF6     030C                                                                                   ADC Data Buffer 6                                                                    xxxx

                                       ADC1BUF7     030E                                                                                   ADC Data Buffer 7                                                                    xxxx

                                       ADC1BUF8     0310                                                                                   ADC Data Buffer 8                                                                    xxxx

                                       ADC1BUF9     0312                                                                                   ADC Data Buffer 9                                                                    xxxx

                                       ADC1BUFA     0314                                                                                   ADC Data Buffer 10                                                                   xxxx

                                       ADC1BUFB     0316                                                                                   ADC Data Buffer 11                                                                   xxxx

                                       ADC1BUFC     0318                                                                                   ADC Data Buffer 12                                                                   xxxx    AND

                                       ADC1BUFD     031A                                                                                   ADC Data Buffer 13                                                                   xxxx

                                       ADC1BUFE     031C                                                                                   ADC Data Buffer 14                                                                   xxxx

                                       ADC1BUFF     031E                                                                                   ADC Data Buffer 15                                                                   xxxx

                                       AD1CON1      0320  ADON    —          ADSIDL  —           —             —             FORM1         FORM0         SSRC2  SSRC1       SSRC0  —       SIMSAM  ASAM      SAMP      DONE     0000    PIC24FJ32MC101/102/104

                                       AD1CON2      0322  VCFG2   VCFG1      VCFG0   —           —             CSCNA         CHPS1         CHPS0         BUFS   —           SMPI3  SMPI2   SMPI1   SMPI0     BUFM      ALTS     0000

                                       AD1CON3      0324  ADRC    —          —       SAMC4       SAMC3         SAMC2         SAMC1         SAMC0         ADCS7  ADCS6      ADCS5   ADCS4   ADCS3   ADCS2     ADCS1     ADCS0    0000

                                       AD1CHS123    0326  —       —          —       —           —             CH123NB1      CH123NB0      CH123SB       —      —           —      —       —       CH123NA1  CH123NA0  CH123SA  0000

                                       AD1CHS0      0328  CH0NB   —          —       CH0SB4      CH0SB3        CH0SB2        CH0SB1        CH0SB0        CH0NA  —           —      CH0SA4  CH0SA3  CH0SA2    CH0SA1    CH0SA0   0000

                                       AD1PCFGL     032C  PCFG15  —          —                                                                                  PCFG<12:0>                                                      0000

                                       AD1CSSL      0330  CSS15   —          —                                                                                  CSS<12:0>                                                       0000

 2011-2014 Microchip Technology Inc.  Legend:  x=  unknown value on Reset,  — = unimplemented,  read as ‘0’.  Reset values  are shown in  hexadecimal.
 2011-2014 Microchip Technology Inc.  TABLE 4-17:      CTMU REGISTER MAP

                                       File Name  Addr  Bit 15   Bit 14   Bit 13    Bit 12    Bit 11    Bit 10    Bit 9                                  Bit 8         Bit 7         Bit 6         Bit 5         Bit 4                Bit 3         Bit 2     Bit 1     Bit 0  All     PIC24FJ16MC101/102

                                                                                                                                                                                                                                                                               Resets

                                       CTMUCON1   033A  CTMUEN   —        CTMUSIDL  TGEN      EDGEN     EDGSEQEN  IDISSEN                             CTTRIG           —             —             —             —                    —             —         —         —      0000

                                       CTMUCON2   033C  EDG1MOD  EDG1POL  EDG1SEL3  EDG1SEL2  EDG1SEL1  EDG1SEL0  EDG2STAT                            EDG1STAT      EDG2MOD   EDG2POL          EDG2SEL3          EDG2SEL2      EDG2SEL1      EDG2SEL0         —         —      0000

                                       CTMUICON   033E  ITRIM5   ITRIM4   ITRIM3    ITRIM2    ITRIM1    ITRIM0    IRNG1                                  IRNG0         —             —             —             —                    —             —         —         —      0000

                                       Legend:    x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.

                                       TABLE 4-18:      REAL-TIME CLOCK AND CALENDAR (RTCC) REGISTER MAP

                                       File Name  Addr  Bit 15   Bit 14   Bit 13    Bit 12    Bit 11    Bit 10           Bit 9                               Bit 8     Bit 7         Bit 6         Bit 5         Bit 4         Bit 3         Bit 2     Bit 1     Bit 0         All

                                                                                                                                                                                                                                                                               Resets

                                       ALRMVAL    0620                                                          Alarm Value Register Window based on APTR<1:0>                                                                                                                 xxxx

                                       ALCFGRPT   0622  ALRMEN   CHIME    AMASK3    AMASK2    AMASK1    AMASK0    ALRMPTR1                               ALRMPTR0      ARPT7         ARPT6         ARPT5     ARPT4         ARPT3             ARPT2  ARPT1     ARPT0            0000

                                       RTCVAL     0624                                                     RTCC Value Register Window based on RTCPTR<1:0>                                                                                                                     xxxx

                                       RCFGCAL    0626  RTCEN       —     RTCWREN   RTCSYNC   HALFSEC   RTCOE     RTCPTR1                                RTCPTR0       CAL7          CAL6          CAL5          CAL4      CAL3              CAL2      CAL1      CAL0          0000

                                       Legend:    x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.

                                       TABLE 4-19:      PAD CONFIGURATION REGISTER MAP                                                                                                                                                                                                 AND

                                       File Name  Addr  Bit 15   Bit 14   Bit 13    Bit 12    Bit 11    Bit 10    Bit 9                               Bit 8     Bit 7         Bit 6         Bit 5         Bit 4         Bit 3         Bit 2         Bit 1     Bit 0            All

                                                                                                                                                                                                                                                                               Resets

                                       PADCFG1    02FC  —           —     —         —         —         —         —                                   —             —         —             —             —             —             —      RTSECSEL                —         0000    PIC24FJ32MC101/102/104

                                       Legend:    x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.

DS30009997E-page 47
DS30009997E-page 48                    TABLE 4-20:      COMPARATOR REGISTER MAP                                                                                                                                                                          PIC24FJ16MC101/102

                                       File Name  Addr  Bit 15  Bit 14  Bit 13  Bit 12     Bit 11     Bit 10         Bit 9          Bit 8                   Bit 7     Bit 6     Bit 5     Bit 4      Bit 3      Bit 2      Bit 1      Bit 0      All

                                                                                                                                                                                                                                                 Resets

                                       CMSTAT     0650  CMSIDL     —    —       —          —          C3EVT          C2EVT          C1EVT                   —         —         —            —       —          C3OUT      C2OUT      C1OUT      0000

                                       CVRCON     0652     —       —    —       —          —          VREFSEL        BGSEL1         BGSEL1                  CVREN     CVROE     CVRR         —       CVR3       CVR2       CVR1       CVR0       0000

                                       CM1CON     0654  CON     COE     CPOL    —          —          —              CEVT           COUT                   EVPOL1     EVPOL0    —         CREF       —          —          CCH1       CCH0       0000

                                       CM1MSKSRC  0656     —       —    —       —          SELSRCC3  SELSRCC2        SELSRCC1  SELSRCC0                SELSRCB3       SELSRCB2  SELSRCB1  SELSRCB0   SELSRCA3   SELSRCA2   SELSRCA1   SELSRCA0   0000

                                       CM1MSKCON  0658  HLMS       —    OCEN    OCNEN      OBEN       OBNEN          OAEN           OANEN                   NAGS      PAGS      ACEN      ACNEN      ABEN       ABNEN      AAEN       AANEN      0000

                                       CM1FLTR    065A     —       —    —       —          —          —              —              —                       —         CFSEL2    CFSEL1    CFSEL0     CFLTREN    CFDIV2     CFDIV1     CFDIV0     0000

                                       CM2CON     065C  CON     COE     CPOL    —          —          —              CEVT           COUT                   EVPOL1     EVPOL0    —         CREF       —          —          CCH1       CCH0       0000

                                       CM2MSKSRC  065E     —       —    —       —          SELSRCC3  SELSRCC2        SELSRCC1  SELSRCC0                SELSRCB3       SELSRCB2  SELSRCB1  SELSRCB0   SELSRCA3   SELSRCA2   SELSRCA1   SELSRCA0   0000

                                       CM2MSKCON  0660  HLMS       —    OCEN    OCNEN      OBEN       OBNEN          OAEN           OANEN                   NAGS      PAGS      ACEN      ACNEN      ABEN       ABNEN      AAEN       AANEN      0000

                                       CM2FLTR    0662     —       —    —       —          —          —              —              —                       —         CFSEL2    CFSEL1    CFSEL0     CFLTREN    CFDIV2     CFDIV1     CFDIV0     0000

                                       CM3CON     0664  CON     COE     CPOL    —          —          —              CEVT           COUT                   EVPOL1     EVPOL0    —         CREF       —          —          CCH1       CCH0       0000

                                       CM3MSKSRC  0666     —       —    —       —          SELSRCC3  SELSRCC2        SELSRCC1  SELSRCC0                SELSRCB3       SELSRCB2  SELSRCB1  SELSRCB0   SELSRCA3   SELSRCA2   SELSRCA1   SELSRCA0   0000

                                       CM3MSKCON  0668  HLMS       —    OCEN    OCNEN      OBEN       OBNEN          OAEN           OANEN                   NAGS      PAGS      ACEN      ACNEN      ABEN       ABNEN      AAEN       AANEN      0000    AND

                                       CM3FLTR    066A     —       —    —       —          —          —              —              —                       —         CFSEL2    CFSEL1    CFSEL0     CFLTREN    CFDIV2     CFDIV1     CFDIV0     0000

                                       Legend:  x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.

                                       TABLE    4-21:   PERIPHERAL PIN SELECT (PPS) INPUT REGISTER MAP                                                                                                                                                   PIC24FJ32MC101/102/104

                                       File       Addr  Bit 15  Bit 14  Bit 13  Bit 12     Bit 11     Bit 10            Bit 9                       Bit 8      Bit 7  Bit 6     Bit 5     Bit 4      Bit 3      Bit 2      Bit 1      Bit 0      All

                                       Name                                                                                                                                                                                                      Resets

                                       RPINR0     0680  —       —       —       INT1R4     INT1R3     INT1R2         INT1R1                         INT1R0         —  —         —         —          —          —          —          —          1F00

                                       RPINR1     0682  —       —       —       —             —                   —         —                       —              —  —         —         INT2R4     INT2R3     INT2R2     INT2R1     INT2R0     001F

                                       RPINR3     0686  —       —       —       T3CKR4     T3CKR3     T3CKR2         T3CKR1         T3CKR0                         —  —         —         T2CKR4     T2CKR3     T2CKR2     T2CKR1     T2CKR0     1F1F

                                       RPINR4     0688  —       —       —       T5CKR4(1)  T5CKR3(1)  T5CKR2(1)      T5CKR1(1)      T5CKR0(1)                      —  —         —       T4CKR4(1)    T4CKR3(1)  T4CKR2(1)  T4CKR1(1)  T4CKR0(1)  1F1F

 2011-2014 Microchip Technology Inc.  RPINR7     068E  —       —       —       IC2R4      IC2R3      IC2R2          IC2R1                          IC2R0          —  —         —         IC1R4      IC1R3      IC1R2      IC1R1      IC1R0      1F1F

                                       RPINR8     0690  —       —       —       —             —                   —         —                       —              —  —         —         IC3R4      IC3R3      IC3R2      IC3R1      IC3R0      001F

                                       RPINR11    0696  —       —       —       —             —                   —         —                       —              —  —         —         OCFAR4     OCFAR3     OCFAR2     OCFAR1     OCFAR0     001F

                                       RPINR18    06A4  —       —       —       U1CTSR4    U1CTSR3    U1CTSR2        U1CTSR1        U1CTSR0                        —  —         —         U1RXR4     U1RXR3     U1RXR2     U1RXR1     U1RXR0     1F1F

                                       RPINR20    06A8  —       —       —       SCK1R4(1)  SCK1R3(1)  SCK1R2(1)      SCK1R1(1)      SCK1R0(1)                      —  —         —         SDI1R4(1)  SDI1R3(1)  SDI1R2(1)  SDI1R1(1)  SDI1R0(1)  1F1F

                                       RPINR21    06AA  —       —       —       —             —                   —         —                       —              —  —         —         SS1R4      SS1R3      SS1R2      SS1R1      SS1R0      001F

                                       Legend:  x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown  in hexadecimal.

                                       Note 1:  These bits are available in PIC24FJ32MC101/102/104 devices only.
 2011-2014 Microchip Technology Inc.  TABLE    4-22:    PERIPHERAL PIN SELECT OUTPUT REGISTER MAP FOR PIC24FJXXMC101 DEVICES

                                       File        Addr  Bit 15          Bit 14     Bit 13     Bit 12        Bit 11    Bit 10            Bit 9      Bit 8         Bit 7  Bit 6  Bit 5  Bit 4  Bit 3  Bit 2       Bit 1  Bit 0  All     PIC24FJ16MC101/102

                                       Name                                                                                                                                                                                    Resets

                                       RPOR0       06C0       —          —             —                               RP1R<4:0>                                  —      —      —                    RP0R<4:0>                 0000

                                       RPOR2       06C4       —          —             —       —             —         —                 —          —             —      —      —                    RP4R<4:0>                 0000

                                       RPOR3       06C6       —          —             —                               RP7R<4:0>                                  —      —      —      —      —      —           —      —      0000

                                       RPOR4       06C8       —          —             —                               RP9R<4:0>                                  —      —      —                    RP8R<4:0>                 0000

                                       RPOR6       06CC       —          —             —                               RP13R<4:0>                                 —      —      —                    RP12R<4:0>                0000

                                       RPOR7       06CE       —          —             —                               RP15R<4:0>                                 —      —      —                    RP14R<4:0>                0000

                                       Legend:  x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.

                                       TABLE    4-23:    PERIPHERAL PIN SELECT OUTPUT REGISTER MAP FOR PIC24FJXXMC102 DEVICES

                                       File        Addr  Bit 15          Bit 14        Bit 13  Bit 12        Bit 11    Bit 10            Bit 9      Bit 8         Bit 7  Bit 6  Bit 5  Bit 4  Bit 3  Bit 2       Bit 1  Bit 0  All

                                       Name                                                                                                                                                                                    Resets

                                       RPOR0       06C0       —          —             —                               RP1R<4:0>                                  —      —      —                    RP0R<4:0>                 0000

                                       RPOR1       06C2       —          —             —                               RP3R<4:0>                                  —      —      —                    RP2R<4:0>                 0000

                                       RPOR2       06C4       —          —             —                               RP5R<4:0>                                  —      —      —                    RP4R<4:0>                 0000    AND

                                       RPOR3       06C6       —          —             —                               RP7R<4:0>                                  —      —      —                    RP6R<4:0>                 0000

                                       RPOR4       06C8       —          —             —                               RP9R<4:0>                                  —      —      —                    RP8R<4:0>                 0000

                                       RPOR5       06CA       —          —             —                               RP11R<4:0>                                 —      —      —                    RP10R<4:0>                0000

                                       RPOR6       06CC       —          —             —                               RP13R<4:0>                                 —      —      —                    RP12R<4:0>                0000    PIC24FJ32MC101/102/104

                                       RPOR7       06CE       —          —             —                               RP15R<4:0>                                 —      —      —                    RP14R<4:0>                0000

                                       Legend:  x  = unknown  value  on  Reset,  —  =  unimplemented,  read  as  ‘0’.  Reset values are  shown  in  hexadecimal.

DS30009997E-page 49
DS30009997E-page 50                    TABLE    4-24:    PERIPHERAL PIN SELECT OUTPUT REGISTER MAP FOR PIC24FJ32MC104 DEVICES                                                                                                          PIC24FJ16MC101/102

                                       File        Addr  Bit 15          Bit 14        Bit 13  Bit 12        Bit 11    Bit 10            Bit 9      Bit 8         Bit 7  Bit 6  Bit 5  Bit 4  Bit 3  Bit 2       Bit 1  Bit 0  All

                                       Name                                                                                                                                                                                    Resets

                                       RPOR0       06C0       —          —             —                               RP1R<4:0>                                  —      —      —                    RP0R<4:0>                 0000

                                       RPOR1       06C2       —          —             —                               RP3R<4:0>                                  —      —      —                    RP2R<4:0>                 0000

                                       RPOR2       06C4       —          —             —                               RP5R<4:0>                                  —      —      —                    RP4R<4:0>                 0000

                                       RPOR3       06C6       —          —             —                               RP7R<4:0>                                  —      —      —                    RP6R<4:0>                 0000

                                       RPOR4       06C8       —          —             —                               RP9R<4:0>                                  —      —      —                    RP8R<4:0>                 0000

                                       RPOR5       06CA       —          —             —                               RP11R<4:0>                                 —      —      —                    RP10R<4:0>                0000

                                       RPOR6       06CC       —          —             —                               RP13R<4:0>                                 —      —      —                    RP12R<4:0>                0000

                                       RPOR7       06CE       —          —             —                               RP15R<4:0>                                 —      —      —                    RP14R<4:0>                0000

                                       RPOR8       06D0       —          —             —                               RP17R<4:0>                                 —      —      —                    RP16R<4:0>                0000

                                       RPOR9       06D2       —          —             —                               RP19R<4:0>                                 —      —      —                    RP18R<4:0>                0000

                                       RPOR10      06D4       —          —             —                               RP21R<4:0>                                 —      —      —                    RP20R<4:0>                0000

                                       RPOR11      06D6       —          —             —                               RP23R<4:0>                                 —      —      —                    RP22R<4:0>                0000

                                       RPOR12      06D8       —          —             —                               RP25R<4:0>                                 —      —      —                    RP24R<4:0>                0000    AND

                                       Legend:  x  = unknown  value  on  Reset,  —  =  unimplemented,  read  as  ‘0’.  Reset values are  shown  in  hexadecimal.

 2011-2014 Microchip Technology Inc.                                                                                                                                                                                                  PIC24FJ32MC101/102/104
 2011-2014 Microchip Technology Inc.  TABLE 4-25:    PORTA REGISTER MAP FOR PIC24FJ16MC101/102 DEVICES

                                       File     Addr  Bit 15  Bit 14  Bit 13  Bit 12  Bit 11  Bit 10  Bit 9        Bit 8                            Bit 7  Bit 6  Bit 5  Bit 4  Bit 3      Bit 2      Bit 1  Bit 0  All     PIC24FJ16MC101/102

                                       Name                                                                                                                                                                         Resets

                                       TRISA    02C0  —       —       —       —       —       —       —            —                                —         —      —                 TRISA<4:0>                   001F

                                       PORTA    02C2  —       —       —       —       —       —       —            —                                —         —      —                     RA<4:0>                  xxxx

                                       LATA     02C4  —       —       —       —       —       —       —            —                                —         —      —                     LATA<4:0>                xxxx

                                       ODCA     02C6  —       —       —       —       —       —       —            —                                —         —      —          ODCA<4:2>             —      —      0000

                                       Legend:  x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.

                                       TABLE 4-26:    PORTA REGISTER MAP FOR PIC24FJ32MC101/102 DEVICES

                                       File     Addr  Bit 15  Bit 14  Bit 13  Bit 12  Bit 11  Bit 10  Bit 9        Bit 8                            Bit 7  Bit 6  Bit 5  Bit 4  Bit 3      Bit 2      Bit 1  Bit 0  All

                                       Name                                                                                                                                                                         Resets

                                       TRISA    02C0  —       —       —       —       —       —       —            —                                —         —      —                 TRISA<4:0>                   001F

                                       PORTA    02C2  —       —       —       —       —       —       —            —                                —         —      —                     RA<4:0>                  xxxx

                                       LATA     02C4  —       —       —       —       —       —       —            —                                —         —      —                     LATA<4:0>                xxxx

                                       ODCA     02C6  —       —       —       —       —       —       —            —                                —         —      —      —   ODCA<3:2>             —      —      0000

                                       Legend:  x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.                                                                          AND

                                       TABLE 4-27:    PORTA REGISTER MAP FOR PIC24FJ32MC104 DEVICES

                                       File     Addr  Bit 15  Bit 14  Bit 13  Bit 12  Bit 11  Bit 10  Bit 9  Bit 8                                  Bit 7  Bit 6  Bit 5  Bit 4  Bit 3      Bit 2      Bit 1  Bit 0  All     PIC24FJ32MC101/102/104

                                       Name                                                                                                                                                                         Resets

                                       TRISA    02C0  —       —       —       —       —               TRISA<10:7>                                          —      —                    TRISA<4:0>                   001F

                                       PORTA    02C2  —       —       —       —       —               RA<10:7>                                             —      —                    RA<4:0>                      xxxx

                                       LATA     02C4  —       —       —       —       —               LATA<10:7>                                           —      —                    LATA<4:0>                    xxxx

                                       ODCA     02C6  —       —       —       —       —               ODCA<10:7>                                           —      —      —      ODCA<3:2>             —      —      0000

                                       Legend:  x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.

DS30009997E-page 51
DS30009997E-page 52                    TABLE 4-28:      PORTB REGISTER MAP FOR PIC24FJ16MC101 DEVICES                                                                                                                     PIC24FJ16MC101/102

                                       File Name  Addr  Bit 15  Bit 14  Bit 13  Bit 12  Bit 11  Bit 10      Bit 9  Bit 8                            Bit 7  Bit 6  Bit 5  Bit 4   Bit 3  Bit 2  Bit 1  Bit 0       All

                                                                                                                                                                                                                  Resets

                                       TRISB      02C8          TRISB<15:12>            —       —                  TRISB<9:7>                              —      —      TRISB4  —      —      TRISB<1:0>         F393

                                       PORTB      02CA          RB<15:12>               —       —                  RB<9:7>                                 —      —      RB4     —      —         RB<1:0>         xxxx

                                       LATB       02CC          LATB<15:12>             —       —                  LATB<9:7>                               —      —      LATB4   —      —      LATB<1:0>          xxxx

                                       ODCB       02CE          ODCB<15:12>             —       —                  ODCB<9:7>                               —      —      ODCB4   —      —      —           —      0000

                                       Legend:  x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.

                                       TABLE 4-29:      PORTB REGISTER MAP FOR PIC24FJ32MC101 DEVICES

                                       File Name  Addr  Bit 15  Bit 14  Bit 13  Bit 12  Bit 11  Bit 10      Bit 9  Bit 8                            Bit 7  Bit 6  Bit 5  Bit 4   Bit 3  Bit 2  Bit 1  Bit 0       All

                                                                                                                                                                                                                  Resets

                                       TRISB      02C8          TRISB<15:12>            —       —                  TRISB<9:7>                              —      —      TRISB4  —      —      TRISB<1:0>         F393

                                       PORTB      02CA          RB<15:12>               —       —                  RB<9:7>                                 —      —      RB4     —      —         RB<1:0>         xxxx

                                       LATB       02CC          LATB<15:12>             —       —                  LATB<9:7>                               —      —      LATB4   —      —      LATB<1:0>          xxxx    AND

                                       ODCB       02CE          ODCB<15:12>             —       —                  ODCB<9:7>                               —      —      —       —      —      —           —      0000

                                       Legend:  x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.

                                       TABLE 4-30:      PORTB REGISTER MAP FOR PIC24FJ16MC102 DEVICES                                                                                                                     PIC24FJ32MC101/102/104

                                       File       Addr  Bit 15  Bit 14  Bit 13  Bit 12  Bit 11  Bit 10      Bit 9  Bit 8                            Bit 7  Bit 6  Bit 5  Bit 4   Bit 3  Bit 2  Bit 1       Bit 0  All

                                       Name                                                                                                                                                                       Resets

                                       TRISB      02C8                                                             TRISB<15:0>                                                                                    FFFF

                                       PORTB      02CA                                                             RB<15:0>                                                                                       xxxx

                                       LATB       02CC                                                             LATB<15:0>                                                                                     xxxx

                                       ODCB       02CE                                          ODCB<15:4>                                                                       —      —      —           —      0000

 2011-2014 Microchip Technology Inc.  Legend:  x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.

                                       TABLE 4-31:      PORTB REGISTER MAP FOR PIC24FJ32MC102 DEVICES

                                       File       Addr  Bit 15  Bit 14  Bit 13  Bit 12  Bit 11  Bit 10      Bit 9  Bit 8                            Bit 7  Bit 6  Bit 5  Bit 4   Bit 3  Bit 2  Bit 1       Bit 0  All

                                       Name                                                                                                                                                                       Resets

                                       TRISB      02C8                                                             TRISB<15:0>                                                                                    FFFF

                                       PORTB      02CA                                                             RB<15:0>                                                                                       xxxx

                                       LATB       02CC                                                             LATB<15:0>                                                                                     xxxx

                                       ODCB       02CE                                          ODCB<15:5>                                                               —       —      —      —           —      0000

                                       Legend:  x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
 2011-2014 Microchip Technology Inc.  TABLE 4-32:    PORTB REGISTER MAP FOR PIC24FJ32MC104 DEVICES

                                       File     Addr  Bit 15  Bit 14  Bit 13  Bit 12  Bit 11  Bit 10      Bit 9  Bit 8                              Bit 7  Bit 6  Bit 5  Bit 4  Bit 3  Bit 2  Bit 1  Bit 0  All     PIC24FJ16MC101/102

                                       Name                                                                                                                                                                 Resets

                                       TRISB    02C8                                                             TRISB<15:0>                                                                                FFFF

                                       PORTB    02CA                                                             RB<15:0>                                                                                   xxxx

                                       LATB     02CC                                                             LATB<15:0>                                                                                 xxxx

                                       ODCB     02CE                                          ODCB<15:5>                                                                   —    —      —      —      —      0000

                                       Legend:  x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.

                                       TABLE 4-33:    PORTC REGISTER MAP FOR PIC24FJ32MC104 DEVICES

                                       File     Addr  Bit 15  Bit 14  Bit 13  Bit 12  Bit 11  Bit 10      Bit 9  Bit 8                              Bit 7  Bit 6  Bit 5  Bit 4  Bit 3  Bit 2  Bit 1  Bit 0  All

                                       Name                                                                                                                                                                 Resets

                                       TRISC    02D8  —       —       —       —       —       —                                                                   TRISC<9:0>                                FFFF

                                       PORTC    02DA  —       —       —       —       —       —                                                                   RC<9:0>                                   xxxx

                                       LATC     02DC  —       —       —       —       —       —                                                                   LATC<9:0>                                 xxxx

                                       ODCC     02DE  —       —       —       —       —       —                  ODCC<9:6>                                        —        —    —      —      —      —      0000

                                       Legend:  x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.                                                                  AND

DS30009997E-page 53                                                                                                                                                                                                 PIC24FJ32MC101/102/104
DS30009997E-page 54                    TABLE 4-34:      SYSTEM CONTROL REGISTER MAP                                                                                                                                                                     PIC24FJ16MC101/102

                                       File Name  Addr  Bit 15   Bit 14   Bit 13  Bit 12  Bit 11                       Bit 10       Bit 9      Bit 8     Bit 7         Bit 6   Bit 5          Bit 4           Bit 3   Bit 2   Bit 1    Bit 0   All

                                                                                                                                                                                                                                               Resets

                                       RCON       0740  TRAPR    IOPUWR   —       —       —                              —          CM         VREGS     EXTR          SWR     SWDTEN         WDTO   SLEEP            IDLE    BOR      POR     xxxx(1)

                                       OSCCON     0742  —        COSC2    COSC1   COSC0   —                            NOSC2        NOSC1      NOSC0     CLKLOCK       IOLOCK  LOCK           —               CF      —       LPOSCEN  OSWEN   0300(2)

                                       CLKDIV     0744  ROI      DOZE2    DOZE1   DOZE0   DOZEN                   FRCDIV2         FRCDIV1     FRCDIV0    —             —       —              —               —       —       —        —       3040

                                       OSCTUN     0748  —        —        —       —       —                              —          —          —         —             —                                          TUN<5:0>                     0000

                                       Legend:    x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.

                                       Note 1:    RCON register Reset values are dependent on the type of Reset.

                                       2:         OSCCON register Reset values are dependent on the FOSC Configuration bits and by the type of Reset.

                                       TABLE 4-35:      NVM REGISTER MAP

                                       File Name  Addr  Bit 15   Bit 14   Bit 13  Bit 12                       Bit 11       Bit 10      Bit 9     Bit 8         Bit 7  Bit 6           Bit 5  Bit 4           Bit 3   Bit 2   Bit 1    Bit 0   All

                                                                                                                                                                                                                                               Resets

                                       NVMCON     0760  WR       WREN     WRERR      —                         —               —           —          —            —   ERASE              —      —            NVMOP3  NVMOP2  NVMOP1   NVMOP0  0000(1)

                                       NVMKEY     0766  —        —           —       —                         —               —           —          —                                       NVMKEY<7:0>                                      0000     AND

                                       Legend:    x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.

                                       Note 1:    Reset value shown is for POR only. Value on other Reset states is dependent on the state of memory write or erase operations at the         time of Reset.

                                       TABLE 4-36:      PMD REGISTER MAP                                                                                                                                                                                PIC24FJ32MC101/102/104

                                       File Name  Addr  Bit 15   Bit 14   Bit 13  Bit 12  Bit 11                       Bit 10       Bit 9      Bit 8     Bit 7         Bit 6   Bit 5          Bit 4           Bit 3   Bit 2   Bit 1    Bit 0   All

                                                                                                                                                                                                                                               Resets

                                       PMD1       0770  T5MD(1)  T4MD(1)  T3MD    T2MD    T1MD                           —        PWM1MD       —         I2C1MD        —       U1MD           —      SPI1MD           —       —        AD1MD   0000

                                       PMD2       0772  —        —        —       —       —                            IC3MD        IC2MD      IC1MD            —      —               —      —               —       —       OC2MD    OC1MD   0000

                                       PMD3       0774  —        —        —       —       —                            CMPMD      RTCCMD       —                —      —               —      —               —       —       —        —       0000

                                       PMD4       0776  —        —        —       —       —                              —          —          —                —      —               —      —               —      CTMUMD   —        —       0000

 2011-2014 Microchip Technology Inc.  Legend:    x = unknown value on Reset, — = unimplemented, read as ‘0’.     Reset values are shown       in hexadecimal.

                                       Note 1:    These bits are available in PIC24FJ32MC101/102/104 devices      only.
    PIC24FJ16MC101/102 AND                                                                     PIC24FJ32MC101/102/104

4.2.5                                   SOFTWARE STACK                                         4.2.6         DATA RAM PROTECTION FEATURE

In addition to its use as a Working register, the W15                                          The PIC24FXXXX product family supports data RAM

register                                in    the      PIC24FJ16MC101/102                 and  protection features that enable segments of RAM to be

PIC24FJ32MC101/102/104 devices is also used as a                                               protected   when        used  in  conjunction     with   boot   and

Software Stack Pointer (SSP). The Stack Pointer always                                         secure code segment security. BSRAM (Secure RAM

points to the first available free word and grows from                                         Segment for Boot Segment) is accessible only from the

lower to higher addresses. It pre-decrements for stack                                         boot   segment      Flash     code,   when     enabled.    SSRAM

pops and post-increments for stack pushes, as shown in                                         (Secure RAM Segment for Secure Segment) is acces-

Figure 4-6. For a PC push during any CALL instruction,                                         sible only from the secure segment Flash code, when

the MSb of the PC is zero-extended before the push,                                            enabled. See Table 4-1 for an overview of the BSRAM

ensuring that the MSb is always clear.                                                         and SSRAM SFRs.

    Note:                               A PC push during exception processing                  4.3         Instruction Addressing Modes

                                        concatenates the SRL register to the MSb

                                        of the PC prior to the push.                           The addressing modes shown in Table 4-37 form the

The Stack Pointer Limit (SPLIM) register, associated                                           basis of the addressing modes that are optimized to

with the Stack Pointer, sets an upper address boundary                                         support the specific features of individual instructions.

for the stack. SPLIM is uninitialized at Reset. As is the                                      The addressing modes provided in the MAC class of

case for the Stack Pointer, SPLIM<0> is forced to ‘0’                                          instructions       differ  from   those     provided       in   other

because all stack operations must be word-aligned.                                             instruction types.

Whenever an EA is generated using W15 as a source                                              4.3.1         FILE REGISTER INSTRUCTIONS

or  destination                               pointer,     the     resulting     address  is   Most file register instructions use a 13-bit address field

compared with the value in SPLIM. If the contents of                                           (f)  to  directly     address     data    present   in     the  first

the Stack Pointer (W15) and the SPLIM register are                                             8192 bytes of data memory (Near Data Space). Most

equal and a push operation is performed, a stack error                                         file register instructions employ a Working register, W0,

trap will not occur. However, the stack error trap will                                        which is denoted as WREG in these instructions. The

occur on a subsequent push operation. For example, to                                          destination is typically either the same file register or

cause a stack error trap when the stack grows beyond                                           WREG        (with  the     exception  of  the  MUL  instruction),

address 0x0C00 in RAM, initialize the SPLIM with the                                           which writes the result to a register or register pair. The

value 0x0BFE.                                                                                  MOV    instruction    allows   additional   flexibility    and  can

Similarly, a Stack Pointer underflow (stack error) trap is                                     access the entire data space.

generated when the Stack Pointer address is found to

be  less                                than  0x0800.  This  prevents   the      stack  from   4.3.2         MCU INSTRUCTIONS

interfering with the SFR space.                                                                The three-operand MCU instructions are of the form:

A write to the SPLIM register should not be immediately                                        Operand 3 = Operand 1 Operand 2

followed by an indirect read operation using W15.

                                                                                               where Operand 1 is always a Working register (that is,

FIGURE 4-6:                                            CALL STACK FRAME                        the addressing mode can only be register direct), which

                                                                                               is referred to as Wb. Operand 2 can be a W register,

0x0000                                  15                      0                              fetched from data memory or a 5-bit literal. The result

                                                                                               location can be either a W register or a data memory

                                                                                               location.   The       following       addressing    modes       are

    Stack Grows Toward  Higher Address                                                         supported by MCU instructions:

                                                                                               •    Register Direct

                                              PC<15:0>             W15 (before CALL)           •    Register Indirect

                                        000000000 PC<22:16>                                    •    Register Indirect Post-Modified

                                                        W15 (after CALL)            •    Register Indirect Pre-Modified

                                                                                               •    5-Bit or 10-Bit Literal

                                                                   POP        :  [--W15]            Note:    Not     all  instructions    support    all  of   the

                                                                   PUSH :        [W15++]

                                                                                                             addressing modes given above. Individ-

                                                                                                             ual     instructions    can   support        different

                                                                                                             subsets of these addressing modes.

 2011-2014 Microchip Technology Inc.                                                                                                    DS30009997E-page 55
PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

TABLE 4-37:              FUNDAMENTAL        ADDRESSING MODES SUPPORTED

           Addressing Mode                                                 Description

File Register Direct                            The address of the file register is specified explicitly.

Register Direct                                 The contents of a register are accessed directly.

Register Indirect                               The contents of Wn forms the Effective Address (EA).

Register Indirect Post-Modified                 The contents of Wn forms the EA. Wn is post-modified (incremented

                                                or decremented) by a constant value.

Register Indirect Pre-Modified                  Wn is pre-modified (incremented or decremented) by a signed constant            value

                                                to form the EA.

Register Indirect with Register Offset          The sum of Wn and Wb forms the EA.

(Register Indexed)

Register Indirect with Literal Offset           The sum of Wn and a literal forms the EA.

4.3.3       MOVE INSTRUCTIONS                                    4.4       Interfacing Program and Data

Move instructions provide a greater degree of address-                     Memory Spaces

ing flexibility than other instructions. In addition to the      The    PIC24FJ16MC101/102                  and   PIC24FJ32MC101/

addressing         modes      supported     by   most     MCU    102/104 family architecture uses a 24-bit-wide program

instructions, move instructions also support Register            space and a 16-bit-wide data space. The architecture is

Indirect with Register Offset Addressing mode, also              also a modified Harvard scheme, meaning that data

referred to as Register Indexed mode.                            can also be present in the program space. To use this

    Note:   For the MOV instructions, the addressing             data successfully, it must be accessed in a way that

            mode specified in the instruction can differ         preserves the alignment of information in both spaces.

            for the source and destination EA. How-              Aside from normal execution, the PIC24FJ16MC101/102

            ever, the 4-bit Wb (Register Offset) field is        and  PIC24FJ32MC101/102/104                      architecture  provides

            shared        by  both  source  and  destination     two methods by which program space can be accessed

            (but typically only used by one).                    during operation:

In  summary,        the  following  addressing   modes    are    •   Using table instructions to access individual

supported by move instructions:                                      bytes, or words, anywhere in the program space

•   Register Direct                                              •   Remapping a portion of the program space into

•   Register Indirect                                                the data space (Program Space Visibility)

•   Register Indirect Post-modified                              Table instructions allow an application to read or write

•   Register Indirect Pre-modified                               to small areas of the program memory. This capability

•   Register Indirect with Register Offset (Indexed)             makes the method ideal for accessing data tables that

•   Register Indirect with Literal Offset                        need to be updated periodically. It also allows access

                                                                 to   all  bytes      of   the     program  word.  The   remapping

•   8-bit Literal                                                method allows an application to access a large block of

•   16-bit Literal                                               data on a read-only basis, which is ideal for lookups

    Note:   Not      all  instructions      support  all  the    from a large table of static data. The application can

            addressing modes given above. Individual             only access the lsw of the program word.

            instructions may support different subsets           4.4.1                ADDRESSING PROGRAM SPACE

            of these addressing modes.

                                                                 Since the address ranges for the data and program

4.3.4       OTHER INSTRUCTIONS                                   spaces are 16 and 24 bits, respectively, a method is

In addition to the addressing modes outlined previously,         needed to create a 23-bit or 24-bit program address

some instructions use literal constants of various sizes.        from 16-bit data registers. The solution depends on the

For example, BRA (branch) instructions use 16-bit signed         interface method to be used.

literals to specify the branch destination directly, whereas     For  table  operations,           the     8-bit  Table  Page   register

the DISI instruction uses a 14-bit unsigned literal field. In    (TBLPAG) is used to define a 32K word region within the

some instructions, such as    ADD    Acc, the source of an       program space. This is concatenated with a 16-bit EA to

operand or result is implied by the opcode itself. Certain       arrive at a full 24-bit program space address. In this for-

operations, such as NOP, do not have any operands.               mat, the MSb of TBLPAG is used to determine if the

                                                                 operation occurs in the user memory (TBLPAG<7> = 0)

                                                                 or the configuration memory (TBLPAG<7> = 1).

DS30009997E-page 56                                                                         2011-2014 Microchip Technology Inc.
    PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

For remapping operations, the 8-bit Program Space                           Table 4-38 and Figure 4-7 show how the program EA is

Visibility    register   (PSVPAG)     is  used    to  define  a             created for table operations and remapping accesses

16K word page in the program space. When the MSb                            from the data EA.

of the EA is ‘1’, PSVPAG is concatenated with the lower

15  bits    of  the  EA  to  form  a  23-bit  program  space

address. Unlike table operations, this limits remapping

operations strictly to the user memory area.

TABLE 4-38:             PROGRAM SPACE ADDRESS CONSTRUCTION

      Access Type                         Access                                  Program Space Address

                                           Space              <23>          <22:16>            <15>          <14:1>        <0>

Instruction Access                 User                       0                         PC<22:1>                               0

(Code Execution)                                                      0xx   xxxx        xxxx     xxxx      xxxx    xxx0

TBLRD/TBLWT                        User                             TBLPAG<7:0>                         Data EA<15:0>

(Byte/Word Read/Write)                                              0xxx    xxxx           xxxx      xxxx  xxxx    xxxx

                                   Configuration                    TBLPAG<7:0>                         Data EA<15:0>

                                                                    1xxx    xxxx               xxxx  xxxx    xxxx  xxxx

Program Space Visibility           User                       0             PSVPAG<7:0>                      Data EA<14:0>(1)

(Block Remap/Read)                                               0          xxxx     xxxx               xxx  xxxx    xxxx  xxxx

Note      1:    Data EA<15> is always ‘1’ in this case, but is not used in calculating the program space address. Bit 15 of

                the address is PSVPAG<0>.

FIGURE 4-7:                  DATA ACCESS FROM PROGRAM SPACE ADDRESS GENERATION

              Program Counter(1)                0                           Program Counter                        0

                                                                               23 Bits

                                                                                               EA                  1/0

              Table Operations(2)             1/0      TBLPAG

                                                       8 Bits                                  16 Bits

                                                                            24 Bits

                                                                    Select  1                  EA                  0

              Program Space Visibility(1)       0             PSVPAG

              (Remapping)

                                                              8 Bits                           15 Bits

                                                                               23 Bits

                             User/Configuration Space Select                                                 Byte Select

    Note        1:   The Least Significant bit of program space addresses is always fixed as ‘0’ to maintain word

                     alignment of data in the program and data spaces.

                2:   Table operations are not required to be word-aligned. Table Read operations are permitted in          the

                     configuration memory space.

 2011-2014 Microchip Technology Inc.                                                                        DS30009997E-page 57
PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

4.4.2        DATA ACCESS FROM PROGRAM                        •           TBLRDH  (Table Read High):

             MEMORY USING TABLE                                          -  In Word mode, this instruction maps the entire

             INSTRUCTIONS                                                   upper word of a program address (P<23:16>)

The TBLRDL and TBLWTL instructions offer a direct                           to a data address. Note that D<15:8>, the

method of reading or writing the lower word of any                          ‘phantom byte’, will always be ‘0’.

address  within   the    program    space  without    going              -  In Byte mode, this instruction maps the upper

through  data     space.  The     TBLRDH   and    TBLWTH                    or lower byte of the program word to D<7:0>

instructions are the only method to read or write the                       of the data address, in the TBLRDL      instruc-

upper 8 bits of a program space word as data.                               tion. The data is always ‘0’ when the upper

The PC is incremented by two for each successive                            ‘phantom’ byte is selected (Byte Select = 1).

24-bit  program   word.   This  allows  program     memory   In a similar fashion, two table instructions, TBLWTH

addresses to directly map to data space addresses. Pro-      and            TBLWTL,    are     used  to  write  individual  bytes  or

gram memory can thus be regarded as two 16-bit-wide          words to a program space address. The details of

word address spaces, residing side by side, each with        their operation are explained in Section 5.0 “Flash

the same address range. TBLRDL and TBLWTL access             Program Memory”.

the space that contains the least significant data word.     For all table operations, the area of program memory

TBLRDH and TBLWTH access the space that contains the         space to be accessed is determined by the Table Page

upper data byte.                                             (TBLPAG) register. TBLPAG covers the entire program

Two table instructions are provided to move byte or          memory             space      of  the   device,    including   user  and

word-sized (16-bit) data to and from program space.          configuration spaces. When TBLPAG<7> = 0, the table

Both function as either byte or word operations.             page           is  located    in  the   user  memory   space.     When

•  TBLRDL (Table Read Low):                                  TBLPAG<7> = 1, the page is located in configuration

                                                             space.

   -  In Word mode, this instruction maps the

      lower word of the program space location

      (P<15:0>) to a data address (D<15:0>).

   -  In Byte mode, either the upper or lower byte

      of the lower program word is mapped to the

      lower byte of a data address. The upper byte

      is selected when Byte Select is ‘1’; the lower

      byte is selected when it is ‘0’.

FIGURE 4-8:               ACCESSING        PROGRAM MEMORY WITH TABLE INSTRUCTIONS

        TBLPAG                                            Program Space

         02

                  23            15         0   0x000000                                23      16                8             0

                                                                            00000000

                                                                            00000000

                                               0x020000                     00000000

                                               0x030000                     00000000

                                                                ‘Phantom’ Byte

                                                             TBLRDH.B           (Wn<0> = 0)

                                                             TBLRDL.B           (Wn<0> = 1)

                                                             TBLRDL.B           (Wn<0> = 0)

                                                             TBLRDL.W

                                                             The address for the table operation is determined by the data EA

                                                             within the page defined by the TBLPAG register.

                                               0x800000      Only read operations are shown; write operations are also valid

                                                             in the user memory area.

DS30009997E-page 58                                                                          2011-2014 Microchip Technology Inc.
     PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

4.4.3          READING DATA FROM PROGRAM                               24-bit program word are used to contain the data. The

               MEMORY USING PROGRAM SPACE                              upper 8 bits of any program space location used as

               VISIBILITY                                              data  should   be  programmed        with  ‘1111     1111’       or

The upper 32 Kbytes of data space may optionally be                    ‘0000     0000’ to force a NOP. This prevents possible

mapped into any 16K word page of the program space.                    issues should the area of code ever be accidentally

This   option   provides      transparent  access  to        stored    executed.

constant data from the data space without the need to                     Note:       PSV access is temporarily disabled during

use    special       instructions  (such   as   TBLRDL       and                      Table Reads/Writes.

TBLRDH).                                                               For operations that use PSV and are executed outside

Program space access through the data space occurs                     a REPEAT loop, the MOV and MOV.D instructions require

if the MSb of the data space EA is ‘1’ and Program                     one instruction cycle in addition to the specified execu-

Space Visibility is enabled by setting the PSV bit in the              tion time. All other instructions require two instruction

Core Control register (CORCON<2>). The location of                     cycles in addition to the specified execution time.

the program memory space to be mapped into the data                    For operations that use PSV and are executed inside a

space is determined by the Program Space Visibility                    REPEAT loop, these instances require two instruction

Page   register      (PSVPAG).     This  8-bit  register     defines   cycles in addition to the specified execution time of the

any one of 256 possible pages of 16K words in program                  instruction:

space. In effect, PSVPAG functions as the upper 8 bits

of the program memory address, with the 15 bits of the                 •  Execution in the first iteration

EA functioning as the lower bits. By incrementing the                  •  Execution in the last iteration

PC by 2 for each program memory word, the lower                        •  Execution prior to exiting the loop due to an

15 bits of data space addresses directly map to the                       interrupt

lower  15      bits  in  the  corresponding     program      space     •  Execution upon re-entering the loop after an

addresses.                                                                interrupt is serviced

Data reads to this area add a cycle to the instruction                 Any other iteration of the REPEAT loop will allow the

being executed, since two program memory fetches                       instruction using PSV to access data, to execute in a

are required.                                                          single cycle.

Although each data space address, 0x8000 and higher,

maps directly into a corresponding program memory

address (see Figure 4-9), only the lower 16 bits of the

FIGURE 4-9:                   PROGRAM SPACE VISIBILITY                 OPERATION

     When CORCON<2> = 1 and EA<15> = 1:

                                   Program Space                                  Data Space

           PSVPAG             23           15             0  0x000000

               02                                                                                0x0000           Data EA<14:0>

                                                             0x010000

                                                             0x018000

     The data in the page

     designated by

     PSVPAG is mapped

     into the upper half of

     the data memory                                                                             0x8000

     space...

                                                                                     PSV Area

                                                                                                            ...while the lower 15 bits

                                                                                                            of the EA specify an

                                                                                                            exact address within

                                                                                                 0xFFFF     the PSV area. This

                                                                                                            corresponds exactly to

                                                                                                            the same lower 15 bits

                                                                                                            of the actual program

                                                             0x800000                                       space address.

 2011-2014 Microchip Technology Inc.                                                                       DS30009997E-page 59
PIC24FJ16MC101/102   AND  PIC24FJ32MC101/102/104

NOTES:

DS30009997E-page 60        2011-2014 Microchip Technology Inc.
     PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

5.0      FLASH PROGRAM MEMORY                                         ICSP allows a device to be serially programmed while

                                                                      in the end application circuit. This is done with two lines

   Note  1:   This     data       sheet      summarizes         the   for programming clock and programming data (one of

              features of the PIC24FJ16MC101/102                      the alternate programming pin pairs: PGECx/PGEDx),

              and   PIC24FJ32MC101/102/104                   family   and three other lines for power (VDD), ground (VSS) and

              of  devices.    It  is    not  intended    to   be  a   Master Clear (MCLR). This allows users to manufac-

              comprehensive           reference     source.       To  ture             boards   with  unprogrammed    devices  and  then

              complement the information in this data                 program the microcontroller just before shipping the

              sheet,   refer      to    “Program        Memory”       product. This also allows the most recent firmware or a

              (DS39715) in the “dsPIC33/PIC24 Family                  custom firmware to be programmed.

              Reference      Manual”,        which  is  available     RTSP is accomplished using TBLRD (Table Read) and

              from     the        Microchip         web         site  TBLWT (Table Write) instructions. With RTSP, the user

              (www.microchip.com).                                    application can write program memory data in a single

         2:   It   is  important         to  note       that    the   program memory word and erase program memory in

              specifications in Section 26.0 “Electri-                blocks or ‘pages’ of 512 instructions (1536 bytes).

              cal Characteristics” of this data sheet

              supercede any specifications that may be                5.1                  Table Instructions and Flash

              provided in the “dsPIC33/PIC24 Family                                        Programming

              Reference Manual” sections.

         3:   Some     registers        and  associated         bits  Regardless of the method used, all programming of

              described     in    this  section     may  not      be  Flash memory is done with the Table Read and Table

              available     on    all    devices.       Refer     to  Write instructions. These allow direct read and write

              Section 4.0 “Memory Organization” in                    access to the program memory space from the data

              this data sheet for device-specific register            memory while the device is in normal operating mode.

              and bit information.                                    The 24-bit target address in the program memory is

                                                                      formed using bits<7:0> of the TBLPAG register and the

The  PIC24FJ16MC101/102               and    PIC24FJ32MC101/          Effective Address (EA) from a W register, specified in

102/104  devices       contain    internal   Flash       program      the table instruction, as shown in Figure 5-1.

memory   for  storing    and    executing    application      code.   The TBLRDL and the TBLWTL instructions are used to

The memory is readable, writable and erasable during                  read             or  write  to  bits<15:0>  of  program  memory.

normal operation over the entire VDD range.                           TBLRDL and TBLWTL can access program memory in

Flash memory can be programmed in two ways:                           both Word and Byte modes.

•  In-Circuit Serial Programming™ (ICSP™)                             The TBLRDH and TBLWTH instructions are used to read

   programming capability                                             or write to bits<23:16> of program memory. TBLRDH

•  Run-Time Self-Programming (RTSP)                                   and TBLWTH can also access program memory in Word

                                                                      or Byte mode.

FIGURE 5-1:                ADDRESSING FOR TABLE REGISTERS

                                                                      24 Bits

                    Using                    0                        Program Counter                 0

                    Program Counter

                                                                      Working Reg EA

                    Using                    1/0    TBLPAG Reg

                    Table Instruction

                                                        8 Bits                         16 Bits

                    User/Configuration                                                                            Byte

                    Space Select                                      24-Bit EA                                   Select

 2011-2014 Microchip Technology Inc.                                                                             DS30009997E-page 61
PIC24FJ16MC101/102 AND                                                                                                                                                  PIC24FJ32MC101/102/104

5.2        RTSP Operation                                                                                                                                               5.3.1      PROGRAMMING ALGORITHM FOR

The  PIC24FJ16MC101/102          and    PIC24FJ32MC101/                                                                                                                            FLASH PROGRAM MEMORY

102/104    family  Flash     program    memory                                                                                                   array              is  Programmers       can    program     one  word   (24    bits)   of

organized into rows of 64 instructions or 192 bytes.                                                                                                                    program    Flash  memory     at   a  time.  To   do  this,  it  is

RTSP allows the user application to erase a page of                                                                                                                     necessary to erase the 8-row erase page that contains

memory,    which   consists  of  eight  rows  (512                                                                                               instruc-               the desired address of the location the user wants to

tions); and to program one word. Table 26-12 shows                                                                                                                      change.

typical erase and programming times. The 8-row erase                                                                                                                    For protection against accidental operations, the write

pages are edge-aligned from the beginning of program                                                                                                                    initiate sequence for NVMKEY must be used to allow

memory, on boundaries of 1536 bytes.                                                                                                                                    any erase or program operation to proceed. After the

                                                                                                                                                                        programming command has been executed, the user

5.3        Programming Operations                                                                                                                                       application must wait for the programming time until

A complete programming sequence is necessary for                                                                                                                        programming       is   complete.     The    two     instructions

programming or erasing the internal Flash in RTSP                                                                                                                       following  the    start  of  the  programming        sequence

mode. The processor stalls (waits) until the operation is                                                                                                               should be NOPs.

finished.                                                                                                                                                               Note:      Performing a page erase operation on the

The programming time depends on the FRC accuracy                                                                                                                                   last page of program memory will clear the

(see Table 26-18) and the value of the FRC Oscillator                                                                                                                              Flash         Configuration    Words,        thereby

Tuning register (see Register 8-3). Use the following                                                                                                                              enabling      code     protection    as   a  result.

formula to calculate the minimum and maximum values                                                                                                                                Therefore, users should avoid performing

for the Word Write Time and Page Erase Time (see                                                                                                                                   page erase operations on the last page of

Table 26-12).                                                                                                                                                                      program memory.

                                                                                                                                                                        Refer  to  “Program          Memory”      (DS39715)     in     the

EQUATION 5-1:           PROGRAMMING TIME                                                                                                                                “dsPIC33/PIC24 Family Reference Manual” for details

                                                                                                                                                                        and codes examples on programming using RTSP.

     7----.-3---7-----M-----H----z-----------F----R----C-----A----c--c---u---r--Ta---c---y------%-------------F----R----C-----T---u----n---i-n---g------%---      5.4        Control Registers

For example, if the device is operating at +125°C, the                                                                                                                  Two SFRs are used to read and write the program

FRC accuracy will be ±2%. If the TUN<5:0> bits (see                                                                                                                     Flash memory: NVMCON and NVMKEY.

Register 8-3) are set to ‘b000000, the minimum row                                                                                                                      The NVMCON register (Register 5-1) controls which

write time is equal to Equation 5-2.                                                                                                                                    blocks are to be erased, which memory type is to be

                                                                                                                                                                        programmed and the start of the programming cycle.

EQUATION 5-2:           MINIMUM ROW WRITE                                                                                                                               NVMKEY is a write-only register that is used for write

                        TIME                                                                                                                                            protection. To start a programming or erase sequence,

                                                                                                                                                                        the user application must consecutively write 0x55 and

TRW  = 7----.-3---7-----M-----H----z-----------1--3--5-+---5--0--C-.-0--y-2--c---l-e---s-----1-----–----0---.--0---0---3---7---5----=      47.4s                 0xAA to the NVMKEY register. Refer to Section 5.3

                                                                                                                                                                        “Programming Operations” for further details.

The maximum row write time is equal to Equation 5-3.

EQUATION 5-3:           MAXIMUM ROW WRITE

                        TIME

TRW  =     7---.--3---7-----M-----H----z-----------1-3---5-–--5--0---C.--0--y-2--c--l--e---s-----1----–-----0---.-0---0----3--7----5--- =  49.3s

Setting the WR bit (NVMCON<15>) starts the opera-

tion and the WR bit is automatically cleared when the

operation is finished.

DS30009997E-page 62                                                                                                                                                                             2011-2014 Microchip Technology Inc.
     PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

REGISTER        5-1:  NVMCON: FLASH              MEMORY  CONTROL REGISTER

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

        WR            WREN             WRERR      —            —                     —             —          —

bit 15                                                                                                                      bit 8

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

         —            ERASE            —          —            NVMOP3(2)   NVMOP2(2)      NVMOP1(2)     NVMOP0(2)

bit 7                                                                                                                       bit 0

Legend:                         SO = Settable Only bit

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

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

bit  15         WR: Write Control bit(1)

                1=    Initiates a Flash memory program or erase operation; the operation is self-timed and the bit is

                      cleared by hardware once the operation is complete

                0=    Program or erase operation is complete and inactive

bit  14         WREN: Write Enable bit(1)

                1=    Enables Flash program/erase operations

                0=    Inhibits Flash program/erase operations

bit  13         WRERR: Write Sequence Error Flag bit(1)

                1=    An improper program or erase sequence attempt, or termination has occurred (bit is set automatically

                      on any set attempt of the WR bit)

                0=    The program or erase operation completed normally

bit  12-7       Unimplemented: Read as ‘0’

bit  6          ERASE: Erase/Program Enable bit(1)

                1=    Performs the erase operation specified by NVMOP<3:0> on the next WR command

                0=    Performs the program operation specified by NVMOP<3:0> on the next WR command

bit  5-4        Unimplemented: Read as ‘0’

bit  3-0        NVMOP<3:0>: NVM Operation Select bits(1,2)

                If ERASE = 1:

                1111 = No operation

                1101 = Erase General Segment

                1100 = No operation

                0011 = No operation

                0010 = Memory page erase operation

                0001 = No operation

                0000 = No operation

                If ERASE = 0:

                1111 = No operation

                1101 = No operation

                1100 = No operation

                0011 = Memory word program operation

                0010 = No operation

                0001 = No operation

                0000 = No operation

Note      1:  These bits can only be reset on a Power-on Reset (POR).

          2:  All other combinations of NVMOP<3:0> are unimplemented.

 2011-2014 Microchip Technology Inc.                                                              DS30009997E-page 63
PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

REGISTER 5-2:        NVMKEY: NONVOLATILE MEMORY KEY REGISTER

        U-0          U-0  U-0               U-0  U-0                   U-0    U-0                  U-0

         —           —    —                 —    —                     —              —            —

bit 15                                                                                                  bit  8

       W-0           W-0  W-0               W-0  W-0                   W-0    W-0                  W-0

                                            NVMKEY<7:0>

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 15-8     Unimplemented: Read as ‘0’

bit 7-0      NVMKEY<7:0>: NVM Key Register bits (write-only)

DS30009997E-page 64                                                        2011-2014 Microchip Technology Inc.
     PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

6.0      RESETS                                                            •  TRAPR: Trap Conflict Reset

                                                                           •  IOPUWR: Illegal Condition Device Reset:

   Note  1:  This    data         sheet         summarizes      the           -  Illegal Opcode Reset

             features     of      the      PIC24FJ16MC101/102                 -  Uninitialized W Register Reset

             and PIC24FJ32MC101/102/104 family of

             devices.     It      is  not   intended   to    be       a       -  Security Reset

             comprehensive             reference       source.   To        A  simplified   block  diagram     of  the  Reset  module   is

             complement the information in this data                       shown in Figure 6-1.

             sheet, refer to “Reset” (DS39712) in the

             “dsPIC33/PIC24                 Family     Reference           Any active source of Reset will make the SYSRST

             Manual”,     which         is  available  from      the       signal active. On system Reset, some of the registers

             Microchip web site (www.microchip.com).                       associated with the CPU and peripherals are forced to

         2:  It  is    important            to   note  that      the       a known Reset state and some are unaffected.

             specifications in Section 26.0 “Electri-                         Note:       Refer to the specific peripheral section or

             cal Characteristics” of this data sheet                                      Section 3.0 “CPU” of this data sheet for

             supercede any specifications that may be                                     register Reset states.

             provided in the “dsPIC33/PIC24 Family

             Reference Manual” sections.                                   All types of device Reset set a corresponding status bit

         3:  Some      registers           and   associated     bits       in the RCON register to indicate the type of Reset (see

             described        in  this      section  may   not   be        Register 6-1).

             available        on      all   devices.   Refer     to        All bits that are set, with the exception of the POR bit

             Section 4.0 “Memory Organization” in                          (RCON<0>), are cleared during a POR event. The user

             this data sheet for device-specific register                  application can set or clear any bit at any time during

             and bit information.                                          code execution. The RCON bits only serve as status

The Reset module combines all Reset sources and                            bits. Setting a particular Reset status bit in software

controls the device Master Reset Signal, SYSRST. The                       does not cause a device Reset to occur.

following is a list of device Reset sources:                               The RCON register also has other bits associated with

•  POR: Power-on Reset                                                     the Watchdog Timer and device power-saving states.

•  BOR: Brown-out Reset                                                    The function of these bits is discussed in other sections

•  MCLR: Master Clear Pin Reset                                            of this data sheet.

•  SWR: RESET Instruction                                                     Note:       The   status  bits  in  the  RCON   register

•  WDTO: Watchdog Timer Time-out Reset                                                    should be cleared after they are read so

•  CM: Configuration Mismatch Reset                                                       that the next RCON register value after a

                                                                                          device Reset is meaningful.

FIGURE 6-1:               RESET SYSTEM BLOCK DIAGRAM

                              RESET Instruction

                                                       Glitch Filter

                   MCLR

                                       WDT

                                      Module

                                      Sleep or Idle

                                      Internal                        BOR

                                      Regulator                                                               SYSRST

                     VDD

                                                      VDD Rise        POR

                                                       Detect

                                       Trap Conflict

                                      Illegal Opcode

                     Uninitialized W Register

                     Configuration Mismatch

 2011-2014 Microchip Technology Inc.                                                                             DS30009997E-page 65
PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

REGISTER 6-1:        RCON: RESET CONTROL REGISTER(1)

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

     TRAPR         IOPUWR           —           —             —                  —             CM           VREGS

bit 15                                                                                                                       bit 8

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

       EXTR          SWR          SWDTEN(2)    WDTO           SLEEP              IDLE          BOR              POR

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 15       TRAPR: Trap Reset Flag bit

             1 = A Trap Conflict Reset has occurred

             0 = A Trap Conflict Reset has not occurred

bit 14       IOPUWR: Illegal Opcode or Uninitialized W Access Reset Flag bit

             1=      An illegal opcode detection, an illegal address mode or Uninitialized     W  register  used  as         an

                     Address Pointer caused a Reset

             0=      An illegal opcode or Uninitialized W Register Reset has not occurred

bit  13-10   Unimplemented: Read as ‘0’

bit  9       CM: Configuration Mismatch Flag bit

             1 = A Configuration Mismatch Reset has occurred

             0 = A Configuration Mismatch Reset has not occurred

bit  8       VREGS: Voltage Regulator Stand-by During Sleep bit

             1 = Voltage regulator is active during Sleep

             0 = Voltage regulator goes into Stand-by mode during Sleep

bit  7       EXTR: External Reset (MCLR) Pin bit

             1 = A Master Clear (pin) Reset has occurred

             0 = A Master Clear (pin) Reset has not occurred

bit  6       SWR: Software Reset (Instruction) Flag bit

             1 = A RESET instruction has been executed

             0 = A RESET instruction has not been executed

bit  5       SWDTEN: Software Enable/Disable of WDT bit(2)

             1 = WDT is enabled

             0 = WDT is disabled

bit  4       WDTO: Watchdog Timer Time-out Flag bit

             1 = WDT time-out has occurred

             0 = WDT time-out has not occurred

bit  3       SLEEP: Wake-up from Sleep Flag bit

             1 = Device has been in Sleep mode

             0 = Device has not been in Sleep mode

bit  2       IDLE: Wake-up from Idle Flag bit

             1 = Device has been in Idle mode

             0 = Device has not been in Idle mode

Note    1:   All of the Reset status bits can be set or cleared in software. Setting one of these bits in software does not

             cause a device Reset.

        2:   If the FWDTEN Configuration bit is ‘1’ (unprogrammed), the WDT is always enabled, regardless of the

             SWDTEN bit setting.

DS30009997E-page 66                                                                  2011-2014 Microchip Technology Inc.
PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

REGISTER 6-1:  RCON: RESET CONTROL REGISTER(1) (CONTINUED)

bit 1      BOR: Brown-out Reset Flag bit

           1 = A Brown-out Reset has occurred

           0 = A Brown-out Reset has not occurred

bit 0      POR: Power-on Reset Flag bit

           1 = A Power-on Reset has occurred

           0 = A Power-on Reset has not occurred

Note   1:  All of the Reset status bits can be set or cleared in software. Setting one of these bits  in software  does not

           cause a device Reset.

       2:  If the FWDTEN Configuration bit is ‘1’ (unprogrammed), the WDT is always enabled,          regardless   of the

           SWDTEN bit setting.

 2011-2014 Microchip Technology Inc.                                                                 DS30009997E-page 67
PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

6.1          System Reset                                              A Warm Reset is the result of all other Reset sources,

                                                                       including the RESET instruction. On a Warm Reset, the

The PIC24FJ16MC101/102 and PIC24FJ32MC101/102/                         device will continue to operate from the current clock

104 family of devices has two types of Reset:                          source, as indicated by the Current Oscillator Selection

•  Cold Reset                                                          bits  (COSC<2:0>)      in  the    Oscillator  Control  register

•  Warm Reset                                                          (OSCCON<14:12>).

A Cold Reset is the result of a POR or a BOR. On a                     The device is kept in a Reset state until the system

Cold     Reset,  the  FNOSCx  Configuration    bits  in  the           power supplies have stabilized at appropriate levels

FOSC Configuration register select the device clock                    and   the  oscillator  clock  is  ready.  The    sequence     in

source.                                                                which this occurs is shown in Figure 6-2.

TABLE 6-1:            OSCILLATOR DELAY

         Oscillator Mode      Oscillator                      Oscillator      PLL Lock Time              Total Delay

                              Start-up Delay             Start-up Timer

   FRC, FRCDIV16, FRCDIVN     TOSCD(1)                        —                   —                              TOSCD(1)

   FRCPLL                     TOSCD(1)                        —                   TLOCK(3)               TOSCD + TLOCK(1,3)

   MS                         TOSCD(1)                        TOST(2)             —                      TOSCD + TOST(1,2)

   HS                         TOSCD(1)                        TOST(2)             —                      TOSCD + TOST(1,2)

   EC                         —                               —                   —                                  —

   MSPLL                      TOSCD(1)                        TOST(2)             TLOCK(3)             TOSCD + TOST + TLOCK(1,2,3)

   ECPLL                      —                               —                   TLOCK(3)                       TLOCK(3)

   SOSC                       TOSCD(1)                        TOST(2)             —                      TOSCD + TOST(1,2)

   LPRC                       TOSCD(1)                        —                   —                              TOSCD(1)

   Note  1:  TOSCD = Oscillator Start-up Delay (1.1 s max. for FRC, 70 s max. for LPRC). Crystal oscillator start-up

             times vary with crystal characteristics, load capacitance, etc.

         2:  TOST = Oscillator Start-up Timer Delay (1024 oscillator clock periods). For example, TOST = 102.4 s for a

             10 MHz crystal and TOST = 32 ms for a 32 kHz crystal.

         3:  TLOCK = PLL Lock Time (1.5 ms nominal) if PLL is enabled.

DS30009997E-page 68                                                                            2011-2014 Microchip Technology Inc.
PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

FIGURE 6-2:               SYSTEM RESET TIMING

                                                          VBOR

                                       VPOR

             VDD

                                TPOR

                       1

            POR                                                       TBOR

                             2

            BOR                                                       3

                                                                      TPWRT

        SYSRST

                                                                                       4

Oscillator Clock

                                                                                TOSCD  TOST                       TLOCK

                                                                                                                                    6

                                                                                                                                           TFSCM

        FSCM

                                                                                                                                 5

      Device Status                                                      Reset                                                         Run

                                                                         Time

1.      POR: A POR circuit holds the device in Reset when the power supply is turned on. The POR circuit is active until VDD crosses the

        VPOR threshold and the delay, TPOR, has elapsed.

2.      BOR: The on-chip voltage regulator has a BOR circuit that keeps the device in Reset until VDD crosses the VBOR threshold and the

        delay, TBOR, has elapsed. The delay, TBOR, ensures the voltage regulator output becomes stable.

3.      PWRT: The Power-up Timer (PWRT) continues to hold the processor in Reset for a specific period of time (TPWRT) after a BOR.

        The delay, TPWRT, ensures that the system power supplies have stabilized at the appropriate level for full-speed operation. After

        the delay, TPWRT, has elapsed, the SYSRST becomes inactive, which in turn, enables the selected oscillator to start generating

        clock cycles.

4.      Oscillator Delay: The total delay for the clock to be ready for various clock source selections is given in Table 6-1. Refer to

        Section 8.0 “Oscillator Configuration” for more information.

5.      When the oscillator clock is ready, the processor begins execution from location 0x000000. The user application programs a GOTO

        instruction at the Reset address, which redirects program execution to the appropriate start-up routine.

6.      The Fail-Safe Clock Monitor (FSCM), if enabled, begins to monitor the system clock when the system clock is ready and the delay,

        TFSCM, has elapsed.

TABLE 6-2:           OSCILLATOR PARAMETERS                                      Note:  When the device exits the Reset condition

Symbol       Parameter                       Value                                     (begins           normal   operation),          the      device

                                                                                       operating parameters (voltage, frequency,

VPOR         POR Threshold             1.8V nominal                                    temperature,               etc.)    must  be    within     their

TPOR    POR Extension Time             30 s maximum                                   operating                  ranges;  otherwise,      the  device

VBOR         BOR Threshold             2.5V nominal                                    may not function correctly. The user appli-

TBOR    BOR Extension Time             100 s maximum                                  cation must ensure that the delay between

                                                                                       the time power is first applied and the time

TPWRT   Power-up Timer Delay           64 ms nominal                                   SYSRST                     becomes  inactive,        is    long

TFSCM        Fail-Safe Clock           900 s maximum                                  enough to get all operating parameters

             Monitor Delay                                                             within specification.

 2011-2014 Microchip Technology Inc.                                                                                      DS30009997E-page 69
PIC24FJ16MC101/102 AND                                              PIC24FJ32MC101/102/104

6.2       Power-on Reset (POR)                                      6.3           BOR and Power-up Timer (PWRT)

A POR circuit ensures the device is reset from power-               The on-chip regulator has a BOR circuit that resets the

on.  The   POR   circuit   is  active  until  VDD   crosses  the    device when the VDD is too low (VDD < VBOR) for proper

VPOR threshold and the delay, TPOR, has elapsed. The                device operation. The BOR circuit keeps the device in

delay, TPOR, ensures the internal device bias circuits              Reset until VDD crosses the VBOR threshold and the

become stable.                                                      delay, TBOR, has elapsed. The delay, TBOR, ensures

The device supply voltage characteristics must meet                 the voltage regulator output becomes stable.

the  specified   starting  voltage     and    rise  rate  require-  The BOR status bit (BOR) in the Reset Control register

ments  to  generate   the      POR.    Refer  to    Section 26.0    (RCON<1>) is set to indicate the Brown-out Reset.

“Electrical Characteristics” for details.                           The device will not run at full speed after a BOR as the

The POR status bit (POR) in the Reset Control register              VDD  should       rise  to  acceptable  levels  for  full-speed

(RCON<0>) is set to indicate the Power-on Reset.                    operation. The PWRT provides power-up time delay

                                                                    (TPWRT) to ensure that the system power supplies have

                                                                    stabilized    at  the   appropriate     levels  for  full-speed

                                                                    operation before the SYSRST is released.

                                                                    Refer to Section 23.0 “Special Features” for further

                                                                    details.

                                                                    Figure 6-3 shows the typical brown-out scenarios. The

                                                                    Reset delay (TBOR + TPWRT) is initiated each time VDD

                                                                    rises above the VBOR trip point.

FIGURE     6-3:            BROWN-OUT SITUATIONS

                 VDD

                                                                                                            VBOR

                                                                    TBOR + TPWRT

           SYSRST

                 VDD

                                                                                                            VBOR

                                                                    TBOR + TPWRT

           SYSRST

                               VDD Dips Before PWRT Expires

                 VDD

                                                                                                            VBOR

                                                                    TBOR + TPWRT

           SYSRST

DS30009997E-page 70                                                                          2011-2014 Microchip Technology Inc.
      PIC24FJ16MC101/102 AND                                     PIC24FJ32MC101/102/104

6.4      External Reset (EXTR)                                   6.6      Watchdog Timer Time-out Reset

The External Reset is generated by driving the MCLR                       (WDTO)

pin low. The MCLR pin is a Schmitt Trigger input with            Whenever a Watchdog Timer Time-out Reset occurs,

an additional glitch filter. Reset pulses that are longer        the device will asynchronously assert SYSRST. The

than the minimum pulse width will generate a Reset.              clock source will remain unchanged. A WDT time-out

Refer to Section 26.0 “Electrical Characteristics” for           during Sleep or Idle mode will wake-up the processor,

minimum       pulse  width  specifications.  The    External     but will not reset the processor.

Reset (MCLR) Pin bit (EXTR) in the Reset Control                 The Watchdog Timer Time-out bit (WDTO) in the Reset

register (RCON) is set to indicate the MCLR Reset.               Control  register  (RCON<4>)       is  set    to  indicate  the

6.4.1         EXTERNAL SUPERVISORY                               Watchdog      Timer  Reset.     Refer    to       Section 23.4

              CIRCUIT                                            “Watchdog Timer (WDT)” for more information on the

                                                                 Watchdog Timer Reset.

Many systems have external supervisory circuits that

generate Reset signals to reset multiple devices in the          6.7      Trap Conflict Reset

system. This External Reset signal can be directly con-

nected to the MCLR pin to reset the device when the              If a lower priority hard trap occurs while a higher priority

rest of system is reset.                                         trap is being processed, a hard Trap Conflict Reset

                                                                 occurs. The hard traps include exceptions of Priority

6.4.2         INTERNAL SUPERVISORY CIRCUIT                       Level   13  through  Priority   Level    15,  inclusive.    The

When using the internal power supervisory circuit to             address error (Level 13) and oscillator error (Level 14)

reset the device, the External Reset pin (MCLR) should           traps fall into this category.

be tied directly or resistively to VDD. In this case, the        The Trap Reset bit (TRAPR) in the Reset Control reg-

MCLR pin will not be used to generate a Reset. The               ister (RCON<15>) is set to indicate the Trap Conflict

External Reset pin (MCLR) does not have an internal              Reset. Refer to Section 7.0 “Interrupt Controller” for

pull-up and must not be left unconnected.                        more information on Trap Conflict Resets.

6.5      Software RESET Instruction (SWR)                        6.8      Configuration Mismatch Reset

Whenever the RESET instruction is executed, the device           To maintain the integrity of the Peripheral Pin Select

will  assert  SYSRST,     placing  the  device  in  a  special   Control registers, they are constantly monitored with

Reset state. This Reset state will not re-initialize the         the shadow registers in hardware. If an unexpected

clock. The clock source in effect prior to the RESET             change in any of the registers occurs (such as cell

instruction will remain. SYSRST is released at the next          disturbances caused by ESD or other external events),

instruction   cycle  and    the    Reset  vector    fetch  will  a Configuration Mismatch Reset occurs.

commence.                                                        The Configuration Mismatch (CM) flag bit in the Reset

The Software Reset (instruction) Flag bit (SWR) in the           Control register (RCON<9>) is set to indicate the Con-

Reset Control register (RCON<6>) is set to indicate the          figuration Mismatch Reset. Refer to Section 10.0 “I/O

Software Reset.                                                  Ports”   for  more   information    on   the      Configuration

                                                                 Mismatch Reset.

                                                                 Note:         The    Configuration       Mismatch  Reset

                                                                               feature and associated Reset flag are not

                                                                               available on all devices.

 2011-2014 Microchip Technology Inc.                                                                   DS30009997E-page 71
PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

6.9         Illegal Condition Device Reset                           6.9.3         SECURITY RESET

An Illegal Condition device Reset occurs due to the                  If  a    Program   Flow  Change     (PFC)   or  Vector  Flow

following sources:                                                   Change (VFC) targets a restricted location in a pro-

•  Illegal Opcode Reset                                              tected   segment   (Boot    and   Secure    Segment),    that

                                                                     operation will cause a Security Reset.

•  Uninitialized W Register Reset                                    The      PFC  occurs     when  the    Program   Counter      is

•  Security Reset                                                    reloaded as a result of a Call, Jump, Computed Jump,

The Illegal Opcode or Uninitialized W Access Reset                   Return, Return from Subroutine or other form of branch

Flag   bit  (IOPUWR)     in  the  Reset  Control  register           instruction.

(RCON<14>) is set to indicate the Illegal Condition                  The      VFC  occurs     when  the    Program   Counter      is

Device Reset.                                                        reloaded with an interrupt or trap vector.

6.9.1          ILLEGAL OPCODE RESET                                  6.10       Using the RCON Status Bits

A device Reset is generated if the device attempts to

execute an illegal opcode value that is fetched from                 The user application can read the Reset Control regis-

program memory.                                                      ter (RCON) after any device Reset to determine the

The   Illegal  Opcode  Reset  function   can  prevent     the        cause of the Reset.

device from executing program memory sections that                       Note:     The  status   bits  in  the  RCON    register

are used to store constant data. To take advantage of                              should be cleared after they are read so

the Illegal Opcode Reset, use only the lower 16 bits of                            that the next RCON register value after a

each program memory section to store the data values.                              device Reset will be meaningful.

The upper 8 bits should be programmed with 0x3F,

which is an illegal opcode value.                                    Table 6-3     provides   a  summary   of    Reset  flag  bit

                                                                     operation.

6.9.2          UNINITIALIZED W REGISTER

               RESET

Any attempts to use the Uninitialized W register as an

Address Pointer will reset the device. The W register

array (with the exception of W15) is cleared during all

Resets and is considered uninitialized until written to.

TABLE 6-3:          RESET     FLAG BIT OPERATION

            Flag Bit                                      Set by:                                      Cleared by:

TRAPR (RCON<15>)                              Trap conflict event                                      POR, BOR

IOPWR (RCON<14>)                  Illegal opcode or Uninitialized W register    access                 POR, BOR

                                                  or Security Reset

CM (RCON<9>)                                  Configuration Mismatch                                   POR, BOR

EXTR (RCON<7>)                                    MCLR Reset                                               POR

SWR (RCON<6>)                                     RESET instruction                                    POR, BOR

WDTO (RCON<4>)                                    WDT Time-out                                   PWRSAV instruction,

                                                                                             CLRWDT instruction, POR, BOR

SLEEP (RCON<3>)                          PWRSAV   #SLEEP instruction                                   POR, BOR

IDLE (RCON<2>)                           PWRSAV        #IDLE instruction                               POR, BOR

BOR (RCON<1>)                                     POR, BOR                                                 —

POR (RCON<0>)                                             POR                                              —

   Note:    All Reset flag bits can be set or cleared by user software.

DS30009997E-page 72                                                                         2011-2014 Microchip Technology Inc.
      PIC24FJ16MC101/102 AND                                                  PIC24FJ32MC101/102/104

7.0        INTERRUPT CONTROLLER                                               Interrupt vectors are prioritized in terms of their natural

                                                                              priority. This priority is linked to their position in the

   Note    1:   This      data        sheet       summarizes         the      vector table. Lower addresses generally have a higher

                features      of  the     PIC24FJ16MC101/102                  natural priority. For example, the interrupt associated

                and     PIC24FJ32MC101/102/104                      family    with Vector 0 will take priority over interrupts at any

                of   devices.     It  is    not   intended      to  be  a     other vector address.

                comprehensive             reference        source.      To    PIC24FJ16MC101/102              and      PIC24FJ32MC101/102/

                complement the information in this data                       104 devices implement up to 26 unique interrupts and

                sheet, refer to “Interrupts” (DS39707) in                     4  nonmaskable       traps.     These     are      summarized      in

                the   “dsPIC33/PIC24              Family   Reference          Table 7-1 and Table 7-2.

                Manual”,      which       is  available     from     the

                Microchip web site (www.microchip.com).                       7.1.1           ALTERNATE INTERRUPT VECTOR

           2:   It    is  important           to  note      that     the                      TABLE

                specifications in Section 26.0 “Electri-                      The Alternate Interrupt Vector Table (AIVT) is located

                cal Characteristics” of this data sheet                       after the IVT, as shown in Figure 7-1. Access to the

                supercede any specifications that may be                      AIVT    is      provided   by   the      ALTIVT          control   bit

                provided in the “dsPIC33/PIC24 Family                         (INTCON2<15>). If the ALTIVT bit is set, all interrupt

                Reference Manual” sections.                                   and   exception      processes  use      the       alternate  vectors

           3:   Some      registers         and     associated       bits     instead of the default vectors. The alternate vectors are

                described      in     this    section      may  not     be    organized in the same manner as the default vectors.

                available      on      all    devices.      Refer       to    The AIVT supports debugging by providing a way to

                Section 4.0 “Memory Organization” in                          switch between an application and a support environ-

                this data sheet for device-specific register                  ment    without  requiring      the  interrupt      vectors   to   be

                and bit information.                                          reprogrammed.        This  feature       also  enables   switching

The interrupt controller reduces the numerous periph-                         between applications to facilitate evaluation of different

eral  interrupt     request       signals     to  a  single     interrupt     software    algorithms     at   run  time.     If  the  AIVT  is   not

request    signal     to  the      PIC24FJ16MC101/102                 and     needed,     it  should    be    programmed         with  the  same

PIC24FJ32MC101/102/104 CPU. It has the following                              addresses used in the IVT.

features:

•  Up to eight processor exceptions and software traps                        7.2         Reset Sequence

•  Seven user-selectable priority levels                                      A device Reset is not a true exception because the

•  Interrupt Vector Table (IVT) with up to 118 vectors                        interrupt controller is not involved in the Reset process.

•  A unique vector for each interrupt or exception                            The    PIC24FJ16MC101/102            and       PIC24FJ32MC101/

   source                                                                     102/104 devices clear their registers in response to a

•  Fixed priority within a specified user priority level                      Reset, forcing the PC to zero. The microcontroller then

                                                                              begins   program     execution       at  location,      0x000000.  A

•  Alternate Interrupt Vector Table (AIVT) for debug                          GOTO    instruction  at    the  Reset    address        can   redirect

   support                                                                    program execution to the appropriate start-up routine.

•  Fixed interrupt entry and return latencies

                                                                                 Note:        Any  unimplemented             or  unused     vector

7.1        Interrupt Vector Table                                                             locations in the IVT and AIVT should be

                                                                                              programmed with the address of a default

The Interrupt Vector Table (IVT) is shown in Figure 7-1.                                      interrupt handler routine that contains a

The   IVT      resides    in  program         memory,       starting    at                    RESET instruction.

location,   000004h.      The      IVT      contains       126  vectors,

consisting of eight non-maskable trap vectors, plus up

to 118 sources of interrupt. In general, each interrupt

source     has   its  own     vector.       Each     interrupt      vector

contains a 24-bit-wide address. The value programmed

into  each     interrupt      vector      location     is  the      starting

address of the associated Interrupt Service Routine

(ISR).

 2011-2014 Microchip Technology Inc.                                                                                  DS30009997E-page 73
PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

FIGURE 7-1:                            PIC24FJ16MC101/102 and PIC24FJ32MC101/102/104 INTERRUPT

                                       VECTOR TABLE

                                       Reset – GOTO Instruction     0x000000

                                       Reset – GOTO Address         0x000002

                                       Reserved                     0x000004

                                       Oscillator Fail Trap Vector

                                       Address Error Trap Vector

                                       Stack Error Trap Vector

                                       Math Error Trap Vector

                                       Reserved

                                       Reserved

                                       Reserved

                                       Interrupt Vector 0           0x000014

                                       Interrupt Vector 1

                                       ~

                                       ~

                                       ~

                                       Interrupt Vector 52          0x00007C  Interrupt Vector Table (IVT)(1)

                                       Interrupt Vector 53          0x00007E

Decreasing Natural Order Priority      Interrupt Vector 54          0x000080

                                       ~

                                       ~

                                       ~

                                       Interrupt Vector 116         0x0000FC

                                       Interrupt Vector 117         0x0000FE

                                       Reserved                     0x000100

                                       Reserved                     0x000102

                                       Reserved

                                       Oscillator Fail Trap Vector

                                       Address Error Trap Vector

                                       Stack Error Trap Vector

                                       Math Error Trap Vector

                                       Reserved

                                       Reserved

                                       Reserved

                                       Interrupt Vector 0           0x000114

                                       Interrupt Vector 1

                                       ~

                                       ~

                                       ~                                      Alternate Interrupt Vector Table  (AIVT)(1)

                                       Interrupt Vector 52          0x00017C

                                       Interrupt Vector 53          0x00017E

                                       Interrupt Vector 54          0x000180

                                       ~

                                       ~

                                       ~

                                       Interrupt Vector 116

                                       Interrupt Vector 117         0x0001FE

                                       Start of Code                0x000200

Note                               1:  See Table 7-1 for the list of implemented interrupt vectors.

DS30009997E-page 74                                                                                   2011-2014 Microchip Technology  Inc.
PIC24FJ16MC101/102 AND PIC24FJ32MC101/102/104

TABLE 7-1:  INTERRUPT VECTORS

            Interrupt

Vector      Request       IVT Address        AIVT Address                              Interrupt Source

Number      (IRQ)

            Number

8           0             0x000014           0x000114           INT0 – External Interrupt 0

9           1             0x000016           0x000116           IC1 – Input Capture 1

10          2             0x000018           0x000118           OC1 – Output Compare 1

11          3             0x00001A           0x00011A           T1 – Timer1

12          4             0x00001C           0x00011C           Reserved

13          5             0x00001E           0x00011E           IC2 – Input Capture 2

14          6             0x000020           0x000120           OC2 – Output Compare 2

15          7             0x000022           0x000122           T2 – Timer2

16          8             0x000024           0x000124           T3 – Timer3

17          9             0x000026           0x000126           SPI1E – SPI1 Error

18          10            0x000028           0x000128           SPI1 – SPI1 Transfer Done

19          11            0x00002A           0x00012A           U1RX – UART1 Receiver

20          12            0x00002C           0x00012C           U1TX – UART1 Transmitter

21          13            0x00002E           0x00012E           ADC1 – Analog-to-Digital Converter 1

22          14            0x000030           0x000130           Reserved

23          15            0x000032           0x000132           Reserved

24          16            0x000034           0x000134           SI2C1 – I2C1 Slave Events

25          17            0x000036           0x000136           MI2C1 – I2C1 Master Events

26          18            0x000038           0x000138           CMP – Comparator Interrupt

27          19            0x00003A           0x00013A           Change Notification Interrupt

28          20            0x00003C           0x00013C           INT1 – External Interrupt 1

29-34       21-26         0x00003E-0x000048  0x00013E-0x000148  Reserved

35          27            0x00004A           0x00014A           T4 – Timer4(1)

36          28            0x00004C           0x00014C           T5 – Timer5(1)

37          29            0x00004E           0x00014E           INT2 – External Interrupt 2

38-44       30-36         0x000050-0x00005A  0x000150-0x00015C  Reserved

45          37            0x00005E           0x00015E           IC3 – Input Capture 3

46-64       38-56         0x000060-0x000084  0x000160-0x000184  Reserved

65          57            0x000086           0x000186           PWM1 – PWM1 Period Match

66-69       58-61         0x000088-0x00008E  0x000188-0x00018E  Reserved

70          62            0x000090           0x000190           RTCC – Real-Time Clock and Calendar

71          63            0x000092           0x000192           FLTA1 – PWM1 Fault A

72          64            0x000094           0x000194           FLTB1 – PWM1 Fault B(2)

73          65            0x000096           0x000196           U1E – UART1 Error

74-84       66-76         0x000098-0x0000AC  0x000198-0x0001AC  Reserved

85          77            0x0000AE           0x0001AE           CTMU – Charge Time Measurement Unit

86-125      78-117        0x0000B0-0x0000FE  0x0001B0-0x0001FE  Reserved

Note  1:  This interrupt  source is available in PIC24FJ32MC101/102/104 devices only.

      2:  This interrupt  vector is not available in PIC24FJ(16/32)MC101 devices.

 2011-2014 Microchip Technology Inc.                                                    DS30009997E-page 75
PIC24FJ16MC101/102 AND                                      PIC24FJ32MC101/102/104

TABLE 7-2:          TRAP   VECTORS

         Vector  Number             IVT Address                  AIVT Address                       Trap Source

                 0                     0x000004                     0x000104              Reserved

                 1                     0x000006                     0x000106              Oscillator Failure

                 2                     0x000008                     0x000108              Address Error

                 3                     0x00000A                     0x00010A              Stack Error

                 4                     0x00000C                     0x00010C              Math Error

                 5                     0x00000E                     0x00010E              Reserved

                 6                     0x000010                     0x000110              Reserved

                 7                     0x000012                     0x000112              Reserved

7.3      Interrupt Control and Status                       7.3.4         IPCx

         Registers                                          The IPCx registers are used to set the Interrupt Priority

The    PIC24FJ16MC101/102     and  PIC24FJ32MC101/          Level for each source of interrupt. Each user interrupt

102/104 devices implement a total of 26 registers for       source can be assigned to one of eight priority levels.

the interrupt controller:                                   7.3.5         INTTREG

•  INTCON1                                                  The     INTTREG     register      contains   the    associated

•  INTCON2                                                  interrupt vector number and the new CPU Interrupt

•  IFSx                                                     Priority Level, which are latched into Vector Number

•  IECx                                                     (VECNUM<6:0>)       and      Interrupt  Level   (ILR<3:0>)  bit

•  IPCx                                                     fields   in  the  INTTREG     register.  The    new  Interrupt

•  INTTREG                                                  Priority Level is the priority of the pending interrupt.

                                                            The interrupt sources are assigned to the IFSx, IECx

7.3.1       INTCON1 AND INTCON2                             and IPCx registers in the same sequence that they are

Global interrupt control functions are controlled from      listed in Table 7-1. For example, the INT0 (External

INTCON1  and        INTCON2.  INTCON1  contains       the   Interrupt 0) is shown as having Vector Number 8 and a

Interrupt Nesting Disable bit (NSTDIS) as well as the       natural order priority of 0. Thus, the INT0IF bit is found

control and status flags for the processor trap sources.    in IFS0<0>, the INT0IE bit in IEC0<0> and the INT0IPx

The INTCON2 register controls the external interrupt        bits in the first positions of IPC0 (IPC0<2:0>).

request signal behavior and the use of the Alternate        7.3.6         STATUS/CONTROL REGISTERS

Interrupt Vector Table.

                                                            Although they are not specifically part of the interrupt

7.3.2       IFSx                                            control  hardware,  two      of   the  CPU  Control  registers

The IFSx registers maintain all of the interrupt request    contain bits that control interrupt functionality.

flags. Each source of interrupt has a status bit, which is  •  The CPU STATUS Register, SR, contains the

set by the respective peripherals or external signal and       IPL<2:0> bits (SR<7:5>). These bits indicate the

is cleared via software.                                       current CPU Interrupt Priority Level. The user

                                                               application can change the current CPU Interrupt

7.3.3       IECx                                               Priority Level by writing to the IPLx bits.

The IECx registers maintain all of the interrupt enable     •  The CORCON register contains the IPL3 bit

bits. These control bits are used to individually enable       which, together with IPL<2:0>, also indicates the

interrupts from the peripherals or external signals.           current CPU priority level. IPL3 is a read-only bit

                                                               so that trap events cannot be masked by the user