16-bit Device Limitations - dsPIC® Digital Signal Controllers (DSCs) PIC24

Last modified by Microchip on 2023/11/10 11:03

dsPIC30 Limitations

  • Debug and Programming Limitations - PIC® MCUs
  • The SLEEP instruction cannot be used when debugging.
  • The Watchdog Timer (WDT) cannot be used when debugging.
  • When debugging in a repeat loop via single stepping, the debugger or emulator cannot show that the repeat loop is active (RA = 1). Therefore, the watch window will show RA = 0.
  • You cannot single step through an interrupt. Due to hardware restrictions, the debugger or emulator cannot jump to the interrupt vector memory location in Single Step mode.
  • Incorrect Table Read when single stepping: If single stepping is attempted on a User mode table read operation, it may lead to unpredictable operation. Therefore, you should not single step through a table read instruction. Instead, you should place a breakpoint after the table read instruction and then execute a Run command, thereby “running” through such instructions, for correct debug operation.
  • Incorrect Program Space Visibility (PSV) when single stepping: If single stepping is attempted on a User mode instruction that utilizes PSV for the source effective address, it may lead to unpredictable operation. Therefore, you should not single step through a PSV-based instruction. Instead, you should place a breakpoint after the PSV-based instruction and then execute a Run command, thereby “running” through such instructions, for correct debug operation.

Freeze on Halt Limitations

  • Serial Peripheral Interface (SPI) module and Peripheral Freeze mode: If the SPI module is operating in Framed Master mode and is generating the serial clock on the SCK pin for an external system, the clock will discontinue in Peripheral Freeze mode.

Back to Top

dsPIC30 SMPS, dsPIC33, PIC24 Limitations

(Currently, the SMPS devices are: dsPIC30F1010/2020/2023.)

Headers are available but optional for debug when using these devices. See the “Processor Extension Pak and Debug Header Specification” for details.

  • Debug and Programming Limitations - PIC® MCUs
  • The SLEEP instruction cannot be used when debugging unless the device is set to Break on SLEEP Instruction (Debugger > BreakpointsEvent Breakpoints).
  • The Watchdog Timer (WDT) cannot be used when debugging unless the device is set to Break on Watchdog Timer (Debugger > BreakpointsEvent Breakpoints).
  • When debugging in a repeat loop via single stepping, the debugger/emulator cannot show that the repeat loop is active (RA = 1). Therefore, the Watch window will show RA = 0.
  • You cannot single step through an interrupt. Due to hardware restrictions, the debugger/emulator cannot jump to the interrupt vector memory location in Single Step mode.
  • Incorrect table read when single stepping. If single stepping is attempted on a User mode table read operation, it may lead to unpredictable operation. Therefore, you should not single step through a table read instruction. Instead, you should place a breakpoint after the table read instruction and then execute a Run command, thereby “running” through such instructions, for correct debug operation.
  • Incorrect PSV when single stepping. If single stepping is attempted on a User mode instruction that utilizes PSV for the source effective address, it may lead to unpredictable operation. Therefore, you should not single step through PSV-based instruction. Instead, you should place a breakpoint after the PSV-based instruction and then execute a Run command, thereby “running” through such instructions, for correct debug operation.
  • The following devices will not program below 3.1 V using the PICkit 3 In-Circuit Debugger, MPLAB® REAL ICE In-Circuit Emulator or MPLAB ICD 3 In-Circuit Debugger:
    • dsPIC33EP256MU806
    • dsPIC33EP256MU810
    • dsPIC33EP256MU814
    • dsPIC33EP512GP806
    • dsPIC33EP512MC806
    • dsPIC33EP512MU810
    • dsPIC33EP512MU814
    • PIC24EP256GU810
    • PIC24EP256GU814
    • PIC24EP512GP806
    • PIC24EP512GU810
    • PIC24EP512GU814

For dsPIC33EP64GS50x Devices Only

  • For dual partition devices, MPLAB X IDE cannot set breakpoints in the inactive partition.

For PIC24FJ128GA010-ICE Headers Only

  • You must remove the MCLR pull-up resistor on your development board to use these headers.

For PIC24FJ256GA110 Devices Only

  • RTCVAL in the Watch window causes RTCPTR change. When debugging with RTCVAL in the Watch window, during a halt, RTCVAL will be read by MPLAB X IDE, which will cause the RTCPTR to change. As a workaround, do not add RTCVAL to the Watch window. Use a General Purpose Register for reading purposes.

For PIC24FJ256GB110 Devices Only

  • PLLDIS configuration bit is always set to on. For these devices, the USB will not work if the PLL is disabled. Therefore, it is always enabled. Use a general purpose (PIC24FJxxxGA) version of this device to enable/disable the PLL function.

Back to Top

Freeze on Halt Limitations

  • SPI module and Peripheral Freeze mode. If the SPI module is operating in Framed Master mode and is generating the serial clock on the SCK pin for an external system, the clock will discontinue in Peripheral Freeze mode.

Back to Top