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

产品描述

搜索

dsPIC33CK64MP205-I/PT

器件型号:dsPIC33CK64MP205-I/PT
器件类别:半导体    嵌入式处理器和控制器    数字信号处理器和控制器 - DSP, DSC   
厂商名称:Microchip
厂商官网:https://www.microchip.com
标准:
下载文档

器件描述

数字信号处理器和控制器 - DSP, DSC 16 Bit DSC, 64KB Flash, 8KB RAM, 100MHz, 28Pin, 3 OpAmp, 3 Comp, PTG

参数
产品属性属性值
制造商:Microchip
产品种类:数字信号处理器和控制器 - DSP, DSC
RoHS:详细信息
安装风格:SMD/SMT
封装 / 箱体:TQFP-48
系列:dsPIC33CK
产品:DSCs
核心:dsPIC33CK
最大时钟频率:100 MHz
程序存储器大小:64 kB
数据 RAM 大小:8 kB
工作电源电压:3 V to 3.6 V
最小工作温度:- 40 C
最大工作温度:+ 85 C
封装:Tray
程序存储器类型:Flash
商标:Microchip Technology
接口类型:CAN, I2C, I2S, SPI, UART
数据总线宽度:16 bit
说明书类型:Fixed/Floating Point
内核数量:1 Core
计时器/计数器数量:1 Timer
产品类型:DSP - Digital Signal Processors & Controllers
工厂包装数量:250
子类别:Embedded Processors & Controllers
电源电压-最大:3.6 V
电源电压-最小:3 V
商标名:dsPIC
看门狗计时器:Watchdog Timer

dsPIC33CK64MP205-I/PT器件文档内容

                                          dsPIC33CK256MP508 FAMILY

               28/36/48/64/80-Pin, 16-Bit Digital Signal Controllers

   with High-Resolution PWM and CAN Flexible Data (CAN FD)

Operating Conditions                                Power Management

•  3.0V to 3.6V, -40°C to +85°C, DC to 100 MIPS     •  Low-Power Management Modes (Sleep,

•  3.0V to 3.6V, -40°C to +125°C, DC to 100 MIPS       Idle, Doze)

                                                    •  Integrated Power-on Reset and Brown-out Reset

Core: 16-Bit dsPIC33CK CPU                          High-Speed PWM

•  32-256 Kbytes of Program Flash with ECC and

   8-24K RAM                                        •  8 PWM Pairs

•  Fast 6-Cycle Divide                              •  Up to 250 ps PWM Resolution

•  LiveUpdate                                       •  Dead Time for Rising and Falling Edges

•  Code Efficient (C and Assembly) Architecture     •  Dead-Time Compensation

•  40-Bit Wide Accumulators                         •  Clock Chopping for High-Frequency Operation

•  Single-Cycle (MAC/MPY) with Dual Data Fetch      •  PWM Support for:

•  Single-Cycle, Mixed-Sign MUL Plus                   -  DC/DC, AC/DC, inverters, PFC, lighting

   Hardware Divide                                     -  BLDC, PMSM, ACIM, SRM motors

•  32-Bit Multiply Support                          •  Fault and Current Limit Inputs

•  Four Sets of Interrupt Context Saving Registers  •  Flexible Trigger Configuration for ADC Triggering

   which Include Accumulator and STATUS for Fast

   Interrupt Handling                               Timers/Output Compare/Input Capture

•  Zero Overhead Looping                            •  One General Purpose Timer

•  RAM Memory Built-In Self-Test (MBIST)            •  Peripheral Trigger Generator (PTG):

Clock Management                                       -  Up to 15 trigger sources to other

•  Internal Oscillator                                    peripheral modules

•  Programmable PLLs and Oscillator Clock Sources      -  CPU independent state machine-based

                                                          instruction sequencer

•  Reference Clock Output                           •  Nine MCCP/SCCP modules which Include Timer,

•  Fail-Safe Clock Monitor (FSCM)                      Capture/Compare and PWM:

•  Fast Wake-up and Start-up                           -  1 MCCP

•  Backup Internal Oscillator                          -  8 SCCPs

                                                       -  16 or 32-bit time base

                                                       -  16 or 32-bit capture

                                                       -  4-deep capture buffer

                                                    •  Fully Asynchronous Operation, Available in

                                                       Sleep Modes

 2017-2018 Microchip Technology Inc.     Advance Information                          DS70005349B-page 1
dsPIC33CK256MP508                                         FAMILY

Advanced Analog Features                                  Direct Memory Access (DMA)

•  High-Speed ADC module:                                 •  Four DMA Channels

   -  12-bit with two dedicated SAR ADC cores

      and one shared SAR ADC core                         Debugger Development Support

   -  Configurable resolution (up to 12-bit) for each     •  In-Circuit and In-Application Programming and

      ADC core                                               Debugging

   -  Up to 3.5 Msps conversion rate per channel          •  Three Complex, Five Simple Breakpoints

      at 12-bit resolution                                •  IEEE 1149.2 Compatible (JTAG) Boundary Scan

   -  Up to 24 input channels                             •  Trace Buffer and Run-Time Watch

   -  Dedicated result buffer for each analog channel

   -  Flexible and independent ADC trigger sources        Safety Features

   -  Four digital comparators

   -  Four oversampling filters for increased resolution  •  Clock Monitor System with Backup Oscillator

•  Up to Three Analog Comparators:                        •  DMT (Deadman Timer)

   -  15 ns analog comparator                             •  ECC (Error Correcting Code)

•  Up to Three Op Amps                                    •  WDT (Watchdog Timer)

•  Three 12-Bit DACs:                                     •  CodeGuard™ Security

   -  Hardware slope compensation                         •  CRC (Cyclic Redundancy Check)

                                                          •  ICSP™ Write Inhibit

Communication Interfaces                                  •  RAM Memory Built-In Self-Test (MBIST)

•  Three Protocol UARTs with Automated Protocol           Qualification and Class B Support

   Handling Support for:

   -  LIN 2.2                                             •  AEC-Q100 REVG (Grade 1: -40°C to +125°C)

   -  DMX                                                    Compliant

   -  IrDA®                                               •  Class B Safety Library, IEC 60730

•  Three 4-Wire SPI/I2S modules

•  CAN Flexible Data (FD) module

•  Three I2C modules with SMBus Support

•  PPS to Allow Function Remap

•  Programmable Cyclic Redundancy Check (CRC)

•  Two SENT modules

•  Parallel Master Port (PMP)

DS70005349B-page 2                       Advance Information             2017-2018 Microchip Technology Inc.
 2017-2018 Microchip Technology Inc.  dsPIC33CK256MP508 PRODUCT FAMILIES

                                       The device names, pin counts, memory sizes and peripheral availability of each device are listed in Table 1 and Table 2. The following pages show their pinout diagrams.

                                       TABLE 1:  dsPIC33CK256MP508 FAMILY WITH CAN FD

                                       Product Pins       Pins  Flash  Data RAM  ADC Module  ADC Channels  Timers  MCCP/SCCP  CAN FD  DMA Channels  SENT  UART  SPI  I2C  QEI  CLC  PTG  CRC  PWM (High Speed)  Analog Comparators  12-Bit DAC  Op Amp  PMP  REFO Clock

                                       dsPIC33CK256MP508  80    256K   24K       3           24            1       1/8        1       4             2     3     3    3    2    4    1    1    8                 3                   3           3       1    1

Advance Information                    dsPIC33CK256MP506  64    256K   24K       3           20            1       1/8        1       4             2     3     3    3    2    4    1    1    8                 3                   3           3       1    1

                                       dsPIC33CK256MP505  48    256K   24K       3           19            1       1/8        1       4             2     3     3    3    2    4    1    1    8                 3                   3           3       0    1           dsPIC33CK256MP508 FAMILY

                                       dsPIC33CK256MP503  36    256K   24K       3           16            1       1/8        1       4             2     3     3    3    2    4    1    1    8                 3                   3           3       0    1

                                       dsPIC33CK256MP502  28    256K   24K       3           12            1       1/8        1       4             2     3     3    3    2    4    1    1    8                 3                   3           2       0    1

                                       dsPIC33CK128MP508  80    128K   16K       3           24            1       1/8        1       4             2     3     3    3    2    4    1    1    8                 3                   3           3       1    1

                                       dsPIC33CK128MP506  64    128K   16K       3           20            1       1/8        1       4             2     3     3    3    2    4    1    1    8                 3                   3           3       1    1

                                       dsPIC33CK128MP505  48    128K   16K       3           19            1       1/8        1       4             2     3     3    3    2    4    1    1    8                 3                   3           3       0    1

                                       dsPIC33CK128MP503  36    128K   16K       3           16            1       1/8        1       4             2     3     3    3    2    4    1    1    8                 3                   3           3       0    1

                                       dsPIC33CK128MP502  28    128K   16K       3           12            1       1/8        1       4             2     3     3    3    2    4    1    1    8                 3                   3           2       0    1

                                       dsPIC33CK64MP508   80    64k    8k        3           24            1       1/8        1       4             2     3     3    3    2    4    1    1    8                 3                   3           3       1    1

                                       dsPIC33CK64MP506   64    64k    8k        3           20            1       1/8        1       4             2     3     3    3    2    4    1    1    8                 3                   3           3       1    1

                                       dsPIC33CK64MP505   48    64k    8k        3           19            1       1/8        1       4             2     3     3    3    2    4    1    1    8                 3                   3           3       0    1

                                       dsPIC33CK64MP503   36    64k    8k        3           16            1       1/8        1       4             2     3     3    3    2    4    1    1    8                 3                   3           3       0    1

                                       dsPIC33CK64MP502   28    64k    8k        3           12            1       1/8        1       4             2     3     3    3    2    4    1    1    8                 3                   3           2       0    1

                                       dsPIC33CK32MP506   64    32k    8k        3           20            1       1/8        1       4             2     3     3    3    2    4    1    1    8                 3                   3           3       1    1

DS70005349B-page 3                     dsPIC33CK32MP505   48    32k    8k        3           19            1       1/8        1       4             2     3     3    3    2    4    1    1    8                 3                   3           3       0    1

                                       dsPIC33CK32MP503   36    32k    8k        3           16            1       1/8        1       4             2     3     3    3    2    4    1    1    8                 3                   3           3       0    1

                                       dsPIC33CK32MP502   28    32k    8k        3           12            1       1/8        1       4             2     3     3    3    2    4    1    1    8                 3                   3           2       0    1
DS70005349B-page 4                     TABLE 2:  dsPIC33CK256MP508 FAMILY WITHOUT                                             CAN     FD                                                                                                                                 dsPIC33CK256MP508 FAMILY

                                       Product Pins       Pins  Flash  Data RAM  ADC Module  ADC Channels  Timers  MCCP/SCCP  CAN FD  DMA Channels  SENT  UART  SPI  I2C  QEI  CLC  PTG  CRC  PWM (High Speed)  Analog Comparators  12-Bit DAC  Op Amp  PMP  REFO Clock

                                       dsPIC33CK256MP208  80    256K   24K       3           24            1       1/8        0       4             2     3     3    3    2    4    1    1    8                 3                   3           3       1    1

                                       dsPIC33CK256MP206  64    256K   24K       3           20            1       1/8        0       4             2     3     3    3    2    4    1    1    8                 3                   3           3       1    1

                                       dsPIC33CK256MP205  48    256K   24K       3           19            1       1/8        0       4             2     3     3    3    2    4    1    1    8                 3                   3           3       0    1

                                       dsPIC33CK256MP203  36    256K   24K       3           16            1       1/8        0       4             2     3     3    3    2    4    1    1    8                 3                   3           3       0    1

Advance Information                    dsPIC33CK256MP202  28    256K   24K       3           12            1       1/8        0       4             2     3     3    3    2    4    1    1    8                 3                   3           2       0    1

                                       dsPIC33CK128MP208  80    128K   16K       3           24            1       1/8        0       4             2     3     3    3    2    4    1    1    8                 3                   3           3       1    1

                                       dsPIC33CK128MP206  64    128K   16K       3           20            1       1/8        0       4             2     3     3    3    2    4    1    1    8                 3                   3           3       1    1

                                       dsPIC33CK128MP205  48    128K   16K       3           19            1       1/8        0       4             2     3     3    3    2    4    1    1    8                 3                   3           3       0    1

                                       dsPIC33CK128MP203  36    128K   16K       3           16            1       1/8        0       4             2     3     3    3    2    4    1    1    8                 3                   3           3       0    1

                                       dsPIC33CK128MP202  28    128K   16K       3           12            1       1/8        0       4             2     3     3    3    2    4    1    1    8                 3                   3           2       0    1

                                       dsPIC33CK64MP208   80    64k    8k        3           24            1       1/8        0       4             2     3     3    3    2    4    1    1    8                 3                   3           3       1    1

                                       dsPIC33CK64MP206   64    64k    8k        3           20            1       1/8        0       4             2     3     3    3    2    4    1    1    8                 3                   3           3       1    1

                                       dsPIC33CK64MP205   48    64k    8k        3           19            1       1/8        0       4             2     3     3    3    2    4    1    1    8                 3                   3           3       0    1

                                       dsPIC33CK64MP203   36    64k    8k        3           16            1       1/8        0       4             2     3     3    3    2    4    1    1    8                 3                   3           3       0    1

                                       dsPIC33CK64MP202   28    64k    8k        3           12            1       1/8        0       4             2     3     3    3    2    4    1    1    8                 3                   3           2       0    1

 2017-2018 Microchip Technology Inc.  dsPIC33CK32MP206   64    32k    8k        3           20            1       1/8        0       4             2     3     3    3    2    4    1    1    8                 3                   3           3       1    1

                                       dsPIC33CK32MP205   48    32k    8k        3           19            1       1/8        0       4             2     3     3    3    2    4    1    1    8                 3                   3           3       0    1

                                       dsPIC33CK32MP203   36    32k    8k        3           16            1       1/8        0       4             2     3     3    3    2    4    1    1    8                 3                   3           3       0    1

                                       dsPIC33CK32MP202   28    32k    8k        3           12            1       1/8        0       4             2     3     3    3    2    4    1    1    8                 3                   3           2       0    1
                                                        dsPIC33CK256MP508                                                                FAMILY

Pin    Diagrams

       28-Pin SSOP

                                                        RA1   1                                       28    RA0

                                                        RA2   2                                       27    MCLR

                                                        RA3   3   dsPIC33CKXXXMP202dsPIC33CKXXXMP502  26    RB15

                                                        RA4   4                                       25    RB14

                                                   AVDD       5                                       24    RB13

                                                   AVSS       6                                       23    RB12

                                                        VDD   7                                       22    RB11

                                                        VSS   8                                       21    RB10

                                                        RB0   9                                       20    VDD

                                                        RB1   10                                      19    VSS

                                                        RB2   11                                      18    RB9

                                                        RB3   12                                      17    RB8

                                                        RB4   13                                      16    RB7

                                                        RB5   14                                      15    RB6

       Note: Shaded     pins  are  up  to  5  VDC  tolerant.

TABLE 3:     28-PIN SSOP

Pin #                          Function                           Pin #                                                        Function

1      OA1IN-/ANA1/RA1                                                               15               PGC3/RP38/SCL2/RB6

2      OA1IN+/AN9/RA2                                                                16               TDO/AN2/CMP3A/RP39/SDA3/RB7

3      DACOUT1/AN3/CMP1C/RA3                                                         17               PGD1/AN10/RP40/SCL1/RB8

4      AN4/CMP3B/IBIAS3/RA4                                                          18               PGC1/AN11/RP41/SDA1/RB9

5      AVDD                                                                          19               VSS

6      AVSS                                                                          20               VDD

7      VDD                                                                           21               TMS/RP42/PWM3H/RB10

8      VSS                                                                           22               TCK/RP43/PWM3L/RB11

9      OSCI/CLKI/AN5/RP32/RB0                                                        23               TDI/RP44/PWM2H/RB12

10     OSCO/CLKO/AN6/RP33/RB1                                                        24               RP45/PWM2L/RB13

11     OA2OUT/AN1/AN7/ANA0/CMP1D/CMP2D/CMP3D/RP34/                                   25               RP46/PWM1H/RB14

       SCL3/INT0/RB2

12     PGD2/OA2IN-/AN8/RP35/RB3                                                      26               RP47/PWM1L/RB15

13     PGC2/OA2IN+/RP36/RB4                                                          27               MCLR

14     PGD3/RP37/SDA2/RB5                                                            28               OA1OUT/AN0/CMP1A/IBIAS0/RA0

Note:  RPn represents remappable peripheral functions.

 2017-2018 Microchip Technology Inc.              Advance Information                                                                   DS70005349B-page 5
dsPIC33CK256MP508 FAMILY

Pin Diagrams (Continued)

       28-Pin UQFN

                                                         RB13  RB12  RB11  RB10  VDD  VSS  RB9

                                                         28 27 26 25 24 23 22

                                       RB14       1                                             21  RB8

                                       RB15       2                                             20  RB7

                                       MCLR       3      dsPIC33CKXXXMP502                      19  RB6

                                             RA0  4      dsPIC33CKXXXMP202                      18  RB5

                                             RA1  5                                             17  RB4

                                             RA2  6                                             16  RB3

                                             RA3  7                                             15  RB2

                                                         8     9     10 11 12 13 14

                                                         RA4   AVDD  AVSS  VDD   VSS  RB0  RB1

       Note: Shaded pins are up to 5         VDC tolerant.

TABLE 4:     28-PIN UQFN

Pin #                        Function                          Pin #                                     Function

1      RP46/PWM1H/RB14                                               15    OA2OUT/AN1/AN7/ANA0/CMP1D/CMP2D/CMP3D/RP34/SCL3/INT0/RB2

2      RP47/PWM1L/RB15                                               16    PGD2/OA2IN-/AN8/RP35/RB3

3      MCLR                                                          17    PGC2/OA2IN+/RP36/RB4

4      OA1OUT/AN0/CMP1A/IBIAS0/RA0                                   18    PGD3/RP37/SDA2/RB5

5      OA1IN-/ANA1/RA1                                               19    PGC3/RP38/SCL2/RB6

6      OA1IN+/AN9/RA2                                                20    TDO/AN2/CMP3A/RP39/SDA3/RB7

7      DACOUT1/AN3/CMP1C/RA3                                         21    PGD1/AN10/RP40/SCL1/RB8

8      AN4/CMP3B/IBIAS3/RA4                                          22    PGC1/AN11/RP41/SDA1/RB9

9      AVDD                                                          23    VSS

10     AVSS                                                          24    VDD

11     VDD                                                           25    TMS/RP42/PWM3H/RB10

12     VSS                                                           26    TCK/RP43/PWM3L/RB11

13     OSCI/CLKI/AN5/RP32/RB0                                        27    TDI/RP44/PWM2H/RB12

14     OSCO/CLKO/AN6/RP33/RB1                                        28    RP45/PWM2L/RB13

Note:  RPn represents remappable peripheral  functions.

DS70005349B-page 6                                Advance Information                                     2017-2018 Microchip Technology Inc.
                                                           dsPIC33CK256MP508 FAMILY

Pin Diagrams (Continued)

    36-Pin UQFN

                                                           RB13  RB12  RB11  RB10  VDD  VSS  RC5  RC4  RB9

                                                           36    35    34    33    32   31   30   29   28

                                         RB14           1                                                   27  RB8

                                         RB15           2                                                   26  RB7

                                       MCLR             3                                                   25  RB6

                                         RC0            4        dsPIC33CKXXXMP503                          24  RB5

                                         RA0            5        dsPIC33CKXXXMP203                          23  VDD

                                         RA1            6                                                   22  VSS

                                         RA2            7                                                   21  RB4

                                         RA3            8                                                   20  RB3

                                         RA4            9                                                   19  RB2

                                                           10    11    12    13    14   15   16   17   18

                                                           AVDD  AVSS  RC1   RC2   VDD  VSS  RC3  RB0  RB1

    Note: Shaded pins are up to 5 VDC tolerant.

TABLE 5:     36-PIN UQFN

Pin #                      Function                                    Pin #                                         Function

1      RP46/PWM1H/RB14                                                       19    OA2OUT/AN1/AN7/ANA0/CMP1D/CMP2D/CMP3D/RP34/SCL3/INT0/RB2

2      RP47/PWM1L/RB15                                                       20    PGD2/OA2IN-/AN8/RP35/RB3

3      MCLR                                                                  21    PGC2/OA2IN+/RP36/RB4

4      AN12/ANN0/RP48/RC0                                                    22    VSS

5      OA1OUT/AN0/CMP1A/IBIAS0/RA0                                           23    VDD

6      OA1IN-/ANA1/RA1                                                       24    PGD3/RP37/PWM6L/SDA2/RB5

7      OA1IN+/AN9/RA2                                                        25    PGC3/RP38/PWM6H/SCL2/RB6

8      DACOUT1/AN3/CMP1C/RA3                                                 26    TDO/AN2/CMP3A/RP39/SDA3/RB7

9      OA3OUT/AN4/CMP3B/IBIAS3/RA4                                           27    PGD1/AN10/RP40/SCL1/RB8

10     AVDD                                                                  28    PGC1/AN11/RP41/SDA1/RB9

11     AVSS                                                                  29    RP52/PWM5H/ASDA2/RC4

12     OA3IN-/AN13/CMP1B/ISRC0/RP49/RC1                                      30    RP53/PWM5L/ASCL2/RC5

13     OA3IN+/AN14/CMP2B/ISRC1/RP50/RC2                                      31    VSS

14     VDD                                                                   32    VDD

15     VSS                                                                   33    TMS/RP42/PWM3H/RB10

16     AN15/CMP2A/IBIAS2/RP51/RC3                                            34    TCK/RP43/PWM3L/RB11

17     OSCI/CLKI/AN5/RP32/RB0                                                35    TDI/RP44/PWM2H/RB12

18     OSCO/CLKO/AN6/RP33/RB1                                                36    RP45/PWM2L/RB13

Note:  RPn represents remappable peripheral functions.

 2017-2018 Microchip Technology Inc.          Advance Information                                                             DS70005349B-page 7
dsPIC33CK256MP508 FAMILY

Pin Diagrams (Continued)

48-Pin TQFP, UQFN

                              RB13  RB12     RB11  RB10  RD1  VDD  VSS  RC11  RC10  RC5  RC4   RB9

                              48    47       46    45    44   43   42   41    40    39   38    37

                    RB14  1                                                                         36     RB8

                    RB15  2                                                                         35     RB7

                    RC12  3                                                                         34     RB6

                    RC13  4                                                                         33     RB5

                    MCLR  5                                                                         32     VDD

                    RD13  6                  dsPIC33CKXXXMP505                                      31     VSS

                    RC0   7                  dsPIC33CKXXXMP205                                      30     RD8

                    RA0   8                                                                         29     RC9

                    RA1   9                                                                         28     RC8

                    RA2   10                                                                        27     RB4

                    RA3   11                                                                        26     RB3

                    RA4   12                                                                        25     RB2

                              13    14       15    16    17   18   19   20    21    22   23    24

                              AVDD  AVSS     RC1   RC2   RC6  VDD  VSS  RC3   RB0   RB1  RD10  RC7

Note: Shaded pins are up to 5 VDC tolerant.

DS70005349B-page 8                  Advance Information                                                   2017-2018  Microchip  Technology  Inc.
                                                        dsPIC33CK256MP508 FAMILY

TABLE 6:     48-PIN TQFP, UQFN

Pin #                       Function                    Pin #                            Function

1      RP46/PWM1H/RB14                                  25     OA2OUT/AN1/AN7/ANA0/CMP1D/CMP2D/CMP3D/RP34/SCL3/INT0/RB2

2      RP47/PWM1L/RB15                                  26     PGD2/OA2IN-/AN8/RP35/RB3

3      RP60/PWM8H/RC12                                  27     PGC2/OA2IN+/RP36/RB4

4      RP61/PWM8L/RC13                                  28     RP56/ASDA1/SCK2/RC8

5      MCLR                                             29     RP57/ASCL1/SDI2/RC9

6      ANN2/RP77/RD13                                   30     RP72/SDO2/PCI19/RD8

7      AN12/ANN0/RP48/RC0                               31     VSS

8      OA1OUT/AN0/CMP1A/IBIAS0/RA0                      32     VDD

9      OA1IN-/ANA1/RA1                                  33     PGD3/RP37/PWM6L/SDA2/RB5

10     OA1IN+/AN9/RA2                                   34     PGC3/RP38/PWM6H/SCL2/RB6

11     DACOUT1/AN3/CMP1C/RA3                            35     TDO/AN2/CMP3A/RP39/SDA3/RB7

12     OA3OUT/AN4/CMP3B/IBIAS3/RA4                      36     PGD1/AN10/RP40/SCL1/RB8

13     AVDD                                             37     PGC1/AN11/RP41/SDA1/RB9

14     AVSS                                             38     RP52/PWM5H/ASDA2/RC4

15     OA3IN-/AN13/CMP1B/ISRC0/RP49/RC1                 39     RP53/PWM5L/ASCL2/RC5

16     OA3IN+/AN14/CMP2B/ISRC1/RP50/RC2                 40     RP58/PWM7H/RC10

17     AN17/ANN1/IBIAS1/RP54/RC6                        41     RP59/PWM7L/RC11

18     VDD                                              42     VSS

19     VSS                                              43     VDD

20     AN15/CMP2A/IBIAS2/RP51/RC3                       44     RP65/PWM4H/RD1

21     OSCI/CLKI/AN5/RP32/RB0                           45     TMS/RP42/PWM3H/RB10

22     OSCO/CLKO/AN6/RP33/RB1                           46     TCK/RP43/PWM3L/RB11

23     AN18/CMP3C/ISRC3/RP74/RD10                       47     TDI/RP44/PWM2H/RB12

24     AN16/ISRC2/RP55/RC7                              48     RP45/PWM2L/RB13

Note:  RPn represents remappable peripheral functions.

 2017-2018 Microchip Technology Inc.    Advance Information                                       DS70005349B-page 9
dsPIC33CK256MP508 FAMILY

Pin Diagrams (Continued)

64-Pin TQFP, QFN

                                               RB13  RB12  RB11  RB10  RD0   RD1  RD2  VDD  VSS  RD3  RD4  RC11  RC10  RC5   RC4   RB9

                                               64    63    62    61    60    59   58   57   56   55   54   53    52    51    50    49

                                RB14       1                                                                                            48     RB8

                                RB15       2                                                                                            47     RB7

                           RC12            3                                                                                            46     RB6

                           RC13            4                                                                                            45     RB5

                           RC14            5                                                                                            44     RD5

                           RC15            6                                                                                            43     RD6

                           MCLR            7                     dsPIC33CKXXXMP506                                                      42     RD7

                           RD15            8                     dsPIC33CKXXXMP206                                                      41     VDD

                                VSS        9                                                                                            40     Vss

                                VDD        10                                                                                           39     RD8

                           RD14            11                                                                                           38     RD9

                           RD13            12                                                                                           37     RC9

                                RC0        13                                                                                           36     RC8

                                RA0        14                                                                                           35     RB4

                                RA1        15                                                                                           34     RB3

                                RA2        16                                                                                           33     RB2

                                               17    18    19    20    21    22   23   24   25   26   27   28    29    30    31    32

                                               RA3   RA4   AVDD  AVSS  RD12  RC1  RC2  RC6  VDD  VSS  RC3  RB0   RB1   RD11  RD10  RC7

Note: Shaded         pins  are  up  to  5  VDC       tolerant.

DS70005349B-page 10                                  Advance                      Information                                                 2017-2018  Microchip  Technology  Inc.
                                                        dsPIC33CK256MP508 FAMILY

TABLE 7:          64-PIN TQFP, QFN

Pin #                        Function                   Pin #                            Function

1      RP46/PWM1H/PMD5/RB14                             33     OA2OUT/AN1/AN7/ANA0/CMP1D/CMP2D/CMP3D/RP34/SCL3/INT0/RB2

2      RP47/PWM1L/PMD6/RB15                             34     PGD2/OA2IN-/AN8/RP35/RB3

3      RP60/PWM8H/PMD7/RC12                             35     PGC2/OA2IN+/RP36/RB4

4      RP61/PWM8L/PMA5/RC13                             36     RP56/ASDA1/SCK2/RC8

5      RP62/PWM6H/PMA4/RC14                             37     RP57/ASCL1/SDI2/RC9

6      RP63/PWM6L/PMA3/RC15                             38     RP73/PCI20/RD9

7      MCLR                                             39     RP72/SDO2/PCI19/RD8

8      RP79/PCI22/PMA2/RD15                             40     VSS

9      VSS                                              41     VDD

10     VDD                                              42     RP71/PMD15/RD7

11     RP78/PCI21/RD14                                  43     RP70/PMD14/RD6

12     ANN2/RP77/RD13                                   44     RP69/PMA15/PMCS2/RD5

13     AN12/ANN0/RP48/RC0                               45     PGD3/RP37/SDA2/PMA14/PMCS1/PSCS/RB5

14     OA1OUT/AN0/CMP1A/IBIAS0/RA0                      46     PGC3/RP38/SCL2/RB6

15     OA1IN-/ANA1/RA1                                  47     TDO/AN2/CMP3A/RP39/SDA3/RB7

16     OA1IN+/AN9/PMA6/RA2                              48     PGD1/AN10/RP40/SCL1/RB8

17     DACOUT1/AN3/CMP1C/RA3                            49     PGC1/AN11/RP41/SDA1/RB9

18     OA3OUT/AN4/CMP3B/IBIAS3/RA4                      50     RP52/PWM5H/ASDA2/RC4

19     AVDD                                             51     RP53/PWM5L/ASCL2/PMWR/PMENB/PSWR/RC5

20     AVss                                             52     RP58/PWM7H/PMRD/PMWR/PSRD/RC10

21     RP76/RD12                                        53     RP59/PWM7L/RC11

22     OA3IN-/AN13/CMP1B/ISRC0/RP49/PMA7/RC1            54     RP68/ASDA3/RD4

23     OA3IN+/AN14/CMP2B/ISRC1/RP50/PMD13/PMA13/RC2     55     RP67/ASCL3/RD3

24     AN17/ANN1/IBIAS1/RP54/PMD12/PMA12/RC6            56     VSS

25     VDD                                              57     VDD

26     VSS                                              58     RP66/RD2

27     AN15/CMP2A/IBIAS2/RP51/PMD11/PMA11/RC3           59     RP65/PWM4H/RD1

28     OSCI/CLKI/AN5/RP32/PMD10/PMA10/RB0               60     RP64/PWM4L/PMD0/RD0

29     OSCO/CLKO/AN6/RP33/PMA1/PMALH/PSA1/RB1           61     TMS/RP42/PWM3H/PMD1/RB10

30     AN19/CMP2C/RP75/PMA0/PMALL/PSA0/RD11             62     TCK/RP43/PWM3L/PMD2/RB11

31     AN18/CMP3C/ISRC3/RP74/PMD9/PMA9/RD10             63     TDI/RP44/PWM2H/PMD3/RB12

32     AN16/ISRC2/RP55/PMD8/PMA8/RC7                    64     RP45/PWM2L/PMD4/RB13

Note:  RPn represents remappable peripheral functions.

 2017-2018 Microchip Technology Inc.          Advance Information                                  DS70005349B-page 11
dsPIC33CK256MP508 FAMILY

Pin Diagrams (Continued)

80-Pin TQFP

                                             RB13  RE15  RB12RE14RB11RB10  RD0 RD1 RD2  VDD VSS  RD3  RD4 RC11  RC10RC5 RE13 RC4 RE12  RB9

                           RB14          1   80    79    78  77    76  75  74  73   72  71  70   69   68  67    66  65  64    63  62   61       60     RB8

                           RE0           2                                                                                                      59     RE11
                           RB15
                           RE1           3                                                                                                      58     RB7

                           RC12          4                                                                                                      57     RE10
                                         5
                           RC13                                                                                                                 56     RB6
                                         6                                                                                                      55     RB5
                           RC14          7
                                                                                                                                                54     RD5
                           RC15          8                                                                                                      53     RD6
                           MCLR          9
                           RD15          10                        dsPIC33CKXXXMP508                                                            52     RD7

                                VSS      11                                                                                                     51     VDD
                                                                                                                                                50     VSS
                           VDD           12                        dsPIC33CKXXXMP208                                                            49     RD8

                           RD14          13                                                                                                     48     RD9
                           RD13          14
                           RC0                                                                                                                  47     RC9
                                         15                                                                                                            RC8
                           RA0           16                                                                                                     46
                                                                                                                                                45     RB4
                           RE2           17                                                                                                     44     RE9
                           RA1           18                                                                                                     43     RB3
                                                                                                                                                       RE8
                           RE3           19                                                                                                     42     RB2
                           RA2                                                                                                                  41
                                         20

                                             21    22    23  24    25    26    27  28   29  30   31   32  33  34  35   36    37  38    39  40

                                             RA3  RE4  RA4   RE5   AVDD  AVSSRD12  RC1 RC2  RC6  VDD VSS  RC3RB0  RB1  RD11RE6   RD10RE7   RC7

Note: Shaded         pins  are  up   to  5   VDC tolerant.

DS70005349B-page 12                                    Advance                          Information                                                   2017-2018  Microchip  Technology  Inc.
                                                        dsPIC33CK256MP508 FAMILY

TABLE 8:          80-PIN TQFP

Pin #                        Function                   Pin #                            Function

1      RP46/PWM1H/PMD5/RB14                             41     OA2OUT/AN1/AN7/ANA0/CMP1D/CMP2D/CMP3D/RP34/SCL3/INT0/RB2

2      AN20/RE0                                         42     RE8

3      RP47/PWM1L/PMD6/RB15                             43     PGD2/OA2IN-/AN8/RP35/RB3

4      AN21/RE1                                         44     RE9

5      RP60/PWM8H/PMD7/RC12                             45     PGC2/OA2IN+/RP36/RB4

6      RP61/PWM8L/PMA5/RC13                             46     RP56/ASDA1/SCK2/RC8

7      RP62/PWM6H/PMA4/RC14                             47     RP57/ASCL1/SDI2/RC9

8      RP63/PWM6L/PMA3/RC15                             48     RP73/PCI20/RD9

9      MCLR                                             49     RP72/SDO2/PCI19/RD8

10     RP79/PCI22/PMA2/RD15                             50     VSS

11     VSS                                              51     VDD

12     VDD                                              52     RP71/PMD15/RD7

13     RP78/PCI21/RD14                                  53     RP70/PMD14/RD6

14     ANN2/RP77/RD13                                   54     RP69/PMA15/PMCS2/RD5

15     AN12/ANN0/RP48/RC0                               55     PGD3/RP37/SDA2/PMA14/PMCS1/PSCS/RB5

16     OA1OUT/AN0/CMP1A/IBIAS0/RA0                      56     PGC3/RP38/SCL2/RB6

17     AN22/RE2                                         57     RE10

18     OA1IN-/ANA1/RA1                                  58     TDO/AN2/CMP3A/RP39/SDA3/RB7

19     AN23/RE3                                         59     RE11

20     OA1IN+/AN9/PMA6/RA2                              60     PGD1/AN10/RP40/SCL1/RB8

21     DACOUT1/AN3/CMP1C/RA3                            61     PGC1/AN11/RP41/SDA1/RB9

22     RE4                                              62     RE12

23     OA3OUT/AN4/CMP3B/IBIAS3/RA4                      63     RP52/PWM5H/ASDA2/RC4

24     RE5                                              64     RE13

25     AVDD                                             65     RP53/PWM5L/ASCL2/PMWR/PMENB/PSWR/RC5

26     AVss                                             66     RP58/PWM7H/PMRD/PMWR/PSRD/RC10

27     RP76/RD12                                        67     RP59/PWM7L/RC11

28     OA3IN-/AN13/CMP1B/ISRC0/RP49/PMA7/RC1            68     RP68/ASDA3/RD4

29     OA3IN+/AN14/CMP2B/ISRC1/RP50/PMD13/PMA13/RC2     69     RP67/ASCL3/RD3

30     AN17/ANN1/IBIAS1/RP54/PMD12/PMA12/RC6            70     VSS

31     VDD                                              71     VDD

32     VSS                                              72     RP66/RD2

33     AN15/CMP2A/IBIAS2/RP51/PMD11/PMA11/RC3           73     RP65/PWM4H/RD1

34     OSCI/CLKI/AN5/RP32/PMD10/PMA10/RB0               74     RP64/PWM4L/PMD0/RD0

35     OSCO/CLKO/AN6/RP33/PMA1/PMALH/PSA1/RB1           75     TMS/RP42/PWM3H/PMD1/RB10

36     AN19/CMP2C/RP75/PMA0/PMALL/PSA0/RD11             76     TCK/RP43/PWM3L/PMD2/RB11

37     RE6                                              77     RE14

38     AN18/CMP3C/ISRC3/RP74/PMD9/PMA9/RD10             78     TDI/RP44/PWM2H/PMD3/RB12

39     RE7                                              79     RE15

40     AN16/ISRC2/RP55/PMD8/PMA8/RC7                    80     RP45/PWM2L/PMD4/RB13

Note:  RPn represents remappable peripheral functions.

 2017-2018 Microchip Technology Inc.          Advance Information                                  DS70005349B-page 13
dsPIC33CK256MP508 FAMILY

Table of Contents

1.0   Device Overview ........................................................................................................................................................................ 17

2.0   Guidelines for Getting Started with 16-Bit Digital Signal Controllers .......................................................................................... 23

3.0   CPU ............................................................................................................................................................................................ 29

4.0   Memory Organization ................................................................................................................................................................. 39

5.0   Flash Program Memory .............................................................................................................................................................. 77

6.0   Resets ........................................................................................................................................................................................ 91

7.0   Interrupt Controller ..................................................................................................................................................................... 95

8.0   I/O Ports ................................................................................................................................................................................... 115

9.0   Oscillator with High-Frequency PLL ......................................................................................................................................... 179

10.0  Direct Memory Access (DMA) Controller ................................................................................................................................. 203

11.0  Controller Area Network (CAN FD) Module ............................................................................................................................. 213

12.0  High-Resolution PWM with Fine Edge Placement ................................................................................................................... 257

13.0  High-Speed, 12-Bit Analog-to-Digital Converter (ADC)............................................................................................................ 291

14.0  High-Speed Analog Comparator with Slope Compensation DAC ............................................................................................ 319

15.0  Quadrature Encoder Interface (QEI) ........................................................................................................................................ 331

16.0  Universal Asynchronous Receiver Transmitter (UART) ........................................................................................................... 351

17.0  Serial Peripheral Interface (SPI)............................................................................................................................................... 373
      Inter-Integrated Circuit (I2C) ..................................................................................................................................................... 391
18.0

19.0  Parallel Master Port (PMP)....................................................................................................................................................... 401

20.0  Single-Edge Nibble Transmission (SENT) ............................................................................................................................... 415

21.0  Timer1 ...................................................................................................................................................................................... 425

22.0  Capture/Compare/PWM/Timer Modules (SCCP/MCCP) ......................................................................................................... 429

23.0  Configurable Logic Cell (CLC).................................................................................................................................................. 445

24.0  Peripheral Trigger Generator (PTG)......................................................................................................................................... 457

25.0  32-Bit Programmable Cyclic Redundancy Check (CRC) Generator ....................................................................................... 473

26.0  Current Bias Generator (CBG) ................................................................................................................................................. 477

27.0  Operational Amplifier ................................................................................................................................................................ 481

28.0  Deadman Timer (DMT)  ........................................................................................................................................................... 485

29.0  Power-Saving Features ............................................................................................................................................................ 493

30.0  Special Features ...................................................................................................................................................................... 505

31.0  Instruction Set Summary .......................................................................................................................................................... 531

32.0  Development Support............................................................................................................................................................... 541

33.0  Electrical Characteristics .......................................................................................................................................................... 545

34.0  Packaging Information.............................................................................................................................................................. 581

Appendix A: Revision History............................................................................................................................................................. 605

Index .................................................................................................................................................................................................    607

The Microchip Web Site ..................................................................................................................................................................... 615

Customer Change Notification Service .............................................................................................................................................. 615

Customer Support .............................................................................................................................................................................. 615

Product Identification System............................................................................................................................................................. 617

DS70005349B-page 14        Advance Information   2017-2018 Microchip Technology Inc.
                                                      dsPIC33CK256MP508 FAMILY

                                       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.

 2017-2018 Microchip Technology Inc.  Advance Information                                                     DS70005349B-page 15
dsPIC33CK256MP508 FAMILY

Referenced Sources

This  device  data    sheet  is   based      on  the  following

individual  chapters    of   the  “dsPIC33/PIC24         Family

Reference     Manual”.    These   documents      should    be

considered as the general reference for the operation

of a particular module or device feature.

   Note 1:    To  access    the   documents      listed  below,

              browse to the documentation section of the

              dsPIC33CK256MP508 product page of the

              Microchip   web     site  (www.microchip.com)

              or select a family reference manual section

              from the following list.

              In addition to parameters, features and

              other documentation, the resulting page

              provides    links   to    the  related     family

              reference manual sections.

•  “Introduction” (DS70573)

•  “dsPIC33E Enhanced CPU” (DS70005158)

•  “dsPIC33E/PIC24E Program Memory” (DS70000613)

•  “Data Memory” (DS70595)

•  “Dual Partition Flash Program Memory” (DS70005156)

•  “Flash Programming” (DS70609)

•  “Reset” (DS70602)

•  “Interrupts” (DS70000600)

•  “I/O Ports with Edge Detect” (DS70005322)

•  “Oscillator Module with High-Speed PLL” (DS70005255)

•  “Direct Memory Access Controller (DMA)” (DS39742)

•  “CAN Flexible Data-Rate (FD) Protocol Module” (DS70005340)

•  “High-Resolution PWM with Fine Edge Placement” (DS70005320)

•  “12-Bit High-Speed, Multiple SARs A/D Converter (ADC)” (DS70005213)

•  “High-Speed Analog Comparator Module” (DS70005280)

•  “Quadrature Encoder Interface (QEI)” (DS70000601)

•  “Multiprotocol Universal Asynchronous Receiver Transmitter (UART) Module”  (DS70005288)

•  “Serial Peripheral Interface (SPI) with Audio Codec Support” (DS70005136)

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

•  “Parallel Master Port (PMP)” (DS70005344)

•  “Single-Edge Nibble Transmission (SENT) Module” (DS70005145)

•  “Timer1 Module” (DS70005279)

•  “Capture/Compare/PWM/Timer (MCCP and SCCP)” (DS33035)

•  “Configurable Logic Cell (CLC)” (DS70005298)

•  “Peripheral Trigger Generator (PTG)” (DS70000669)

•  “32-Bit Programmable Cyclic Redundancy Check (CRC)” (DS30009729)

•  “Current Bias Generator (CBG)” (DS70005253)

•  “Deadman Timer” (DS70005155)

•  “Watchdog Timer and Power-Saving Modes” (DS70615)

•  “CodeGuard™ Security” (DS70634)

•  “Dual Watchdog Timer” (DS70005250)

•  “Programming and Diagnostics” (DS70608)

DS70005349B-page 16                              Advance Information           2017-2018 Microchip Technology Inc.
                                                            dsPIC33CK256MP508 FAMILY

1.0       DEVICE OVERVIEW                                                         This document contains device-specific information

                                                                                  for the dsPIC33CK256MP508 Digital Signal Controller

Note      1:   This data sheet summarizes the features                            (DSC) and Microcontroller (MCU) devices.

               of   the  dsPIC33CK256MP508              family    of              dsPIC33CK256MP508                 devices       contain  extensive

               devices. It is not intended to be a com-                           Digital        Signal  Processor  (DSP)         functionality     with  a

               prehensive resource. To complement the                             high-performance, 16-bit MCU architecture.

               information   in    this  data   sheet,     refer  to              Figure 1-1 shows a general block diagram of the core

               the  related  section        of    the  “dsPIC33/                  and peripheral modules of the dsPIC33CK256MP508

               PIC24         Family  Reference          Manual”,                  family. Table 1-1 lists the functions of the various pins

               which     is  available      from  the   Microchip                 shown in the pinout diagrams.

               web site (www.microchip.com).

          2:   Some      registers       and    associated        bits

               described in this section may not be avail-

               able on all devices. Refer to Section 4.0

               “Memory       Organization”        in    this  data

               sheet for device-specific register and bit

               information.

FIGURE 1-1:                  dsPIC33CK256MP508 FAMILY                        BLOCK DIAGRAM(1)

                                                                        CPU

                                                  Refer to Figure 3-1 for CPU diagram details.                      16            PORTA(2)

                                                                                                                                  PORTB(2)

                                                                                    Power-up
                                                                                       Timer

                                                              Timing                   Oscillator                             16

                                                            Generation                 Start-up
                                                                                       Timer
                                     OSC1/CLKI                                                                                    PORTC(2)

                                                                                    POR/BOR

                                                                  MCLR

                                                                                    Watchdog                                      PORTD(2)
                                                                                       Timer
                                                                  VDD, VSS
                                                              AVDD, AVSS

               Peripheral Modules

                                                                                                                                  PORTE(2)

     PMP  (1)       CLC (4)        QEI (2)      SENT   (2)    CAN FD        ADC   (1)  DMA         (4)   SCCP (9)   I2C  (3)

                                                                  (1)

                                                                                                                                  Remappable

                                                                                                                                           Pins(3)

     OP AMP         WDT/                                      HR PWM        Timer1     DAC/              SPI/I2S                  Ports
                                   CRC (1)        PTG (1)                              Comparator                  UART (3)
      (3)(4)        DMT                                           (8)        (1)                         (3)
                                                                                              (3)

Note  1:      The numbers in the parentheses are the number of instantiations of the module indicated.

      2:      Not all I/O pins or features are implemented on all device pinout configurations.

      3:      Some peripheral I/Os are only accessible through Peripheral Pin Select (PPS).

      4:      28-lead devices have only two op amp instances.

 2017-2018 Microchip Technology Inc.                   Advance Information                                                   DS70005349B-page 17
dsPIC33CK256MP508 FAMILY

TABLE 1-1:  PINOUT I/O DESCRIPTIONS

       Pin Name(1)   Pin   Buffer          PPS                               Description

                     Type  Type

AN0-AN23             I     Analog          No   Analog input channels

ANA0-ANA2            I     Analog          No   Analog alternate inputs

ANN0-ANN2            I     Analog          No   Analog negative inputs

ADTRG                I     ST              Yes  ADC Trigger Input 31

CLKI                 I     ST/             No   External Clock (EC) source input. Always associated with OSCI pin

                           CMOS                 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 OSCO pin function.

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

                           CMOS                 CMOS otherwise.

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

                                                Oscillator mode. Optionally functions as CLKO in RC and EC

                                                modes.

REFCLKO              O                  —  Yes  Reference clock output

REFOI                I     ST              Yes  Reference clock input

INT0                 I     ST              No   External Interrupt 0

INT1                 I     ST              Yes  External Interrupt 1

INT2                 I     ST              Yes  External Interrupt 2

INT3                 I     ST              Yes  External Interrupt 3

IOCA<4:0>            I     ST              No   Interrupt-on-Change input for PORTA

IOCB<15:0>           I     ST              No   Interrupt-on-Change input for PORTB

IOCC<15:0>           I     ST              No   Interrupt-on-Change input for PORTC

IOCD<15:0>           I     ST              No   Interrupt-on-Change input for PORTD

IOCE<15:0>           I     ST              No   Interrupt-on-Change input for PORTE

RP32-RP71            I/O   ST              Yes  Remappable I/O ports

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

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

RC0-RC15             I/O   ST              No   PORTC is a bidirectional I/O port

RD0-RD15             I/O   ST              No   PORTD is a bidirectional I/O port

RE0-RE15             I/O   ST              No   PORTE is a bidirectional I/O port

T1CK                 I     ST              Yes  Timer1 external clock input

CAN1RX               I     ST              Yes  CAN1 receive input

CAN1                 O                  —  Yes  CAN1 transmit output

U1CTS                I     ST              Yes  UART1 Clear-to-Send

U1RTS                O                  —  Yes  UART1 Request-to-Send

U1RX                 I     ST              Yes  UART1 receive

U1TX                 O                  —  Yes  UART1 transmit

U1DSR                I     ST              Yes  UART1 Data-Set-Ready

U1DTR                O                  —  Yes  UART1 Data-Terminal-Ready

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                     TTL = TTL input buffer         DIG = Digital

Note  1:   Not all pins are available in all package variants. See the “Pin Diagrams” section for pin availability.

      2:   PWM4L and PWM4H pins are available on PPS as well as dedicated.

      3:   SPI2 supports dedicated pins as well as PPS on 48, 64 and 80-pin devices.

DS70005349B-page 18                        Advance Information                2017-2018 Microchip Technology Inc.
                                               dsPIC33CK256MP508 FAMILY

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

       Pin Name(1)  Pin                Buffer  PPS                               Description

                    Type               Type

U2CTS               I                  ST      Yes     UART2 Clear-to-Send

U2RTS               O                  —       Yes     UART2 Request-to-Send

U2RX                I                  ST      Yes     UART2 receive

U2TX                O                  —       Yes     UART2 transmit

U2DSR               I                  ST      Yes     UART2 Data-Set-Ready

U2DTR               O                  —       Yes     UART2 Data-Terminal-Ready

U3CTS               I                  ST      Yes     UART3 Clear-to-Send

U3RTS               O                  —       Yes     UART3 Request-to-Send

U3RX                I                  ST      Yes     UART3 receive

U3TX                O                  —       Yes     UART3 transmit

U3DSR               I                  ST      Yes     UART3 Data-Set-Ready

U3DTR               O                  —       Yes     UART3 Data-Terminal-Ready

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

SCK2                I/O                ST      Yes(3)  Synchronous serial clock input/output for SPI2
                                               Yes(3)
SDI2                I                  ST      Yes(3)  SPI2 data in

SDO2                O                  —       Yes(3)  SPI2 data out

SS2                 I/O                ST              SPI2 slave synchronization or frame pulse I/O

SCK3                I/O                ST      Yes     Synchronous serial clock input/output for SPI3

SDI3                I                  ST      Yes     SPI3 data in

SDO3                O                  —       Yes     SPI3 data out

SS3                 I/O                ST      Yes     SPI3 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

SCL2                I/O                ST      No      Synchronous serial clock input/output for I2C2

SDA2                I/O                ST      No      Synchronous serial data input/output for I2C2

ASCL2               I/O                ST      No      Alternate synchronous serial clock input/output for I2C2

ASDA2               I/O                ST      No      Alternate synchronous serial data input/output for I2C2

SCL3                I/O                ST      No      Synchronous serial clock input/output for I2C3

SDA3                I/O                ST      No      Synchronous serial data input/output for I2C3

ASCL3               I/O                ST      No      Alternate synchronous serial clock input/output for I2C3

ASDA3               I/O                ST      No      Alternate synchronous serial data input/output for I2C3

QEIA1-QEIA2         I                  ST      Yes     QEI Inputs A1 and A2

QEIB1-QEIB2         I                  ST      Yes     QEI Inputs B1 and B2

QEINDX1-QEINDX2     I                  ST      Yes     QEI Index Inputs 1 and 2

QEIHOM1-QEIHOM2     I                  ST      Yes     QEI Home Inputs 1 and 2

QEICMP1-QEICMP2     O                  —       Yes     QEI Comparator Outputs 1 and 2

SENT1-SENT2         I                  ST      Yes     SENT1 and SENT2 inputs

SENT1OUT-SENT2OUT   O                  —       Yes     SENT1 and SENT2 outputs

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                                TTL = TTL input buffer   DIG = Digital

Note  1:  Not all pins are available in all package variants. See the “Pin Diagrams” section for pin availability.

      2:  PWM4L and PWM4H pins are available on PPS as well as dedicated.

      3:  SPI2 supports dedicated pins as well as PPS on 48, 64 and 80-pin devices.

 2017-2018 Microchip Technology Inc.          Advance Information                                     DS70005349B-page 19
dsPIC33CK256MP508 FAMILY

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

        Pin Name(1)  Pin   Buffer          PPS                               Description

                     Type  Type

TMS                  I     ST              No   JTAG Test mode select pin

TCK                  I     ST              No   JTAG test clock input pin

TDI                  I     ST              No   JTAG test data input pin

TDO                  O                  —  No   JTAG test data output pin

PCI8-PCI18           I     ST              Yes  PWM PCI Inputs 8 through 18

PCI19-PCI22          I     ST              No   PWM PCI Inputs 19 through 22
PWM1L-PWM8L(2)
PWM1H-PWM8H(2)       O                  —  No   PWM Low Outputs 1 through 8

                     O                  —  No   PWM High Outputs 1 through 8

PWMEA-PWMED          O                  —  Yes  PWM Event Outputs A through D

CMP1A-CMP3A          I     Analog          No   Comparator Channels 1A through 3A inputs

CMP1B-CMP3B          I     Analog          No   Comparator Channels 1B through 3B inputs

CMP1C-CMP3C          I     Analog          No   Comparator Channels 1C through 3C inputs

CMP1D-CMP3D          I     Analog          No   Comparator Channels 1D through 3D inputs

DACOUT1              O                  —  No   DAC output voltage

TCKI1-TCKI9          I     ST              Yes  SCCP/MCCP Timer Inputs 1 through 9

ICM1-ICM9            I     ST              Yes  SCCP/MCCP Capture Inputs 1 through 9

OCFA-OCFD            O                  —  Yes  SCCP/MCCP Fault Inputs A through D

OCM1-OCM9            O                  —  Yes  SCCP/MCCP Compare Outputs 1 through 9

IBIAS0-IBIAS3        O     Analog          No   50 µA Constant-Current Outputs 0 through 3

ISRC0-ISRC3          O     Analog          No   10 µA Constant-Current Outputs 0 through 3

OA1IN+               I                  —  No   Op Amp 1+ Input

OA1IN-               I                  —  No   Op Amp 1- Input

OA1OUT               O                  —  No   Op Amp 1 Output

OA2IN+               I                  —  No   Op Amp 2+ Input

OA2IN-               I                  —  No   Op Amp 2- Input

OA2OUT               O                  —  No   Op Amp 2 Output

OA3IN+               I                  —  No   Op Amp 3+ Input

OA3IN-               I                  —  No   Op Amp 3- Input

OA3OUT               O                  —  No   Op Amp 3 Output

PMA0/PMALL           O     ST/TTL          No   PMP Address 0 or address latch low

PMA1/PMALH           O     ST/TTL          No   PMP Address 1 or address latch high

PMA14/PMCS1          O     ST/TTL          No   PMP Address 14 or Chip Select 1

PMA15/PMCS2          O     ST/TTL          No   PMP Address 15 or Chip Select 2

PMA2-PMA13           O     ST/TTL          No   PMP Address Lines 2-13

PMD0-PMD15           I/O   ST/TTL          No   PMP Data Lines 0-15

PMRD/PMWR            O     ST/TTL          No   PMP read or read/write signal

PMWR/PMENB           O     ST/TTL          No   PMP write or data enable signal

PSA0                 I     ST/TTL          No   PMP Slave Address 0

PSA1                 I     ST/TTL          No   PMP Slave Address 1

PSCS                 I     ST/TTL          No   PMP slave chip select

PSRD                 I     ST/TTL          No   PMP slave write

PSWR                 I     ST/TTL          No   PMP slave read

CLCINA-CLCIND        I     ST              Yes  CLC Inputs A through D

CLC1OUT-CLC4OUT      O                  —  Yes  CLC Outputs 1 through 4

ADTRG31              I     ST              No   External ADC trigger source

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                  TTL = TTL input buffer            DIG = Digital

Note  1:   Not all pins are available in all package variants. See the “Pin Diagrams” section for pin availability.

      2:   PWM4L and PWM4H pins are available on PPS as well as dedicated.

      3:   SPI2 supports dedicated pins as well as PPS on 48, 64 and 80-pin devices.

DS70005349B-page 20                        Advance Information                    2017-2018 Microchip Technology Inc.
                                               dsPIC33CK256MP508 FAMILY

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

      Pin Name(1)  Pin                 Buffer  PPS                          Description

                   Type                Type

PGD1               I/O                 ST      No   Data I/O pin for Programming/Debugging Communication Channel 1

PGC1               I                   ST      No   Clock input pin for Programming/Debugging Communication

                                                    Channel 1

PGD2               I/O                 ST      No   Data I/O pin for Programming/Debugging Communication Channel 2

PGC2               I                   ST      No   Clock input pin for Programming/Debugging Communication

                                                    Channel 2

PGD3               I/O                 ST      No   Data I/O pin for Programming/Debugging Communication Channel 3

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

AVSS               P                   P       No   Ground reference for analog modules. This pin must be connected at

                                                    all times.

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

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                           TTL = TTL input buffer       DIG = Digital

Note  1:  Not all pins are available in all package variants. See the “Pin Diagrams” section for pin availability.

      2:  PWM4L and PWM4H pins are available on PPS as well as dedicated.

      3:  SPI2 supports dedicated pins as well as PPS on 48, 64 and 80-pin devices.

 2017-2018 Microchip Technology Inc.          Advance Information                                     DS70005349B-page 21
dsPIC33CK256MP508 FAMILY

NOTES:

DS70005349B-page 22  Advance Information   2017-2018 Microchip Technology Inc.
                                                dsPIC33CK256MP508 FAMILY

2.0        GUIDELINES FOR GETTING                            2.2       Decoupling Capacitors

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

           SIGNAL CONTROLLERS                                power  supply   pins,  such  as  VDD,     VSS,     AVDD  and

                                                             AVSS is required.

2.1        Basic Connection Requirements                     Consider the following criteria when using decoupling

Getting    started  with  the  family  devices      of  the  capacitors:

dsPIC33CK256MP508 requires attention to a minimal            •  Value and type of capacitor: Recommendation

set of device pin connections before proceeding with            of 0.1 µF (100 nF), 10-20V. This capacitor should

development. The following is a list of pin names which         be a low-ESR and have resonance frequency in

must always be connected:                                       the range of 20 MHz and higher. It is

•  All VDD and VSS pins                                         recommended to use ceramic capacitors.

   (see Section 2.2 “Decoupling Capacitors”)                 •  Placement on the printed circuit board: The

•  All AVDD and AVSS pins                                       decoupling capacitors should be placed as close

   regardless if ADC module is not used (see                    to the pins as possible. It is recommended to

   Section 2.2 “Decoupling Capacitors”)                         place the capacitors on the same side of the

•  MCLR pin                                                     board as the device. If space is constricted, the

   (see Section 2.3 “Master Clear (MCLR) Pin”)                  capacitor can be placed on another layer on the

                                                                PCB using a via; however, ensure that the trace

•  PGCx/PGDx pins                                               length from the pin to the capacitor is within

   used for In-Circuit Serial Programming™ (ICSP™)              one-quarter inch (6 mm) in length.

   and debugging purposes (see Section 2.4 “ICSP             •  Handling high-frequency noise: If the board is

   Pins”)                                                       experiencing high-frequency noise, above tens of

•  OSCI and OSCO pins                                           MHz, add a second ceramic-type capacitor in

   when an external oscillator source is used (see              parallel to the above described decoupling

   Section 2.5 “External Oscillator Pins”)                      capacitor. The value of the second capacitor can

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

                                                                second capacitor next to the primary decoupling

                                                                capacitor. In high-speed circuit designs, consider

                                                                implementing a decade pair of capacitances as

                                                                close to the power and ground pins as possible.

                                                                For example, 0.1 µF in parallel with 0.001 µF.

                                                             •  Maximizing performance: On the board layout

                                                                from the power supply circuit, run the power and

                                                                return traces to the decoupling capacitors first,

                                                                and then to the device pins. This ensures that the

                                                                decoupling capacitors are first in the power chain.

                                                                Equally important is to keep the trace length

                                                                between the capacitor and the power pins to a

                                                                minimum, thereby reducing PCB track

                                                                inductance.

 2017-2018 Microchip Technology Inc.         Advance Information                             DS70005349B-page 23
dsPIC33CK256MP508 FAMILY

FIGURE 2-1:                              RECOMMENDED                                           2.3        Master Clear (MCLR) Pin

                                         MINIMUM CONNECTION                                    The     MCLR         pin     provides   two        specific   device

                                                                                               functions:

VDD                                                                         0.1 µF             •  Device Reset

                                                                            Ceramic

                                                                                               •  Device Programming and Debugging.

       R                                                          VDD  VSS                     During    device     programming             and   debugging,      the

          R1                                                                                   resistance and capacitance that can be added to the

                 MCLR                                                                          pin  must      be  considered.    Device     programmers           and

       C                                                                                       debuggers         drive   the     MCLR       pin.  Consequently,

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

                                                                                               transitions must not be adversely affected. Therefore,

                 VSS                                                   VDD                     specific  values     of   R  and  C    will  need  to   be   adjusted

                                                                       VSS                     based on the application and PCB requirements.

     0.1 µF      VDD                                                        0.1 µF             For    example,      as      shown     in    Figure 2-2,       it  is

    Ceramic              AVDD            AVSS                     VDD  VSS  Ceramic            recommended that the capacitor, C, be isolated from

                                                         0.1 µF             0.1 µF             the  MCLR      pin   during      programming       and  debugging

                                                         Ceramic            Ceramic            operations.

                 L1(1)                                                                         Place     the  components,        as   shown       in   Figure 2-2,

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

Note 1:       As an option, instead of a hard-wired connection, an

              inductor (L1) can be substituted between VDD and                                 FIGURE 2-2:                      EXAMPLE OF MCLR PIN

              AVDD to improve ADC noise rejection. The inductor                                                                 CONNECTIONS

              impedance should be less than 1 and the inductor

              capacity greater than 10 mA.

              Where:                                                                                     VDD

              f  =    -F----C---N----V-                  (i.e., ADC Conversion Rate/2)                        R(1)
                         2

              f = -----------1------------                                                                               R1(2)

                      2                LC                                                                                     MCLR

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

              L  =                                                                                           C

2.2.1         BULK CAPACITORS

On boards with power traces running longer than six                                               Note   1:   R  10 k is recommended. A suggested

inches in length, it is suggested to use a bulk capacitor                                                     starting value is 10 k. Ensure that the

for integrated circuits, including DSCs, to supply a local                                                    MCLR pin VIH and VIL specifications are met.

power source. The value of the bulk capacitor should                                                     2:   R1  470 will limit any current flowing into

be   determined       based              on              the  trace    resistance        that                 MCLR from the external capacitor, C, in the

                                                                                                              event of MCLR pin breakdown due to

connects the power supply source to the device and                                                            Electrostatic Discharge (ESD) or Electrical

the  maximum          current            drawn                by  the  device        in  the                  Overstress (EOS). Ensure that the MCLR pin

application. In other words, select the bulk capacitor so                                                     VIH and VIL specifications are met.

that it meets the acceptable voltage sag at the device.

Typical values range from 4.7 µF to 47 µF.

DS70005349B-page 24                                                         Advance Information                           2017-2018 Microchip Technology Inc.
                                                        dsPIC33CK256MP508 FAMILY

2.4         ICSP Pins                                              2.5       External Oscillator Pins

The  PGCx   and  PGDx      pins  are    used  for  ICSP  and       Many DSCs have options for at least two oscillators: a

debugging purposes. It is recommended to keep the                  high-frequency        Primary      Oscillator  (POSC)         and   a

trace length between the ICSP connector and the ICSP               low-frequency         Secondary     Oscillator       (SOSC).  For

pins on the device as short as possible. If the ICSP con-          details,   see        Section 9.2        “Primary        Oscillator

nector  is  expected   to  experience   an    ESD       event,  a  (POSC)”.

series resistor is recommended, with the value in the              The oscillator circuit should be placed on the same

range of a few tens of Ohms, not to exceed 100 Ohms.               side of the board as the device. Also, place the oscil-

Pull-up resistors, series diodes and capacitors on the             lator circuit close to the respective oscillator pins, not

PGCx and PGDx pins are not recommended as they                     exceeding  one-half        inch    (12  mm)    distance      between

will interfere with the programmer/debugger communi-               them. The load capacitors should be placed next to

cations to the device. If such discrete components are             the  oscillator   itself,  on  the  same       side  of  the  board.

an application requirement, they should be removed                 Use  a    grounded         copper  pour  around       the    oscillator

from the circuit during programming and debugging.                 circuit to isolate them from surrounding circuits. The

Alternatively, refer to the AC/DC characteristics and              grounded copper pour should be routed directly to the

timing  requirements       information  in    the  respective      MCU ground. Do not run any signal traces or power

device Flash programming specification for information             traces    inside      the  ground       pour.  Also,     if  using  a

on capacitive loading limits and pin Voltage Input High            two-sided board, avoid any traces on the other side of

(VIH) and Voltage Input Low (VIL) requirements.                    the board where the crystal is placed. A suggested

Ensure that the “Communication Channel Select” (i.e.,              layout is shown in Figure 2-3.

PGCx/PGDx   pins)      programmed       into       the  device     FIGURE 2-3:                SUGGESTED PLACEMENT

matches the physical connections for the ICSP to                                              OF THE OSCILLATOR
PICkit™ 3, MPLAB® ICD 3 or MPLAB REAL ICE™

emulator.                                                                                     CIRCUIT

For more information on MPLAB ICD 2, MPLAB ICD 3

and  REAL   ICE  emulator  connection         requirements,             Main Oscillator

refer to the following documents that are available on

the Microchip web site.                                                 Guard Ring

•  “Using MPLAB® ICD 3 In-Circuit Debugger”

   (poster) (DS51765)                                                   Guard Trace

•  “Development Tools Design Advisory” (DS51764)

•  “MPLAB® REAL ICE™ In-Circuit Emulator User’s                         Oscillator Pins

   Guide” (DS51616)

•  “Using MPLAB® REAL ICE™ In-Circuit Emulator”

   (poster) (DS51749)

 2017-2018 Microchip Technology Inc.              Advance Information                                      DS70005349B-page 25
dsPIC33CK256MP508 FAMILY

2.6      Oscillator Value Conditions on                                     2.8        Targeted Applications

         Device Start-up                                                    •   Power Factor Correction (PFC):

If  the  PLL   of   the  target  device      is  enabled      and               -  Interleaved PFC

configured     for  the  device  start-up        oscillator,  the               -  Critical Conduction PFC

maximum oscillator source frequency must be limited                             -  Bridgeless PFC

to a certain frequency (see Section 9.0 “Oscillator                         •   DC/DC Converters:

with High-Frequency PLL”) to comply with device                                 -  Buck, Boost, Forward, Flyback, Push-Pull

PLL start-up conditions. This means that if the external                        -  Half/Full-Bridge

oscillator frequency is outside this range, the applica-

tion must start up in the FRC mode first. The default                           -  Phase-Shift Full-Bridge

PLL settings after a POR with an oscillator frequency                           -  Resonant Converters

outside  this  range     will  violate  the  device  operating              •   DC/AC:

speed.                                                                          -  Half/Full-Bridge Inverter

Once the device powers up, the application firmware                             -  Resonant Inverter

can initialize the PLL SFRs, CLKDIV and PLLFBD, to a                        •   Motor Control

suitable value, and then perform a clock switch to the                          -  BLDC

Oscillator + PLL clock source. Note that clock switching

must be enabled in the device Configuration Word.                               -  PMSM

                                                                                -  SR

2.7      Unused I/Os                                                            -  ACIM

Unused I/O pins should be configured as outputs and                         Examples of typical application connections are  shown

driven to a logic low state.                                                in Figure 2-4 through Figure 2-6.

Alternatively, connect a 1k to 10k resistor between VSS

and unused pins, and drive the output to logic low.

FIGURE 2-4:                INTERLEAVED PFC

                                                                                                                  VOUT+

                                 |VAC|

                                                              k1            k2

               k4     VAC                                                                                     k3

                                                                                                     VOUT-

                                                     FET                        FET
                                                     Driver                    Driver

                               ADC Channel           PWM           ADC          PWM      ADC         ADC

                                                                   Channel             Channel       Channel

                               ADC Channel           dsPIC33CK256MP508

DS70005349B-page 26                                  Advance Information                         2017-2018 Microchip Technology Inc.
                                                   dsPIC33CK256MP508 FAMILY

FIGURE 2-5:            PHASE-SHIFTED FULL-BRIDGE CONVERTER

VIN+                                                                   Gate 6

                               Gate     3

Gate 1

                                                                                                         VOUT+

             S1                            S3

Gate 2                                                                                                   VOUT-

                                           Gate 4                      Gate 5

VIN-

                                                                               Gate 5   Gate 6

                                                                                        FET       k2
                                                                                        Driver

                                                                       k1

                                                       Analog
                                                       Ground
Gate 1

                       FET                                             PWM     ADC      PWM       ADC
                       Driver
S1                                                                             Channel          Channel
                                           Gate 3

                                                               FET             dsPIC33CK256MP508

                                                   S3          Driver  PWM

Gate 2

                                           Gate 4

 2017-2018 Microchip  Technology Inc.         Advance Information                      DS70005349B-page 27
dsPIC33CK256MP508                                 FAMILY

FIGURE 2-6:          OFF-LINE UPS

      Push-Pull Converter                                    VDC                                Full-Bridge  Inverter

VBAT                                                                                                                   VOUT+

                                                          +

                                                                                                                       VOUT-

                                                             GND

GND

             FET           FET  k2            k1  FET        FET     FET     FET        k4      k5
             Driver  Driver                       Driver     Driver  Driver  Driver

             PWM     PWM        ADC         ADC   PWM        PWM     PWM     PWM
                                or
                                Analog Comp.

      k3                             dsPIC33CK256MP508                       ADC

             ADC                                                             ADC

                           ADC                    PWM

                                                                                        FET
                                                                                        Driver
                           k6

                                                          +

                           Battery Charger

DS70005349B-page 28                           Advance Information                      2017-2018 Microchip Technology Inc.
                                                                dsPIC33CK256MP508 FAMILY

3.0        CPU                                                                 3.2         Instruction Set

     Note  1:  This data sheet summarizes the features                         The instruction set for dsPIC33CK256MP508 devices

               of    the  dsPIC33CK256MP508                    family  of      has   two   classes    of    instructions:    the   MCU   class    of

               devices. It is not intended to be a com-                        instructions and the DSP class of instructions. These

               prehensive            reference          source.        To      two instruction classes are seamlessly integrated into the

               complement the information in this data                         architecture and execute from a single execution unit.

               sheet,     refer      to  “dsPIC33E           Enhanced          The instruction set includes many addressing modes and

               CPU”       (DS70005158)              in  the  “dsPIC33/         was designed for optimum C compiler efficiency.

               PIC24 Family Reference Manual”, which

               is available from the Microchip web site                        3.3         Data Space Addressing

               (www.microchip.com).                                            The   base     Data    Space    can   be    addressed     as   up  to

           2:  Some       registers           and   associated         bits    4K words       or  8   Kbytes,   and  is    split  into  two  blocks,

               described         in  this     section   may     not    be      referred to as X and Y data memory. Each memory block

               available         on      all  devices.       Refer     to      has   its   own    independent        Address      Generation  Unit

               Section 4.0 “Memory Organization” in                            (AGU). The MCU class of instructions operates solely

               this data sheet for device-specific register                    through the X memory AGU, which accesses the entire

               and bit information.                                            memory map as one linear Data Space. Certain DSP

The   dsPIC33CK256MP508                  family    CPU     has  a      16-bit  instructions operate through the X and Y AGUs to sup-

(data) modified Harvard architecture with an enhanced                          port dual operand reads, which splits the data address

instruction set, including significant support for Digital                     space into two parts. The X and Y Data Space boundary

Signal Processing (DSP). The CPU has a 24-bit instruc-                         is device-specific.

tion  word     with  a    variable       length     opcode     field.  The     The upper 32 Kbytes of the Data Space memory map

Program Counter (PC) is 23 bits wide and addresses up                          can optionally be mapped into Program Space (PS) at

to 4M x 24 bits of user program memory space.                                  any 16K program word boundary. The program-to-Data

An    instruction    prefetch        mechanism          helps   maintain       Space      mapping     feature,  known        as   Program    Space

throughput and provides predictable execution. Most                            Visibility (PSV), lets any instruction access Program

instructions execute in a single-cycle effective execu-                        Space      as  if  it  were     Data  Space.       Refer  to   “Data

tion rate, with the exception of instructions that change                      Memory” (DS70595) in the “dsPIC33/PIC24 Family

the   program      flow,    the  double-word            move    (MOV.D)        Reference Manual” for more details on PSV and table

instruction, PSV accesses and the table instructions.                          accesses.

Overhead-free program loop constructs are supported                            On dsPIC33CK256MP508 family devices, overhead-

using the DO and REPEAT instructions, both of which                            free   circular        buffers   (Modulo       Addressing)         are

are interruptible at any point.                                                supported      in  both      X  and   Y   address   spaces.    The

                                                                               Modulo      Addressing       removes     the  software    boundary

3.1        Registers                                                           checking overhead for DSP algorithms. The X AGU

The dsPIC33CK256MP508 devices have sixteen, 16-bit                             Circular Addressing can be used with any of the MCU

Working registers in the programmer’s model. Each of                           class of instructions. The X AGU also supports Bit-

the Working registers can act as a Data, Address or                            Reversed Addressing to greatly simplify input or output

Address     Offset   register.       The      16th  Working     register       data re-ordering for radix-2 FFT algorithms.

(W15)      operates     as  a    Software           Stack    Pointer   for     3.4         Addressing Modes

interrupts and calls.

In addition, the dsPIC33CK256MP508 devices include                             The CPU supports these addressing modes:

four Alternate Working register sets, which consist of W0                      •  Inherent (no operand)

through W14. The Alternate Working registers can be                            •  Relative

made persistent to help reduce the saving and restoring                        •  Literal

of   register  content    during     Interrupt      Service     Routines       •  Memory Direct

(ISRs). The Alternate Working registers can be assigned                        •  Register Direct

to a specific Interrupt Priority Level (IPL1 through IPL6) by

configuring the CTXTx<2:0> bits in the FALTREG Config-                         •  Register Indirect

uration register. The Alternate Working registers can also                     Each   instruction       is     associated    with  a     predefined

be accessed manually by using the CTXTSWP instruction.                         addressing mode group, depending upon its functional

The CCTXI<2:0> and MCTXI<2:0> bits in the CTXTSTAT                             requirements. As many as six addressing modes are

register can be used to identify the current, and most                         supported for each instruction.

recent, manually selected Working register sets.

 2017-2018 Microchip Technology Inc.                        Advance Information                                           DS70005349B-page 29
dsPIC33CK256MP508 FAMILY

FIGURE 3-1:          dsPIC33CK256MP508 FAMILY CPU BLOCK DIAGRAM

                                                                                      X Address Bus

                                                            Y Data Bus

                                                                                                                          X Data Bus

                                                                                      16                 16      16           16

                     Interrupt          PSV and Table                                      Data Latch                     Data Latch

             Controller                      Data Access    8                     16                     Y Data               X Data

                                    24       Control Block                                               RAM                  RAM

                                                                                                         Address              Address      16  24

                                24                                                                       Latch                Latch

                                        24                                                Y Address Bus           16          16

                                                            PCU        PCH  PCL                          16       X RAGU

                                                            Program Counter                                       X WAGU

                                                            Stack           Loop
                                                            Control         Control
                                                            Logic           Logic
                     Address Latch

                                                                                          Y AGU

             Program Memory

                     Data Latch                                                                          16       EA MUX

                                                        16

                                                            ROM Latch                                                     16  24

                                                    24                 IR

                                                                                                                 Data

                                        16                                                                       Literal

                                                                                                         16-Bit

                                                                                      Working Register Arrays                          16

                                                                                      16                 16

                                                                                                                              Divide

                                                                                      DSP                                     Support

                                                                                      Engine

                                                                                                                16-Bit ALU

Control Signals                     Instruction                                           16                              16
                                    Decode and
to Various Blocks                   Control

                                    Power, Reset                                                         Ports

                                    and Oscillator

                                    Modules

                                                                                                         Peripheral

                                                                                                         Modules

DS70005349B-page 30                                 Advance Information                                            2017-2018 Microchip        Technology  Inc.
                                                       dsPIC33CK256MP508 FAMILY

3.4.1       PROGRAMMER’S MODEL                                      In addition to the registers contained in the programmer’s

The programmer’s model for the dsPIC33CK256MP508                    model,  the  dsPIC33CK256MP508            devices  contain

family  is  shown  in  Figure 3-2.     All  registers  in  the      control registers for Modulo Addressing, Bit-Reversed

programmer’s model are memory-mapped and can be                     Addressing and interrupts. These registers are described

manipulated directly by instructions. Table 3-1 lists a             in subsequent sections of this document.

description of each register.                                       All registers associated with the programmer’s model

                                                                    are memory-mapped, as shown in Figure 3-2.

TABLE 3-1:         PROGRAMMER’S MODEL REGISTER DESCRIPTIONS

            Register(s) Name                                                Description

W0 through W15(1)                           Working Register Array

W0 through W14(1)                           Alternate Working Register Array 1

W0 through W14(1)                           Alternate Working Register Array 2

W0 through W14(1)                           Alternate Working Register Array 3

W0 through W14(1)                           Alternate Working Register Array 4

ACCA, ACCB                                  40-Bit DSP Accumulators (Additional 4 Alternate Accumulators)

PC                                          23-Bit Program Counter

SR                                          ALU and DSP Engine STATUS Register

SPLIM                                       Stack Pointer Limit Value Register

TBLPAG                                      Table Memory Page Address Register

DSRPAG                                      Extended Data Space (EDS) Read Page Register

RCOUNT                                      REPEAT Loop Counter Register

DCOUNT                                      DO Loop Counter Register

DOSTARTH, DOSTARTL(2)                       DO Loop Start Address Register (High and Low)

DOENDH, DOENDL                              DO Loop End Address Register (High and Low)

CORCON                                      Contains DSP Engine, DO Loop Control and Trap Status bits

Note    1:  Memory-mapped      W0   through W14 represent the value of the register in the currently active CPU        context.

        2:  The DOSTARTH       and  DOSTARTL registers are read-only.

 2017-2018 Microchip Technology Inc.       Advance Information                            DS70005349B-page 31
dsPIC33CK256MP508 FAMILY

FIGURE 3-2:          PROGRAMMER’S MODEL

                                                                              D15                               D0

                                                                     D15                                 D0

                                                            D15                                    D0

                                                      D15                                  D0

                                              D15                                  D0

                                                                     W0 (WREG)          W0     W0        W0    W0

                                  W0-W3                                       W1        W1       W1      W1     W1

                                                                              W2        W2     W2        W2  W2

                                                                              W3        W3       W3      W3    W3

                                                                              W4        W4       W4      W4     W4         Alternate

                     DSP Operand                                              W5        W5       W5     W5      W5         Working/Address

                     Registers                                                W6        W6     W6        W6     W6         Registers

Working/Address                                                               W7        W7     W7        W7     W7

Registers                                                                     W8        W8     W8       W8      W8

                     DSP Address                                              W9        W9     W9        W9  W9

                     Registers                                                W10      W10     W10     W10   W10

                                                                              W11      W11     W11      W11  W11

                                                                              W12      W12     W12     W12   W12

                                                                              W13       W13    W13      W13  W13

                                                            Frame    Pointer/W14       W14     W14     W14   W14

                                                          Stack Pointer/W15        0

           PUSH.s and POP.s Shadows

           Nested DO Stack                                  SPLIM                  0           Stack Pointer Limit

                                                    AD39                AD31                                    AD15                      AD0

                                              AD39                AD31                                   AD15                        AD0

                                        AD39                AD31                                   AD15                         AD0

                                  AD39                AD31                                   AD15                          AD0

                            AD39              AD31                                     AD15                           AD0

DSP                  ACCA
Accumulators(1)
                     ACCB

    PC23                                                                              PC0

     0                                                                                  0      Program Counter

                                                                  7                     0

                                                                        TBLPAG                 Data Table Page Address

                                                            9                           0

                                                                        DSRPAG                 X Data Space Read Page Address

                                                  15                                    0

                                                               RCOUNT                          REPEAT Loop Counter

                                              15                                        0

                                                               DCOUNT                          DO Loop Counter and Stack

     23                                                                                 0

     0                                  DOSTART                                         0      DO Loop Start Address and Stack

     23                                                                                 0

     0                                  DOEND                                           0      DO Loop End Address and Stack

                                                  15                                    0

                                                               CORCON                          CPU Core Control Register

                                                                                   SRL

OA       OB  SA      SB     OAB   SAB         DA    DC    IPL2 IPL1 IPL0      RA        N    OV      Z       C        STATUS Register

DS70005349B-page 32                               Advance Information                                 2017-2018 Microchip Technology Inc.
                                       dsPIC33CK256MP508 FAMILY

3.4.2  CPU RESOURCES                                       3.4.2.1      Key Resources

Many useful resources are provided on the main prod-       •  “dsPIC33E Enhanced CPU” (DS70005158) in

uct page of the Microchip web site for the devices listed     the “dsPIC33/PIC24 Family Reference Manual”

in this data sheet. This product page contains the latest  •  Code Samples

updates and additional information.                        •  Application Notes

                                                           •  Software Libraries

                                                           •  Webinars

                                                           •  All related “dsPIC33/PIC24 Family Reference

                                                              Manual” Sections

                                                           •  Development Tools

 2017-2018 Microchip Technology Inc.  Advance Information                             DS70005349B-page 33
dsPIC33CK256MP508 FAMILY

3.4.3          CPU CONTROL REGISTERS

REGISTER 3-1:        SR: CPU STATUS REGISTER

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

         OA          OB      SA(3)                 SB(3)      OAB                 SAB           DA                 DC

bit 15                                                                                                                        bit 8

     R/W-0(2)      R/W-0(2)  R/W-0(2)              R-0        R/W-0               R/W-0         R/W-0              R/W-0

     IPL2(1)       IPL1(1)   IPL0(1)               RA               N             OV            Z                      C

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        OA: Accumulator A Overflow Status bit

               1 = Accumulator A has overflowed

               0 = Accumulator A has not overflowed

bit  14        OB: Accumulator B Overflow Status bit

               1 = Accumulator B has overflowed

               0 = Accumulator B has not overflowed

bit  13        SA: Accumulator A Saturation ‘Sticky’ Status bit(3)

               1 = Accumulator A is saturated or has been saturated at some time

               0 = Accumulator A is not saturated

bit  12        SB: Accumulator B Saturation ‘Sticky’ Status bit(3)

               1 = Accumulator B is saturated or has been saturated at some time

               0 = Accumulator B is not saturated

bit  11        OAB: OA || OB Combined Accumulator Overflow Status bit

               1 = Accumulator A or B has overflowed

               0 = Neither Accumulator A or B has overflowed

bit  10        SAB: SA || SB Combined Accumulator ‘Sticky’ Status bit

               1 = Accumulator A or B is saturated or has been saturated at some time

               0 = Neither Accumulator A or B is saturated

bit  9         DA: DO Loop Active bit

               1 = DO loop is in progress

               0 = DO loop is not in progress

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

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 the NSTDIS bit (INTCON1<15>) = 1.

         3:   A data write to the SR register can modify the SA and SB bits by either a data write to SA and SB or by

              clearing the SAB bit. To avoid a possible SA or SB bit write race condition, the SA and SB bits should not

              be modified using bit operations.

DS70005349B-page 34                              Advance Information               2017-2018 Microchip Technology Inc.
                                                 dsPIC33CK256MP508 FAMILY

REGISTER 3-1:  SR: CPU STATUS REGISTER (CONTINUED)

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

              111 = CPU Interrupt Priority Level is 7 (15); user interrupts are 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 is in progress

              0 = REPEAT loop is 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        that

              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 that affects the Z bit has set it at some time in the past

              0 = The most recent operation that 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 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 the NSTDIS bit (INTCON1<15>) = 1.

          3:  A data write to the SR register can modify the SA and SB bits by either a data write to SA and SB or by

              clearing the SAB bit. To avoid a possible SA or SB bit write race condition, the SA and SB bits should not

              be modified using bit operations.

 2017-2018 Microchip Technology Inc.            Advance Information                                 DS70005349B-page 35
dsPIC33CK256MP508 FAMILY

REGISTER 3-2:        CORCON: CORE CONTROL REGISTER

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

        VAR          —       US1                US0               EDT(1)           DL2           DL1              DL0

bit 15                                                                                                                 bit  8

     R/W-0         R/W-0     R/W-1              R/W-0             R/C-0            R-0           R/W-0            R/W-0

        SATA         SATB    SATDW              ACCSAT            IPL3(2)          SFA           RND              IF

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        VAR: Variable Exception Processing Latency Control bit

              1 = Variable exception processing is enabled

              0 = Fixed exception processing is enabled

bit 14        Unimplemented: Read as ‘0’

bit 13-12     US<1:0>: DSP Multiply Unsigned/Signed Control bits

              11 = Reserved

              10 = DSP engine multiplies are mixed sign

              01 = DSP engine multiplies are unsigned

              00 = DSP engine multiplies are signed

bit 11        EDT: Early DO Loop Termination Control bit(1)

              1 = Terminates executing DO loop at the end of the current loop iteration

              0 = No effect

bit 10-8      DL<2:0>: DO Loop Nesting Level Status bits

              111 = 7 DO loops are active

              ...

              001 = 1 DO loop is active

              000 = 0 DO loops are active

bit  7        SATA: ACCA Saturation Enable bit

              1 = Accumulator A saturation is enabled

              0 = Accumulator A saturation is disabled

bit  6        SATB: ACCB Saturation Enable bit

              1 = Accumulator B saturation is enabled

              0 = Accumulator B saturation is disabled

bit  5        SATDW: Data Space Write from DSP Engine Saturation Enable bit

              1 = Data Space write saturation is enabled

              0 = Data Space write saturation is disabled

bit  4        ACCSAT: Accumulator Saturation Mode Select bit

              1 = 9.31 saturation (super saturation)

              0 = 1.31 saturation (normal saturation)

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

              1 = CPU Interrupt Priority Level is greater than 7

              0 = CPU Interrupt Priority Level is 7 or less

Note    1:    This bit is always read as ‘0’.

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

DS70005349B-page 36                            Advance Information                  2017-2018 Microchip Technology Inc.
                                               dsPIC33CK256MP508 FAMILY

REGISTER 3-2:      CORCON: CORE CONTROL REGISTER (CONTINUED)

bit 2         SFA: Stack Frame Active Status bit

              1=   Stack frame is active; W14 and W15 address 0x0000 to 0xFFFF, regardless of DSRPAG

              0=   Stack frame is not active; W14 and W15 address the base Data Space

bit 1         RND: Rounding Mode Select bit

              1=   Biased (conventional) rounding is enabled

              0=   Unbiased (convergent) rounding is enabled

bit 0         IF: Integer or Fractional Multiplier Mode Select bit

              1 = Integer mode is enabled for DSP multiply

              0 = Fractional mode is enabled for DSP multiply

Note      1:  This bit is always read as ‘0’.

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

REGISTER 3-3:      CTXTSTAT: CPU W REGISTER CONTEXT STATUS REGISTER

        U-0        U-0                 U-0        U-0               U-0             R-0           R-0           R-0

        —          —                   —          —                 —               CCTXI2  CCTXI1     CCTXI0

bit 15                                                                                                                 bit 8

        U-0        U-0                 U-0        U-0               U-0             R-0           R-0           R-0

        —          —                   —          —                 —               MCTXI2  MCTXI1     MCTXI0

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-11    Unimplemented: Read as ‘0’

bit  10-8     CCTXI<2:0>: Current (W Register) Context Identifier bits

              111 = Reserved

              •

              •

              •

              100 = Alternate Working Register Set 4 is currently in use

              011 = Alternate Working Register Set 3 is currently in use

              010 = Alternate Working Register Set 2 is currently in use

              001 = Alternate Working Register Set 1 is currently in use

              000 = Default register set is currently in use

bit  7-3      Unimplemented: Read as ‘0’

bit  2-0      MCTXI<2:0>: Manual (W Register) Context Identifier bits

              111 = Reserved

              •

              •

              •

              100 = Alternate Working Register Set 4 was most recently manually selected

              011 = Alternate Working Register Set 3 was most recently manually selected

              010 = Alternate Working Register Set 2 was most recently manually selected

              001 = Alternate Working Register Set 1 was most recently manually selected

              000 = Default register set was most recently manually selected

 2017-2018 Microchip Technology Inc.          Advance Information                                DS70005349B-page 37
dsPIC33CK256MP508 FAMILY

3.4.4        ARITHMETIC LOGIC UNIT (ALU)                              3.4.5      DSP ENGINE

The dsPIC33CK256MP508 family ALU is 16 bits wide                      The DSP engine consists of a high-speed 17-bit x 17-bit

and is capable of addition, subtraction, bit shifts and logic         multiplier, a 40-bit barrel shifter and a 40-bit adder/

operations.  Unless         otherwise    mentioned,    arithmetic     subtracter (with two target accumulators, round and

operations are two’s complement in nature. Depending                  saturation logic).

on the operation, the ALU can affect the values of the                The DSP engine can also perform inherent accumulator-

Carry (C), Zero (Z), Negative (N), Overflow (OV) and                  to-accumulator      operations  that  require  no  additional

Digit Carry (DC) Status bits in the SR register. The C                data. These instructions are, ADD, SUB, NEG, MIN and

and DC Status bits operate as Borrow and Digit Borrow                 MAX.

bits, respectively, for subtraction operations.                       The DSP engine has options selected through bits in

The    ALU   can   perform       8-bit   or  16-bit  operations,      the CPU Core Control register (CORCON), as listed

depending on the mode of the instruction that is used.                below:

Data   for   the   ALU   operation      can  come    from   the  W    •  Fractional or integer DSP multiply (IF)

register    array  or    data    memory,     depending     on    the

addressing mode of the instruction. Likewise, output                  •  Signed, unsigned or mixed-sign DSP multiply

data from the ALU can be written to the W register array                 (USx)

or a data memory location.                                            •  Conventional or convergent rounding (RND)

Refer  to    the   “16-bit  MCU     and      DSC  Programmer’s        •  Automatic saturation on/off for ACCA (SATA)

Reference Manual” (DS70000157) for information on                     •  Automatic saturation on/off for ACCB (SATB)

the SR bits affected by each instruction.                             •  Automatic saturation on/off for writes to data

The core CPU incorporates hardware support for both                      memory (SATDW)

multiplication and division. This includes a dedicated                •  Accumulator Saturation mode selection

hardware     multiplier     and  support     hardware  for  16-bit       (ACCSAT)

divisor division.

3.4.4.1           Multiplier                                          TABLE 3-2:          DSP INSTRUCTIONS

                                                                                          SUMMARY

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

supports unsigned, signed or mixed-sign operation in                     Instruction      Operation                  Write-Back

several MCU multiplication modes:

•  16-bit x 16-bit signed                                                CLR              A=0                            Yes

•  16-bit x 16-bit unsigned                                              ED               A = (x – y)2                   No

•  16-bit signed x 5-bit (literal) unsigned                              EDAC             A = A + (x – y)2               No

•  16-bit signed x 16-bit unsigned                                       MAC              A = A + (x • y)                Yes

•  16-bit unsigned x 5-bit (literal) unsigned                            MAC              A = A + x2                     No

•  16-bit unsigned x 16-bit signed                                       MOVSAC           No change in A                 Yes

•  8-bit unsigned x 8-bit unsigned                                       MPY              A=x•y                          No

3.4.4.2           Divider                                                MPY              A = x2                         No

The divide block supports 32-bit/16-bit and 16-bit/16-bit                MPY.N            A=–x•y                         No

signed and unsigned integer divide operations with the                   MSC              A=A–x•y                        Yes

following data sizes:

•  32-bit signed/16-bit signed divide

•  32-bit unsigned/16-bit unsigned divide

•  16-bit signed/16-bit signed divide

•  16-bit unsigned/16-bit unsigned divide

The 16-bit signed and unsigned DIV instructions can

specify any W register for both the 16-bit divisor (Wn)

and any W register (aligned) pair (W(m + 1):Wm) for

the  32-bit  dividend.      The  divide   algorithm    takes   one

cycle per bit of divisor, so both 32-bit/16-bit and 16-bit/

16-bit instructions take the same number of cycles to

execute. There are additional instructions: DIV2 and

DIVF2. Divide instructions will complete in 6 cycles.

DS70005349B-page 38                                    Advance Information                 2017-2018 Microchip Technology Inc.
                                                                               dsPIC33CK256MP508 FAMILY

4.0       MEMORY ORGANIZATION                                                               4.1       Program Address Space

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

           of    the  dsPIC33CK256MP508                                    family      of   dsPIC33CK256MP508 family devices is 4M instructions.

           devices.       It   is                          not  intended   to      be  a    The space is addressable by a 24-bit value derived either

           comprehensive reference source. To com-                                          from the 23-bit PC during program execution, or from

           plement the information in this data sheet,                                      table operation or Data Space remapping, as described

           refer      to  “dsPIC33E/PIC24E                                 Program          in        Section 4.4.5   “Interfacing      Program  and        Data

           Memory” (DS70000613) in the “dsPIC33/                                            Memory Spaces”.

           PIC24 Family Reference Manual”, which is                                         User application access to the program memory space

           available      from                             the  Microchip  web       site   is        restricted  to  the  lower  half  of  the  address  range

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

The dsPIC33CK256MP508 family architecture features                                          TBLRD operations, which use TBLPAG<7> to permit

separate  program         and  data                             memory  spaces,        and  access to calibration data and Device ID sections of the

buses. This architecture also allows the direct access                                      configuration memory space.

of program memory from the Data Space (DS) during                                           The program memory maps for dsPIC33CK256MP508

code execution.                                                                             devices are shown in Figure 4-1 through Figure 4-5.

FIGURE 4-1:       PROGRAM MEMORY MAP FOR                                                    dsPIC33CKXXXMP50X/20X DEVICES(1)

                                                                                            0x000000

                               User Memory Space                Code Memory

                                                                                            0x0XXXFE
                                                                                            0x0XXX00
                                                                Device Configuration                  See Figure 4-2 through

                                                                                            0x0XXXFE  Figure 4-5 for details.

                                                                                            0x0XXX00

                                                                Unimplemented

                                                                (Read ‘0’s)

                                                                                            0x7FFFFE
                                                                                            0x800000

                                                                Executive Code Memory       0x800FFE

                                                                                            0x801000

                                                                        Calibration
                                                                        Data(2,3)
                               Configuration Memory Space
                                                                                            0x8016FE
                                                                                            0x801700
                                                                OTP Memory
                                                                                            0x8017FE

                                                                                            0x801800

                                                                        Reserved

                                                                                            0xF9FFFE

                                                                Write Latches               0xFA0000

                                                                                            0xFA0002

                                                                        Reserved            0xFA0004

                                                                                            0xFEFFFE
                                                                                            0xFF0000
                                                                        DEVID
                                                                                            0xFF0002
                                                                                            0xFF0004
                                                                        Reserved
                                                                                            0xFFFFFE

     Note  1:    Memory areas are not shown to scale.

           2:    Calibration data area must be maintained during programming.

           3:    Calibration data area includes UDID, ICSP™ Write Inhibit and FBOOT registers locations.

 2017-2018 Microchip Technology Inc.                                      Advance Information                                          DS70005349B-page 39
dsPIC33CK256MP508 FAMILY

FIGURE 4-2:                 PROGRAM MEMORY MAP FOR                    dsPIC33CK256MP50/20X DEVICES(1)

                                Single Partition                                          Dual Partition

                                                      0x000000                            User                  0x000000

        Active Partition        User                                  Active Partition    Program

                                Program                                                   Memory

                                Memory                                                                          0x015EFE
                                                                                                                0x015F00
                                                                                          Device Configuration
                                                                                                                0x015FFE
                                                      0x02BEFE                                                  0x016000
                                                      0x02BF00                            Unimplemented

                                Device Configuration                                      (Read ‘0’s)

                                                      0x02BFFE                                                  0x400000
                                                      0x02C000
                                                                                          User
                                                                      Inactive Partition  Program
        Inactive Partition
                                                                                          Memory                0x415EFE

                                Unimplemented                                                                   0x415F00

                                (Read ‘0’s)                                               Device Configuration  0x415FFE

                                                                                          Unimplemented         0x416000

                                                      0x7FFFFE                            (Read ‘0’s)           0x7FFFFE

        Note 1:                 Memory areas are not shown to scale.

FIGURE  4-3:                PROGRAM MEMORY MAP FOR                    dsPIC33CK128MP50X/20X DEVICES(1)

                                Single Partition                                          Dual Partition

                                                      0x000000                            User                  0x000000

        Active Partition        User                                  Active Partition    Program

                                Program                                                   Memory

                                Memory                                                                          0x00AEFE
                                                                                                                0x00AF00
                                                                                          Device Configuration
                                                                                                                0x00AFFE
                                                      0x015EFE                                                  0x00B000
                                                      0x015F00                            Unimplemented

                                Device Configuration                                      (Read ‘0’s)

                                                      0x015FFE                                                  0x400000
                                                      0x016000
                                                                                          User
                                                                      Inactive Partition  Program
        Inactive Partition
                                                                                          Memory                0x40AEFE

                                Unimplemented                                                                   0x40AF00

                                (Read ‘0’s)                                               Device Configuration  0x40AFFE

                                                                                          Unimplemented         0x40B000

                                                      0x7FFFFE                            (Read ‘0’s)           0x7FFFFE

        Note                1:  Memory areas are not shown to scale.

DS70005349B-page 40                                   Advance Information                  2017-2018 Microchip Technology  Inc.
                                                      dsPIC33CK256MP508 FAMILY

FIGURE  4-4:                PROGRAM MEMORY MAP FOR                    dsPIC33CK64MP50X/20X DEVICES(1)

                                Single Partition                                          Dual Partition

                                                      0x000000                            User                  0x000000

        Active Partition        User                                  Active Partition    Program

                                Program                                                   Memory

                                Memory                                                                          0x005EFE
                                                                                                                0x005F00
                                                                                          Device Configuration
                                                                                                                0x005FFE
                                                      0x00AEFE                                                  0x006000
                                                      0x00AF00                            Unimplemented

                                Device Configuration                                      (Read ‘0’s)

                                                      0x00AFFE                                                  0x400000
                                                      0x00B000
                                                                                          User
                                                                      Inactive Partition  Program
        Inactive Partition
                                                                                          Memory                0x405EFE

                                Unimplemented                                                                   0x405F00

                                (Read ‘0’s)                                               Device Configuration  0x405FFE

                                                                                          Unimplemented         0x406000

                                                      0x7FFFFE                            (Read ‘0’s)           0x7FFFFE

        Note                1:  Memory areas are not shown to scale.

FIGURE  4-5:                PROGRAM MEMORY MAP FOR                    dsPIC33CK32MP50X/20X DEVICES(1)

                                Single Partition                                          Dual Partition

                                                      0x000000                            User                  0x000000

        Active Partition        User                                  Active Partition    Program

                                Program                                                   Memory

                                Memory                                                                          0x002EFE
                                                                                                                0x002F00
                                                                                          Device Configuration
                                                                                                                0x002FFE
                                                      0x005EFE                                                  0x003000
                                                      0x005F00                            Unimplemented

                                Device Configuration                                      (Read ‘0’s)

                                                      0x005FFE                                                  0x400000
                                                      0x006000
                                                                                          User
                                                                      Inactive Partition  Program
        Inactive Partition
                                                                                          Memory                0x402EFE

                                Unimplemented                                                                   0x402F00

                                (Read ‘0’s)                                               Device Configuration  0x402FFE

                                                                                          Unimplemented         0x403000

                                                      0x7FFFFE                            (Read ‘0’s)           0x7FFFFE

        Note                1:  Memory areas are not shown to scale.

 2017-2018 Microchip Technology Inc.                 Advance Information                                       DS70005349B-page 41
dsPIC33CK256MP508 FAMILY

4.1.1  PROGRAM MEMORY                                            4.1.2              INTERRUPT AND TRAP VECTORS

       ORGANIZATION                                              All dsPIC33CK256MP508 family devices reserve the

The  program  memory     space   is  organized    in  word-      addresses between 0x000000 and 0x000200 for hard-

addressable blocks. Although it is treated as 24 bits            coded program execution vectors. A hardware Reset

wide, it is more appropriate to think of each address of         vector is provided to redirect code execution from the

the program memory as a lower and upper word, with               default value of the PC on device Reset to the actual

the upper byte of the upper word being unimplemented.            start of code. A GOTO instruction is programmed by the

The lower word always has an even address, while the             user   application     at    address,     0x000000,   of  Flash

upper word has an odd address (Figure 4-6).                      memory, with the actual address for the start of code at

Program memory addresses are always word-aligned                 address, 0x000002, of Flash memory.

on the lower word, and addresses are incremented or              A  more  detailed      discussion     of  the  Interrupt  Vector

decremented,  by   two,  during  code    execution.   This       Tables   (IVTs)    is  provided  in    Section 7.0   “Interrupt

arrangement provides compatibility with data memory              Controller”.

space  addressing  and   makes   data    in  the  program

memory space accessible.

FIGURE 4-6:           PROGRAM MEMORY ORGANIZATION

       msw                most significant word                     least significant   word               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’)

DS70005349B-page 42                          Advance Information                         2017-2018 Microchip Technology Inc.
                                                           dsPIC33CK256MP508 FAMILY

4.1.3             UNIQUE DEVICE IDENTIFIER                               4.2.1           DATA SPACE WIDTH

                  (UDID)                                                 The     data    memory        space     is   organized     in    byte-

All dsPIC33CK256MP508 family devices are individu-                       addressable, 16-bit wide blocks. Data is aligned in data

ally encoded during final manufacturing with a Unique                    memory and registers as 16-bit words, but all Data

Device Identifier or UDID. The UDID cannot be erased                     Space      EAs   resolve    to    bytes.    The  Least     Significant

by a bulk erase command or any other user-accessible                     Bytes (LSBs) of each word have even addresses, while

means. This feature allows for manufacturing traceabil-                  the     Most    Significant       Bytes     (MSBs)         have    odd

ity  of  Microchip       Technology      devices   in   applications     addresses.

where this is a requirement. It may also be used by the                  4.2.2           DATA MEMORY ORGANIZATION

application manufacturer for any number of things that                                   AND ALIGNMENT

may require unique identification, such as:

•    Tracking the device                                                 To   maintain      backward      compatibility       with  PIC®  MCU

•    Unique serial number                                                devices    and      improve      Data     Space      memory      usage

•    Unique security key                                                 efficiency, the dsPIC33CK256MP508 family instruction

The UDID comprises five 24-bit program words. When                       set   supports      both   word   and     byte   operations.     As  a

taken    together,      these  fields    form   a  unique     120-bit    consequence of byte accessibility, all Effective Address

identifier.                                                              calculations are internally scaled to step through word-

                                                                         aligned memory. For example, the core recognizes that

The UDID is stored in five read-only locations, located                  Post-Modified          Register   Indirect      Addressing       mode

between 0x801200 and 0x801208 in the device config-                      [Ws++] results in a value of Ws + 1 for byte operations

uration  space.       Table 4-1   lists    the  addresses     of    the  and Ws + 2 for word operations.

identifier words and shows their contents                                A    data  byte     read,   reads      the  complete       word    that

                                                                         contains the byte, using the LSb of any EA to determine

TABLE 4-1:               UDID ADDRESSES                                  which byte to select. The selected byte is placed onto

                                                                         the LSB of the data path. That is, data memory and

         UDID             Address                  Description           registers     are   organized     as    two     parallel,  byte-wide

     UDID1                0x801200                 UDID Word 1           entities   with     shared      (word)    address    decode,       but

     UDID2                0x801202                 UDID Word 2           separate write lines. Data byte writes only write to the

                                                                         corresponding side of the array or register that matches

     UDID3                0x801204                 UDID Word 3           the byte address.

     UDID4                0x801206                 UDID Word 4           All word accesses must be aligned to an even address.

     UDID5                0x801208                 UDID Word 5           Misaligned word data fetches are not supported, so

                                                                         care    must    be     taken    when    mixing       byte  and   word

4.2          Data Address Space                                          operations, or translating from 8-bit MCU code. If a

                                                                         misaligned read or write is attempted, an address error

The dsPIC33CK256MP508 family CPU has a separate                          trap is generated. If the error occurred on a read, the

16-bit wide data memory space. The Data Space is                         instruction underway is completed. If the error occurred

accessed     using      separate  Address       Generation      Units    on a write, the instruction is executed but the write does

(AGUs)       for  read    and    write     operations.     The    data   not   occur.    In  either    case,  a    trap   is  then  executed,

memory maps are shown in Figure 4-7, Figure 4-8 and                      allowing the system and/or user application to examine

Figure 4-9.                                                              the machine state prior to execution of the address

All Effective Addresses (EAs) in the data memory space                   Fault.

are  16  bits     wide   and   point   to  bytes   within  the  Data     All byte loads into any W register are loaded into the

Space.   This     arrangement     gives    a    base    Data    Space    LSB; the MSB is not modified.

address range of 64 Kbytes or 32K words.                                 A Sign-Extend (SE) instruction is provided to allow user

The lower half of the data memory space (i.e., when                      applications     to    translate  8-bit     signed   data  to    16-bit

EA<15>       =    0)  is  used    for      implemented     memory        signed values. Alternatively, for 16-bit unsigned data,

addresses,        while   the  upper     half   (EA<15>    =    1)  is   user applications can clear the MSB of any W register

reserved for the Program Space Visibility (PSV).                         by   executing      a  Zero-Extend        (ZE)   instruction   on  the

The dsPIC33CK256MP508 family devices implement                           appropriate address.

up to 16 Kbytes of data memory. If an EA points to a

location outside of this area, an all-zero word or byte is

returned.

 2017-2018 Microchip Technology Inc.                   Advance Information                                          DS70005349B-page 43
dsPIC33CK256MP508 FAMILY

4.2.3          SFR SPACE                                        4.2.4       NEAR DATA SPACE

The  first  4  Kbytes    of  the  Near    Data    Space,  from  The  8-Kbyte  area,  between   0x0000   and  0x1FFF,        is

0x0000 to 0x0FFF, is primarily occupied by Special              referred to as the Near Data Space. Locations in this

Function Registers (SFRs). These are used by the                space are directly addressable through a 13-bit absolute

dsPIC33CK256MP508            family  core  and     peripheral   address field within all memory direct instructions. Addi-

modules for controlling the operation of the device.            tionally, the whole Data Space is addressable using MOV

SFRs   are  distributed  among       the  modules  that   they  instructions, which support Memory Direct Addressing

control and are generally grouped together by module.           mode with a 16-bit address field, or by using Indirect

Much of the SFR space contains unused addresses;                Addressing    mode   using  a  Working  register  as        an

these are read as ‘0’.                                          Address Pointer.

Note:          The actual set of peripheral features and

               interrupts varies by the device. Refer to the

               corresponding  device      tables  and  pinout

               diagrams for device-specific information.

DS70005349B-page 44                                Advance Information               2017-2018 Microchip Technology Inc.
                                              dsPIC33CK256MP508             FAMILY

FIGURE 4-7:  DATA    MEMORY            MAP  FOR dsPIC33CK256MPX0X DEVICES

                     MSB                                           LSB

                     Address                       16 Bits         Address

                                              MSB             LSB

4-Kbyte              0x0001                                        0x0000

SFR Space                                          SFR Space

                     0x0FFF                                        0x0FFE   8-Kbyte

                     0x1001                                                 Near

                                                                            Data Space

                                              X Data RAM (X) (8K)  0x2000

24-Kbyte             0x4FFF                                        0x4FFE

SRAM Space           0x5001                                        0x5000

                                              Y Data RAM (Y) (8K)

                     0x6FFF                                        0x6FFE
                     0x7001                                        0x7000

                     0x8001                                        0x8000

                                                   X Data

                                              Unimplemented   (X)

                                                                            Optionally

                                                                            Mapped

                                                                            into Program

                                                                            Memory

                     0xFFFF                                        0xFFFE

Note:        Memory  areas are not     shown  to scale.

 2017-2018 Microchip Technology Inc.       Advance Information             DS70005349B-page 45
dsPIC33CK256MP508 FAMILY

FIGURE 4-8:  DATA    MEMORY   MAP  FOR dsPIC33CK128MPX0X         DEVICES

                     MSB                                         LSB

                     Address                       16 Bits       Address

                                   MSB                      LSB

4-Kbyte              0x0001                                      0x0000

SFR Space                               SFR Space

                     0x0FFF                                      0x0FFE       8-Kbyte

                     0x1001                                                   Near

                                                                              Data Space

                                   X Data RAM (X) (8K)           0x2000

16-Kbyte             0x2FFF                                      0x2FFE

SRAM Space           0x3001                                      0x3000

                                   Y Data RAM (Y) (8K)

                     0x4FFF                                      0x4FFE
                     0x5001                                      0x5000

                     0x8001                                      0x8000

                                                   X Data

                                   Unimplemented (X)

                                                                              Optionally

                                                                              Mapped

                                                                              into Program

                                                                              Memory

                     0xFFFF                                      0xFFFE

Note:        Memory areas are not shown to scale.

DS70005349B-page 46                Advance Information            2017-2018  Microchip Technology  Inc.
                                              dsPIC33CK256MP508 FAMILY

FIGURE 4-9:  DATA    MEMORY            MAP  FOR dsPIC33CK64MPX0X AND dsPIC33CK32MPX0X DEVICES

                     MSB                                           LSB

                     Address                       16 Bits         Address

                                              MSB             LSB

4-Kbyte              0x0001                                        0x0000

SFR Space                                          SFR Space

                     0x0FFF                                        0x0FFE   8-Kbyte

                     0x1001                                                 Near

                                                                            Data Space

                                              X Data RAM (X) (8K)  0x2000

8-Kbyte              0x1FFF                                        0x1FFE

SRAM Space           0x2001                                        0x2000

                                              Y Data RAM (Y) (8K)

                     0x2FFF                                        0x2FFE
                     0x3001                                        0x3000

                     0x8001                                        0x8000

                                                   X Data

                                              Unimplemented   (X)

                                                                            Optionally

                                                                            Mapped

                                                                            into Program

                                                                            Memory

                     0xFFFF                                        0xFFFE

Note:        Memory  areas are not     shown  to scale.

 2017-2018 Microchip Technology Inc.       Advance Information             DS70005349B-page 47
dsPIC33CK256MP508 FAMILY

4.2.5          X AND Y DATA SPACES                                 FIGURE 4-10:               BIST FLOWCHART

The dsPIC33CK256MP508 family core has two Data

Spaces, X and Y. These Data Spaces can be considered                                          POR

either separate (for some DSP instructions) or as one

unified linear address range (for MCU instructions). The

Data Spaces are accessed using two Address Genera-

tion Units (AGUs) and separate data paths. This feature                                       BISTDIS        1

allows  certain     instructions  to  concurrently   fetch   two                         (FPOR<6>)

words from RAM, thereby enabling efficient execution of

DSP algorithms, such as Finite Impulse Response (FIR)

filtering and Fast Fourier Transform (FFT).                                                        0

The  X  Data      Space  is   used    by  all  instructions  and

supports     all  addressing    modes.    X    Data  Space   has

separate read and write data buses. The X read data                                           BIST

bus is the read data path for all instructions that view

Data Space as combined X and Y address space. It is

also the X data prefetch path for the dual operand DSP

instructions (MAC class).                                                           Code Execution

The Y Data Space is used in concert with the X Data

Space   by     the  MAC  class    of  instructions   (CLR,   ED,

EDAC, MAC, MOVSAC, MPY, MPY.N and MSC) to provide

two concurrent data read paths.                                    4.2.8       BIST AT RUN TIME

Both the X and Y Data Spaces support Modulo Address-               A BIST test can be requested to run on subsequent

ing mode for all instructions, subject to addressing mode          device Resets at any time.

restrictions.     Bit-Reversed    Addressing   mode      is  only  A BIST will corrupt all of the RAM contents, including the

supported for writes to X Data Space.                              Stack Pointer, and requires a subsequent Reset. The

All data memory writes, including in DSP instructions,             system should be prepared for a Reset before a BIST is

view Data Space as combined X and Y address space.                 performed. The BIST is invoked by setting the MBISTEN

The boundary between the X and Y Data Spaces is                    bit  (MBISTCON<0>)         and      executing  a  Reset.  The

device-dependent and is not user-programmable.                     MBISTCON         register  is  protected  against  accidental

4.2.6          BIST OVERVIEW                                       writes and requires an unlock sequence prior to writing.

                                                                   Only   one  bit  can  be   set   per  unlock   sequence.  The

The    dsPIC33CK256MP508              family   features  a   data  procedure for a run-time BIST is as follows:

memory Built-In Self-Test (BIST) that has the option to            1.    Execute the unlock sequence by consecutively

be run at start-up or run time. The memory test checks                   writing 0x55 and 0xAA to the NVMKEY register.

that all memory locations are functional and provides a            2.    Write 0x0001 to the MBISTCON SFR.

pass/fail status of the RAM that can be used by soft-              3.    Execute a software RESET command.

ware to take action if needed. If a failure is reported, the       4.    Verify a Software Reset has occurred by reading

specific location(s) are not identified.                                 SWR (RCON<6>) (optional).

The MBISTCON register (Register 4-1) contains control              5.    Verify that the MBISTDONE bit is set.

and status bits for BIST operation. The MBISTDONE bit              6.    Take action depending on test result indicated

(MBISTCON<7>) indicates if a BIST was run since the                      by MBISTSTAT.

last Reset and the MBISTSTAT bit (MBISTCON<4>)

provides the pass fail result.

4.2.7          BIST AT START-UP

The BIST can be configured to automatically run on a

POR type Reset, as shown in Figure 4-10. By default,

when BISTDIS (FPOR<6>) = 1, the BIST is disabled

and will not be part of device start-up. If the BISTDIS bit

is cleared during device programming, the BIST will run

after all Configuration registers have been loaded and

before code execution begins. BIST will always run on

FRC+PLL with PLL settings resulting in a 125 MHz

clock rate.

DS70005349B-page 48                                  Advance Information                  2017-2018 Microchip Technology Inc.
                                                       dsPIC33CK256MP508 FAMILY

4.2.8.1            Fault Simulation                                  1.       Execute the unlock sequence by consecutively

A mechanism is available to simulate a BIST failure to                        writing 0x55 and 0xAA to the NVMKEY register.

allow   testing    of  Fault  handling  software.      When  the     2.       Set the MBISTEN bit (MBISTCON<0>).

FLTINJ        bit  is  set  during  a   run-time    BIST,    the     3.       Execute 2nd unlock sequence by consecutively

MBISTSTAT bit will be set regardless of the test result.                      writing 0x55 and 0xAA to the NVMKEY register.

The procedure for a BIST Fault simulation is as follows:             4.       Set the FLTINJ bit (MBISTCON<8>).

                                                                     5.       Execute a software RESET command.

                                                                     6.       Verify the MBISTDONE, MBSITSTAT and FLTINJ

                                                                              bits are all set.

REGISTER 4-1:                 MBISTCON: MBIST CONTROL REGISTER

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

        —                   —           —                    —                —            —            —            FLTINJ

bit 15                                                                                                                      bit 8

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

MBISTDONE                   —           —               MBISTSTAT             —            —            —          MBISTEN

bit 7                                                                                                                       bit 0

Legend:                              HS = Hardware Settable bit      HC = Hardware 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-9              Unimplemented: Read as ‘0’

bit  8                 FLTINJ: MBIST Fault Inject Control bit(1)

                       1=   The MBIST test will complete and sets MBISTSTAT = 1, simulating      an SRAM     test  failure

                       0=   The MBIST test will execute normally

bit  7                 MBISTDONE: MBIST Done Status bit(1)

                       1=   An MBIST operation has been executed

                       0=   No MBIST operation has occurred on the last Reset sequence

bit  6-5               Unimplemented: Read as ‘0’

bit  4                 MBISTSTAT: MBIST Status bit

                       1=   The last MBIST failed

                       0=   The last MBIST passed; all memory may not have been tested

bit  3-1               Unimplemented: Read as ‘0’

bit  0                 MBISTEN: MBIST Enable bit(2)

                       1=   MBIST test is armed; an MBIST test will execute at the next device   Reset

                       0=   MBIST test is disarmed

Note      1:       HW resets only on a true POR Reset.

          2:       This bit will self-clear when the MBIST test is complete.

 2017-2018 Microchip Technology Inc.               Advance Information                                  DS70005349B-page 49
dsPIC33CK256MP508 FAMILY

4.3          Memory Resources                                                 •  Webinars

Many     useful  resources  are  provided          on    the   main           •  All Related “dsPIC33/PIC24 Family Reference

product page of the Microchip web site for the devices                           Manual” Sections

listed in this data sheet. This product page contains the                     •  Development Tools

latest updates and additional information.                                    4.4     SFR Maps

4.3.1            KEY RESOURCES                                                The following tables show the dsPIC33CK256MP508

•  “dsPIC33E Enhanced CPU” (DS70005158) in                                    family  SFR       names,   addresses           and         Reset  values.

   the “dsPIC33/PIC24 Family Reference Manual”                                These   tables    contain  all            registers   applicable  to   the

•  Code Samples                                                               dsPIC33CK256MP508           family.       Not         all  registers   are

•  Application Notes                                                          present on all device variants. Refer to Table 1 and

•  Software Libraries                                                         Table 2 for peripheral availability. Table 8-1 details port

                                                                              availability for the different package options.

TABLE 4-2:                SFR BLOCK 000h

   Register      Address  All Resets               Register    Address           All Resets     Register                Address          All Resets

   Core                                            XMODSRT     048            xxxxxxxxxxxxxxx0  CRC

   WREG0         000      0000000000000000         XMODEND     04A            xxxxxxxxxxxxxxx1  CRCCONL                 0B0         --000000010000--

   WREG1         002      0000000000000000         YMODSRT     04C            xxxxxxxxxxxxxxx0  CRCCONH                 0B2         ---00000---00000

   WREG2         004      0000000000000000         YMODEND     04E            xxxxxxxxxxxxxxx1  CRCXORL                 0B4         000000000000000-

   WREG3         006      0000000000000000         XBREV       050            xxxxxxxxxxxxxxxx  CRCXORH                 0B6         0000000000000000

   WREG4         008      0000000000000000         DISICNT     052            -xxxxxxxxxxxxx00  CRCDATL                 0B8         0000000000000000

   WREG5         00A      0000000000000000         TBLPAG      054            --------00000000  CRCDATH                 0BA         0000000000000000

   WREG6         00C      0000000000000000         YPAG        056            --------00000001  CRCWDATL                0BC         0000000000000000

   WREG7         00E      0000000000000000         MSTRPR      058            ----------00---0  CRCWDATH                0BE         0000000000000000

   WREG8         010      0000000000000000         CTXTSTAT    05A            -----000-----000  CLC

   WREG9         012      0000000000000000         DMTCON      05C            ----------------  CLC1CONL                0C0         --0-00--000--000

   WREG10        014      0000000000000000         DMTPRECLR   060            xxxxxxxx--------  CLC1CONH                0C2         ------------0000

   WREG11        016      0000000000000000         DMTCLR      064            --------xxxxxxxx  CLC1SEL                 0C4         0000-000-000-000

   WREG12        018      0000000000000000         DMTSTAT     068            --------xxx----x  CLC1GLSL                0C8         0000000000000000

   WREG13        01A      0000000000000000         DMTCNTL     06C            xxxxxxxxxxxxxxxx  CLC1GLSH                0CA         0000000000000000

   WREG14        01C      0000000000000000         DMTCNTH     06E            xxxxxxxxxxxxxxxx  CLC2CONL                0CC         --0-00--000--000

   WREG15        01E      0001000000000000         DMTHOLDREG  070            xxxxxxxxxxxxxxxx  CLC2CONH                0CE         ------------0000

   SPLIM         020      xxxxxxxxxxxxxxxx         DMTPSCNTL   074            xxxxxxxxxxxxxxxx  CLC2SELL                0D0         0000-000-000-000

   ACCAL         022      xxxxxxxxxxxxxxxx         DMTPSCNTH   076            xxxxxxxxxxxxxxxx  CLC2GLSL                0D4         0000000000000000

   ACCAH         024      xxxxxxxxxxxxxxxx         DMTPSINTVL  078            xxxxxxxxxxxxxxxx  CLC2GLSH                0D6         0000000000000000

   ACCAU         026      xxxxxxxxxxxxxxxx         DMTPSINTVH  07A            xxxxxxxxxxxxxxxx  CLC3CONL                0D8         --0-00--000--000

   ACCBL         028      xxxxxxxxxxxxxxxx         SENT                                         CLC3CONH                0DA         ------------0000

   ACCBH         02A      xxxxxxxxxxxxxxxx         SENT1CON1   080            --0-000000-0-000  CLC3SELL                0DC         0000-000-000-000

   ACCBU         02C      xxxxxxxxxxxxxxxx         SENT1CON2   084            0000000000000000  CLC3GLSL                0E0         0000000000000000

   PCL           02E      0000000000000000         SENT1CON3   088            0000000000000000  CLC3GLSH                0E2         0000000000000000

   PCH           030      --------00000000         SENT1STAT   08C            --------00000000  CLC4CONL                0E4         --0-00--000--000

   DSRPAG        032      ------0000000001         SENT1SYNC   090            0000000000000000  CLC4CONH                0E6         ------------0000

   DSWPAG        034      -------000000001         SENT1DATL   094            0000000000000000  CLC4SELL                0E8         0000-000-000-000

   RCOUNT        036      xxxxxxxxxxxxxxxx         SENT1DATH   096            0000000000000000  CLC4GLSL                0EC         0000000000000000

   DCOUNT        038      xxxxxxxxxxxxxxxx         SENT2CON1   098            --0-000000-0-000  CLC4GLSH                0EE         0000000000000000

DOSTARTL         03A      xxxxxxxxxxxxxxx0         SENT2CON2   09C            0000000000000000  ECC

DOSTARTH         03C      ---------xxxxxxx         SENT2CON3   0A0            0000000000000000  ECCCONL                 0F0         ---------------0

   DOENDL        03E      xxxxxxxxxxxxxxx0         SENT2STAT   0A4            --------00000000  ECCCONH                 0F2         0000000000000000

   DOENDH        040      ---------xxxxxxx         SENT2SYNC   0A8            0000000000000000  ECCADDRL                0F4         0000000000000000

     SR          042      0000000000000000         SENT2DATL   0AC            0000000000000000  ECCADDRH                0F6         0000000000000000

   CORCON        044      --xx000000100000         SENT2DATH   0AE            0000000000000000  ECCSTATL                0F8         0000000000000000

   MODCON        046      0--0000000000000                                                      ECCSTATH                0FA         ------0000000000

Legend:      x=  unknown  or indeterminate value;  “-” = unimplemented bits.  Address values are in hexadecimal. Reset  values are  in binary.

DS70005349B-page 50                                      Advance Information                     2017-2018 Microchip Technology Inc.
                                                      dsPIC33CK256MP508 FAMILY

TABLE 4-3:          SFR BLOCK 100h

Register       Address      All Resets                Register   Address      All Resets        Register                Address     All Resets

Timers                                                INDX1HLD         16A    0000000000000000  INDX2HLD                19E         0000000000000000

T1CON          100          --0000000-00-00-          QEI1GECL/        16C    0000000000000000  QEI2GECL/               1A0         0000000000000000

                                                      QEI1ICL                                   QEI2ICL

     TMR1      104          0000000000000000          QEI1GECH/        16E    0000000000000000  QEI2GECH/               1A2         0000000000000000

                                                      QEI1ICH                                   QEI2ICH

     PR1       108          0000000000000000          QEI1LECL         170    0000000000000000  QEI2LECL                1A4         0000000000000000

QEI                                                   QEI1LECH         172    0000000000000000  QEI2LECH                1A6         0000000000000000

QEI1CON        140          --000000-0000000          QEI2CON          174    --000000-0000000  PMP

QEI1IOC        144          000000000000xxxx          QEI2IOC          178    000000000000xxxx  PMCON                   1A8         --00000000000-00

QEI1IOCH       146          ---------------0          QEI2IOCH         17A    ---------------0  PMCONH                  1AA         --------0-----0-

QEI1STAT       148          --00000000000000          QEI2STAT         17C    --00000000000000  PMMODE                  1AC         0000000000000000

POS1CNTL       14C          0000000000000000          POS2CNTL         180    0000000000000000  PMADDR                  1B0         0000000000000000

POS1CNTH       14E          0000000000000000          POS2CNTH         182    0000000000000000  PMDOUT1                 1B4         0000000000000000

POS1HLD        152          0000000000000000          POS2HLD          186    0000000000000000  PMDOUT2                 1B6         0000000000000000

VEL1CNT        154          0000000000000000          VEL2CNT          188    0000000000000000  PMDIN1                  1B8         0000000000000000

VEL1CNTH       156          0000000000000000          VEL2CNTH         18A    0000000000000000  PMDIN2                  1BA         0000000000000000

VEL1HLD        15A          0000000000000000          VEL2HLD          18E    0000000000000000  PMAEN                   1BC         0000000000000000

INT1TMRL       15C          0000000000000000          INT2TMRL         190    0000000000000000  PMSTAT                  1C0         00--000010--1111

INT1TMRH       15E          0000000000000000          INT2TMRH         192    0000000000000000  PMWADDR                 1C4         0000000000000000

INT1HLDL       160          0000000000000000          INT2HLDL         194    0000000000000000  PMRADDR                 1C8         0000000000000000

INT1HLDH       162          0000000000000000          INT2HLDH         196    0000000000000000  PMRDIN                  1CC         0000000000000000

INDX1CNTL      164          0000000000000000          INDX2CNTL        198    0000000000000000

INDX1CNTH      166          0000000000000000          INDX2CNTH        19A    0000000000000000

Legend:    x=  unknown  or  indeterminate value; “-”  = unimplemented  bits.  Address values are in hexadecimal. Reset  values are  in binary.

 2017-2018 Microchip Technology Inc.                 Advance Information                                               DS70005349B-page 51
dsPIC33CK256MP508 FAMILY

TABLE 4-4:          SFR BLOCK 200h

Register       Address  All Resets        Register    Address              All Resets        Register                Address     All Resets

I2C1 and I2C2                             U1SCCON     258                  ----------00000-  SPI1IMSKH               2C2         --0000000-000000

I2C1CONL       200      --01000000000000  U1SCINT     25A                  --00-000--00-000  SPI1URDTL               2C4         0000000000000000

I2C1CONH       202      ---------0000000       U1INT  25C                  --------00---0--  SPI1URDTH               2C6         0000000000000000

I2C1STAT       204      000--00000000000  U2MODE      260                  --000-0000000000  SPI2CON1L               2C8         --00000000000000

I2C1ADD        208      ------0000000000  U2MODEH     262                  00---00000000000  SPI2CON1H               2CA         0000000000000000

I2C1MSK        20C      ------0000000000  U2STA       264                  0000000010000000  SPI2CON2L               2CC         -----------00000

I2C1BRG        210      0000000000000000  U2STAH      266                  0000-00000101110  SPI2CON2H               2CE         ----------------

I2C1TRN        214      --------11111111  U2BRG       268                  0000000000000000  SPI2STATL               2D0         ---00--0001-1-00

I2C1RCV        218      --------00000000  U2BRGH      26A                  ------------0000  SPI2STATH               2D2         --000000--000000

I2C2CONL       21C      --01000000000000  U2RXREG     26C                  --------xxxxxxxx  SPI2BUFL                2D4         0000000000000000

I2C2CONH       21E      ---------0000000  U2TXREG     270                  --------xxxxxxxx  SPI2BUFH                2D6         0000000000000000

I2C2STAT       220      000--00000000000       U2P1   274                  -------000000000  SPI2BRGL                2D8         ---xxxxxxxxxxxxx

I2C2ADD        224      ------0000000000       U2P2   276                  -------000000000  SPI2BRGH                2DA         ----------------

I2C2MSK        228      ------0000000000       U2P3   278                  0000000000000000  SPI2IMSKL               2DC         ---00--0000-0-00

I2C2BRG        22C      0000000000000000  U2P3H       27A                  --------00000000  SPI2IMSKH               2DE         --0000000-000000

I2C2TRN        230      --------11111111  U2TXCHK     27C                  --------00000000  SPI2URDTL               2E0         0000000000000000

I2C2RCV        234      --------00000000  U2RXCHK     27E                  --------00000000  SPI2URDTH               2E2         0000000000000000

UART1 and UART2                           U2SCCON     280                  ----------00000-  SPI3CON1L               2E4         --00000000000000

U1MODE         238      --000-0000000000  U2SCINT     282                  --00-000--00-000  SPI3CON1H               2E6         0000000000000000

U1MODEH        23A      00---00000000000       U2INT  284                  --------00---0--  SPI3CON2L               2E8         -----------00000

U1STA          23C      0000000010000000  SPI                                                SPI3CON2H               2EA         ----------------

U1STAH         23E      0000-00000101110  SPI1CON1L   2AC                  --00000000000000  SPI3STATL               2EC         ---00--0001-1-00

U1BRG          240      0000000000000000  SPI1CON1H   2AE                  0000000000000000  SPI3STATH               2EE         --000000--000000

U1BRGH         242      ------------0000  SPI1CON2L   2B0                  -----------00000  SPI3BUFL                2F0         0000000000000000

U1RXREG        244      --------xxxxxxxx  SPI1CON2H   2B2                  ----------------  SPI3BUFH                2F2         0000000000000000

U1TXREG        248      --------xxxxxxxx  SPI1STATL   2B4                  ---00--0001-1-00  SPI3BRGL                2F4         ---xxxxxxxxxxxxx

U1P1           24C      -------000000000  SPI1STATH   2B6                  --000000--000000  SPI3BRGH                2F6         ----------------

U1P2           24E      -------000000000  SPI1BUFL    2B8                  0000000000000000  SPI3IMSKL               2F8         ---00--0000-0-00

U1P3           250      0000000000000000  SPI1BUFH    2BA                  0000000000000000  SPI3IMSKH               2FA         --0000000-000000

U1P3H          252      --------00000000  SPI1BRGL    2BC                  ---xxxxxxxxxxxxx  SPI3URDTL               2FC         0000000000000000

U1TXCHK        254      --------00000000  SPI1BRGH    2BE                  ----------------  SPI3URDTH               2F3         0000000000000000

U1RXCHK        256      --------00000000  SPI1IMSKL   2C0                  ---00--0000-0-00

Legend:  x = unknown    or indeterminate value; “-” = unimplemented bits.  Address values are in hexadecimal. Reset  values are  in binary.

DS70005349B-page 52                            Advance Information                            2017-2018 Microchip Technology Inc.
                                                   dsPIC33CK256MP508 FAMILY

TABLE 4-5:       SFR BLOCK 300h

Register   Address    All Resets                   Register   Address     All Resets        Register                Address     All Resets

High-Speed PWM                                     PG1TRIGA   354         0000000000000000  PG3CLPCIH               3AA         0000-00000000000

PCLKCON     300       00-----0--00--00             PG1TRIGB   356         0000000000000000  PG3FFPCIL               3AC         0000000000000000

FSCL        302       0000000000000000             PG1TRIGC   358         0000000000000000  PG3FFPCIH               3AE         0000-00000000000

FSMINPER    304       0000000000000000             PG1DTL     35A         --00000000000000  PG3SPCIL                3B0         0000000000000000

MPHASE      306       0000000000000000             PG1DTH     35C         --00000000000000  PG3SPCIH                3B2         0000-00000000000

MDC         308       0000000000000000             PG1CAP     35E         0000000000000000  PG3LEBL                 3B4         0000000000000000

MPER        30A       0000000000000000             PG2CONL    360         -----0000--00000  PG3LEBH                 3B6         -----000----0000

LFSR        30C       0000000000000000             PG2CONH    362         000-000000--0000  PG3PHASE                3B8         0000000000000000

CMBTRIGL    30E       --------00000000             PG2STAT    364         0000000000000000  PG3DC                   3BA         0000000000000000

CMBTRIGH    310       --------00000000             PG2IOCONL  366         0000000000000000  PG3DCA                  3BC         --------00000000

LOGCONA     312       000000000000-000             PG2IOCONH  368         0000---0--000000  PG3PER                  3BE         0000000000000000

LOGCONB     314       000000000000-000             PG2EVTL    36A         00000000---00000  PG3TRIGA                3C0         0000000000000000

LOGCONC     316       000000000000-000             PG2EVTH    36C         0000--0000000000  PG3TRIGB                3C2         0000000000000000

LOGCOND     318       000000000000-000             PG2FPCIL   36E         0000000000000000  PG3TRIGC                3C4         0000000000000000

LOGCONE     31A       000000000000-000             PG2FPCIH   370         0000-00000000000  PG3DTL                  3C6         --00000000000000

LOGCONF     31C       000000000000-000             PG2CLPCIL  372         0000000000000000  PG3DTH                  3C8         --00000000000000

PWMEVTA     31E       0000----0000-000             PG2CLPCIH  374         0000-00000000000  PG3CAP                  3CA         0000000000000000

PWMEVTB     320       0000----0000-000             PG2FFPCIL  376         0000000000000000  PG4CONL                 3CC         -----0000--00000

PWMEVTC     322       0000----0000-000             PG2FFPCIH  378         0000-00000000000  PG4CONH                 3CE         000-000000--0000

PWMEVTD     324       0000----0000-000             PG2SPCIL   37A         0000000000000000  PG4STAT                 3D0         0000000000000000

PWMEVTE     326       0000----0000-000             PG2SPCIH   37C         0000-00000000000  PG4IOCONL               3D2         0000000000000000

PWMEVTF     328       0000----0000-000             PG2LEBL    37E         0000000000000000  PG4IOCONH               3D4         0000---0--000000

PG1CONL     32A       -----0000--00000             PG2LEBH    380         -----000----0000  PG4EVTL                 3D6         00000000---00000

PG1CONH     32C       000-000000--0000             PG2PHASE   382         0000000000000000  PG4EVTH                 3D8         0000--0000000000

PG1STAT     32E       0000000000000000             PG2DC      384         0000000000000000  PG4FPCIL                3DA         0000000000000000

PG1IOCONL   330       0000000000000000             PG2DCA     386         --------00000000  PG4FPCIH                3DC         0000-00000000000

PG1IOCONH   332       0000---0--000000             PG2PER     388         0000000000000000  PG4CLPCIL               3DE         0000000000000000

PG1EVTL     334       00000000---00000             PG2TRIGA   38A         0000000000000000  PG4CLPCIH               3E0         0000-00000000000

PG1EVTH     336       0000--0000000000             PG2TRIGB   38C         0000000000000000  PG4FFPCIL               3E2         0000000000000000

PG1FPCIL    338       0000000000000000             PG2TRIGC   38E         0000000000000000  PG4FFPCIH               3E4         0000-00000000000

PG1FPCIH    33A       0000-00000000000             PG2DTL     390         --00000000000000  PG4SPCIL                3E6         0000000000000000

PG1CLPCIL   33C       0000000000000000             PG2DTH     392         --00000000000000  PG4SPCIH                3E8         0000-00000000000

PG1CLPCIH   33E       0000-00000000000             PG2CAP     394         0000000000000000  PG4LEBL                 3EA         0000000000000000

PG1FFPCIL   340       0000000000000000             PG3CONL    396         -----0000--00000  PG4LEBH                 3EC         -----000----0000

PG1FFPCIH   342       0000-00000000000             PG3CONH    398         000-000000--0000  PG4PHASE                3EE         0000000000000000

PG1SPCIL    344       0000000000000000             PG3STAT    39A         0000000000000000  PG4DC                   3F0         0000000000000000

PG1SPCIH    346       0000-00000000000             PG3IOCONL  39C         0000000000000000  PG4DCA                  3F2         --------00000000

PG1LEBL     348       0000000000000000             PG3IOCONH  39E         0000---0--000000  PG4PER                  3F4         0000000000000000

PG1LEBH     34A       -----000----0000             PG3EVTL    3A0         00000000---00000  PG4TRIGA                3F6         0000000000000000

PG1PHASE    34C       0000000000000000             PG3EVTH    3A2         0000--0000000000  PG4TRIGB                3F8         0000000000000000

PG1DC       34E       0000000000000000             PG3FPCIL   3A4         0000000000000000  PG4TRIGC                3FA         0000000000000000

PG1DCA      350       --------00000000             PG3FPCIH   3A6         0000-00000000000  PG4DTL                  3FC         --00000000000000

PG1PER      352       0000000000000000             PG3CLPCIL  3A8         0000000000000000  PG4DTH                  3FE         --00000000000000

Legend:  x = unknown  or indeterminate value; “-”  = unimplemented bits.  Address values are in hexadecimal. Reset  values are  in binary.

 2017-2018 Microchip Technology Inc.              Advance Information                                                   DS70005349B-page 53
dsPIC33CK256MP508 FAMILY

TABLE 4-6:       SFR BLOCK 400h

Register   Address          All Resets            Register   Address     All Resets        Register                Address     All Resets

High-Speed PWM (Continued)                        PG6FPCIH   448         0000-00000000000  PG7DC                   492         0000000000000000

PG4CAP      400      0000000000000000             PG6CLPCIL  44A         0000000000000000  PG7DCA                  494         --------00000000

PG5CONL     402      -----0000--00000             PG6CLPCIH  44C         0000-00000000000  PG7PER                  496         0000000000000000

PG5CONH     404      000-000000--0000             PG6FFPCIL  44E         0000000000000000  PG7TRIGA                498         0000000000000000

PG5STAT     406      0000000000000000             PG6FFPCIH  450         0000-00000000000  PG7TRIGB                49A         0000000000000000

PG5IOCONL   408      0000000000000000             PG6SPCIL   452         0000000000000000  PG7TRIGC                49C         0000000000000000

PG5IOCONH   40A      0000---0--000000             PG6SPCIH   454         0000-00000000000  PG7DTL                  49E         --00000000000000

PG5EVTL     40C      00000000---00000             PG6LEBL    456         0000000000000000  PG7DTH                  4A0         --00000000000000

PG5EVTH     40E      0000--0000000000             PG6LEBH    458         -----000----0000  PG7CAP                  4A2         0000000000000000

PG5FPCIL    410      0000000000000000             PG6PHASE   45A         0000000000000000  PG8CONL                 4A4         -----0000--00000

PG5FPCIH    412      0000-00000000000             PG6DC      45C         0000000000000000  PG8CONH                 4A6         000-000000--0000

PG5CLPCIL   414      0000000000000000             PG6DCA     45E         --------00000000  PG8STAT                 4A8         0000000000000000

PG5CLPCIH   416      0000-00000000000             PG6PER     460         0000000000000000  PG8IOCONL               4AA         0000000000000000

PG5FFPCIL   418      0000000000000000             PG6TRIGA   462         0000000000000000  PG8IOCONH               4AC         0000---0--000000

PG5FFPCIH   41A      0000-00000000000             PG6TRIGB   464         0000000000000000  PG8EVTL                 4AE         00000000---00000

PG5SPCIL    41C      0000000000000000             PG6TRIGC   466         0000000000000000  PG8EVTH                 4B0         0000--0000000000

PG5SPCIH    41E      0000-00000000000             PG6DTL     468         --00000000000000  PG8FPCIL                4B2         0000000000000000

PG5LEBL     420      0000000000000000             PG6DTH     46A         --00000000000000  PG8FPCIH                4B4         0000-00000000000

PG5LEBH     422      -----000----0000             PG6CAP     46C         0000000000000000  PG8CLPCIL               4B6         0000000000000000

PG5PHASE    424      0000000000000000             PG7CONL    46E         -----0000--00000  PG8CLPCIH               4B8         0000-00000000000

PG5DC       426      0000000000000000             PG7CONH    470         000-000000--0000  PG8FFPCIL               4BA         0000000000000000

PG5DCA      428      --------00000000             PG7STAT    472         0000000000000000  PG8FFPCIH               4BC         0000-00000000000

PG5PER      42A      0000000000000000             PG7IOCONL  474         0000000000000000  PG8SPCIL                4BE         0000000000000000

PG5TRIGA    42C      0000000000000000             PG7IOCONH  476         0000---0--000000  PG8SPCIH                4C0         0000-00000000000

PG5TRIGB    42E      0000000000000000             PG7EVTL    478         00000000---00000  PG8LEBL                 4C2         0000000000000000

PG5TRIGC    430      0000000000000000             PG7EVTH    47A         0000--0000000000  PG8LEBH                 4C4         -----000----0000

PG5DTL      432      --00000000000000             PG7FPCIL   47C         0000000000000000  PG8PHASE                4C6         0000000000000000

PG5DTH      434      --00000000000000             PG7FPCIH   47E         0000-00000000000  PG8DC                   4C8         0000000000000000

PG5CAP      436      0000000000000000             PG7CLPCIL  480         0000000000000000  PG8DCA                  4CA         --------00000000

PG6CONL     438      -----0000--00000             PG7CLPCIH  482         0000-00000000000  PG8PER                  4CC         0000000000000000

PG6CONH     43A      000-000000--0000             PG7FFPCIL  484         0000000000000000  PG8TRIGA                4CE         0000000000000000

PG6STAT     43C      0000000000000000             PG7FFPCIH  486         0000-00000000000  PG8TRIGB                4D0         0000000000000000

PG6IOCONL   43E      0000000000000000             PG7SPCIL   488         0000000000000000  PG8TRIGC                4D2         0000000000000000

PG6IOCONH   440      0000---0--000000             PG7SPCIH   48A         0000-00000000000  PG8DTL                  4D4         --00000000000000

PG6EVTL     442      00000000---00000             PG7LEBL    48C         0000000000000000  PG8DTH                  4D6         --00000000000000

PG6EVTH     444      0000--0000000000             PG7LEBH    48E         -----000----0000  PG8CAP                  4D8         0000000000000000

PG6FPCIL    446      0000000000000000             PG7PHASE   490         0000000000000000

Legend:  x = unknown or indeterminate value; “-”  = unimplemented bits.  Address values are in hexadecimal. Reset  values are  in binary.

DS70005349B-page 54                               Advance Information                       2017-2018 Microchip Technology Inc.
                                                  dsPIC33CK256MP508 FAMILY

TABLE 4-7:       SFR BLOCK 500h

Register   Address  All Resets                    Register   Address  All Resets        Register                  Address     All Resets

CAN                                               C1TSCONL   5D4      ------0000000000  C1RXOVIFH                 5EA         0000000000000000

C1CONL      5C0     --00011101100000              C1TSCONH   5D6      -------------000  C1TXATIFL                 5EC         0000000000000000

C1CONH      5C2     0000010010011000              C1VECL     5D8      ---00000-1000000  C1TXATIFH                 5EE         0000000000000000

C1NBTCFGL   5C4     00001111-0001111              C1VECH     5DA      11000000-1000000  C1TXREQL                  5F0         0000000000000000

C1NBTCFGH   5C6     0000000000111110              C1INTL     5DC      000000-----00000  C1TXREQH                  5F2         0000000000000000

C1DBTCFGL   5C8     ----0011----0011              C1INTH     5DE      000000-----00000  C1TRECL                   5F4         0000000000000000

C1DBTCFGH   5CA     00000000---01110              C1RXIFL    5E0      0000000000000000  C1TRECH                   5F6         ----------100000

C1TDCL      5CC     00010000--000000              C1RXIFH    5E2      0000000000000000  C1BDIAG0L                 5F8         0000000000000000

C1TDCH      5CE     ------00------10              C1TXIFL    5E4      000000000000000-  C1BDIAG0H                 5FA         0000000000000000

C1TBCL      5D0     0000000000000000              C1TXIFH    5E6      0000000000000000  C1BDIAG1L                 5FC         0000000000000000

C1TBCH      5D2     0000000000000000              C1RXOVIFL  5E8      000000000000000-  C1BDIAG1H                 5FE         00000-000-000000

Legend:  x = unknown or indeterminate value; “-”  = unimplemented bits. Address values are in hexadecimal. Reset  values are  in binary.

 2017-2018 Microchip Technology Inc.             Advance Information                                             DS70005349B-page 55
dsPIC33CK256MP508 FAMILY

TABLE 4-8:       SFR BLOCK 600h

Register     Address      All Resets                Register         Address  All Resets        Register     Address                All Resets

CAN (Continued)                                     C1FIFOSTA6       65C      ---0000000000000  C1FLTOBJ6L   6B0                    0000000000000000

C1TEFCONL        600      -----1-0--0-0000          C1FIFOUA6L       660      xxxxxxxxxxxxxxxx  C1FLTOBJ6H   6B2                    0000000000000000

C1TEFCONH        602      ---00000--------          C1FIFOUA6H       662      xxxxxxxxxxxxxxxx  C1MASK6L     6B4                    0000000000000000

C1TEFSTA         604      ------------0000          C1FIFOCON7L      664      -----100x0000000  C1MASK6H     6B6                    0000000000000000

C1TEFUAL         608      xxxxxxxxxxxxxxxx          C1FIFOCON7H      666      00000000-1100000  C1FLTOBJ7L   7B8                    0000000000000000

C1TEFUAH         60A      xxxxxxxxxxxxxxxx          C1FIFOSTA7       668      ---0000000000000  C1FLTOBJ7H   6BA                    0000000000000000

C1FIFOBAL        60C      0000000000000000          C1FIFOUA7L       66C      xxxxxxxxxxxxxxxx  C1MASK7L     6BC                    0000000000000000

C1FIFOBAH        60E      0000000000000000          C1FIFOUA7H       66E      xxxxxxxxxxxxxxxx  C1MASK7H     6BE                    0000000000000000

C1TXQCONL        610      -----100x0000000          C1FLTCON0L       670      ---000000--00000  C1FLTOBJ8L   6C0                    0000000000000000

C1TXQCONH        612      00000000-1100000          C1FLTCON0H       672      ---000000--00000  C1FLTOBJ8H   6C2                    0000000000000000

C1TXQSTA         614      ---000000000-0-0          C1FLTCON1L       674      ---000000--00000  C1MASK8L     6C4                    0000000000000000

C1TXQUAL         618      xxxxxxxxxxxxxxxx          C1FLTCON1H       676      ---000000--00000  C1MASK8H     6C6                    0000000000000000

C1TXQUAH         61A      xxxxxxxxxxxxxxxx          C1FLTCON2L       678      ---000000--00000  C1FLTOBJ9L   6C8                    0000000000000000

C1FIFOCON1L      61C      -----100x0000000          C1FLTCON2H       67A      ---000000--00000  C1FLTOBJ9H   6CA                    0000000000000000

C1FIFOCON1H      61E      00000000-1100000          C1FLTCON3L       67C      ---000000--00000  C1MASK9L     6CC                    0000000000000000

C1FIFOSTA1       620      ---0000000000000          C1FLTCON3H       67E      ---000000--00000  C1MASK9H     6CE                    0000000000000000

C1FIFOUA1L       624      xxxxxxxxxxxxxxxx          C1FLTOBJ0L       680      0000000000000000  C1FLTOBJ10L  6D0                    0000000000000000

C1FIFOUA1H       626      xxxxxxxxxxxxxxxx          C1FLTOBJ0H       682      0000000000000000  C1FLTOBJ10H  6D2                    0000000000000000

C1FIFOCON2L      628      -----100x0000000          C1MASK0L         684      0000000000000000  C1MASK10L    6D4                    0000000000000000

C1FIFOCON2H      62A      00000000-1100000          C1MASK0H         686      0000000000000000  C1MASK10H    6D6                    0000000000000000

C1FIFOSTA2       62C      ---0000000000000          C1FLTOBJ1L       688      0000000000000000  C1FLTOBJ11L  6D8                    0000000000000000

C1FIFOUA2L       630      xxxxxxxxxxxxxxxx          C1FLTOBJ1H       68A      0000000000000000  C1FLTOBJ11H  6DA                    0000000000000000

C1FIFOUA2H       632      xxxxxxxxxxxxxxxx          C1MASK1L         68C      0000000000000000  C1MASK11L    6DC                    0000000000000000

C1FIFOCON3L      634      -----100x0000000          C1MASK1H         68E      0000000000000000  C1MASK11H    6DE                    0000000000000000

C1FIFOCON3H      636      00000000-1100000          C1FLTOBJ2L       690      0000000000000000  C1FLTOBJ12L  6E0                    0000000000000000

C1FIFOSTA3       638      ---0000000000000          C1FLTOBJ2H       692      0000000000000000  C1FLTOBJ12H  6E2                    0000000000000000

C1FIFOUA3L       63C      xxxxxxxxxxxxxxxx          C1MASK2L         694      0000000000000000  C1MASK12L    6E4                    0000000000000000

C1FIFOUA3H       63E      xxxxxxxxxxxxxxxx          C1MASK2H         696      0000000000000000  C1MASK12H    6E6                    0000000000000000

C1FIFOCON4L      640      -----100x0000000          C1FLTOBJ3L       698      0000000000000000  C1FLTOBJ13L  6E8                    0000000000000000

C1FIFOCON4H      642      00000000-1100000          C1FLTOBJ3H       69A      0000000000000000  C1FLTOBJ13H  6EA                    0000000000000000

C1FIFOSTA4       644      ---0000000000000          C1MASK3L         69C      0000000000000000  C1MASK13L    6EC                    0000000000000000

C1FIFOUA4L       648      xxxxxxxxxxxxxxxx          C1MASK3H         69C      0000000000000000  C1MASK13H    6EE                    0000000000000000

C1FIFOUA4H       64A      xxxxxxxxxxxxxxxx          C1FLTOBJ4L       6A0      0000000000000000  C1FLTOBJ14L  6F0                    0000000000000000

C1FIFOCON5L      64C      -----100x0000000          C1FLTOBJ4H       6A2      0000000000000000  C1FLTOBJ14H  6F2                    0000000000000000

C1FIFOCON5H      64E      00000000-1100000          C1MASK4L         6A4      0000000000000000  C1MASK14L    6F4                    0000000000000000

C1FIFOSTA5       650      ---0000000000000          C1MASK4H         6A6      0000000000000000  C1MASK14H    6F6                    0000000000000000

C1FIFOUA5L       654      xxxxxxxxxxxxxxxx          C1FLTOBJ5L       6A8      0000000000000000  C1FLTOBJ15L  6F8                    0000000000000000

C1FIFOUA5H       656      xxxxxxxxxxxxxxxx          C1FLTOBJ5H       6AA      0000000000000000  C1FLTOBJ15H  6FA                    0000000000000000

C1FIFOCON6L      658      -----100x0000000          C1MASK5L         6AC      0000000000000000  C1MASK15L    6FC                    0000000000000000

C1FIFOCON6H      65A      00000000-1100000          C1MASK5H         6AE      0000000000000000  C1MASK15H    6FE                    0000000000000000

Legend:  x = unknown  or  indeterminate value; “-”  = unimplemented  bits. Address values are in hexadecimal. Reset values are  in  binary.

DS70005349B-page 56                                 Advance Information                          2017-2018 Microchip Technology Inc.
                                                            dsPIC33CK256MP508 FAMILY

TABLE 4-9:             SFR BLOCK 800h

Register          Address  All Resets                       Register  Address    All Resets        Register                Address     All Resets

Interrupts                                                  IPC3      846        -100-100-100-100       IPC35              886         -100-100--------

IFS0              800      0000000000-00000                 IPC4      848        -100-100-100-100       IPC36              888         -------------100

IFS1              802      000000000-000000                 IPC5      84A        -100-----100-100       IPC37              88A         -----100-100----

IFS2              804      00000-00-0000---                 IPC6      84C        -100-100-100-100       IPC38              88C         ---------100-100

IFS3              806      00000000-0-00000                 IPC7      84E        -100-100-100-100       IPC40              890         ---------100-100

IFS4              808      0000000000000-00                 IPC8      850        -100-100--------       IPC42              894         -100-100-100-100

IFS5              80A      000000000000000-                 IPC9      852        -----100-100-100       IPC43              896         -100-100-100-100

IFS6              80C      0000000000000000                 IPC10     854        -100-----100-100       IPC44              898         -100-100-100-100

IFS7              80E      0000000000000000                 IPC11     856        -100-100-100-100       IPC45              89A         -----100-100-100

IFS8              810      00-------------0                 IPC12     858        -100-100-100-100       IPC47              89E         -100-100-100----

IFS9              812      ------00-00----0                 IPC13     85A        -----100-----100       IPC48              8A0         -100-100-100-100

IFS10             814      00000000------00                 IPC14     85C        -100-100-100-100  INTCON1                 8C0         0000000000-0000-

IFS11             816      000------0000000                 IPC15     85E        -100-100-100----  INTCON2                 8C2         000----0----0000

IFS12             818      ------------0000                 IPC16     860        -100-----100-100  INTCON3                 8C4         ------00---0---0

IEC0              820      0000000000-00000                 IPC17     862        -100-100-100-100  INTCON4                 8C6         --------------00

IEC1              822      000000000-000000                 IPC18     864        -100-100-100-100  INTTREG                 8C8         000-0000-0000000

IEC2              824      00000-00-0000---                 IPC19     866        -100-100-100-100  Flash

IEC3              826      00000000-0-00000                 IPC20     868        -100-100-100----  NVMCON                  8D0         00000000----0000

IEC4              828      0000000000000-00                 IPC21     86A        -100-100-100-100  NVMADRL                 8D2         0000000000000000

IEC5              82A      000000000000000-                 IPC22     86C        -100-100-100-100  NVMADRH                 8D4         --------00000000

IEC6              82C      0000000000000000                 IPC23     86E        -100-100-100-100  NVMKEY                  8D6         --------00000000

IEC7              82E      0000000000000000                 IPC24     870        -100-100-100-100  NVMSRCADRL              8D8         0000000000000000

IEC8              830      0--------------0                 IPC25     872        -100-100-100-100  NVMSRCADRH              8DA         --------00000000

IEC9              832      ------00-00----0                 IPC26     874        -100-100-100-100  CBG

IEC10             834      00000000------00                 IPC27     876        -100-100-100-100  AMPCON1L                8DC         -------------000

IEC11             836      000------0000000                 IPC28     878        -100-100-100-100  AMPCON1H                8DE         -------------000

IEC12             838      ------------0000                 IPC29     87A        -100-100-100-100  BIASCON                 8F0         ------------0000

IPC0              840      -100-100-100-100                 IPC30     87C        -100-100-100-100  IBIASCON0L              8F4         --000000--000000

IPC1              842      -100-100-----100                 IPC31     87E        -100-100-100-100  IBIASCON0H              8F6         --000000--000000

IPC2              844      -100-100-100-100                 IPC32     880        -------------100

Legend:     x  =  unknown  or indeterminate value;  “-”  =  unimplemented bits.  Address values are in hexadecimal. Reset  values are  in binary.

 2017-2018 Microchip Technology Inc.                       Advance Information                                            DS70005349B-page 57
dsPIC33CK256MP508 FAMILY

TABLE 4-10:       SFR BLOCK 900h

Register     Address  All Resets        Register                   Address  All Resets        Register              Address     All Resets

PTG                                     CCP1CON3H                  95A      0000------0-00--  CCP3PRL               9AC         1111111111111111

PTGCST       900      --00-00000x---00  CCP1STATL                  95C      -----0--00xx0000  CCP3PRH               9AE         1111111111111111

PTGCON       902      000000000000-000  CCP1STATH                  95E      -----------00000  CCP3RAL               9B0         0000000000000000

PTGBTE       904      xxxxxxxxxxxxxxxx  CCP1TMRL                   960      0000000000000000  CCP3RBL               9B4         0000000000000000

PTGBTEH      906      0000000000000000  CCP1TMRH                   962      0000000000000000  CCP3BUFL              9B8         0000000000000000

PTGHOLD      908      0000000000000000  CCP1PRL                    964      1111111111111111  CCP3BUFH              9BA         0000000000000000

PTGT0LIM     90C      0000000000000000  CCP1PRH                    966      1111111111111111  CCP4CON1L             9BC         --00000000000000

PTGT1LIM     910      0000000000000000  CCP1RAL                    968      0000000000000000  CCP4CON1H             9BE         00--000000000000

PTGSDLIM     914      0000000000000000  CCP1RBL                    96C      0000000000000000  CCP4CON2L             9C0         00-0----00000000

PTGC0LIM     918      0000000000000000  CCP1BUFL                   970      0000000000000000  CCP4CON2H             9C2         -------100-00000

PTGC1LIM     91C      0000000000000000  CCP1BUFH                   972      0000000000000000  CCP4CON3H             9C6         0000------0-00--

PTGADJ       920      0000000000000000  CCP2CON1L                  974      --00000000000000  CCP4STATL             9C8         -----0--00xx0000

PTGL0        924      0000000000000000  CCP2CON1H                  976      00--000000000000  CCP4STATH             9CA         -----------00000

PTGQPTR      928      -----------00000  CCP2CON2L                  978      00-0----00000000  CCP4TMRL              9CC         0000000000000000

PTGQUE0      930      xxxxxxxxxxxxxxxx  CCP2CON2H                  97A      0------100-00000  CCP4TMRH              9CE         0000000000000000

PTGQUE1      932      xxxxxxxxxxxxxxxx  CCP2CON3H                  97E      0000------0-00--  CCP4PRL               9D0         1111111111111111

PTGQUE2      934      xxxxxxxxxxxxxxxx  CCP2STATL                  980      -----0--00xx0000  CCP4PRH               9D2         1111111111111111

PTGQUE3      936      xxxxxxxxxxxxxxxx  CCP2STATH                  982      -----------00000  CCP4RAL               9D4         0000000000000000

PTGQUE4      938      xxxxxxxxxxxxxxxx  CCP2TMRL                   984      0000000000000000  CCP4RBL               9D8         0000000000000000

PTGQUE5      93A      xxxxxxxxxxxxxxxx  CCP2TMRH                   986      0000000000000000  CCP4BUFL              9DC         0000000000000000

PTGQUE6      93C      xxxxxxxxxxxxxxxx  CCP2PRL                    988      1111111111111111  CCP4BUFH              9DE         0000000000000000

PTGQUE7      93E      xxxxxxxxxxxxxxxx  CCP2PRH                    98A      1111111111111111  CCP5CON1L             9E0         --00000000000000

PTGQUE8      940      xxxxxxxxxxxxxxxx  CCP2RAL                    98C      0000000000000000  CCP5CON1H             9E2         00--000000000000

PTGQUE9      942      xxxxxxxxxxxxxxxx  CCP2RBL                    990      0000000000000000  CCP5CON2L             9E4         00-0----00000000

PTGQUE10     944      xxxxxxxxxxxxxxxx  CCP2BUFL                   994      0000000000000000  CCP5CON2H             9E6         -------100-00000

PTGQUE11     946      xxxxxxxxxxxxxxxx  CCP2BUFH                   996      0000000000000000  CCP5CON3H             9EA         0000------0-00--

PTGQUE12     948      xxxxxxxxxxxxxxxx  CCP3CON1L                  998      --00000000000000  CCP5STATL             9EC         -----0--00xx0000

PTGQUE13     94A      xxxxxxxxxxxxxxxx  CCP3CON1H                  99A      00--000000000000  CCP5STATH             9EE         -----------00000

PTGQUE14     94C      xxxxxxxxxxxxxxxx  CCP3CON2L                  99C      00-0----00000000  CCP5TMRL              9F0         0000000000000000

PTGQUE15     94E      xxxxxxxxxxxxxxxx  CCP3CON2H                  99E      -------100-00000  CCP5TMRH              9F2         0000000000000000

CCP                                     CCP3CON3H                  9A2      0000------0-00--  CCP5PRL               9F4         1111111111111111

CCP1CON1L    950      --00000000000000  CCP3STATL                  9A4      -----0--00xx0000  CCP5PRH               9F6         1111111111111111

CCP1CON1H    952      00--000000000000  CCP3STATH                  9A6      -----------00000  CCP5RAL               9F8         0000000000000000

CCP1CON2L    954      00-0----00000000  CCP3TMRL                   9A8      0000000000000000  CCP5RBL               9FC         0000000000000000

CCP1CON2H    956      -------100-00000  CCP3TMRH                   9AA      0000000000000000

Legend:  x=  unknown  or indeterminate value; “-” = unimplemented  bits.  Address values are in hexadecimal. Reset  values are  in binary.

DS70005349B-page 58                     Advance Information                                    2017-2018 Microchip Technology Inc.
                                        dsPIC33CK256MP508 FAMILY

TABLE 4-11:           SFR BLOCK A00h

Register   Address    All Resets        Register                   Address  All Resets        Register              Address     All Resets

CCP (Continued)                         CCP7RBL                    A44      0000000000000000  CCP9RAL               A88         0000000000000000

CCP5BUFL         A00  0000000000000000  CCP7BUFL                   A48      0000000000000000  CCP9RBL               A8C         0000000000000000

CCP5BUFH         A02  0000000000000000  CCP7BUFH                   A4A      0000000000000000  CCP9BUFL              A90         0000000000000000

CCP6CON1L        A04  --00000000000000  CCP8CON1L                  A4C      --00000000000000  CCP9BUFH              A92         0000000000000000

CCP6CON1H        A06  00--000000000000  CCP8CON1H                  A4E      00--000000000000  DMA

CCP6CON2L        A08  00-0----00000000  CCP8CON2L                  A50      00-0----00000000  DMACON                ABC         --0------------0

CCP6CON2H        A0A  -------100-00000  CCP8CON2H                  A52      0------100-00000  DMABUF                ABE         0000000000000000

CCP6CON3H        A0E  0000------0-00--  CCP8CON3H                  A56      0000------0-00--  DMAL                  AC0         0000000000000000

CCP6STATL        A10  -----0--00xx0000  CCP8STATL                  A58      -----0--00xx0000  DMAH                  AC2         0000000000000000

CCP6STATH        A12  -----------00000  CCP8STATH                  A5A      -----------00000  DMACH0                AC4         -----00000000000

CCP6TMRL         A14  0000000000000000  CCP8TMRL                   A5C      0000000000000000  DMAINT0               AC6         --00000000000--0

CCP6TMRH         A16  0000000000000000  CCP8TMRH                   A5E      0000000000000000  DMASRC0               AC8         0000000000000000

CCP6PRL          A18  1111111111111111  CCP8PRL                    A60      1111111111111111  DMADST0               ACA         0000000000000000

CCP6PRH          A1A  1111111111111111  CCP8PRH                    A62      1111111111111111  DMACNT0               ACC         0000000000000001

CCP6RAL          A1C  0000000000000000  CCP8RAL                    A64      0000000000000000  DMACH1                ACE         -----00000000000

CCP6RBL          A20  0000000000000000  CCP8RBL                    A68      0000000000000000  DMAINT1               AD0         --00000000000--0

CCP6BUFL         A24  0000000000000000  CCP8BUFL                   A6C      0000000000000000  DMASRC1               AD2         0000000000000000

CCP6BUFH         A26  0000000000000000  CCP8BUFH                   A6E      0000000000000000  DMADST1               AD4         0000000000000000

CCP7CON1L        A28  --00000000000000  CCP9CON1L                  A70      --00000000000000  DMACNT1               AD6         0000000000000001

CCP7CON1H        A2A  00--000000000000  CCP9CON1H                  A72      00--000000000000  DMACH2                AD8         -----00000000000

CCP7CON2L        A2C  00-0----00000000  CCP9CON2L                  A74      00-0----00000000  DMAINT2               ADA         --00000000000--0

CCP7CON2H        A2E  -------100-00000  CCP9CON2H                  A76      --00000100-00000  DMASRC2               ADC         0000000000000000

CCP7CON3H        A32  0000------0-00--  CCP9CON3L                  A78      ----------000000  DMADST2               ADE         0000000000000000

CCP7STATL        A34  -----0--00xx0000  CCP9CON3H                  A7A      0000-000--000000  DMACNT2               AE0         0000000000000001

CCP7STATH        A36  -----------00000  CCP9STATL                  A7C      -----0--00xx0000  DMACH3                AE2         -----00000000000

CCP7TMRL         A38  0000000000000000  CCP9STATH                  A7E      -----------00000  DMAINT3               AE4         --00000000000--0

CCP7TMRH         A3A  0000000000000000  CCP9TMRL                   A80      0000000000000000  DMASRC3               AE6         0000000000000000

CCP7PRL          A3C  1111111111111111  CCP9TMRH                   A82      0000000000000000  DMADST3               AE8         0000000000000000

CCP7PRH          A3E  1111111111111111  CCP9PRL                    A84      1111111111111111  DMACNT3               AEA         0000000000000001

CCP7RAL          A40  0000000000000000  CCP9PRH                    A86      1111111111111111

Legend:  x = unknown  or indeterminate value; “-” = unimplemented  bits.  Address values are in hexadecimal. Reset  values are  in binary.

 2017-2018 Microchip Technology Inc.   Advance Information                                                         DS70005349B-page 59
dsPIC33CK256MP508 FAMILY

TABLE 4-12:       SFR BLOCK B00h

Register   Address    All Resets        Register                   Address  All Resets        Register              Address     All Resets

ADC                                     ADCMP1LO                   B44      0000000000000000  ADTRIG2H              B8A         0000000000000000

ADCON1L      B00      000-00000----000  ADCMP1HI                   B46      0000000000000000  ADTRIG3L              B8C         0000000000000000

ADCON1H      B02      --------011-----  ADCMP2ENL                  B48      0000000000000000  ADTRIG3H              B8E         0000000000000000

ADCON2L      B04      00-0-00000000000  ADCMP2ENH                  B4A      ------0000000000  ADTRIG4L              B90         0000000000000000

ADCON2H      B06      00-0000000000000  ADCMP2LO                   B4C      0000000000000000  ADTRIG4H              B92         0000000000000000

ADCON3L      B08      0000000000000000  ADCMP2HI                   B4E      0000000000000000  ADTRIG5L              B94         0000000000000000

ADCON3H      B0A      000000000-----xx  ADCMP3ENL                  B50      0000000000000000  ADTRIG5H              B96         0000000000000000

ADCON4L      B0C      ------000-----xx  ADCMP3ENH                  B52      ------0000000000  ADTRIG6L              B98         0000000000000000

ADCON4H      B0E      00----------0000  ADCMP3LO                   B54      0000000000000000  ADCMP0CON             BA0         0000000000000000

ADMOD0L      B10      0000000000000000  ADCMP3HI                   B56      0000000000000000  ADCMP1CON             BA4         0000000000000000

ADMOD0H      B12      0000000000000000  ADFL0DAT                   B68      0000000000000000  ADCMP2CON             BA8         0000000000000000

ADMOD1L      B14      0000000000000000  ADFL0CON                   B6A      xxx0000000000000  ADCMP3CON             BAC         0000000000000000

ADMOD1H      B16      ------------0000  ADFL1DAT                   B6C      0000000000000000  ADLVLTRGL             BD0         0000000000000000

ADIEL        B20      xxxxxxxxxxxxxxxx  ADFL1CON                   B6E      xxx0000000000000  ADLVLTRGH             BD2         ------xxxxxxxxxx

ADIEH        B22      ------xxxxxxxxxx  ADFL2DAT                   B70      0000000000000000  ADCORE0L              BD4         0000000000000000

ADSTATL      B30      0000000000000000  ADFL2CON                   B72      xxx0000000000000  ADCORE0H              BD6         0000001100000000

ADSTATH      B32      ------0000000000  ADFL3DAT                   B74      0000000000000000  ADCORE1L              BD8         0000000000000000

ADCMP0ENL    B38      0000000000000000  ADFL3CON                   B76      xxx0000000000000  ADCORE1H              BDA         0000001100000000

ADCMP0ENH    B3A      ------0000000000  ADTRIG0L                   B80      0000000000000000  ADEIEL                BF0         xxxxxxxxxxxxxxxx

ADCMP0LO     B3C      0000000000000000  ADTRIG0H                   B82      0000000000000000  ADEIEH                BF2         ------xxxxxxxxxx

ADCMP0HI     B3E      0000000000000000  ADTRIG1L                   B84      0000000000000000  ADEISTATL             BF8         xxxxxxxxxxxxxxxx

ADCMP1ENL    B40      0000000000000000  ADTRIG1H                   B86      0000000000000000  ADEISTATH             BFA         ------xxxxxxxxxx

ADCMP1ENH    B42      ------0000000000  ADTRIG2L                   B88      0000000000000000

Legend:  x = unknown  or indeterminate value; “-” = unimplemented  bits.  Address values are in hexadecimal. Reset  values are  in binary.

DS70005349B-page 60                     Advance Information                                    2017-2018 Microchip Technology Inc.
                                             dsPIC33CK256MP508 FAMILY

TABLE 4-13:           SFR BLOCK C00h

Register  Address     All Resets        Register                   Address  All Resets        Register              Address     All Resets

ADC (Continued)                         ADCBUF16                   C2C      0000000000000000  SLP1CONH              C92         ----000---------

ADCON5L          C00  --------0-------  ADCBUF17                   C2E      0000000000000000  SLP1DAT               C94         0000000000000000

ADCON5H          C02  ----xxxx0-------  ADCBUF18                   C30      0000000000000000  DAC2CONL              C98         000--000x0000000

ADCBUF0          C0C  0000000000000000  ADCBUF19                   C32      0000000000000000  DAC2CONH              C9A         ------0000000000

ADCBUF1          C0E  0000000000000000  ADCBUF20                   C34      0000000000000000  DAC2DATL              C9C         0000000000000000

ADCBUF2          C10  0000000000000000  ADCBUF21                   C36      0000000000000000  DAC2DATH              C9E         0000000000000000

ADCBUF3          C12  0000000000000000  ADCBUF22                   C38      0000000000000000  SLP2CONL              CA0         0000000000000000

ADCBUF4          C14  0000000000000000  ADCBUF23                   C3A      0000000000000000  SLP2CONH              CA2         ----000---------

ADCBUF5          C16  0000000000000000  ADCBUF24                   C3C      0000000000000000  SLP2DAT               CA4         0000000000000000

ADCBUF6          C18  0000000000000000  ADCBUF25                   C3E      0000000000000000  DAC3CONL              CA8         000--000x0000000

ADCBUF7          C1A  0000000000000000  DAC                                                   DAC3CONH              CAA         ------0000000000

ADCBUF8          C1C  0000000000000000  DACCTRL1L                  C80      --0-----0000-000  DAC3DATL              CAC         0000000000000000

ADCBUF9          C1E  0000000000000000  DACCTRL2L                  C84      ------0001010101  DAC3DATH              CAE         0000000000000000

ADCBUF10         C20  0000000000000000  DACCTRL2H                  C86      ------0010001010  SLP3CONL              CB0         0000000000000000

ADCBUF11         C22  0000000000000000  DAC1CONL                   C88      000--000x0000000  SLP3CONH              CB2         ----000---------

ADCBUF12         C24  0000000000000000  DAC1CONH                   C8A      ------0000000000  SLP3DAT               CB4         0000000000000000

ADCBUF13         C26  0000000000000000  DAC1DATL                   C8C      0000000000000000  VREGCON               CFC         ----------000000

ADCBUF14         C28  0000000000000000  DAC1DATH                   C8E      0000000000000000

ADCBUF15         C2A  0000000000000000  SLP1CONL                   C90      0000000000000000

Legend:  x = unknown  or indeterminate value; “-” = unimplemented  bits.  Address values are in hexadecimal. Reset  values are  in binary.

 2017-2018 Microchip Technology Inc.        Advance Information                                                    DS70005349B-page 61
dsPIC33CK256MP508 FAMILY

TABLE 4-14:         SFR BLOCK D00h

Register       Address      All Resets                   Register  Address     All Resets        Register                Address     All Resets

PPS                                                      RPINR21        D2E    1111111111111111  RPOR4                   D88         --000000--000000

RPCON          D00          ----0-----------             RPINR22        D30    1111111111111111  RPOR5                   D8A         --000000--000000

RPINR0         D04          11111111--------             RPINR23        D32    --------11111111  RPOR6                   D8C         --000000--000000

RPINR1         D06          1111111111111111             RPINR26        D38    --------11111111  RPOR7                   D8E         --000000--000000

RPINR2         D08          11111111--------             RPINR27        D3A    1111111111111111  RPOR8                   D90         --000000--000000

RPINR3         D0A          1111111111111111             RPINR29        D3E    1111111111111111  RPOR9                   D92         --000000--000000

RPINR4         D0C          1111111111111111             RPINR30        D40    --------11111111  RPOR10                  D94         --000000--000000

RPINR5         D0E          1111111111111111             RPINR32        D44    11111111--------  RPOR11                  D96         --000000--000000

RPINR6         D10          1111111111111111             RPINR33        D46    --------11111111  RPOR12                  D98         --000000--000000

RPINR7         D12          1111111111111111             RPINR37        D4E    1111111111111111  RPOR13                  D9A         --000000--000000

RPINR8         D14          1111111111111111             RPINR38        D50    --------11111111  RPOR14                  D9C         --000000--000000

RPINR9         D16          1111111111111111             RPINR42        D58    1111111111111111  RPOR15                  D9E         --000000--000000

RPINR10        D18          1111111111111111             RPINR43        D5A    1111111111111111  RPOR16                  DA0         --000000--000000

RPINR11        D1A          1111111111111111             RPINR44        D5C    1111111111111111  RPOR17                  DA2         --000000--000000

RPINR12        D1C          1111111111111111             RPINR45        D5E    1111111111111111  RPOR18                  DA4         --000000--000000

RPINR13        D1E          1111111111111111             RPINR46        D60    1111111111111111  RPOR19                  DA6         --000000--000000

RPINR14        D20          1111111111111111             RPINR47        D62    1111111111111111  RPOR20                  DA8         --000000--000000

RPINR15        D22          1111111111111111             RPINR48        D64    1111111111111111  RPOR21                  DAA         --000000--000000

RPINR16        D24          1111111111111111             RPINR49        D66    --------11111111  RPOR22                  DAC         --000000--000000

RPINR17        D26          1111111111111111             RPOR0          D80    --000000--000000  RPOR23                  DAE         --000000--000000

RPINR18        D28          1111111111111111             RPOR1          D82    --000000--000000  RPOR24                  DB0         --000000--000000

RPINR19        D2A          1111111111111111             RPOR2          D84    --000000--000000  RPOR25                  DB2         --000000--000000

RPINR20        D2C          1111111111111111             RPOR3          D86    --000000--000000  RPOR26                  DB4         --000000--000000

Legend:  x  =  unknown  or  indeterminate value; “-”  =  unimplemented  bits.  Address values are in hexadecimal. Reset  values are  in binary.

DS70005349B-page 62                                      Advance Information                      2017-2018 Microchip Technology Inc.
                                                        dsPIC33CK256MP508 FAMILY

TABLE 4-15:           SFR BLOCK E00h

Register         Address      All Resets                Register  Address  All Resets        Register                   Address     All Resets

I/O Ports                                               CNEN0B    E2C      0000000000000000  CNPUD                      E5E         0000000000000000

ANSELA           E00          -----------11111          CNSTATB   E2E      0000000000000000  CNPDD                      E60         0000000000000000

TRISA            E02          -----------11111          CNEN1B    E30      0000000000000000  CNCOND                     E62         ----0-----------

PORTA            E04          -----------xxxxx          CNFB      E32      0000000000000000  CNEN0D                     E64         0000000000000000

LATA             E06          -----------xxxxx          ANSELC    E38      --------11--1111  CNSTATD                    E66         0000000000000000

ODCA             E08          -----------00000          TRISC     E3A      1111111111111111  CNEN1D                     E68         0000000000000000

CNPUA            E0A          -----------00000          PORTC     E3C      xxxxxxxxxxxxxxxx  CNFD                       E6A         0000000000000000

CNPDA            E0C          -----------00000          LATC      E3E      xxxxxxxxxxxxxxxx  ANSELE                     E70         ------------1111

CNCONA           E0E          ----0-----------          ODCC      E40      0000000000000000  TRISE                      E72         1111111111111111

CNEN0A           E10          -----------00000          CNPUC     E42      0000000000000000  PORTE                      E74         xxxxxxxxxxxxxxxx

CNSTATA          E12          -----------00000          CNPDC     E44      0000000000000000  LATE                       E76         xxxxxxxxxxxxxxxx

CNEN1A           E14          -----------00000          CNCONC    E46      ----0-----------  ODCE                       E78         0000000000000000

CNFA             E16          -----------00000          CNEN0C    E48      0000000000000000  CNPUE                      E7A         0000000000000000

ANSELB           E1C          ------111--11111          CNSTATC   E4A      0000000000000000  CNPDE                      E7C         0000000000000000

TRISB            E1E          1111111111111111          CNEN1C    E4C      0000000000000000  CNCONE                     E7E         ----0-----------

PORTB            E20          xxxxxxxxxxxxxxxx          CNFC      E4E      0000000000000000  CNEN0E                     E80         0000000000000000

LATB             E22          xxxxxxxxxxxxxxxx          ANSELD    E54      --1-11----------  CNSTATE                    E82         0000000000000000

ODCB             E24          0000000000000000          TRISD     E56      1111111111111111  CNEN1E                     E84         0000000000000000

CNPUB            E26          0000000000000000          PORTD     E58      xxxxxxxxxxxxxxxx  CNFE                       E86         0000000000000000

CNPDB            E28          0000000000000000          LATD      E5A      xxxxxxxxxxxxxxxx  Memory BIST

CNCONB           E2A          ----0-----------          ODCD      E5C      0000000000000000  MBISTCON                   EFC         -------00--0---1

Legend:    x  =  unknown  or  indeterminate value; “-”  = unimplemented bits. Address values are in hexadecimal. Reset  values are  in binary.

 2017-2018 Microchip Technology Inc.                   Advance Information                                             DS70005349B-page 63
dsPIC33CK256MP508 FAMILY

TABLE 4-16:       SFR BLOCK F00h

Register   Address     All Resets                   Register   Address         All Resets                  Register   Address           All Resets

UART3                                               I2C3TRN    F70             --------11111111            WDTCONH    FB6               0000000000000000

U3MODE       F00       --000-0000000000             I2C3RCV    F74             --------00000000            REFO

U3MODEH      F02       00---00000000000             Reset and Oscillator                                   REFOCONL   FB8               --000-00----0000

U3STA        F04       0000000010000000             RCON       F80             xx----x01x0xxxxx            REFOCONH   FBA               0000000000000000

U3STAH       F06       0000-00000101110             OSCCON     F84             0000-yyy0-0-0--0            REFOTRIML  FBC               000000000-------

U3BRG        F08       0000000000000000             CLKDIV     F86             00110000--000001            Processor

U3BRGH       F0A       ------------0000             PLLFBD     F88             ----000010010110            PCTRAPL    FC0               xxxxxxxxxxxxxxxx

U3RXREG      F0C       --------xxxxxxxx             PLLDIV     F8A             ------00-001-001            PCTRAPH    FC2               --------xxxxxxxx

U3TXREG      F10       --------xxxxxxxx             OSCTUN     F8C             ----------000000            FEXL       FC4               xxxxxxxxxxxxxxxx

U3P1         F14       -------000000000             ACLKCON1   F8E             00-----0--000001            FEXH       FC6               --------xxxxxxxx

U3P2         F16       -------000000000             APLLFBD1   F90             ----000010010110            FEX2L      FC8               xxxxxxxxxxxxxxxx

U3P3         F18       0000000000000000             APLLDIV1   F92             ------00-001-001            FEX2H      FCA               --------xxxxxxxx

U3P3H        F1A       --------00000000             CANCLKCON  F9A             0---0000-0000000            VISI       FCC               xxxxxxxxxxxxxxxx

U3TXCHK      F1C       --------00000000             DCOTUN     F9C             --000000--000000            DPCL       FCE               xxxxxxxxxxxxxxxx

U3RXCHK      F1E       --------00000000             DCOCON     F9E             --0-xxxx--------            DPCH       FD0               --------xxxxxxxx

U3SCCON      F20       ----------00000-             PMD                                                    APPO       FD2               xxxxxxxxxxxxxxxx

U3SCINT      F22       --00-000--00-000             PMD1       FA4             ----000-00000-00            APPI       FD4               xxxxxxxxxxxxxxxx

U3INT        F24       --------00---0--             PMD2       FA6             -------000000000            APPS       FD6               -----------xxxxx

I2C3                                                PMD3       FA8             -------00-0-000-            STROUTL    FD8               xxxxxxxxxxxxxxxx

I2C3CONL     F5C       --01000000000000             PMD4       FAA             ------------0---            STROUTH    FDA               xxxxxxxxxxxxxxxx

I2C3CONH     F5E       ---------0000000             PMD6       FAE             ----0000--------            STROVCNT   FDC               xxxxxxxxxxxxxxxx

I2C3 STAT    F60       000--00000000000             PMD7       FB0             -----000----0---            JDATAL     FFA               0000000000000000

I2C3ADD      F64       ------0000000000             PMD8       FB2             --000--0--00000-            JDATAH     FFC               0000000000000000

I2C3MSK      F68       ------0000000000             WDT

I2C3BRG      F6C       0000000000000000             WDTCONL    FB4             ---0000000000000

Legend:  x = unknown   or indeterminate value; “-”  =unimplemented bits; y  =  value set by Configuration  bits. Address values are in  hexadecimal.

         Reset values  are in binary.

DS70005349B-page 64                                      Advance Information                                2017-2018 Microchip Technology Inc.
                                                          dsPIC33CK256MP508 FAMILY

4.4.1          PAGED MEMORY SCHEME                                         The  paged         memory       scheme   provides  access      to

The dsPIC33CK256MP508 architecture extends the                             multiple 32-Kbyte windows in the PSV memory. The

available   Data     Space       through   a     paging   scheme,          Data Space Read Page (DSRPAG) register, in combi-

which    allows      the    available      Data  Space    to     be        nation with the upper half of the Data Space address,

accessed using MOV instructions in a linear fashion                        can provide up to 8 Mbytes of PSV address space. The

for pre- and post-modified Effective Addresses (EAs).                      paged data memory space is shown in Figure 4-12.

The  upper     half  of   the    base  Data     Space  address   is        The  Program           Space  (PS)  can  be    accessed  with  a

used in conjunction with the Data Space Read Page                          DSRPAG of 0x200 or greater. Only reads from PS are

(DSRPAG)       register      to  form      the   Program  Space            supported using the DSRPAG.

Visibility (PSV) address.

The Data Space Read Page (DSRPAG) register is

located    in  the      SFR    space.      Construction   of     the

PSV    address       is     shown      in  Figure 4-11.   When

DSRPAG<9>            =   1   and   the     base  address         bit,

EA<15> = 1, the DSRPAG<8:0> bits are concate-

nated onto EA<14:0> to form the 24-bit PSV read

address.

FIGURE 4-11:                 PROGRAM SPACE VISIBILITY                      (PSV) READ ADDRESS GENERATION

                                                                                              16-Bit DS EA          Byte
                                                                                                                    Select

                                  EA<15> = 0              No EDS Access    0                      EA

                     (DSRPAG = don’t care)

                                                                           EA<15>

                                                              DSRPAG<9>    1                      EA
                                                                       =1

                                                         Select
                                                         DSRPAG

                                       Generate     1     DSRPAG<8:0>
                                 PSV Address

                                                                 9 Bits                           15 Bits

                                                                           24-Bit      PSV    EA                    Byte

                                                                                                                    Select

     Note:  DS   read access when DSRPAG         =  0x000 will force an address error  trap.

 2017-2018 Microchip Technology Inc.                    Advance Information                                        DS70005349B-page 65
DS70005349B-page 66                    FIGURE 4-12:   PAGED DATA        MEMORY SPACE                                                                                         dsPIC33CK256MP508 FAMILY

                                                                                                                   Program Space                        Table Address Space

                                                                                                                   (Instruction & Data)                 (TBLPAG<7:0>)

                                                                                                                                         DS_Addr<15:0>

                                                                                                                                         0x0000         (TBLPAG = 0x00)

                                                                                                                   Program Memory                       lsw Using

                                                                        DS_Addr<14:0>                              (lsw – <15:0>)                       TBLRDL/TBLWTL,

                                                                                                                   0x00_0000                            MSB Using

                                                                        0x0000                                                                          TBLRDH/TBLWTH

                                                                                       (DSRPAG = 0x200)                                  0xFFFF

                                                      Local Data Space                 No Writes Allowed

Advance Information                    DS_Addr<15:0>                    0x7FFF

                                       0x0000                                                             PSV

                                                      SFR Registers                                       Program

                                       0x0FFF                                                             Memory

                                       0x1000                           0x0000                            (lsw)                          0x0000         (TBLPAG = 0x7F)

                                                      Up to 24-Kbyte                   (DSRPAG = 0x2FF)                                                 lsw Using

                                                      RAM                              No Writes Allowed           0x7F_FFFF                            TBLRDL/TBLWTL,

                                                                        0x7FFF                                                                          MSB Using

                                       0x6FFF                           0x0000                                                                          TBLRDH/TBLWTH

                                       0x7000                                          (DSRPAG = 0x300)                                  0xFFFF

                                       0x7FFF                                          No Writes Allowed           Program Memory

                                       0x8000                           0x7FFF                                     (MSB – <23:16>)

                                                      32-Kbyte                                            PSV      0x00_0000

                                                      PSV Window                                          Program

                                       0xFFFF                                                             Memory

 2017-2018 Microchip Technology Inc.                                                                     (MSB)

                                                                        0x0000

                                                                                       (DSRPAG = 0x3FF)

                                                                                       No Writes Allowed

                                                                        0x7FFF

                                                                                                                   0x7F_FFFF
                                                     dsPIC33CK256MP508 FAMILY

When     a   PSV  page  overflow      or  underflow  occurs,          address within the PSV window. This creates a linear

EA<15> is cleared as a result of the register indirect EA             PSV  address    space,  but  only    when  using   Register

calculation. An overflow or underflow of the EA in the                Indirect Addressing modes.

PSV pages can occur at the page boundaries when:                      Exceptions  to  the  operation    described    above   arise

•  The initial address, prior to modification,                        when entering and exiting the boundaries of Page 0

   addresses the PSV page                                             and PSV spaces. Table 4-17 lists the effects of overflow

•  The EA calculation uses Pre- or Post-Modified                      and underflow scenarios at different boundaries.

   Register Indirect Addressing; however, this does                   In  the  following  cases,  when     overflow  or  underflow

   not include Register Offset Addressing                             occurs, the EA<15> bit is set and the DSRPAG is not

In general, when an overflow is detected, the DSRPAG                  modified; therefore, the EA will wrap to the beginning of

register is incremented and the EA<15> bit is set to                  the current page:

keep the base address within the PSV window. When                     •   Register Indirect with Register Offset Addressing

an  underflow     is  detected,  the  DSRPAG    register   is         •   Modulo Addressing

decremented and the EA<15> bit is set to keep the base                •   Bit-Reversed Addressing

TABLE 4-17:           OVERFLOW AND UNDERFLOW SCENARIOS AT PAGE 0 AND
                      PSV SPACE BOUNDARIES(2,3,4)

   O/U,                                         Before                                             After

   R/W   Operation      DSRPAG                  DS              Page              DSRPAG              DS             Page

                                                EA<15>     Description                             EA<15>        Description

O,                    DSRPAG = 0x2FF            1         PSV: Last lsw    DSRPAG = 0x300               1  PSV: First MSB

Read         [++Wn]                                       page                                             page

O,           or       DSRPAG = 0x3FF            1         PSV: Last MSB    DSRPAG = 0x3FF               0  See Note 1

Read         [Wn++]                                       page

U,                    DSRPAG = 0x001            1         PSV page         DSRPAG = 0x001               0  See Note 1

Read

U,           [--Wn]   DSRPAG = 0x200            1         PSV: First lsw   DSRPAG = 0x200               0  See Note 1

Read         or                                           page

U,           [Wn--]   DSRPAG = 0x300                      PSV: First MSB   DSRPAG = 0x2FF                  PSV: Last lsw

                                                1                                                       1

Read                                                      page                                             page

Legend:      O = Overflow, U = Underflow, R = Read, W = Write

Note     1:  The Register Indirect Addressing now addresses a location in the base Data Space (0x0000-0x8000).

         2:  An EDS access, with DSRPAG = 0x000, will generate an address error trap.

         3:  Only reads from PS are supported using DSRPAG.

         4:  Pseudolinear Addressing is not supported for large offsets.

 2017-2018 Microchip Technology Inc.           Advance Information                                        DS70005349B-page 67
dsPIC33CK256MP508 FAMILY

4.4.1.1          Extended X Data Space                                   When the PC is pushed onto the stack, PC<15:0> are

The lower portion of the base address space range,                       pushed                                  onto     the  first  available   stack      word,    then

between 0x0000 and 0x7FFF, is always accessible,                         PC<22:16> are pushed into the second available stack

regardless of the contents of the Data Space Read                        location. For a PC push during any CALL instruction,

Page register. It is indirectly addressable through the                  the MSB of the PC is zero-extended before the push,

register     indirect  instructions.      It    can  be   regarded  as   as shown in Figure 4-13. During exception processing,

being located in the default EDS Page 0 (i.e., EDS                       the MSB of the PC is concatenated with the lower 8 bits

address range of 0x000000 to 0x007FFF with the base                      of  the                                 CPU   STATUS      Register,      SR.  This  allows      the

address bit, EA<15> = 0, for this address range). How-                   contents of SRL to be preserved automatically during

ever, Page 0 cannot be accessed through the upper                        interrupt processing.

32 Kbytes, 0x8000 to 0xFFFF, of base Data Space in                           Note 1:                                  To maintain system Stack Pointer (W15)

combination      with      DSRPAG         =     0x00.  Consequently,                                                  coherency,      W15     is  never      subject     to

DSRPAG is initialized to 0x001 at Reset.                                                                              (EDS) paging, and is therefore, restricted

Note 1:          DSRPAG should not be used to access                                                                  to  an   address       range     of    0x0000      to

                 Page 0. An EDS access with DSRPAG                                                                    0xFFFF. The same applies to the W14

                 set   to  0x000    will     generate     an   address                                                when     used   as  a  Stack     Frame  Pointer

                 error trap.                                                                                          (SFA = 1).

             2:  Clearing the DSRPAG in software has no                                                          2:   As the stack can be placed in, and can

                 effect.                                                                                              access X and Y spaces, care must be

                                                                                                                      taken regarding its use, particularly with

The remaining PSV pages are only accessible using                                                                     regard to local automatic variables in a C

the DSRPAG register in combination with the upper                                                                     development environment

32 Kbytes, 0x8000 to 0xFFFF, of the base address,

where the base address bit, EA<15> = 1.                                  FIGURE 4-13:                                              CALL STACK FRAME

4.4.1.2          Software Stack

The  W15         register  serves   as       a  dedicated      Software      0x0000                              15                           0

Stack Pointer (SSP), and is automatically modified by                                                                                                  CALL  SUBR

exception        processing,    subroutine      calls     and  returns;

however, W15 can be referenced by any instruction in                         Stack Grows Toward  Higher Address

the same manner as all other W registers. This simpli-

fies reading, writing and manipulating the Stack Pointer                                                                    PC<15:1>                   W15 (before CALL)

(for example, creating stack frames).                                                                                b‘000000000’  PC<22:16>

Note:            To    protect    against       misaligned     stack                                                                        W15 (after CALL)

                 accesses, W15<0> is fixed to ‘0’ by the

                 hardware.

W15      is  initialized   to  0x1000     during     all  Resets.  This

address ensures that the SSP points to valid RAM in all

dsPIC33CK256MP508 devices and permits stack avail-

ability  for  non-maskable        trap    exceptions.     These     can

occur before the SSP is initialized by the user software.

You can reprogram the SSP during initialization to any

location within Data Space.

The Software Stack Pointer always points to the first

available        free  word    and  fills       the  software  stack,

working       from     lower    toward          higher    addresses.

Figure 4-13 illustrates how it pre-decrements for a

stack pop (read) and post-increments for a stack push

(writes).

DS70005349B-page 68                                        Advance Information                                                  2017-2018 Microchip Technology Inc.
                                                      dsPIC33CK256MP508 FAMILY

4.4.2       INSTRUCTION ADDRESSING                                  4.4.2.2         MCU Instructions

            MODES                                                   The three-operand MCU instructions are of the form:

The addressing modes shown in Table 4-18 form the                   Operand 3 = Operand 1 Operand 2

basis of the addressing modes optimized to support the              where Operand 1 is always a Working register (that is,

specific  features    of     individual   instructions.    The      the  addressing      mode    can     only  be  Register  Direct),

addressing  modes     provided       in  the  MAC     class  of     which is referred to as Wb. Operand            2 can be a W

instructions differ from those in the other instruction             register fetched from data memory or a 5-bit literal. The

types.                                                              result location can either be a W register or a data

4.4.2.1          File Register Instructions                         memory location. The following addressing modes are

Most file register instructions use a 13-bit address field          supported by MCU instructions:

(f)  to   directly  address  data    present   in     the    first  •  Register Direct

8192 bytes of data memory (Near Data Space). Most                   •  Register Indirect

file register instructions employ a Working register, W0,           •  Register Indirect Post-Modified

which is denoted as WREG in these instructions. The                 •  Register Indirect Pre-Modified

destination is typically either the same file register or           •  5-Bit or 10-Bit Literal

WREG      (with  the  exception  of  the  MUL  instruction),           Note:        Not  all     instructions  support       all  the

which writes the result to a register or register pair. The                         addressing modes given above. Individ-

MOV    instruction  allows   additional  flexibility  and    can                    ual  instructions    can   support  different

access the entire Data Space.                                                       subsets of these addressing modes.

TABLE 4-18:           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 form the Effective Address (EA).

Register Indirect Post-Modified               The contents of Wn form 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.

 2017-2018 Microchip Technology Inc.                 Advance Information                                      DS70005349B-page 69
dsPIC33CK256MP508 FAMILY

4.4.2.3            Move and Accumulator Instructions                4.4.2.4         MAC Instructions

Move instructions, and the DSP accumulator class of                 The dual source operand DSP instructions (CLR, ED,

instructions,  provide     a  greater  degree  of   addressing      EDAC, MAC, MPY, MPY.N, MOVSAC and MSC), also referred

flexibility  than   other  instructions.   In  addition    to  the  to as MAC instructions, use a simplified set of addressing

addressing modes supported by most MCU instructions,                modes      to  allow   the  user      application  to  effectively

move     and       accumulator  instructions    also     support    manipulate the Data Pointers through register indirect

Register Indirect with Register Offset Addressing mode,             tables.

also referred to as Register Indexed mode.                          The two-source operand prefetch registers must be

    Note:      For the MOV instructions, the addressing             members of the set {W8, W9, W10, W11}. For data

               mode specified in the instruction can differ         reads, W8 and W9 are always directed to the X RAGU,

               for the source and destination EA. How-              and W10 and W11 are always directed to the Y AGU.

               ever, the 4-bit Wb (Register Offset) field is        The Effective Addresses generated (before and after

               shared by both source and destination (but           modification) must therefore, be valid addresses within

               typically only used by one).                         X Data Space for W8 and W9, and Y Data Space for

                                                                    W10 and W11.

In  summary,        the  following  addressing     modes       are      Note:      Register     Indirect  with  Register        Offset

supported by move and accumulator instructions:                                    Addressing mode is available only for W9

•   Register Direct                                                                (in X space) and W11 (in Y space).

•   Register Indirect                                               In   summary,   the    following      addressing    modes   are

•   Register Indirect Post-Modified                                 supported by the MAC class of instructions:

•   Register Indirect Pre-Modified                                  •   Register Indirect

•   Register Indirect with Register Offset (Indexed)                •   Register Indirect Post-Modified by 2

•   Register Indirect with Literal Offset                           •   Register Indirect Post-Modified by 4

•   8-Bit Literal                                                   •   Register Indirect Post-Modified by 6

•   16-Bit Literal                                                  •   Register Indirect with Register Offset (Indexed)

    Note:      Not   all   instructions    support    all      the

               addressing modes given above. Individual             4.4.2.5         Other Instructions

               instructions may support different subsets           Besides    the  addressing  modes     outlined         previously,

               of these addressing modes.                           some instructions use literal constants of various sizes.

                                                                    For  example,   BRA      (branch)     instructions     use  16-bit

                                                                    signed literals to specify the branch destination directly,

                                                                    whereas the DISI instruction uses a 14-bit unsigned

                                                                    literal field. In some instructions, such as ULNK, the

                                                                    source of an operand or result is implied by the opcode

                                                                    itself. Certain operations, such as a NOP, do not have

                                                                    any operands.

DS70005349B-page 70                                 Advance Information                     2017-2018 Microchip Technology Inc.
                                                        dsPIC33CK256MP508 FAMILY

4.4.3          MODULO ADDRESSING                                                4.4.3.1          Start and End Address

Modulo Addressing mode is a method of providing an                              The    Modulo      Addressing      scheme      requires  that     a

automated means to support circular data buffers using                          starting and ending address be specified and loaded

hardware.     The    objective   is  to  remove  the    need     for            into   the   16-bit  Modulo        Buffer   Address     registers:

software   to   perform    data  address    boundary      checks                XMODSRT, XMODEND, YMODSRT and YMODEND

when executing tightly looped code, as is typical in                            (see Table 4-2).

many DSP algorithms.                                                               Note:     Y space Modulo Addressing EA calcula-

Modulo    Addressing       can   operate    in  either  Data     or                          tions   assume        word-sized     data  (LSb   of

Program Space (since the Data Pointer mechanism is                                           every EA is always clear).

essentially the same for both). One circular buffer can be                      The length of a circular buffer is not directly specified. It is

supported in each of the X (which also provides the point-                      determined by the difference between the corresponding

ers into Program Space) and Y Data Spaces. Modulo                               start and end addresses. The maximum possible length of

Addressing can operate on any W Register Pointer. How-                          the circular buffer is 32K words (64 Kbytes).

ever, it is not advisable to use W14 or W15 for Modulo

Addressing since these two registers are used as the                            4.4.3.2          W Address Register Selection

Stack Frame Pointer and Stack Pointer, respectively.

In general, any particular circular buffer can be config-                       The    Modulo     and     Bit-Reversed      Addressing   Control

ured to operate in only one direction, as there are certain                     register, MODCON<15:0>, contains enable flags, as well

restrictions on the buffer start address (for incrementing                      as a W register field to specify the W Address registers.

buffers)  or    end  address     (for    decrementing   buffers),               The    XWM   and     YWM      fields  select   the  registers  that

based upon the direction of the buffer.                                         operate with Modulo Addressing:

The  only  exception       to  the   usage  restrictions     is  for            •  If XWM = 1111, X RAGU and X WAGU Modulo

buffers   that    have  a  power-of-two     length.     As   these                 Addressing is disabled

buffers satisfy the start and end address criteria, they                        •  If YWM = 1111, Y AGU Modulo Addressing is

can operate in a Bidirectional mode (that is, address                              disabled

boundary checks are performed on both the lower and                             The X Address Space Pointer W (XWM) register, to

upper address boundaries).                                                      which Modulo Addressing is to be applied, is stored in

                                                                                MODCON<3:0> (see Table 4.1). Modulo Addressing is

                                                                                enabled for X Data Space when XWM is set to any

                                                                                value other than ‘1111’ and the XMODEN bit is set

                                                                                (MODCON<15>).

                                                                                The Y Address Space Pointer W (YWM) register, to

                                                                                which Modulo Addressing is to be applied, is stored in

                                                                                MODCON<7:4>. Modulo Addressing is enabled for Y

                                                                                Data Space when YWM is set to any value other than

                                                                                ‘1111’ and the YMODEN bit (MODCON<14>) is set.

FIGURE 4-14:               MODULO ADDRESSING OPERATION EXAMPLE

          Byte                                          MOV           #0x1100,     W0

         Address                                        MOV           W0,  XMODSRT          ;set   modulo     start   address

          0x1100                                        MOV           #0x1163,     W0

                                                        MOV           W0,  MODEND           ;set   modulo     end     address

                                                        MOV           #0x8001,     W0

                                                        MOV           W0,  MODCON           ;enable    W1,    X  AGU  for     modulo

                                                        MOV           #0x0000,     W0       ;W0   holds   buffer      fill    value

                                                        MOV           #0x1110,     W1       ;point   W1   to     buffer

          0x1163

                                                        DO            AGAIN,    #0x31       ;fill    the  50     buffer    locations

                                                        MOV           W0,  [W1++]           ;fill    the  next     location

                  Start Addr = 0x1100                   AGAIN:        INC  W0,  W0          ;increment      the    fill    value

                  End Addr = 0x1163

                  Length = 0x0032 words

 2017-2018 Microchip Technology Inc.                Advance Information                                                   DS70005349B-page 71
dsPIC33CK256MP508 FAMILY

4.4.3.3        Modulo Addressing Applicability                    4.4.4.1    Bit-Reversed Addressing

Modulo     Addressing     can  be   applied  to  the   Effective             Implementation

Address     (EA)   calculation     associated    with  any    W   Bit-Reversed Addressing mode is enabled in any of

register.   Address    boundaries   check       for   addresses   these situations:

equal to:                                                         •  BWMx bits (W register selection) in the MODCON

•  The upper boundary addresses for incrementing                     register are any value other than ‘1111’ (the stack

   buffers                                                           cannot be accessed using Bit-Reversed

•  The lower boundary addresses for decrementing                     Addressing)

   buffers                                                        •  The BREN bit is set in the XBREV register

It is important to realize that the address boundaries            •  The addressing mode used is Register Indirect

check for addresses less than, or greater than, the                  with Pre-Increment or Post-Increment

upper (for incrementing buffers) and lower (for decre-            If the length of a bit-reversed buffer is M = 2N bytes,

menting buffers) boundary addresses (not just equal               the last ‘N’ bits of the data buffer start address must

to).  Address  changes    can,      therefore,   jump  beyond     be zeros.

boundaries and still be adjusted correctly.                       XB<14:0> is the Bit-Reversed Addressing modifier, or

   Note:    The modulo corrected Effective Address                ‘pivot point’, which is typically a constant. In the case of

            is written back to the register only when             an FFT computation, its value is equal to half of the FFT

            Pre-Modify    or    Post-Modify      Addressing       data buffer size.

            mode     is   used  to  compute      the  Effective      Note:   All bit-reversed EA calculations assume

            Address. When an address offset (such as                         word-sized        data  (LSb      of   every    EA    is

            [W7 + W2]) is used, Modulo Addressing                            always       clear).  The     XB  value     is  scaled

            correction is performed, but the contents of                     accordingly to generate compatible (byte)

            the register remain unchanged.                                   addresses.

4.4.4       BIT-REVERSED ADDRESSING                               When enabled, Bit-Reversed Addressing is executed

Bit-Reversed Addressing mode is intended to simplify              only for Register Indirect with Pre-Increment or Post-

data   reordering    for  radix-2   FFT      algorithms.  It  is  Increment Addressing and word-sized data writes. It

supported by the X AGU for data writes only.                      does not function for any other addressing mode or for

The modifier, which can be a constant value or register           byte-sized data and normal addresses are generated

contents, is regarded as having its bit order reversed.           instead. When Bit-Reversed Addressing is active, the

The address source and destination are kept in normal             W Address Pointer is always added to the address

order. Thus, the only operand requiring reversal is the           modifier   (XB)    and  the      offset  associated        with  the

modifier.                                                         Register Indirect Addressing mode is ignored. In addi-

                                                                  tion, as word-sized data is a requirement, the LSb of

                                                                  the EA is ignored (and always clear).

                                                                     Note:   Modulo       Addressing          and   Bit-Reversed

                                                                             Addressing can be enabled simultaneously

                                                                             using   the  same             W  register,  but       Bit-

                                                                             Reversed Addressing operation will always

                                                                             take    precedence      for      data  writes    when

                                                                             enabled.

                                                                  If Bit-Reversed Addressing has already been enabled

                                                                  by setting the BREN (XBREV<15>) bit, a write to the

                                                                  XBREV register should not be immediately followed by

                                                                  an indirect read operation using the W register that has

                                                                  been designated as the Bit-Reversed Pointer.

DS70005349B-page 72                                   Advance Information             2017-2018 Microchip Technology Inc.
                                               dsPIC33CK256MP508 FAMILY

FIGURE 4-15:       BIT-REVERSED ADDRESSING EXAMPLE

                                                                Sequential Address

b15 b14 b13   b12  b11 b10     b9      b8  b7  b6  b5  b4       b3  b2  b1  0

                                                                               Bit Locations Swapped Left-to-Right

                                                                               Around Center of Binary Value

b15 b14 b13   b12  b11 b10     b9      b8  b7  b6  b5  b1       b2  b3  b4  0

                                                                Bit-Reversed Address

                                                   Pivot Point      XB = 0x0008 for a 16-Word Bit-Reversed Buffer

TABLE  4-19:  BIT-REVERSED ADDRESSING                  SEQUENCE         (16-ENTRY)

              Normal Address                                                   Bit-Reversed  Address

A3     A2     A1      A0                   Decimal              A3      A2     A1     A0              Decimal

0      0           0        0                  0                0       0      0      0               0

0      0           0        1                  1                1       0      0      0               8

0      0           1        0                  2                0       1      0      0               4

0      0           1        1                  3                1       1      0      0               12

0      1           0        0                  4                0       0      1      0               2

0      1           0        1                  5                1       0      1      0               10

0      1           1        0                  6                0       1      1      0               6

0      1           1        1                  7                1       1      1      0               14

1      0           0        0                  8                0       0      0      1               1

1      0           0        1                  9                1       0      0      1               9

1      0           1        0                  10               0       1      0      1               5

1      0           1        1                  11               1       1      0      1               13

1      1           0        0                  12               0       0      1      1               3

1      1           0        1                  13               1       0      1      1               11

1      1           1        0                  14               0       1      1      1               7

1      1           1        1                  15               1       1      1      1               15

 2017-2018 Microchip Technology Inc.          Advance Information                           DS70005349B-page 73
dsPIC33CK256MP508 FAMILY

4.4.5        INTERFACING PROGRAM AND                              Table instructions allow an application to read or write

             DATA MEMORY SPACES                                   to small areas of the program memory. This capability

The dsPIC33CK256MP508 family architecture uses a                  makes the method ideal for accessing data tables that

24-bit wide Program Space (PS) and a 16-bit wide Data             need to be updated periodically. It also allows access

Space    (DS).  The     architecture  is   also  a  modified      to    all  bytes    of  the  program   word.  The   remapping

Harvard    scheme,     meaning  that    data  can   also  be      method allows an application to access a large block of

present in the Program Space. To use this data suc-               data on a read-only basis, which is ideal for look-ups

cessfully, it must be accessed in a way that preserves            from a large table of static data. The application can

the alignment of information in both spaces.                      only access the least significant word of the program

                                                                  word.

Aside  from     normal  execution,    the  architecture   of

the  dsPIC33CK256MP508          family    devices   provides

two    methods  by     which  Program      Space    can   be

accessed during operation:

•  Using table instructions to access individual bytes

   or words anywhere in the Program Space

•  Remapping a portion of the Program Space into

   the Data Space (Program Space Visibility)

TABLE 4-20:          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)                                               0xxx   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

FIGURE 4-16:            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

                                      User/Configuration                                                 Byte Select

                                      Space Select

     Note  1:   The Least Significant bit (LSb) 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.

DS70005349B-page 74                                Advance Information                     2017-2018 Microchip Technology Inc.
                                                     dsPIC33CK256MP508 FAMILY

4.4.5.1       Data Access from Program Memory                     •  TBLRDH              (Table Read High):

              Using Table Instructions                               -   In Word mode, this instruction maps the entire

The TBLRDL and TBLWTL instructions offer a direct                        upper word of a program address (P<23:16>)

method of reading or writing the lower word of any                       to a data address. The ‘phantom’ byte

address  within  the  Program        Space   without  going              (D<15:8>) is always ‘0’.

through  Data    Space.    The       TBLRDH     and  TBLWTH          -   In Byte mode, this instruction maps the upper

instructions are the only method to read or write the                    or lower byte of the program word to D<7:0>

upper 8 bits of a Program Space word as data.                            of the data address in the TBLRDL            instruc-

The PC is incremented by two for each successive                         tion. The data is always ‘0’ when the upper

24-bit  program  word.     This  allows  program     memory              ‘phantom’ byte is selected (Byte Select = 1).

addresses to directly map to Data Space addresses.                In a similar fashion, two table instructions, TBLWTH

Program memory can thus be regarded as two 16-bit                 and       TBLWTL,          are  used  to  write  individual  bytes  or

wide word address spaces, residing side by side, each             words to a Program Space address. The details of

with the same address range. TBLRDL and TBLWTL                    their operation are explained in Section 5.0 “Flash

access   the  space  that  contains     the  least   significant  Program Memory”.

data word. TBLRDH and TBLWTH access the space that                For all table operations, the area of program memory

contains the upper data byte.                                     space to be accessed is determined by the Table Page

Two table instructions are provided to move byte or               register (TBLPAG). TBLPAG covers the entire program

word-sized (16-bit) data to and from Program Space.               memory space of the device, including user application

Both function as either byte or word operations.                  and configuration spaces. When TBLPAG<7> = 0, the

•  TBLRDL (Table Read Low):                                       table page is located in the user memory space. When

   -  In Word mode, this instruction maps the lower               TBLPAG<7> = 1, the page is located in configuration

      word of the Program Space location (P<15:0>)                space.

      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-17:            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.

 2017-2018 Microchip Technology Inc.               Advance Information                                            DS70005349B-page 75
dsPIC33CK256MP508 FAMILY

NOTES:

DS70005349B-page 76  Advance Information   2017-2018 Microchip Technology Inc.
                                                              dsPIC33CK256MP508 FAMILY

5.0       FLASH PROGRAM MEMORY                                           device           just     before  shipping     the   product.  This   also

                                                                         allows the most recent firmware or a custom firmware

   Note   1:  This data sheet summarizes the features                    to be programmed.

              of   the  dsPIC33CK256MP508               family     of    Enhanced                  In-Circuit  Serial   Programming     uses   an

              devices.     It  is      not  intended    to     be  a     on-board bootloader, known as the Program Executive,

              comprehensive            reference        source.    To    to manage the programming process. Using an SPI data

              complement the information in this data                    frame            format,  the         Program  Executive       can  erase,

              sheet,    refer      to  “Dual       Partition  Flash      program and verify program memory. For more informa-

              Program      Memory”            (DS70005156)         in    tion on Enhanced ICSP, see the device programming

              the   “dsPIC33/PIC24            Family    Reference        specification.

              Manual”,     which       is   available   from       the   RTSP is accomplished using TBLRD (Table Read) and

              Microchip web site (www.microchip.com).                    TBLWT (Table Write) instructions. With RTSP, the user

          2:  Some      registers        and       associated      bits  application can write program memory data with a single

              described        in  this    section      may   not  be    program memory word and erase program memory in

              available on all devices.                                  blocks or ‘pages’ of 1024 instructions (3072 bytes) at a

The   dsPIC33CK256MP508                family      devices    contain    time.

internal  Flash     program        memory          for  storing    and   5.1              Table Instructions and Flash

executing application code. The memory is readable,                                       Programming

writable and erasable during normal operation over the

entire VDD range.                                                        Regardless of the method used, all programming of

Flash memory can be programmed in three ways:                            Flash memory is done with the Table Read and Table

•  In-Circuit Serial Programming™ (ICSP™)                                Write instructions. These allow direct read and write

   programming capability                                                access to the program memory space from the data

•  Enhanced In-Circuit Serial Programming                                memory while the device is in normal operating mode.

   (Enhanced ICSP)                                                       The 24-bit target address in the program memory is

•  Run-Time Self-Programming (RTSP)                                      formed using bits<7:0> of the TBLPAG register and the

ICSP allows for a dsPIC33CK256MP508 family device                        Effective Address (EA) from a W register, specified in

to be serially programmed while in the end application                   the        table       instruction,      as   shown  in  Figure 5-1.  The

circuit. This is done with a Programming Clock and Pro-                  TBLRDL and TBLWTL instructions are used to read or

gramming      Data  (PGCx/PGDx)             line,  and  three    other   write to bits<15:0> of program memory. TBLRDL and

lines for power (VDD), ground (VSS) and Master Clear                     TBLWTL can access program memory in both Word

(MCLR). This allows customers to manufacture boards                      and              Byte     modes.         The   TBLRDH    and   TBLWTH

with  unprogrammed         devices       and   then     program    the   instructions are used to read or write to bits<23:16> of

                                                                         program           memory.         TBLRDH       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

 2017-2018 Microchip Technology Inc.                   Advance Information                                             DS70005349B-page 77
dsPIC33CK256MP508 FAMILY

5.2         RTSP Operation                                                   FIGURE 5-2:                           UNCOMPRESSED/

The    dsPIC33CK256MP508                 family     Flash      program                                             COMPRESSED FORMAT

memory array is organized into rows of 128 instructions                                           15               7             0

or 384 bytes. RTSP allows the user application to erase a                                                   LSW1                           Even Byte

single page (8 rows or 1024 instructions) of memory at a                                                                                   Address

time and to program one row at a time. It is possible to                     IncreasingAddress        0x00              MSB1

program two instructions at a time as well.                                                                 LSW2

The    page  erase      and      single  row       write  blocks       are

edge-aligned,       from     the        beginning         of  program                                 0x00              MSB2

memory, on boundaries of 3072 bytes and 384 bytes,

respectively. Table 33-18 in Section 33.0 “Electri-                                      UNCOMPRESSED FORMAT (RPDF = 0)

cal    Characteristics”          lists   the  typical     erase        and

programming times.

Row programming is performed by loading 384 bytes                                                 15               7                0

into data memory and then loading the address of the                         Increasing                     LSW1                           Even Byte

first byte in that row into the NVMSRCADRL/H register.                                   Address                                           Address

Once   the   write  has     been        initiated,  the       device   will                           MSB2              MSB1

automatically load the write latches, and increment the                                                     LSW2

NVMSRCADRL/H and the NVMADR(U) registers until

all  bytes   have   been     programmed.            The       RPDF     bit                      COMPRESSED FORMAT (RPDF = 1)

(NVMCON<9>) selects the format of the stored data in

RAM to be either compressed or uncompressed. See

Figure 5-2 for data formatting. Compressed data helps                        5.3                  Programming Operations

to reduce the amount of required RAM by using the

upper  byte    of  the   second   word        for   the   MSB      of  the   A complete programming sequence is necessary for

second instruction.                                                          programming or erasing the internal Flash in RTSP

The basic sequence for RTSP word programming is to                           mode.              The   processor       stalls  (waits)      until  the  pro-

use the TBLWTL and TBLWTH instructions to load two of                        gramming             operation    is     finished.  Setting   the    WR   bit

the 24-bit instructions into the write latches found in                      (NVMCON<15>) starts the operation and the WR bit is

configuration      memory        space.  Refer      to        Figure 4-1     automatically cleared when the operation is finished.

through Figure 4-5 for write latch addresses. Program-

ming is performed by unlocking and setting the control                       5.3.1                    PROGRAMMING ALGORITHM FOR

bits in the NVMCON register.                                                                          FLASH PROGRAM MEMORY

All erase and program operations may optionally use                          Programmers              can      program         two     adjacent   words

the NVM interrupt to signal the successful completion                        (24 bits x 2) of Program Flash Memory at a time on

of the operation. For example, when performing Flash                         every       other        word     address        boundary     (0x000002,

write  operations       on  the   Inactive       Partition     in     Dual   0x000006, 0x00000A, etc.). To do this, it is necessary to

Partition mode, where the CPU remains running, it is                         erase the page that contains the desired address of the

necessary    to    wait     for  the     NVM        interrupt  before        location the user wants to change. For protection against

programming the next block of Flash program memory.                          accidental           operations,      the  write    initiate  sequence    for

                                                                             NVMKEY must be used to allow any erase or program

                                                                             operation to proceed. After the programming command

                                                                             has been executed, the user application must wait for

                                                                             the programming time until programming is complete.

                                                                             The         two         instructions     following     the    start  of   the

                                                                             programming sequence should be NOPs.

DS70005349B-page 78                                           Advance Information                            2017-2018 Microchip Technology Inc.
                                                         dsPIC33CK256MP508 FAMILY

5.3.2          ERROR CORRECTING CODE (ECC)                             5.3.3      ECC FAULT INJECTION

In order to improve program memory performance and                     To test Fault handling, an EEC error can be generated.

durability, these devices include Error Correcting Code                Both single and double-bit errors can be generated in

(ECC)    functionality     as  an  integral   part   of  the  Flash    both the read and write data paths. Read path Fault

memory controller. ECC can determine the presence of                   injection first reads the Flash data and then modifies it

single bit errors in program data, including which bit is              prior to entering the ECC logic. Write path Fault injec-

in error, and correct the data automatically without user              tion modifies the actual data prior to it being written into

intervention. ECC cannot be disabled.                                  the target Flash and will cause an EEC error on a sub-

When data is written to program memory, ECC gener-                     sequent Flash read. The following procedure is used to

ates a 7-bit Hamming code parity value for every two                   inject a Fault:

(24-bit) instruction words. The data is stored in blocks               1.  Load   the      Flash     target  address    into  the

of   48  data  bits  and   7   parity  bits;  parity  data    is  not      ECCADDR register.

memory-mapped and is inaccessible. When the data is                    2.  Select 1st Fault bit determined by FLT1PTRx

read back, the ECC calculates the parity on it and com-                    (ECCCONH<7:0>). The target bit is inverted to

pares it to the previously stored parity value. If a parity                create the Fault.

mismatch occurs, there are two possible outcomes:                      3.  If a double Fault is desired, select the 2nd Fault bit

•    Single bit error has occurred and has been                            determined      by  FLT2PTRx      (ECCCONH<15:8>),

     automatically corrected on readback.                                  otherwise set to all ‘1’s.

•    Double-bit error has occurred and the read data is                4.  Write  the      NVMKEY      unlock    sequence     (see

     not changed.                                                          Section 5.5.3         “Program        Flash  Memory

Single bit error occurrence can be identified by the                       Control Registers”).

state of the ECCSBEIF (IFS0<13>) bit. An interrupt can                 5.  Enable the ECC Fault injection logic by setting

be generated when the corresponding interrupt enable                       the FLTINJ bit (ECCCONL<0>).

bit  is  set,  ECCSBEIE        (IEC0<13>).      The   ECCSTATL         6.  Perform      a  read  or  write   to  the  Flash  target

register contains the parity information for single bit                    address.

errors.  The   SECOUT<7:0>             bits   field  contains     the

expected calculated SEC parity and the SECIN<7:0>

bits contain the actual value from a Flash read opera-

tion. The SECSYNDx bits (ECCSTATH<7:0>) indicate

the bit position of the single bit error within the 48-bit

pair of instruction words. When no error is present,

SECINx equals SECOUTx and SECSYNDx is zero.

Double-bit     errors  result  in  a   generic    hard   trap.    The

ECCDBE bit (INTCON4<1>) will be set to identify the

source of the hard trap. If no Interrupt Service Routine

is implemented for the hard trap, a device Reset will

also occur. The ECCSTATH register contains double-

bit error status information. The DEDOUT bit is the

expected       calculated  DED     parity    and     DEDIN    is  the

actual value from a Flash read operation. When no

error is present, DEDIN equals DEDOUT.

 2017-2018 Microchip Technology Inc.                    Advance Information                                 DS70005349B-page 79
dsPIC33CK256MP508 FAMILY

5.4         ICSP™ Write Inhibit                                          5.4.1          ACTIVATING ICSP™ WRITE INHIBIT

ICSP Write Inhibit is an access restriction feature that,                     Caution:     It  is   not  possible  to     deactivate  ICSP

when activated, restricts all of Flash memory. Once acti-                                  Write Inhibit.

vated, ICSP Write Inhibit permanently prevents ICSP                      ICSP Write Inhibit is activated by executing a pair of

Flash programming and erase operations, and cannot                       NVMCON double-word programming commands to save

be    deactivated.    This   feature    is  intended      to  prevent    two 16-bit activation values in the configuration memory

alteration      of  Flash   memory      contents,     with    behavior   space. The target NVM addresses and values required

similar to One-Time-Programmable (OTP) devices.                          for   activation      are  shown     in   Table 5-1.  Once        both

RTSP, including erase and programming operations, is                     addresses contain their activation values, ICSP Write

not   restricted    when     ICSP    Write   Inhibit  is    activated;   Inhibit  will  take   permanent      effect  on  the  next   device

however, code to perform these actions must be pro-                      Reset. Neither address can be reset, erased or otherwise

grammed into the device before ICSP Write Inhibit is                     modified, through any means, after being successfully

activated. This allows for a bootloader-type application                 programmed, even if one of the addresses has not been

to alter Flash contents with ICSP Write Inhibit activated.               programmed.

Entry     into  ICSP    and  Enhanced       ICSP      modes   is    not  Only     the   lower  16   data   bits   stored  at  the  activation

affected by ICSP Write Inhibit. In these modes, it will                  addresses are evaluated; the upper 8 bits and second

continue to be possible to read configuration memory                     24-bit   word  written     by   the  double-word      programming

space and any user memory space regions which are                        (NVMOP<3:0>) should be written as ‘0’s. The addresses

not   code      protected.   With    ICSP    writes   inhibited,    an   can be programmed in any order and also during sepa-

attempt to set WR (NVMCON<15>) = 1 will maintain                         rate    ICSP/Enhanced           ICSP/RTSP     sessions,      but  any

WR = 0, and instead, set WRERR (NVMCON<13>) = 1.                         attempt to program an incorrect 16-bit value or use a row

All Enhanced ICSP erase and programming commands                         programming operation to program the values will be

will  have      no  effect   with    self-checked     programming        aborted without altering the existing data.

commands returning a FAIL response opcode (PASS if

the destination already exactly matched the requested                    TABLE 5-1:                ICSP™ WRITE INHIBIT

programming data).                                                                                 ACTIVATION ADDRESSES

Once ICSP Write Inhibit is activated, it is not possible for                                       AND DATA

a device executing in Debug mode to erase/write Flash,                                                                    ICSP Write

nor can a debug tool switch the device to Production                                           Configuration           Inhibit Activation

mode.     ICSP      Write   Inhibit  should    therefore      only  be                         Memory Address                  Value

activated on devices programmed for production.

The JTAG port, when enabled, can be used to map                          Write Lock 1               0x801034              0x006D63

ICSP      signals   to  JTAG       I/O  pins.  All    Flash   erase/     Write Lock 2               0x801038              0x006870

programming operations initiated via the JTAG port will

therefore also be blocked after activating ICSP Write

Inhibit.

DS70005349B-page 80                                       Advance Information                        2017-2018 Microchip Technology Inc.
                                                             dsPIC33CK256MP508 FAMILY

5.5         Dual Partition Flash Configuration                            For robustness of operation, in order to execute the

For dsPIC33CK256MP508 devices operating in Dual                           BOOTSWP    instruction,        it  is  necessary    to  execute  the

Partition Flash Program Memory modes, the Inactive                        NVM unlocking sequence as follows:

Partition can be erased and programmed without stall-                     1.    Write 0x55 to NVMKEY.

ing the processor. The same programming algorithms                        2.    Write 0xAA to NVMKEY.

are used for programming and erasing the Flash in the                     3.    Execute the BOOTSWP instruction.

Inactive Partition, as described in Section 5.2 “RTSP                     If  the    unlocking     sequence        is   not   performed,   the

Operation”. On top of the page erase option, the entire                   BOOTSWP instruction will be executed as a forced NOP

Flash memory of the Inactive Partition can be erased                      and a GOTO instruction, following the BOOTSWP instruc-

by configuring the NVMOP<3:0> bits in the NVMCON                          tion, will be executed, causing the PC to jump to that

register.                                                                 location in the current operating partition.

     Note 1:   The       application    software     to  be  loaded       The   SFTSWP          and  P2ACTIV       bits   in  the   NVMCON

               into the Inactive Partition will have the                  register are used to determine a successful swap of the

               address        of  the    Active   Partition.      The     Active and Inactive Partitions, as well as which partition

               bootloader         firmware  will  need       to   offset  is active. After the BOOTSWP and GOTO instructions, the

               the address by 0x400000 in order to write                  SFTSWP bit should be polled to verify the partition

               to the Inactive Partition.                                 swap has occurred and then cleared for the next panel

5.5.1          FLASH PARTITION SWAPPING                                   swap event.

The Boot Sequence Number is used for determining                          5.5.2        DUAL PARTITION MODES

the Active Partition at start-up and is encoded within                    While      operating       in      Dual  Partition      mode,    the

the FBTSEQ Configuration register bits. Unlike most                       dsPIC33CK256MP508 family devices have the option

Configuration       registers,    which   only    utilize    the  lower   for both partitions to have their own defined security

16 bits of the program memory, FBTSEQ is a 24-bit                         segments, as shown in Figure 27-4. Alternatively, the

Configuration       Word.     The     Boot  Sequence         Number       device can operate in Protected Dual Partition mode,

(BSEQ) is a 12-bit value and is stored in FBTSEQ                          where      Partition  1  becomes         permanently     erase/write-

twice. The true value is stored in bits, FBTSEQ<11:0>,                    protected. Protected Dual Partition mode allows for a

and its complement is stored in bits, FBTSEQ<23:12>.                      “Factory   Default”      mode,         which  provides    a  fail-safe

At device Reset, the sequence numbers are read and                        backup image to be stored in Partition 1.

the  partition      with    the    lowest       sequence         number   dsPIC33CK256MP508 family devices can also operate

becomes        the  Active    Partition.    If  one      of  the  Boot    in  Privileged  Dual       Partition     mode,     where  additional

Sequence Numbers is invalid, the device will select the                   security protections are implemented to allow for pro-

partition   with    the   valid   Boot    Sequence       Number,   or     tection of intellectual property when multiple parties

default    to  Partition   1  if  both  sequence     numbers       are    have software within the device. In Privileged Dual Par-

invalid. See Section 30.0 “Special Features” for more                     tition mode, both partitions place additional restrictions

information.                                                              on the FBSLIM register. These prevent changes to the

The    BOOTSWP      instruction         provides     an      alternative  size   of  the  Boot     Segment         and  General     Segment,

means of swapping the Active and Inactive Partitions                      ensuring that neither segment will be altered.

(soft swap) without the need for a device Reset. The

BOOTSWP must always be followed by a GOTO instruc-

tion. The BOOTSWP instruction swaps the Active and

Inactive Partitions, and the PC vectors to the location

specified by the GOTO instruction in the newly Active

Partition.

It is important to note that interrupts should temporarily

be disabled while performing the soft swap sequence

and that after the partition swap, all peripherals and

interrupts which were enabled remain enabled. Addi-

tionally, the RAM and stack will maintain state after the

switch. As a result, it is recommended that applications

using soft swaps jump to a routine that will reinitialize

the  device    in   order   to    ensure  the   firmware     runs  as

expected.      The  Configuration         registers  will    have  no

effect during a soft swap.

 2017-2018 Microchip Technology Inc.                        Advance Information                                        DS70005349B-page 81
dsPIC33CK256MP508 FAMILY

FIGURE 5-3:          RELATIONSHIP BETWEEN PARTITIONS 1/2            AND  ACTIVE/INACTIVE  PARTITIONS

000000h              Partition 1  000000h              Partition 2              000000h   Partition 1

Active Partition

                     BSEQ = 10                         BSEQ = 15                          BSEQ = 10

                                  BOOTSWP Instruction                    Reset

400000h              Partition 2  400000h              Partition 1              400000h   Partition 2

Inactive Partition

                     BSEQ = 15                         BSEQ = 10                          BSEQ = 15

000000h              Partition 1  000000h              Partition 1              000000h   Partition 2

Active Partition

                     BSEQ = 10                         BSEQ = 10                          BSEQ = 5

                                  Reprogram BSEQ                         Reset

400000h              Partition 2  400000h              Partition 2              400000h   Partition 1

Inactive Partition

                     BSEQ = 15                         BSEQ = 5                           BSEQ = 10

DS70005349B-page 82               Advance Information                     2017-2018 Microchip Technology Inc.
                                                dsPIC33CK256MP508 FAMILY

5.5.3      PROGRAM FLASH MEMORY                              There are two NVM Address registers: NVMADRU and

           CONTROL REGISTERS                                 NVMADR. These two registers, when concatenated,

Five SFRs are used to write and erase the Program            form the 24-bit Effective Address (EA) of the selected

Flash  Memory:       NVMCON,    NVMKEY,         NVMADR,      word/row for programming operations, or the selected

NVMADRU and NVMSRCADRL/H.                                    page for erase operations. The NVMADRU register is

                                                             used to hold the upper eight bits of the EA, while the

The    NVMCON      register  (Register 5-1)  selects    the  NVMADR register is used to hold the lower 16 bits of

operation  to  be    performed  (page   erase,  word/row     the EA.

program,   Inactive  Partition  erase)  and  initiates  the  For row programming operation, data to be written to

program or erase cycle.                                      Program Flash Memory is written into data memory

NVMKEY (Register 5-4) is a write-only register that is       space    (RAM)  at  an  address  defined  by  the

used for write protection. To start a programming or erase   NVMSRCADRL/H register (location of first element in

sequence, the user application must consecutively write      row programming data).

0x55 and 0xAA to the NVMKEY register.

 2017-2018 Microchip Technology Inc.           Advance Information                  DS70005349B-page 83
dsPIC33CK256MP508 FAMILY

REGISTER     5-1:    NVMCON: NONVOLATILE MEMORY (NVM) CONTROL REGISTER

R/SO-0(1)          R/W-0(1)       R/W-0(1)           R/W-0      R/C-0                 R-0           R/W-0           R/C-0

       WR          WREN           WRERR             NVMSIDL(2)  SFTSWP                P2ACTIV       RPDF            URERR

bit 15                                                                                                                      bit 8

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

        —            —            —                  —          NVMOP3(3,4)  NVMOP2(3,4)        NVMOP1(3,4)     NVMOP0(3,4)

bit 7                                                                                                                       bit 0

Legend:                           C = Clearable bit             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       NVMSIDL: NVM Stop in Idle Control bit(2)

             1=      Flash voltage regulator goes into Standby mode during Idle mode

             0=      Flash voltage regulator is active during Idle mode

bit 11       SFTSWP: Partition Soft Swap Status bit

             1=      Partitions have been successfully swapped using the BOOTSWP instruction (soft swap)

             0=      Awaiting successful partition swap using the BOOTSWP instruction or a device Reset will determine

                     the Active Partition based on the FBTSEQ register

bit 10       P2ACTIV: Partition 2 Active Status bit

             1=      Partition 2 Flash is mapped into the active region

             0=      Partition 1 Flash is mapped into the active region

bit 9        RPDF: Row Programming Data Format bit

             1=      Row data to be stored in RAM is in compressed format

             0=      Row data to be stored in RAM is in uncompressed format

bit 8        URERR: Row Programming Data Underrun Error bit

             1=      Indicates row programming operation has been terminated

             0=      No data underrun error is detected

bit 7-4      Unimplemented: Read as ‘0’

Note     1:  These bits can only be reset on a POR.

         2:  If this bit is set, there will be minimal power savings (IIDLE), and upon exiting Idle mode, there is a delay

             (TVREG) before Flash memory becomes operational.

         3:  All other combinations of NVMOP<3:0> are unimplemented.

         4:  Execution of the PWRSAV instruction is ignored while any of the NVM operations are in progress.

         5:  Two adjacent words on a 4-word boundary are programmed during execution of this operation.

DS70005349B-page 84                                 Advance Information                     2017-2018 Microchip Technology Inc.
                                       dsPIC33CK256MP508 FAMILY

REGISTER 5-1:      NVMCON: NONVOLATILE MEMORY (NVM) CONTROL REGISTER (CONTINUED)

bit 3-0      NVMOP<3:0>: NVM Operation Select bits(1,3,4)

             1111  =  Reserved

             1110  =  User memory bulk erase operation

             1101  =  Reserved

             1100  =  Reserved

             1011  =  Reserved

             1010  =  Reserved

             1001  =  Reserved

             1000  =  Boot mode (FBOOT) double-word program      operation

             0111  =  Reserved

             0101  =  Reserved

             0100  =  Inactive Partition memory erase operation

             0011  =  Memory page erase operation

             0010  =  Memory row program operation
                      Memory double-word operation(5)
             0001  =

             0000  =  Reserved

Note     1:  These bits can only be reset on a POR.

         2:  If this bit is set, there will be minimal power savings (IIDLE), and upon exiting Idle mode, there is a delay

             (TVREG) before Flash memory becomes operational.

         3:  All other combinations of NVMOP<3:0> are unimplemented.

         4:  Execution of the PWRSAV instruction is ignored while any of the NVM operations are in progress.

         5:  Two adjacent words on a 4-word boundary are programmed during execution of this operation.

 2017-2018 Microchip Technology Inc.  Advance Information                  DS70005349B-page 85
dsPIC33CK256MP508 FAMILY

REGISTER 5-2:        NVMADR: NONVOLATILE MEMORY LOWER ADDRESS REGISTER

R/W-x              R/W-x  R/W-x             R/W-x  R/W-x                 R/W-x         R/W-x        R/W-x

                                            NVMADR<15:8>

bit 15                                                                                                                bit 8

R/W-x              R/W-x  R/W-x             R/W-x  R/W-x                 R/W-x         R/W-x        R/W-x

                                            NVMADR<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-0     NVMADR<15:0>: Nonvolatile Memory Lower Write Address bits

             Selects the lower 16 bits of the location to program or erase in Program Flash Memory. This register

             may be read or written to by the user application.

REGISTER 5-3:        NVMADRU: NONVOLATILE MEMORY UPPER ADDRESS REGISTER

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

         —           —    —                 —                    —       —             —            —

bit 15                                                                                                                bit 8

R/W-x              R/W-x  R/W-x             R/W-x  R/W-x                 R/W-x         R/W-x        R/W-x

                                            NVMADRU<23:16>

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      NVMADRU<23:16>: Nonvolatile Memory Upper Write Address bits

             Selects the upper eight bits of the location to program or erase in Program Flash Memory. This register

             may be read or written to by the user application.

DS70005349B-page 86              Advance Information                         2017-2018 Microchip Technology Inc.
                                              dsPIC33CK256MP508 FAMILY

REGISTER 5-4:      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)

REGISTER 5-5:      NVMSRCADR: NVM SOURCE DATA ADDRESS REGISTER

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

                                              NVMSRCADR<15:8>

bit 15                                                                                                        bit 8

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

                                              NVMSRCADR<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-0     NVMSRCADR<15:0>: NVM Source Data Address bits

             The RAM address of the data to be programmed into Flash when the NVMOP<3:0> bits are set to row

             programming.

 2017-2018 Microchip Technology Inc.         Advance Information                         DS70005349B-page 87
dsPIC33CK256MP508 FAMILY

5.5.4        ECC CONTROL REGISTERS

REGISTER 5-6:        ECCCONL: ECC FAULT INJECTION CONFIGURATION REGISTER LOW

        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      U-0                     U-0             U-0                 R/W-0

        —            —         —                 —          —                     —               —                   FLTINJ

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-1     Unimplemented: Read as ‘0’

bit 0        FLTINJ: Fault Injection Sequence Enable bit

             1=      Enabled

             0=      Disabled

REGISTER 5-7:        ECCCONH: ECC FAULT INJECTION CONFIGURATION REGISTER HIGH

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

                                                 FLT2PTR<7:0>

bit 15                                                                                                                     bit 8

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

                                                 FLT1PTR<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     FLT2PTR<7:0>: ECC Fault Injection Bit Pointer 2 bits

             11111111-00111000 = No Fault injection occurs

             00110111 =        Fault injection (bit inversion) occurs on bit 55 of ECC bit order

             •

             •

             •

             00000001 =        Fault injection (bit inversion) occurs on bit 1 of ECC bit order

             00000000 =        Fault injection (bit inversion) occurs on bit 0 of ECC bit order

bit 0        FLT1PTR<7:0>: ECC Fault Injection Bit Pointer 1 bits

             11111111-00111000 = No Fault injection occurs

             00110111 =        Fault injection occurs on bit 55 of ECC bit order

             •

             •

             •

             00000001 =        Fault injection occurs on bit 1 of ECC bit order

             00000000 =        Fault injection occurs on bit 0 of ECC bit order

DS70005349B-page 88                   Advance Information                             2017-2018 Microchip Technology Inc.
                                              dsPIC33CK256MP508 FAMILY

REGISTER 5-8:      ECCADDRL: ECC FAULT INJECT ADDRESS COMPARE REGISTER LOW

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

                                              ECCADDR<15:8>

bit 15                                                                                                     bit 8

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

                                              ECCADDR<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-0     ECCADDR<15:0>: ECC Fault Injection NVM Address Match Compare bits

REGISTER 5-9:      ECCADDRH: ECC FAULT INJECT ADDRESS COMPARE REGISTER HIGH

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

         —         —                   —      —      —                     —             —            —

bit 15                                                                                                     bit 8

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

                                              ECCADDR<23:16>

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      ECCADDR<23:16>: ECC Fault Injection NVM Address Match Compare bits

 2017-2018 Microchip Technology Inc.         Advance Information                        DS70005349B-page 89
dsPIC33CK256MP508 FAMILY

REGISTER 5-10:       ECCSTATL: ECC SYSTEM STATUS DISPLAY REGISTER LOW

        R-0          R-0  R-0               R-0                   R-0     R-0        R-0                  R-0

                                            SECOUT<7:0>

bit 15                                                                                                         bit  8

        R-0          R-0  R-0               R-0                   R-0     R-0        R-0                  R-0

                                            SECIN<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     SECOUT<7:0>: Calculated Single Error Correction Parity Value bits

bit 7-0      SECIN<7:0>: Read Single Error Correction Parity Value bits

             SECIN<7:0> bits are the actual parity value of a Flash read operation.

REGISTER 5-11:       ECCSTATH: ECC SYSTEM STATUS DISPLAY REGISTER HIGH

        U-0          U-0  U-0               U-0                   U-0     U-0        R-0                  R-0

         —           —    —                 —                     —       —          DEDOUT              DEDIN

bit 15                                                                                                         bit 8

        R-0          R-0  R-0               R-0                   R-0     R-0        R-0                  R-0

                                            SECSYND<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-10    Unimplemented: Read as ‘0’

bit 9        DEDOUT: Calculated Dual Bit Error Detection Parity bit

bit 8        DEDIN: Read Dual Bit Error Detection Parity bit

             DEDIN is the actual parity value of a Flash read operation.

bit 7-0      SECSYND<7:0>: Calculated ECC Syndrome Value bits

             Indicates the bit location that contains the error.

DS70005349B-page 90            Advance Information                               2017-2018 Microchip Technology Inc.
                                                         dsPIC33CK256MP508 FAMILY

6.0         RESETS                                                     Any active source of Reset will make the SYSRST

                                                                       signal active. On system Reset, some of the registers

      Note  1:  This data sheet summarizes the features                associated with the CPU and peripherals are forced to

                of  the  dsPIC33CK256MP508           family     of     a known Reset state, and some are unaffected.

                devices.   It  is   not   intended   to     be     a   Note:         Refer to the specific peripheral section

                comprehensive       reference      source.      To                   or Section 4.0 “Memory Organization”

                complement the information in this data                              of this data sheet for register Reset states.

                sheet, refer to “Reset” (DS70602) in the

                “dsPIC33/PIC24 Family Reference Man-                   All types of device Reset set a corresponding status bit

                ual”, which is available from the Microchip            in the RCON register to indicate the type of Reset (see

                web site (www.microchip.com).                          Register 6-1).

            2:  Some     registers      and   associated      bits     A POR clears all the bits, except for the BOR and POR

                described  in  this     section    may   not    be     bits (RCON<1:0>) that are set. The user application

                available on all devices.                              can  set  or  clear  any     bit,  at  any  time,  during  code

The Reset module combines all Reset sources and                        execution. The RCON bits only serve as status bits.

controls the device Master Reset Signal, SYSRST. The                   Setting a particular Reset status bit in software does

following is a list of device Reset sources:                           not cause a device Reset to occur.

•  POR: Power-on Reset                                                 The RCON register also has other bits associated with

•  BOR: Brown-out Reset                                                the Watchdog Timer and device power-saving states.

•  MCLR: Master Clear Pin Reset                                        The function of these bits is discussed in other sections

                                                                       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

•  TRAPR: Trap Conflict Reset                                                        device Reset is meaningful.

•  IOPUWR: Illegal Condition Device Reset                              For all Resets, the default clock source is determined

   -  Illegal Opcode Reset                                             by the FNOSC<2:0> bits in the FOSCSEL Configura-

   -  Uninitialized W Register Reset                                   tion register. The value of the FNOSCx bits is loaded

   -  Security Reset                                                   into the NOSC<2:0> (OSCCON<10:8>) bits on Reset,

A  simplified   block    diagram    of   the  Reset  module        is  which in turn, initializes the system clock.

shown in Figure 6-1.

FIGURE 6-1:                RESET SYSTEM BLOCK DIAGRAM

                               RESET Instruction

                                                    Glitch Filter

                    MCLR

                                    WDT
                                    Module

                                   Sleep or Idle

                               Internal                         BOR

                    VDD        Regulator                                                                      SYSRST

                                                  VDD Rise      POR

                                                   Detect

                                    Trap Conflict

                                   Illegal Opcode

                         Uninitialized W Register

                                   Security Reset

                         Configuration Mismatch

 2017-2018 Microchip Technology Inc.                Advance Information                                          DS70005349B-page 91
dsPIC33CK256MP508 FAMILY

6.1   Reset Resources                                      6.1.1        KEY RESOURCES

Many  useful  resources  are  provided      on  the  main  •  “Reset” (DS70602) in the “dsPIC33/PIC24 Family

product page of the Microchip web site for the devices        Reference Manual”

listed in this data sheet. This product page contains the  •  Code Samples

latest updates and additional information.                 •  Application Notes

                                                           •  Software Libraries

                                                           •  Webinars

                                                           •  All Related “dsPIC33/PIC24 Family Reference

                                                              Manual” Sections

                                                           •  Development Tools

DS70005349B-page 92                             Advance Information          2017-2018 Microchip Technology Inc.
                                             dsPIC33CK256MP508 FAMILY

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-1         R/W-0               r-0     R/W-0          R/W-0                R/W-0         R/W-1        R/W-1

       EXTR        SWR                 —       WDTO           SLEEP                IDLE          BOR          POR

bit 7                                                                                                                        bit 0

Legend:                    r = Reserved 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       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 Register 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 Standby During Sleep bit

             1=    Voltage regulator is active during Sleep

             0=    Voltage regulator goes into Standby 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       Reserved: Read as ‘0’

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

bit  1       BOR: Brown-out Reset Flag bit

             1 = A Brown-out Reset has occurred

             0 = A Brown-out 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.

 2017-2018 Microchip Technology Inc.       Advance Information                                     DS70005349B-page 93
dsPIC33CK256MP508 FAMILY

REGISTER 6-1:        RCON: RESET CONTROL REGISTER(1) (CONTINUED)

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.

DS70005349B-page 94               Advance Information   2017-2018 Microchip Technology Inc.
                                                              dsPIC33CK256MP508 FAMILY

7.0       INTERRUPT CONTROLLER                                           7.1.1           ALTERNATE INTERRUPT VECTOR

   Note   1:   This data sheet summarizes the features                                   TABLE

               of  the     dsPIC33CK256MP508             family    of    The Alternate Interrupt Vector Table (AIVT), shown in

               devices.     It      is  not  intended    to   be   a     Figure 7-2, is available only when the Boot Segment

               comprehensive reference source. To com-                   (BS) is defined and the AIVT has been enabled. To

               plement the information in this data sheet,               enable the Alternate Interrupt Vector Table, the Config-

               refer to “Interrupts” (DS70000600) in the                 uration  bit,   AIVTDIS     in   the   FSEC      register,       must   be

               “dsPIC33/PIC24 Family Reference Man-                      programmed        and     the    AIVTEN          bit      must     be   set

               ual”, which is available from the Microchip               (INTCON2<8>         =  1).  When      the      AIVT   is  enabled,      all

               web site (www.microchip.com).                             interrupt and exception processes use the alternate

          2:   Some        registers      and   associated         bits  vectors instead of the default vectors. The AIVT begins

               described        in  this     section  may     not  be    at  the  start  of   the  last   page      of    the  Boot    Segment,

               available on all devices.                                 defined by BSLIM<12:0>. The second half of the page

                                                                         is no longer usable space. The Boot Segment must be

The dsPIC33CK256MP508 family interrupt controller                        at least 2 pages to enable the AIVT.

reduces   the    numerous           peripheral  interrupt     request        Note:       Although     the      Boot     Segment        must      be

signals   to  a    single  interrupt      request     signal  to   the                   enabled     in   order     to    enable       the   AIVT,

dsPIC33CK256MP508 family CPU.                                                            application     code    does         not  need      to  be

The interrupt controller has the following features:                                     present inside of the Boot Segment. The

•  Six Processor Exceptions and Software Traps                                           AIVT   (and      IVT)      will  inherit      the   Boot

                                                                                         Segment code protection.

•  Seven User-Selectable Priority Levels                                 The AIVT supports debugging by providing a means to

•  Interrupt Vector Table (IVT) with a Unique Vector                     switch between an application and a support environ-

   for each Interrupt or Exception Source                                ment     without    requiring    the    interrupt     vectors       to  be

•  Fixed Priority within a Specified User Priority Level                 reprogrammed.        This   feature     also     enables        switching

•  Fixed Interrupt Entry and Return Latencies                            between    applications          for   evaluation         of     different

•  Alternate Interrupt Vector Table (AIVT) for Debug                     software algorithms at run time.

   Support

7.1       Interrupt Vector Table                                         7.2        Reset Sequence

                                                                         A device Reset is not a true exception because the

The  dsPIC33CK256MP508                  family  Interrupt     Vector     interrupt controller is not involved in the Reset process.

Table (IVT), shown in Figure 7-1, resides in program                     The dsPIC33CK256MP508 family devices clear their

memory, starting at location, 000004h. The IVT contains                  registers in response to a Reset, which forces the PC

six non-maskable trap vectors and up to 246 sources of                   to zero. The device then begins program execution at

interrupts. In general, each interrupt source has its own                location, 0x000000. A GOTO instruction at the Reset

vector.  Each    interrupt  vector        contains    a  24-bit    wide  address    can      redirect     program         execution         to   the

address.    The    value   programmed           into  each   interrupt   appropriate start-up routine.

vector location is the starting address of the associated                    Note:       Any    unimplemented             or   unused       vector

Interrupt Service Routine (ISR).                                                         locations    in   the      IVT       should     be      pro-

Interrupt vectors are prioritized in terms of their natural                              grammed      with     the   address       of  a    default

priority. This priority is linked to their position in the                               interrupt handler routine that contains a

vector table. Lower addresses generally have a higher                                    RESET instruction.

natural priority. For example, the interrupt associated

with Vector 0 takes priority over interrupts at any other

vector address.

 2017-2018 Microchip Technology Inc.                    Advance Information                                         DS70005349B-page 95
dsPIC33CK256MP508 FAMILY

FIGURE 7-1:                             dsPIC33CK256MP508 FAMILY     INTERRUPT  VECTOR  TABLE

Decreasing Natural Order Priority       Reset – GOTO Instruction     0x000000

                                        Reset – GOTO Address         0x000002

                                        Oscillator Fail Trap Vector  0x000004

                                        Address Error Trap Vector    0x000006

                                        Generic Hard Trap Vector     0x000008

                                        Stack Error Trap Vector      0x00000A

                                        Math Error Trap Vector       0x00000C

                                        Reserved                     0x00000E

                                        Generic Soft Trap Vector     0x000010

                                        Reserved                     0x000012

                                        Interrupt Vector 0           0x000014

                                        Interrupt Vector 1           0x000016

                                        :                            :

                                        :                            :

                                        :                            :

                                   IVT  Interrupt Vector 52          0x00007C

                                        Interrupt Vector 53          0x00007E

                                        Interrupt Vector 54          0x000080           See Table 7-1 for

                                        :                            :                  Interrupt Vector Details

                                        :                            :

                                        :                            :

                                        Interrupt Vector 116         0x0000FC

                                        Interrupt Vector 117         0x0000FE

                                        Interrupt Vector 118         0x000100

                                        Interrupt Vector 119         0x000102

                                        Interrupt Vector 120         0x000104

                                        :                            :

                                        :                            :

                                        :                            :

                                        Interrupt Vector 244         0x0001FC

                                        Interrupt Vector 245         0x0001FE

                                        START OF CODE                0x000200

Note:                              In Dual Partition modes, each partition has a dedicated Interrupt Vector Table.

DS70005349B-page 96                               Advance Information            2017-2018 Microchip Technology    Inc.
                                                                  dsPIC33CK256MP508 FAMILY

FIGURE 7-2:                              dsPIC33CK256MP508 ALTERNATE INTERRUPT VECTOR TABLE(2)

Decreasing Natural Order Priority                   Reserved          BSLIM<12:0>(1)  +  0x000000

                                                    Reserved          BSLIM<12:0>(1)  +  0x000002

                                         Oscillator Fail Trap Vector  BSLIM<12:0>(1)  +  0x000004

                                         Address Error Trap Vector    BSLIM<12:0>(1)  +  0x000006

                                         Generic Hard Trap Vector     BSLIM<12:0>(1)  +  0x000008

                                         Stack Error Trap Vector      BSLIM<12:0>(1)  +  0x00000A

                                         Math Error Trap Vector       BSLIM<12:0>(1)  +  0x00000C

                                                    Reserved          BSLIM<12:0>(1)  +  0x00000E

                                         Generic Soft Trap Vector     BSLIM<12:0>(1)  +  0x000010

                                                    Reserved          BSLIM<12:0>(1)  +  0x000012

                                         Interrupt Vector 0           BSLIM<12:0>(1)  +  0x000014

                                         Interrupt Vector 1           BSLIM<12:0>(1)  +  0x000016

                                                    :                           :

                                                    :                           :

                                   AIVT             :                           :

                                         Interrupt Vector 52          BSLIM<12:0>(1)  +  0x00007C

                                         Interrupt Vector 53          BSLIM<12:0>(1)  +  0x00007E

                                         Interrupt Vector 54          BSLIM<12:0>(1)  +  0x000080  See Table 7-1 for

                                                    :                           :                  Interrupt Vector Details

                                                    :                           :

                                                    :                           :

                                         Interrupt Vector 116         BSLIM<12:0>(1)  +  0x0000FC

                                         Interrupt Vector 117         BSLIM<12:0>(1)  +  0x0000FE

                                         Interrupt Vector 118         BSLIM<12:0>(1)  +  0x000100

                                         Interrupt Vector 119         BSLIM<12:0>(1)  +  0x000102

                                         Interrupt Vector 120         BSLIM<12:0>(1)  +  0x000104

                                                    :                           :

                                                    :                           :

                                                    :                           :

                                         Interrupt Vector 244         BSLIM<12:0>(1)  +  0x0001FC

                                         Interrupt Vector 245         BSLIM<12:0>(1)  +  0x0001FE

Note                               1:    The address depends on the size of the Boot Segment defined by BSLIM<12:0>:

                                         [(BSLIM<12:0> – 1) x 0x800] + Offset.

                                   2:    In Dual Partition modes, each partition has a dedicated Alternate Interrupt Vector Table (if

                                         enabled).

 2017-2018 Microchip Technology Inc.                         Advance Information                                     DS70005349B-page 97
dsPIC33CK256MP508 FAMILY

TABLE 7-1:         INTERRUPT VECTOR DETAILS

                                        Vector  IRQ                                 Interrupt Bit Location

             Interrupt Source           #       #      IVT Address        Flag      Enable    Priority

INT0 – External Interrupt 0             8       0      0x000014           IFS0<0>   IEC0<0>   IPC0<2:0>

T1 – Timer1                             9       1      0x000016           IFS0<1>   IEC0<1>   IPC0<6:4>

CNA – Change Notice Interrupt A         10      2      0x000018           IFS0<2>   IEC0<2>   IPC0<10:8>

CNB – Change Notice Interrupt B         11      3      0x00001A           IFS0<3>   IEC0<3>   IPC0<14:12>

DMA0 – DMA Channel 0                    12      4      0x00001C           IFS0<4>   IEC0<4>   IPC1<2:0>

Reserved                                13      5      0x00001E           —         —                       —

CCP1 – Input Capture/Output Compare  1  14      6      0x000020           IFS0<6>   IEC0<6>   IPC1<10:8>

CCT1 – CCP1 Timer                       15      7      0x000022           IFS0<7>   IEC0<7>   IPC1<14:12>

DMA1 – DMA Channel 1                    16      8      0x000024           IFS0<8>   IEC0<8>   IPC2<2:0>

SPI1RX – SPI1 Receiver                  17      9      0x000026           IFS0<9>   IEC0<9>   IPC2<6:4>

SPI1TX – SPI1 Transmitter               18      10     0x000028           IFS0<10>  IEC0<10>  IPC2<10:8>

U1RX – UART1 Receiver                   19      11     0x00002A           IFS0<11>  IEC0<11>  IPC2<14:12>

U1TX – UART1 Transmitter                20      12     0x00002C           IFS0<12>  IEC0<12>  IPC3<2:0>

ECCSBE – ECC Single Bit Error           21      13     0x00002E           IFS0<13>  IEC0<13>  IPC3<6:4>

NVM – NVM Write Complete                22      14     0x000030           IFS0<14>  IEC0<14>  IPC3<10:8>

INT1 – External Interrupt 1             23      15     0x000032           IFS0<15>  IEC0<15>  IPC3<14:12>

SI2C1 – I2C1 Slave Event                24      16     0x000034           IFS1<0>   IEC1<0>   IPC4<2:0>

MI2C1 – I2C1 Master Event               25      17     0x000036           IFS1<1>   IEC1<1>   IPC4<6:4>

DMA2 – DMA Channel 2                    26      18     0x000038           IFS1<2>   IEC1<2>   IPC4<10:8>

CNC – Change Notice Interrupt C         27      19     0x00003A           IFS1<3>   IEC1<3>   IPC4<14:12>

INT2 – External Interrupt 2             28      20     0x00003C           IFS1<4>   IEC1<4>   IPC5<2:0>

DMA3 – DMA Channel 3                    29      21     0x00003E           IFS1<5>   IEC1<5>   IPC5<6:4>

Reserved                                30      22     0x000040           —         —                       —

CCP2 – Input Capture/Output Compare  2  31      23     0x000042           IFS1<7>   IEC1<7>   IPC5<14:12>

CCT2 – CCP2 Timer                       32      24     0x000044           IFS1<8>   IEC1<8>   IPC6<2:0>

CAN1 – CAN1 Combined Error              33      25     0x000046           IFS1<9>   IEC1<9>   IPC6<6:4>

INT3 – External Interrupt 3             34      26     0x000048           IFS1<10>  IEC1<10>  IPC6<10:8>

U2RX – UART2 Receiver                   35      27     0x00004A           IFS1<11>  IEC1<11>  IPC6<14:12>

U2TX – UART2 Transmitter                36      28     0x00004C           IFS1<12>  IEC1<12>  IPC7<2:0>

SPI2RX – SPI2 Receiver                  37      29     0x00004E           IFS1<13>  IEC1<13>  IPC7<6:4>

SPI2TX – SPI2 Transmitter               38      30     0x000050           IFS1<14>  IEC1<14>  IPC7<10:8>

C1RX – CAN1 RX Data Ready               39      31     0x000052           IFS1<15>  IEC1<15>  IPC7<14:12>

Reserved                                40-42   32-34  0x000054-0x000058  —         —                       —

CCP3 – Input Capture/Output Compare  3  43      35     0x00005A           IFS2<3>   IEC2<3>   IPC8<14:12>

CCT3 – CCP3 Timer                       44      36     0x00005C           IFS2<4>   IEC2<4>   IPC9<2:0>

SI2C2 – I2C2 Slave Event                45      37     0x00005E           IFS2<5>   IEC2<5>   IPC9<6:4>

MI2C2 – I2C2 Master Event               46      38     0x000060           IFS2<6>   IEC2<6>   IPC9<10:8>

Reserved                                47      39     0x000062           —         —                       —

CCP4 – Input Capture/Output Compare  4  48      40     0x000064           IFS2<8>   IEC2<8>   IPC10<2:0>

CCT4 – CCP4 Timer                       49      41     0x000066           IFS2<9>   IEC2<9>   IPC10<6:4>

Reserved                                50      42     0x000068           —         —                       —

CCP5 – Input Capture/Output Compare  5  51      43     0x00006A           IFS2<11>  IEC2<11>  IPC10<14:12>

CCT5 – CCP5 Timer                       52      44     0x00006C           IFS2<12>  IEC2<12>  IPC11<2:0>

DMT – Deadman Timer                     53      45     0x00006E           IFS2<13>  IEC2<13>  IPC11<6:4>

CCP6 – Input Capture/Output Compare  6  54      46     0x000070           IFS2<14>  IEC2<14>  IPC11<10:8>

CCT6 – CCP6 Timer                       55      47     0x000072           IFS2<15>  IEC2<15>  IPC11<14:12>

DS70005349B-page 98                        Advance Information             2017-2018 Microchip Technology Inc.
                                               dsPIC33CK256MP508 FAMILY

TABLE 7-1:         INTERRUPT VECTOR DETAILS         (CONTINUED)

                                       Vector  IRQ                         Interrupt Bit Location

          Interrupt Source             #       #    IVT Address  Flag      Enable    Priority

QEI1 – QEI Position Counter Compare    56      48   0x000074     IFS3<0>   IEC3<0>   IPC12<2:0>

U1E – UART1 Error                      57      49   0x000076     IFS3<1>   IEC3<1>   IPC12<6:4>

U2E – UART2 Error                      58      50   0x000078     IFS3<2>   IEC3<2>   IPC12<10:8>

CRC – CRC Generator                    59      51   0x00007A     IFS3<3>   IEC3<3>   IPC12<14:12>

C1TX – CAN1 TX Data Request            60      52   0x00007C     IFS3<4>   IEC3<4>   IPC13<2:0>

Reserved                               61      53   0x00007E     —         —                       —

QEI2 – QEI Position Counter Compare    62      54   0x000080     IFS3<6>   IEC3<6>   IPC13<10:8>

Reserved                               63      55   0x000082     —         —                       —

U3E – UART3 Error                      64      56   0x000084     IFS3<8>   IEC3<8>   IPC14<2:0>

U3RX – UART3 Receiver                  65      57   0x000086     IFS3<9>   IEC3<9>   IPC14<6:4>

U3TX – UART3 Transmitter               66      58   0x000088     IFS3<10>  IEC3<10>  IPC14<10:8>

SPI3RX – SPI3 Receiver                 67      59   0x00008A     IFS3<11>  IEC3<11>  IPC14<14:12>

SPI3TX – SPI3 Transmitter              68      60   0x00008C     IFS3<12>  IEC3<12>  IPC15<2:0>

ICD – In-Circuit Debugger              69      61   0x00008E     IFS3<13>  IEC3<13>  IPC15<6:4>

JTAG – JTAG Programming                70      62   0x000090     IFS3<14>  IEC3<14>  IPC15<10:8>

PTGSTEP – PTG Step                     71      63   0x000092     IFS3<15>  IEC3<15>  IPC15<14:12>

I2C1BC – I2C1 Bus Collision            72      64   0x000094     IFS4<0>   IEC4<0>   IPC16<2:0>

I2C2BC – I2C2 Bus Collision            73      65   0x000096     IFS4<1>   IEC4<1>   IPC16<6:4>

Reserved                               74      66   0x000098     —         —                       —

PWM1 – PWM Generator 1                 75      67   0x00009A     IFS4<3>   IEC4<3>   IPC16<14:12>

PWM2 – PWM Generator 2                 76      68   0x00009C     IFS4<4>   IEC4<4>   IPC17<2:0>

PWM3 – PWM Generator 3                 77      69   0x00009E     IFS4<5>   IEC4<5>   IPC17<6:4>

PWM4 – PWM Generator 4                 78      70   0x0000A0     IFS4<6>   IEC4<6>   IPC17<10:8>

PWM5 – PWM Generator 5                 79      71   0x0000A2     IFS4<7>   IEC4<7>   IPC17<14:12>

PWM6 – PWM Generator 6                 80      72   0x0000A4     IFS4<8>   IEC4<8>   IPC18<2:0>

PWM7 – PWM Generator 7                 81      73   0x0000A6     IFS4<9>   IEC4<9>   IPC18<6:4>

PWM8 – PWM Generator 8                 82      74   0x0000A8     IFS4<10>  IEC4<10>  IPC18<10:8>

CND – Change Notice D                  83      75   0x0000AA     IFS4<11>  IEC4<11>  IPC18<14:12>

CNE – Change Notice E                  84      76   0x0000AC     IFS4<12>  IEC4<12>  IPC19<2:0>

CMP1 – Comparator 1                    85      77   0x0000AE     IFS4<13>  IEC4<13>  IPC19<6:4>

CMP2 – Comparator 2                    86      78   0x0000B0     IFS4<14>  IEC4<14>  IPC19<10:8>

CMP3 – Comparator 3                    87      79   0x0000B2     IFS4<15>  IEC4<15>  IPC19<14:12>

Reserved                               88      80   0x0000B4     —         —                       —

PTGWDT – PTG Watchdog Timer Time-out   89      81   0x0000B6     IFS5<1>   IEC5<1>   IPC20<6:4>

PTG0 – PTG Trigger 0                   90      82   0x0000B8     IFS5<2>   IEC5<2>   IPC20<10:8>

PTG1 – PTG Trigger 1                   91      83   0x0000BA     IFS5<3>   IEC5<3>   IPC20<14:12>

PTG2 – PTG Trigger 2                   92      84   0x0000BC     IFS5<4>   IEC5<4>   IPC21<2:0>

PTG3 – PTG Trigger 3                   93      85   0x0000BE     IFS5<5>   IEC5<6>   IPC21<6:4>

SENT1 – SENT1 TX/RX                    94      86   0x0000C0     IFS5<6>   IEC5<6>   IPC21<10:8>

SENT1E – SENT1 Error                   95      87   0x0000C2     IFS5<7>   IEC5<7>   IPC21<14:12>

SENT2 – SENT2 TX/RX                    96      88   0x0000C4     IFS5<8>   IEC5<8>   IPC22<2:0>

SENT2E – SENT2 Error                   97      89   0x0000C6     IFS5<9>   IEC5<9>   IPC22<6:4>

ADC – ADC Global Interrupt             98      90   0x0000C8     IFS5<10>  IEC5<10>  IPC22<10:8>

 2017-2018 Microchip Technology Inc.     Advance Information              DS70005349B-page 99
dsPIC33CK256MP508 FAMILY

TABLE 7-1:          INTERRUPT VECTOR DETAILS (CONTINUED)

                                        Vector   IRQ                                   Interrupt Bit Location

          Interrupt Source              #        #        IVT Address        Flag      Enable    Priority

ADCAN0 – ADC AN0 Interrupt              99       91       0x0000CA           IFS5<11>  IEC5<11>  IPC22<14:12>

ADCAN1 – ADC AN1 Interrupt              100      92       0x0000CC           IFS5<12>  IEC5<12>  IPC23<2:0>

ADCAN2 – ADC AN2 Interrupt              101      93       0x0000CE           IFS5<13>  IEC5<13>  IPC23<6:4>

ADCAN3 – ADC AN3 Interrupt              102      94       0x0000D0           IFS5<14>  IEC5<14>  IPC23<10:8>

ADCAN4 – ADC AN4 Interrupt              103      95       0x0000D2           IFS5<15>  IEC5<15>  IPC23<14:12>

ADCAN5 – ADC AN5 Interrupt              104      96       0x0000D4           IFS6<0>   IEC6<0>   IPC24<2:0>

ADCAN6 – ADC AN6 Interrupt              105      97       0x0000D6           IFS6<1>   IEC6<1>   IPC24<6:4>

ADCAN7 – ADC AN7 Interrupt              106      98       0x0000D8           IFS6<2>   IEC6<2>   IPC24<10:8>

ADCAN8 – ADC AN8 Interrupt              107      99       0x0000DA           IFS6<3>   IEC6<3>   IPC24<14:12>

ADCAN9 – ADC AN9 Interrupt              108      100      0x0000DC           IFS6<4>   IEC6<4>   IPC25<2:0>

ADCAN10 – ADC AN10 Interrupt            109      101      0x0000DE           IFS6<5>   IEC6<5>   IPC25<6:4>

ADCAN11 – ADC AN11 Interrupt            110      102      0x0000E0           IFS6<6>   IEC6<6>   IPC25<10:8>

ADCAN12 – ADC AN12 Interrupt            111      103      0x0000E2           IFS6<7>   IEC6<7>   IPC25<14:12>

ADCAN13 – ADC AN13 Interrupt            112      104      0x0000E4           IFS6<8>   IEC6<8>   IPC26<2:0>

ADCAN14 – ADC AN14 Interrupt            113      105      0x0000E6           IFS6<9>   IEC6<9>   IPC26<6:4>

ADCAN15 – ADC AN15 Interrupt            114      106      0x0000E8           IFS6<10>  IEC6<10>  IPC26<10:8>

ADCAN16 – ADC AN16 Interrupt            115      107      0x0000EA           IFS6<11>  IEC6<11>  IPC26<14:12>

ADCAN17 – ADC AN17 Interrupt            116      108      0x0000EC           IFS6<12>  IEC6<12>  IPC27<2:0>

ADCAN18 – ADC AN18 Interrupt            117      109      0x0000EE           IFS6<13>  IEC6<13>  IPC27<6:4>

ADCAN19 – ADC AN19 Interrupt            118      110      0x0000F0           IFS6<14>  IEC6<14>  IPC27<10:8>

ADCAN20 – ADC AN20 Interrupt            119      111      0x0000F2           IFS6<15>  IEC6<15>  IPC27<14:12>

ADCAN21 – ADC AN21 Interrupt            120      112      0x0000F4           IFS7<0>   IEC7<0>   IPC28<2:0>

ADCAN22 – ADC AN22 Interrupt            121      113      0x0000F6           IFS7<1>   IEC7<1>   IPC28<6:4>

ADCAN23 – ADC AN23 Interrupt            122      114      0x0000F8           IFS7<2>   IEC7<2>   IPC28<10:8>

ADFLT – ADC Fault                       123      115      0x0000FA           IFS7<3>   IEC7<3>   IPC28<14:12>

ADCMP0 – ADC Digital Comparator 0       124      116      0x0000FC           IFS7<4>   IEC7<4>   IPC29<2:0>

ADCMP1 – ADC Digital Comparator 1       125      117      0x0000FE           IFS7<5>   IEC7<5>   IPC29<6:4>

ADCMP2 – ADC Digital Comparator 2       126      118      0x000100           IFS7<6>   IEC7<6>   IPC29<10:8>

ADCMP3 – ADC Digital Comparator 3       127      119      0x000102           IFS7<7>   IEC7<7>   IPC29<14:12>

ADFLTR0 – ADC Oversample Filter 0       128      120      0x000104           IFS7<8>   IEC7<8>   IPC30<2:0>

ADFLTR1 – ADC Oversample Filter 1       129      121      0x000106           IFS7<9>   IEC7<9>   IPC30<6:4>

ADFLTR2 – ADC Oversample Filter 2       130      122      0x000108           IFS7<10>  IEC7<10>  IPC30<10:8>

ADFLTR3 – ADC Oversample Filter 3       131      123      0x00010A           IFS7<11>  IEC7<11>  IPC30<14:12>

CLC1P – CLC1 Positive Edge              132      124      0x00010C           IFS7<12>  IEC7<12>  IPC31<2:0>

CLC2P – CLC2 Positive Edge              133      125      0x00010E           IFS7<13>  IEC7<13>  IPC31<6:4>

SPI1G – SPI1 Error                      134      126      0x000110           IFS7<14>  IEC7<14>  IPC31<10:8>

SPI2G – SPI2 Error                      135      127      0x000112           IFS7<15>  IEC7<15>  IPC31<14:12>

SPI3G – SPI3 Error                      136      128      0x000114           IFS8<0>   IEC8<0>   IPC32<2:0>

Reserved                                137-149  129-141  0x000116-0x00012E  —         —                       —

SI2C3 – I2C3 Slave Event                150      142      0x000130           IFS8<14>  IEC8<14>  IPC35<10:8>

MI2C3 – I2C3 Master Event               151      143      0x000132           IFS8<15>  IEC8<15>  IPC35<14:12>

I2C3BC – I2C3 Bus Collision             152      144      0x000134           IFS9<0>   IEC9<0>   IPC36<2:0>

Reserved                                153-156  145-148  0x000136-0x00013C  —         —                       —

CCP7 – Input Capture/Output Compare  7  157      149      0x00013E           IFS9<5>   IEC9<5>   IPC37<6:4>

CCT7 – CCP7 Timer                       158      150      0x000140           IFS9<6>   IEC9<6>   IPC37<10:8>

Reserved                                159      151      0x000142           —         —                       —

DS70005349B-page 100                       Advance Information                2017-2018 Microchip Technology Inc.
                                               dsPIC33CK256MP508 FAMILY

TABLE 7-1:         INTERRUPT VECTOR DETAILS (CONTINUED)

                                       Vector   IRQ                                   Interrupt Bit Location

          Interrupt Source             #        #        IVT Address        Flag       Enable      Priority

CCP8 – Input Capture/Output Compare 8  160      152      0x000144           IFS9<8>    IEC9<8>     IPC38<2:0>

CCT8 – CCP8 Timer                      161      153      0x000146           IFS9<9>    IEC9<9>     IPC38<6:4>

Reserved                               162-175  154-167  0x000148-0x000162  —          —                      —

ADFIFO – ADC FIFO Ready                176      168      0x000164           IFS10<8>   IEC10<8>    IPC42<2:0>

PEVTA – PWM Event A                    177      169      0x000166           IFS10<9>   IEC10<9>    IPC42<6:4>

PEVTB – PWM Event B                    178      170      0x000168        &n