We detect you are using an unsupported browser. For the best experience, please visit the site using Chrome, Firefox, Safari, or Edge. X
Maximize Your Experience: Reap the Personalized Advantages by Completing Your Profile to Its Fullest! Update Here
Stay in the loop with the latest from Microchip! Update your profile while you are at it. Update Here
Complete your profile to access more resources.Update Here!

Software Library

DSP Library for dsPIC33C DSCs


The DSP Library for dsPIC33C DSCs is a comprehensive suite of Digital Signal Processing (DSP) functions designed to facilitate the development of high-performance signal processing applications. By utilizing pre-built functions which are optimized to take advantage of the dsPIC33C DSC architecture, you can substantially decrease your development time while improving the efficiency and precision of your signal processing tasks.

The DSP ISA support in the dsPIC33C family includes specialized instructions for DSP tasks. These instructions are optimized for operations such as single cycle multiply-accumulate (MAC), and the library leverages these instructions for efficient execution of algorithms.

List of Supported Mathematical and Signal Processing Functions:

  • Vector Functions
  • Window Functions
  • Matrix Functions
  • Filtering Functions
  • Transform Functions
  • Control Functions
  • Conversion Functions
  • Stack Functions

DSP Library Usage in C Code Applications

The DSP library for dsPIC33C devices comes pre-installed with the MPLAB® XC-DSC compiler, located at its install directory. The DSP libraries for dsPIC33C devices are bundled with the MPLAB XC-DSC compiler. Within the respective install directory, the library and its related files can be found at:

  • lib\libdsp-elf.a – DSP library
  • src – zipped source code (libdsp.zip) for library functions, including a batch file to rebuild the library
  • support\generic\h – header file for DSP library

Building An Application with the DSP Library

Building an application which utilizes the DSP Library requires only two files: dsp.h and libdsp-elf.a. dsp.h is a header file which provides all the function prototypes, #defines and typedefs used by the library. libdsp-elf.a is the archived library file which contains all the individual object files for each library function.
(See the MPLAB® XC-DSC Libraries Reference Manual)

Download MPLAB® XC-DSC Compiler

DSP Library User Guide for dsPIC DSCs

Products


Title
Product
Title
dsPIC33CK512MP708
ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK512MP708 ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK512MP706
ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK512MP706 ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK512MP710
ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK512MP710 ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK64MC102
100 MHz High Performance DSC
dsPIC33CK64MC102 100 MHz High Performance DSC
dsPIC33CK64MP506
100MHz High-Performance DSC
dsPIC33CK64MP506 100MHz High-Performance DSC
dsPIC33CK512MP705
ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK512MP705 ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK64MP103
100MHz High-Performance DSC
dsPIC33CK64MP103 100MHz High-Performance DSC
dsPIC33CK64MP508
100MHz High-Performance DSC
dsPIC33CK64MP508 100MHz High-Performance DSC
dsPIC33CK256MC102
100 MHz High Performance DSC
dsPIC33CK256MC102 100 MHz High Performance DSC
dsPIC33CK256MC105
100 MHz High Performance DSC
dsPIC33CK256MC105 100 MHz High Performance DSC
dsPIC33CK256MC502
100 MHz High Performance DSC
dsPIC33CK256MC502 100 MHz High Performance DSC
dsPIC33CK64MC105
100 MHz High Performance DSC
dsPIC33CK64MC105 100 MHz High Performance DSC
dsPIC33CK64MC103
100 MHz High Performance DSC
dsPIC33CK64MC103 100 MHz High Performance DSC
dsPIC33CH128MP203
Dual Core, Two DSCs on One Chip
dsPIC33CH128MP203 Dual Core, Two DSCs on One Chip
dsPIC33CH128MP503
Dual Core, Two DSCs on One Chip
dsPIC33CH128MP503 Dual Core, Two DSCs on One Chip
dsPIC33CH128MP202
Dual Core, Two DSCs on One Chip
dsPIC33CH128MP202 Dual Core, Two DSCs on One Chip
dsPIC33CK64MP203
100MHz High-Performance DSC
dsPIC33CK64MP203 100MHz High-Performance DSC
dsPIC33CK256MP606
100 MHz Single-Core DSC
dsPIC33CK256MP606 100 MHz Single-Core DSC
dsPIC33CK128MP205
100MHz High-Performance DSC
dsPIC33CK128MP205 100MHz High-Performance DSC
dsPIC33CK64MP502
100MHz High-Performance DSC
dsPIC33CK64MP502 100MHz High-Performance DSC
dsPIC33CK128MP202
100MHz High-Performance DSC
dsPIC33CK128MP202 100MHz High-Performance DSC
dsPIC33CK32MP505
100MHz High-Performance DSC
dsPIC33CK32MP505 100MHz High-Performance DSC
dsPIC33CH128MP208
Dual Core, Two DSCs on One Chip
dsPIC33CH128MP208 Dual Core, Two DSCs on One Chip
dsPIC33CK32MP503
100MHz High-Performance DSC
dsPIC33CK32MP503 100MHz High-Performance DSC
dsPIC33CK256MC106
100 MHz High Performance DSC
dsPIC33CK256MC106 100 MHz High Performance DSC
dsPIC33CH512MP506
Dual Core, Two DSCs on One Chip
dsPIC33CH512MP506 Dual Core, Two DSCs on One Chip
dsPIC33CK128MP503
100MHz High-Performance DSC
dsPIC33CK128MP503 100MHz High-Performance DSC
dsPIC33CH64MP203
Dual Core, Two DSCs on One Chip
dsPIC33CH64MP203 Dual Core, Two DSCs on One Chip
dsPIC33CH512MP508
Dual Core, Two DSCs on One Chip
dsPIC33CH512MP508 Dual Core, Two DSCs on One Chip
dsPIC33CH64MP205
Dual Core, Two DSCs on One Chip
dsPIC33CH64MP205 Dual Core, Two DSCs on One Chip
dsPIC33CK256MP505
100MHz High-Performance DSC
dsPIC33CK256MP505 100MHz High-Performance DSC
dsPIC33CK512MP305
100 MHz Single-Core DSC
dsPIC33CK512MP305 100 MHz Single-Core DSC
dsPIC33CK512MP405
ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK512MP405 ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK256MP506
100MHz High-Performance DSC
dsPIC33CK256MP506 100MHz High-Performance DSC
dsPIC33CK256MP605
100 MHz Single-Core DSC
dsPIC33CK256MP605 100 MHz Single-Core DSC
dsPIC33CK1024MP406
ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK1024MP406 ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK256MP508
100MHz High-Performance DSC
dsPIC33CK256MP508 100MHz High-Performance DSC
dsPIC33CK1024MP410
ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK1024MP410 ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK256MP502
100MHz High-Performance DSC
dsPIC33CK256MP502 100MHz High-Performance DSC
dsPIC33CH256MP208
Dual Core, Two DSCs on One Chip
dsPIC33CH256MP208 Dual Core, Two DSCs on One Chip
dsPIC33CK256MP406
ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK256MP406 ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CH512MP205
Dual Core, Two DSCs on One Chip
dsPIC33CH512MP205 Dual Core, Two DSCs on One Chip
dsPIC33CH128MP506
Dual Core, Two DSCs on One Chip
dsPIC33CH128MP506 Dual Core, Two DSCs on One Chip
dsPIC33CK64MP206
100MHz High-Performance DSC
dsPIC33CK64MP206 100MHz High-Performance DSC
dsPIC33CK64MP105
100MHz High-Performance DSC
dsPIC33CK64MP105 100MHz High-Performance DSC
dsPIC33CK256MC506
100 MHz High Performance DSC
dsPIC33CK256MC506 100 MHz High Performance DSC
dsPIC33CK256MPT608
100 MHz Secure DSC with Integrated HSM
dsPIC33CK256MPT608 100 MHz Secure DSC with Integrated HSM
dsPIC33CK512MPT608
100 MHz Secure DSC with Integrated HSM
dsPIC33CK512MPT608 100 MHz Secure DSC with Integrated HSM
dsPIC33CK128MP508
100MHz High-Performance DSC
dsPIC33CK128MP508 100MHz High-Performance DSC
dsPIC33CK128MP506
100MHz High-Performance DSC
dsPIC33CK128MP506 100MHz High-Performance DSC
dsPIC33CK64MP102
100 MHz Single-Core 16-bit DSC
dsPIC33CK64MP102 100 MHz Single-Core 16-bit DSC
dsPIC33CK32MP102
100MHz High-Performance DSC
dsPIC33CK32MP102 100MHz High-Performance DSC
dsPIC33CK32MC105
100 MHz High Performance DSC
dsPIC33CK32MC105 100 MHz High Performance DSC
dsPIC33CK64MP202
100MHz High-Performance DSC
dsPIC33CK64MP202 100MHz High-Performance DSC
dsPIC33CK32MP202
100MHz High-Performance DSC
dsPIC33CK32MP202 100MHz High-Performance DSC
dsPIC33CK256MP306
100 MHz Single-Core DSC
dsPIC33CK256MP306 100 MHz Single-Core DSC
dsPIC33CK32MP103
100MHz High-Performance DSC
dsPIC33CK32MP103 100MHz High-Performance DSC
dsPIC33CK32MP205
100MHz High-Performance DSC
dsPIC33CK32MP205 100MHz High-Performance DSC
dsPIC33CH512MP505
Dual Core, Two DSCs on One Chip
dsPIC33CH512MP505 Dual Core, Two DSCs on One Chip
dsPIC33CH512MP208
Dual Core, Two DSCs on One Chip
dsPIC33CH512MP208 Dual Core, Two DSCs on One Chip
dsPIC33CK128MP505
100MHz High-Performance DSC
dsPIC33CK128MP505 100MHz High-Performance DSC
dsPIC33CK512MP406
ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK512MP406 ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK512MP306
100 MHz Single-Core DSC
dsPIC33CK512MP306 100 MHz Single-Core DSC
dsPIC33CK512MP606
100 MHz Single-Core DSC
dsPIC33CK512MP606 100 MHz Single-Core DSC
dsPIC33CK1024MP408
ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK1024MP408 ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CH256MP505
Dual Core, Two DSCs on One Chip
dsPIC33CH256MP505 Dual Core, Two DSCs on One Chip
dsPIC33CH256MP206
Dual Core, Two DSCs on One Chip
dsPIC33CH256MP206 Dual Core, Two DSCs on One Chip
dsPIC33CH256MP205
Dual Core, Two DSCs on One Chip
dsPIC33CH256MP205 Dual Core, Two DSCs on One Chip
dsPIC33CH256MP508
Dual Core, Two DSCs on One Chip
dsPIC33CH256MP508 Dual Core, Two DSCs on One Chip
dsPIC33CK256MP706
ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK256MP706 ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK64MP505
100MHz High-Performance DSC
dsPIC33CK64MP505 100MHz High-Performance DSC
dsPIC33CK256MP408
ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK256MP408 ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK128MC505
100 MHz High Performance DSC
dsPIC33CK128MC505 100 MHz High Performance DSC
dsPIC33CK1024MP706
ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK1024MP706 ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK128MC102
100 MHz High Performance DSC
dsPIC33CK128MC102 100 MHz High Performance DSC
dsPIC33CK256MP202
100MHz High-Performance DSC
dsPIC33CK256MP202 100MHz High-Performance DSC
dsPIC33CK1024MP710
ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK1024MP710 ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK256MP208
100MHz High-Performance DSC
dsPIC33CK256MP208 100MHz High-Performance DSC
dsPIC33CK256MP205
100MHz High-Performance DSC
dsPIC33CK256MP205 100MHz High-Performance DSC
dsPIC33CK256MP305
100 MHz Single-Core DSC
dsPIC33CK256MP305 100 MHz Single-Core DSC
dsPIC33CH128MP206
Dual Core, Two DSCs on One Chip
dsPIC33CH128MP206 Dual Core, Two DSCs on One Chip
dsPIC33CH128MP502
Dual Core, Two DSCs on One Chip
dsPIC33CH128MP502 Dual Core, Two DSCs on One Chip
dsPIC33CH64MP508
Dual Core, Two DSCs on One Chip
dsPIC33CH64MP508 Dual Core, Two DSCs on One Chip
dsPIC33CH64MP502
Dual Core, Two DSCs on One Chip
dsPIC33CH64MP502 Dual Core, Two DSCs on One Chip
dsPIC33CH128MP205
Dual Core, Two DSCs on One Chip
dsPIC33CH128MP205 Dual Core, Two DSCs on One Chip
dsPIC33CH128MP505
Dual Core, Two DSCs on One Chip
dsPIC33CH128MP505 Dual Core, Two DSCs on One Chip
dsPIC33CK32MC102
100 MHz High Performance DSC
dsPIC33CK32MC102 100 MHz High Performance DSC
dsPIC33CK32MC103
100 MHz High Performance DSC
dsPIC33CK32MC103 100 MHz High Performance DSC
dsPIC33CK256MP608
100 MHz Single-Core DSC
dsPIC33CK256MP608 100 MHz Single-Core DSC
dsPIC33CK256MP308
100 MHz Single-Core DSC
dsPIC33CK256MP308 100 MHz Single-Core DSC
dsPIC33CK32MP502
100MHz High-Performance DSC
dsPIC33CK32MP502 100MHz High-Performance DSC
dsPIC33CK32MP203
100MHz High-Performance DSC
dsPIC33CK32MP203 100MHz High-Performance DSC
dsPIC33CK128MP502
100MHz High-Performance DSC
dsPIC33CK128MP502 100MHz High-Performance DSC
dsPIC33CK128MP206
100MHz High-Performance DSC
dsPIC33CK128MP206 100MHz High-Performance DSC
dsPIC33CH64MP202
Dual Core, Two DSCs on One Chip
dsPIC33CH64MP202 Dual Core, Two DSCs on One Chip
dsPIC33CK512MP605
100 MHz Single-Core DSC
dsPIC33CK512MP605 100 MHz Single-Core DSC
dsPIC33CK256MP503
100MHz High-Performance DSC
dsPIC33CK256MP503 100MHz High-Performance DSC
dsPIC33CK512MP410
ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK512MP410 ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK512MP608
100 MHz Single-Core DSC
dsPIC33CK512MP608 100 MHz Single-Core DSC
dsPIC33CH64MP208
Dual Core, Two DSCs on One Chip
dsPIC33CH64MP208 Dual Core, Two DSCs on One Chip
dsPIC33CK1024MP405
ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK1024MP405 ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CH64MP506
Dual Core, Two DSCs on One Chip
dsPIC33CH64MP506 Dual Core, Two DSCs on One Chip
dsPIC33CH256MP506
Dual Core, Two DSCs on One Chip
dsPIC33CH256MP506 Dual Core, Two DSCs on One Chip
dsPIC33CK256MP405
ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK256MP405 ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CH128MP508
Dual Core, Two DSCs on One Chip
dsPIC33CH128MP508 Dual Core, Two DSCs on One Chip
dsPIC33CK64MP503
100MHz High-Performance DSC
dsPIC33CK64MP503 100MHz High-Performance DSC
dsPIC33CK256MP708
ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK256MP708 ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK64MP205
100MHz High-Performance DSC
dsPIC33CK64MP205 100MHz High-Performance DSC
dsPIC33CK128MC105
100 MHz High Performance DSC
dsPIC33CK128MC105 100 MHz High Performance DSC
dsPIC33CK256MC505
100 MHz High Performance DSC
dsPIC33CK256MC505 100 MHz High Performance DSC
dsPIC33CK256MC103
100 MHz High Performance DSC
dsPIC33CK256MC103 100 MHz High Performance DSC
dsPIC33CK256MC503
100 MHz High Performance DSC
dsPIC33CK256MC503 100 MHz High Performance DSC
dsPIC33CK128MC506
100 MHz High Performance DSC
dsPIC33CK128MC506 100 MHz High Performance DSC
dsPIC33CK128MP203
100MHz High-Performance DSC
dsPIC33CK128MP203 100MHz High-Performance DSC
dsPIC33CK64MP208
100MHz High-Performance DSC
dsPIC33CK64MP208 100MHz High-Performance DSC
dsPIC33CK32MP105
100MHz High-Performance DSC
dsPIC33CK32MP105 100MHz High-Performance DSC
dsPIC33CK32MP206
100MHz High-Performance DSC
dsPIC33CK32MP206 100MHz High-Performance DSC
dsPIC33CK32MP506
100MHz High-Performance DSC
dsPIC33CK32MP506 100MHz High-Performance DSC
dsPIC33CK256MP203
100MHz High-Performance DSC
dsPIC33CK256MP203 100MHz High-Performance DSC
dsPIC33CH64MP206
Dual Core, Two DSCs on One Chip
dsPIC33CH64MP206 Dual Core, Two DSCs on One Chip
dsPIC33CK128MP208
100MHz High-Performance DSC
dsPIC33CK128MP208 100MHz High-Performance DSC
dsPIC33CK512MP408
ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK512MP408 ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK512MP308
100 MHz Single-Core DSC
dsPIC33CK512MP308 100 MHz Single-Core DSC
dsPIC33CH64MP505
Dual Core, Two DSCs on One Chip
dsPIC33CH64MP505 Dual Core, Two DSCs on One Chip
dsPIC33CH64MP503
Dual Core, Two DSCs on One Chip
dsPIC33CH64MP503 Dual Core, Two DSCs on One Chip
dsPIC33CK1024MP705
ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK1024MP705 ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CH512MP206
Dual Core, Two DSCs on One Chip
dsPIC33CH512MP206 Dual Core, Two DSCs on One Chip
dsPIC33CK256MP410
ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK256MP410 ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK256MP710
ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK256MP710 ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK256MP705
ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK256MP705 ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK128MC106
100 MHz High Performance DSC
dsPIC33CK128MC106 100 MHz High Performance DSC
dsPIC33CK128MC103
100 MHz High Performance DSC
dsPIC33CK128MC103 100 MHz High Performance DSC
dsPIC33CK128MC503
100 MHz High Performance DSC
dsPIC33CK128MC503 100 MHz High Performance DSC
dsPIC33CK128MC502
100 MHz High Performance DSC
dsPIC33CK128MC502 100 MHz High Performance DSC
dsPIC33CK1024MP708
ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK1024MP708 ISO 26262-and IEC 61508-Compliant 100 MHz Single-Core DSC
dsPIC33CK256MP206
100MHz High-Performance DSC
dsPIC33CK256MP206 100MHz High-Performance DSC